Heroes 3 on a Steam Deck
That’s how you install it: original — https://www.reddit.com/r/heroes3/comments/18xql2r/heroes_of_might_and_magic_iii_horn_of_the_abyss/ copy (better structured but a bit less detailed) — https://heroes3wog.net/steam-deck-installation-guide-heroes-iii-horn-of-the-abyss-v1-7/ That’s how you add a Jebus Outcast template — https://www.h3templates.com/templates/jebus-outcast.
DDD/Clean Architecture go linters
Origin (in Russian) Tech talk (paid access only, unfortunately): https://conf.ontico.ru/online/hl2023/details/5206668 Presentation: https://docs.google.com/presentation/d/1n5jCie-9tBw3QEEF6NsNco4mS9xYkg52/edit#slide=id.g29c6e2d30cb_0_169 Linters Dependencies between layers: https://github.com/OpenPeeDeeP/depguard https://github.com/fe3dback/go-arch-lint/ You can also check mine (very simplistic) — https://blog.bullgare.com/2024/06/cleanlinter-my-first-golang-linter/ Others: https://github.com/nishanths/exhaustive — to check using all microtypes in enums/switches. https://github.com/go-simpler/musttag + https://github.com/maranqz/golangconf2023/blob/main/tags/rules.go — to prevent using struct tags in Domain models (Value Objects). https://github.com/maranqz/gopublicfield — to prevent …
Protobuf: safer usage for buf
A drop-in replacement for buf issued by Ozon. Repository: https://github.com/easyp-tech/server Presentation (for subscribers only, unfortunately): https://conf.ontico.ru/online/hl2023/details/5206585
Maps internals in Go
Idea Map is passed as a value, but it consists of a pointer to hmap which has all the details on map implementation. So, if you change/add to map, it will be reflected everywhere. And that’s why you cannot assign to an uninitialized map (no memory allocated, no hash seed generated yet). runtime/map.go type hmap …
mountebank for mocking and stubbing http services (rest+graphql+grpc)
http://www.mbtest.org/docs/api/stubs can be used to stub http(s)/tcp/smtp protocols. And has community plugins for grpc, graphql, websockets. You can configure it with imposters.ejs like below: { «port»: 80, «protocol»: «http», «defaultResponse»: { «statusCode»: 404, «headers»: {} }, «stubs»: [ , , ] } docker-compose.yml version: «3.5» services: mountebank: container_name: mountebank image: jkris/mountebank:latest volumes: — ./:/mountebank ports: …
HTTP Toolkit — another alternative to Charles Proxy for http calls interception
https://httptoolkit.com/ It has a free version which does something similar to Charles Proxy, so you can hack into the middle of any request/response according to the rules specified.
YouType to show flag icon for current locale on MacOS
It has reacher functionality, but I use it only to show a flag for my current locale in a tray. https://github.com/freefelt/YouType
Add new video sticker pack to telegram
If you have an animated gif-file, you can convert it to webm video respecting rules described in the docs (https://core.telegram.org/stickers#video-stickers-and-emoji): For stickers, one side must be exactly 512 pixels in size – the other side can be 512 pixels or less. For emoji, the video must be exactly 100×100 pixels in size Video duration must …
Docker and Kubernetes basics for developers
Docker Docker containers are much more lightweight compared to classic VMs as they leverage host OS instead of starting their own OS. Containers are using 2 features of Linux-based OS: Namespaces and Cgroups (Control Groups). Namespace Lets you allocate resources in an isolated environment (like a sandbox). On a container start, docker daemon generates a …
Go’s Concurrency and Channel Internals
Go is implementing CSP (Communicating Sequential Processing): processes are communicating through channels, they can block each other while waiting for read/writes to channels. Actor model makes inter-process communications more explicit and non-blocking. CSP vs Actor explained — https://dev.to/karanpratapsingh/csp-vs-actor-model-for-concurrency-1cpg. Channels requirements goroutine-safe store and pass data across goroutines FIFO can block/unblock goroutines