Постоянные читатели этого блога, скорее всего, уже пару-тройку раз в своей жизни настраивали OpenVPN. Но думается, что новичкам данная заметка будет интересна и полезна. Из нее вы узнаете, как за пять минут поднять собственный VPN сервер, а также зачем он, собственно, нужен. Ну хорошо, учитывая время на регистрацию в каком-нибудь Amazon’е, DigitalOcean, Vscale.io или FastVDS и оплату VDS, пожалуй, потребуется не пять минут, а «целых» пятнадцать.
Находки в сети за февраль 2015
2 марта 2015
В этом выпуске: легковесные веб-фреймворки (не akka-http) и скриптинг на Scala, как из Haskell вызывать код, написанный на Rust, действительно ли в Erlang не бывает stop the world, скандальная правда про MVCC и LSM-tree, а также передача доменов онлайн, крафтовое пиво и вкусняшки к нему с доставкой на дом. Предыдущие выпуски: январь 2015, декабрь 2014, ноябрь 2014, сентябрь и октябрь 2014.
Мои первые впечатления от языка Kotlin
25 февраля 2015
В мире JVM уже давно предпринимаются попытки заместить Java чем-то более пристойным. Наиболее успешной такой попыткой, по всей видимости, на сегодняшний день является Scala. Тут вам и сообщество программистов, и куча фреймворков, и вакансии — все что угодно. Но и Scala далека от идеала. Среди наиболее существенных недостатков языка можно отметить его относительную сложность (что признает даже Одерски) и, что намного важнее, медленную скорость компиляции, а также требовательность к ресурсам во время этой компиляции. Поэтому такие языки под JVM, как Kotlin, Gosu и Ceylon все еще представляют собой интерес.
Велика колхозная доктрина — это квинтэссенция программистской мудрости. Десятилетиями доктрина передавалась членами тайного ордена колхозных программистов из уст в уста, из поколения в поколение. К великому сожалению, со временем учение стало додумываться и обрастать различными толкованиями. Мы видим появление новых те-еретиков, намеренно искажающих доктрину, чтобы поселить сомнения и ужас в наших сердцах. У ордена не осталось иного способа спасти истину, кроме как предать доктрину широкой огласке. Ниже представлена наиболее точное приближение к оригинальной доктрине, которое удалось по крупицам восстановить благодаря небольшой группе посвященных.
Первая сотня прочитанных книг и журналов
18 февраля 2015
Суммарно мне потребовалось на это где-то 2.5 года, но в итоге рубеж в одну сотню книг был успешно преодолен! А значит пришло время предоставить вашему вниманию очередной отчет о последних десяти прочитанных мною книгах. Преимущественно это были книги, посвященные Java, Scala и Akka, но не только. Рецензии на ранее прочитанные мной книги вы найдете по следующим ссылкам: девятый десяток, восьмой десяток, седьмой десяток, шестой десяток.
Зачем нужен Docker и практика работы с ним
16 февраля 2015
Docker — это инструмент, предоставляющий удобный интерфейс для работы с контейнерами. Процессу, запущенному под Docker, кажется, что он работает в минимальном окружении, где помимо него есть только его дети. Хотя при этом процесс работает в той же операционной системе, что и остальные, нормальные, процессы, он просто их не видит, ровно как не видит файлов и всего остального за пределами своей «песочницы». Можно думать о Docker, как о прокачанном chroot или аналоге FreeBSD Jails.
Десять причин избегать метапрограммирования
11 февраля 2015
В любой команде рано или поздно появляется человек, который совсем недавно прочитал книжку по Lisp или осилил Template Haskell и потому ему не терпится применить метапрограммирование на практике. Однако проблема заключается в том, что в большинстве случаев макросы или шаблоны создают больше проблем, чем решают. В этой заметке будет показано, почему так.
LRU и FIFO кэши в Scala без лишних зависимостей
9 февраля 2015
Редкое серьезное приложение в наши дни обходится без кэширования чего-либо. Какой-нибудь LRU кэш элементарно реализуется, например, при помощи хэш-таблиц и двусвязных списков. Но не факт, что ваше решение будет отличаться особой эффективностью, поэтому лучше воспользоваться готовой реализацией. Часто в качестве такой реализации рекомендуют Guava или LruMap из twitter-util. Но у этих решений есть свои минусы, в частности, стэк Twitter’а традиционно привязывает вас к Scala 2.10, а Guava просто страшна.
Самые основы работы с Akka Cluster
4 февраля 2015
Как ранее уже отмечалось, Akka позволяет не только создавать акторы, которые обмениваются между собой сообщениями, но и строить кластеры, состоящие из нескольких физических машин. При этом акторы, запущенные на разных машинах, все еще могут взаимодействовать друг с другом. Кроме того, Akka из коробки предоставляет ряд полезных при построении распределенных приложений примитивов. Например, возможность подписаться на события, происходящие с кластером, присваивать узлам роли или запустить актор-одиночку. Что, кстати, делает Akka намного интереснее других реализаций модели акторов (Erlang, Cloud Haskell). В этой заметке мы напишем очень простое приложение, использующее akka-cluster, а также ознакомимся с его поведением при различных условиях.
Находки в сети за январь 2015
2 февраля 2015
В этом выпуске: инструменты для тестирования поведения приложения при нетсплитах, падениях сети, высоком проценте потери пакетов и тд, всякие полезняшки, связанные со Scala и JVM, самописный GitHub на языке Go, как не убить здоровье к 27-и годам, и не только. Предыдущие выпуски: декабрь 2014, ноябрь 2014, сентябрь и октябрь 2014, август 2014.