Как ускорить разработку на Zig в Vim

Пока сервер LSP для Zig оставляет желать лучшего, можно вспомнить технологии прошлого и упростить себе жизнь. В этой заметке я хочу поделиться тем, как фича make в vim упрощает мне работу с zig.

Zig. Что за зверь?

Давно не было новых постов в этом блоге. За время тишины у меня накопились презентации с внутренних докладов, которые я собираюсь здесь опубликовать, чтобы не пропадать добру

Ускоряем реализацию fs2 стримов для reactive-streams

Если вы, как и я, не в восторге от текущих инструментов для коммуникации с MongoDB, и меньшим злом выбрали для себя выбрали MongoDB Reactive Streams Java Driver, в надежде на существующую интеграцию reactive-streams с fs2, то вероятно, вас ждет разочарование. Официальная интеграция оооооооооооооооооооооооочень медленная. Если вы не собираетесь запускать ваше добро на JS, то возможно вам пригодится мое решение: https://github.com/dokwork/fast-reactive-fs2.
Просто оставлю результат замеров здесь:

Benchmark                                      Mode  Cnt      Score      Error  Units
ReadOneMillionNumbers.dokworkStreamSubscriber  avgt   25     39.377 ±    2.749  ms/op
ReadOneMillionNumbers.fs2StreamSubscriber      avgt   25  11189.737 ± 2213.225  ms/op

Разбор реализации актора из книги FP in Scala

cover of the book В книге Functional Programming in Scala, в главе Purely functional parallelism, в конечной реализации Par[a], авторы ссылаются на акторную модель вычислений и приводят в пример ее реализацию: Actor.scala. В основе реализации приводимого актора лежат идеи Non-intrusive MPSC node-based queue, которые не могут не вызывать восторга! В своей статье хочу попытаться разъяснить для себя и всех, кому это будет интересно, эти идеи.