Редкое серьезное приложение в наши дни обходится без кэширования чего-либо. Какой-нибудь LRU кэш элементарно реализуется, например, при помощи хэш-таблиц и двусвязных списков. Но не факт, что ваше решение будет отличаться особой эффективностью, поэтому лучше воспользоваться готовой реализацией. Часто в качестве такой реализации рекомендуют Guava или LruMap из twitter-util. Но у этих решений есть свои минусы, в частности, стэк Twitter’а традиционно привязывает вас к Scala 2.10, а Guava просто страшна.

Как ранее уже отмечалось, Akka позволяет не только создавать акторы, которые обмениваются между собой сообщениями, но и строить кластеры, состоящие из нескольких физических машин. При этом акторы, запущенные на разных машинах, все еще могут взаимодействовать друг с другом. Кроме того, Akka из коробки предоставляет ряд полезных при построении распределенных приложений примитивов. Например, возможность подписаться на события, происходящие с кластером, присваивать узлам роли или запустить актор-одиночку. Что, кстати, делает Akka намного интереснее других реализаций модели акторов (Erlang, Cloud Haskell). В этой заметке мы напишем очень простое приложение, использующее akka-cluster, а также ознакомимся с его поведением при различных условиях.

В этом выпуске: инструменты для тестирования поведения приложения при нетсплитах, падениях сети, высоком проценте потери пакетов и тд, всякие полезняшки, связанные со Scala и JVM, самописный GitHub на языке Go, как не убить здоровье к 27-и годам, и не только. Предыдущие выпуски: декабрь 2014, ноябрь 2014, сентябрь и октябрь 2014, август 2014.

Рассмотрим такую практическую задачу. Есть некое множество классов. У этих классов есть методы, по которым нам хотелось бы, например, собирать метрики: количество вызовов, время выполнения, число ошибок. Наиболее простой и красивый способ решения этой задачи, не требующий написания тысяч строк кода в разных местах проекта, заключается в использовании динамических прокси-классов.

Ansible — это средство управления конфигурациями, аналогичное Chef, Puppet и Salt. Если вам нужно раскатывать deb-пакеты и конфиги по множеству машин в разных окружениях (всякие dev, stage, prod), то следует серьезно задуматься об использовании одного из этих средств. Сам по себе Ansible представляет собой CLI. Ansible Tower — это веб-интерфейс для Ansible. CLI можно использовать бесплатно, веб-морда стоит 99$ в месяц.

Теперь, когда мы рассмотрели многие интересные квантовые алгоритмы (для тех, кто пропустил, прошу внимательно и последовательно ознакомиться с ранними заметками: один, два, три и далее по ссылкам), мы можем перейти к обзору всего того хозяйства, которое имеется в области квантовых вычислений на текущий момент. Если кто-то считает, что алгоритмом факторизации Шора всё и ограничивается, то это далеко не так.

В первом приближении Vagrant — это такой CLI для VirtualBox. То есть, утилита, которая говорит «создать виртуалку», «запустить виртуалку» и так далее. На самом деле, Vagrant представляет собой нечто куда большее. В частности, помимо VirtualBox есть немало других так называемых провайдеров — VMWare, Amazon EC2, LXC и libvirt.

Сегодня я хотел бы показать один интересный трюк из области квантовых вычислений, который может иметь многочисленные последствия в применении к теории сложности вычислений. Все мы помним про алгоритм Гровера, который даёт хоть и не сверхполиномиальное ускорение для решения задачи неструктурированного поиска, но всё же является более эффективным по сравнению с классическим алгоритмом поиска грубой силы. Собственно, вдумчивый читатель уже должен был всё понять :)

Когда я начинал работать с Amazon Web Services (AWS), самой большой проблемой для меня было не запутаться во всех этих EC2, S3, RDS, SQS и прочих странных непонятных названиях. В данной заметке вы найдете краткий перечень основных терминов такого рода. Заметка предназначена для новичков и предположительно должна упростить начало работы с облаком Амазона.

Бывает, натыкаешься на сайт с интересным шаблоном. Смотришь HTML, и оказывается, что сайт работает на WordPress, а следовательно определить название шаблона несложно. Или приходит тебе очередная идея для сайта, начинаешь подбирать домен, искать шаблон. На идею в итоге забываешь, а шаблон-то хороший нашелся, еще может пригодиться! Таким вот образом я какое-то время собирал список тем для WordPress, которые мне нравятся, и наконец-то решил этим списком поделиться.