+++ title = "Links for 2020-03-12" date = 2020-03-12 [taxonomies] tags = ["links"] +++ Netflix and the Hexagonal Architecture, logging, EOF, JS Frameworks, Emacs Charts, Rust init Pattern, Software Engineers vs Technicians, Cancelling Conferences How-To, A VIM Jump-to-Anything plugin. # [Ready for changes with Hexagonal Architecture](https://netflixtechblog.com/ready-for-changes-with-hexagonal-architecture-b315ec967749) A Netflix Tech post about the hexagonal architecture for microservices. The interesting bit here is the fact that Netflix devs focused on "swappable data sources", which is something I've been pushing where I work a lot[^1] Even if I hate this posture a lot[^2], now I can say "Netflix does this, we can do it too!" # [Do not log](https://sobolevn.me/2020/03/do-not-log) I really don't agree with this. I do understand that, sometimes, logging is stupid and just adds noise, but we have see this problem in the same way we see comments: They need to explain the _why_. _Why_ the request failed? Sometimes it can even be the _what_: _What_ user input caused this process to fail? As the author argues, one could use Sentry for capturing failures, but what if this isn't an option (due to cost)? I once worked with the free version of Sentry and while it was okay, it didn't provide enough information to understand the _why_ things failed -- you can add the message in the exception, but _only_ if that's your code; what can you do if it is a library causing the exception? Cascade everything? Log. But think on _why_ you're logging. # [EOF is not a character](https://ruslanspivak.com/eofnotchar/) My C life is build on top of lies! Honestly, I thought EOF was really the same value as `^D` (Ctrl-D, which ends the input) and you could put an EOF in the middle of the file and still have content. But it seems it was not that. # [A RealWorld Comparison of Front-End Frameworks 2020](https://medium.com/dailyjs/a-realworld-comparison-of-front-end-frameworks-2020-4e50655fe4c1) Not too sure about the benchmarks used -- specially when someone says "Svelte was skipped due to cloc not being able to process .svelte files." when you can surely use `wc`. But still, interesting, in some aspects. # [ActuallyUsingWasm](https://wiki.alopex.li/ActuallyUsingWasm) Implementations, runtimes, execution times, code samples... A bit of everything about running Wasm. # [Exploring emacs chart library](https://francismurillo.github.io/2017-04-15-Exploring-Emacs-chart-Library/) No, I didn't drop VIM and start using Emacs, but it is really impressive that it has a built in charts library -- which, on the other hand, just adds to the "Emacs is a good operating system, but lacks a good editor" joke. # [My exploration of Rust and .NET](https://ericsink.com/entries/dotnet_rust.html) Converting LLVM bytecode from Rust to .NET assembly. # [Init Struct Pattern](https://xaeroxe.github.io/init-struct-pattern/) An initialization pattern for Rust structures. Honestly, I don't see that much difference than using `Default` directly, but it may be interesting if you should do some change in the input at construction. (Also, I have the slight impression that the pattern, in the end, forces you to build a complete object and then call `init()` to build a copy of said already complete object.) # [The Fall of The Software Engineer, The Rise of The Programmer Technician](https://medium.com/@alexkatrompas/the-fall-of-the-software-engineer-the-rise-of-the-programmer-technician-451a572d28b0) A discussion on the (natural) evolution of the software development market. # [My conference has a sneeze - Practical help in winding down a troubled conference](https://paper.dropbox.com/doc/My-conference-has-a-sneeze-Practical-help-in-winding-down-a-troubled-conference-mZJJdhWXFjYLledMKxgyl) This is mostly interesting to me 'cause I'm part of the organization of two conferences and we have this discussion about cancelling, postponing or going forward for both. # [any-jump.vim — IDE madness without overhead for 40+ languages](https://github.com/pechorin/any-jump.vim) A VIM plugin to jump to everywhere (except files, that is). But hell if it isn't cute. --- [^1]: Sadly, I'm not getting heard here. [^2]: That's [cargo cult](https://en.wikipedia.org/wiki/Cargo_cult_programming), kids.