• 0 Posts
  • 54 Comments
Joined 11 months ago
cake
Cake day: June 15th, 2025

help-circle


  • Nobody was talking about invading Ukraine before 2010, even in 2014 the idea about invasion was marginal: Crimea was something that wasn’t generally perceived as a part of Ukraine (bc reasons, don’t dive into it), while Donbass was washed as a separatist movement.

    But there was also a significant piece of propaganda that demonized the new Ukrainian government, its people, and the whole premise of Ukraine’s existence. This propaganda was not a deliberate preparation for invasion, but a move that put the invasion card on Putin’s table as an option.

    The very same is happening in the western media with the same methods used, like one discussed before. To have this option just in case they need to engage in a war with Russia.

    I hate the US and Russia equally

    As a Russian myself, I don’t. They are not equal at all: Russia is an established authoritarian state with imperialistic ambitions, while the US is a fully fledged imperialist with authoritarian ambitions. They both deserve hate, but for different aspects
















  • Yeah, Go is nice sometimes. It shines in codebases that are not quite large and not very small. Also it’s great to write a cli tool in it, though I prefer Rust because I hate myself. What I personally missed in Go (maybe skill issue, idk):

    1. Metaprogramming. For big projects it’s inevitable. You need to have SPOT which generates documentation and headers (e.g. xml document, openapi spec). Otherwise you die. The fact that the source should be a git repo is cancer, as in this case artifacts are added in git, which results in merge conflicts.

    2. DI. In JVM world it is a must. If you don’t have it, you fucking should have a reason for that! If your logic spans across multiple layers of factories, onboarding of a new developer creates friction.

    3. For small web services that are not constrained by memory I would choose spring + openapi, as it really requires only model description and the endpoint, yielding you a client in any language you want.

    4. If err != nill. Don’t let me started on importance of result and either monads.

    5. Aspects and (usable) reflection. I want a codebase that has actual decoupling. I want a security code to be in a completely different place, away from the business logic, just as I want traces with serialization to be pluggable I don’t want to have a single place in code that has a sequence auth -> validate inputs -> trace -> business logic -> validate output. I strongly believe that it’s faulty, untestable and prone to errors.