Vim Cheat Sheet

пятница, 17 апреля 2020 г.
This is my fork of the https://vim.rtorr.com/.

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

суббота, 8 февраля 2020 г.
Если вы, как и я, не в восторге от текущих инструментов для коммуникации с 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

Разбираемся с сагами на Scala Russia Meetup 2019

среда, 16 октября 2019 г.

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

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

Что значит "писать в функциональном стиле"?

воскресенье, 14 апреля 2019 г.
Ссылка на презентацию: тыц.

Дебют на scala meetup

вторник, 17 апреля 2018 г.

Шаблонные проекты с Giter8

суббота, 28 октября 2017 г.
Надоело копировать build.sbt, plugins.sbt, .travis.yml и прочие шаблонные файлы каждый раз, когда садитесь за новый проект? Тогда у меня для вас есть хорошая новость: забудьте об этом и встречайте giter8!

Первая за 6 лет статья на Хабр

четверг, 9 марта 2017 г.

Состояния java.lang.Thread на граблях и примерах

воскресенье, 5 февраля 2017 г.
Каждый java разработчик знает что такое поток, как его запустить и, возможно, поменять ему приоритет или даже сделать его демоном. Сегодня этих поверхностных знаний зачастую достаточно для того, чтобы успешно справляться со своими повседневными задачами, в которых крутые фреймворки всеми силами пытаются скрыть от нас нюансы многопоточности. Но иногда жизнь заставляет спустится на дно  на уровень ниже и познакомиться с нюансами работы с потоками более детально.

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

Навигация по истории в терминале

пятница, 26 августа 2016 г.
Маленький хак упрощающий навигацию в Linux. Размещаем инструкции в ~/.bashrc:
bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'
и навигация по истории учитывает набранные до курсора символы.

Что надо знать про коллекции в Scala

среда, 11 мая 2016 г.
Библиотека коллекции в scala - одна из самых сильных особенностей языка, но в то же время и одна самых трудных его частей. Данная статья представляет собой конспект особенностей и нюансов коллекций в scala.

Содержание:

Как обрезать поля в pdf файле

среда, 16 марта 2016 г.
Для обрезки полей в Linux есть утилита pdfcrop. Эта утилита является частью пакета texlive-extra-utils:
# apt-get install texlive-extra-utils
$ pdfcrop --clip --margin 5 исходный_файл.pdf целевой_файл.pdf

Технологии Blogger.