Недавно исполнилось ровно шесть лет со дня публикации в этом блоге самого первого поста — Моя шпаргалка по работе в Vim. По сложившейся традиции, настало время подвести итоги еще одного ушедшего года. Аналогичные посты за предыдущие годы можно найти здесь: пять лет, четыре года, три года, два года, один год.

Сегодня снова тематический выпуск «находок в сети». В этот раз я решил разгрести накопившиеся ссылки, связанные со всякой низкоуровщиной, а следовательно и с C/C++. Предыдущие выпуски: август 2015, июль 2015, июнь 2015, май 2015.

В последней заметке, посвященной OpenGL, мы нарисовали вращающийся разноцветный куб, а также научились управлять камерой при помощи мыши и клавиатуры. Сегодня же мы наконец-то научимся работать с текстурами. Теоретическая часть касательно текстур ранее уже объяснялась в заметке Учимся работать с текстурами в Haskell’евом OpenGL. Поэтому в рамках этой заметки предполагается, что с теорией читатель уже знаком, и основной акцент будет сделан на практике.

Thrift — это такая штука для сериализации данных. Вы описываете схему данных в специальном формате. Из этого описания генерируются классы. Эти классы легко сериализуются и десериализуются. При этом схему можно изменять (например, добавлять-удалять поля в классах) так, что данные, сериализованные по старой схеме, будут успешно десериализованы по новой. Одну и ту же схему можно использовать в проектах на разных языках, и они будут успешно друг с другом взаимодействовать. Плюс к этому еще накручена возможность объявлять исключения и генерировать код для RPC. В этой заметке мы разберемся, как работать с Thrift на языке Scala.

Кроссплатформенность и разноцветные треугольники, это, конечно, здорово, но пока что не производит особо большого впечатления. Сегодня мы напишем демку поинтереснее. А именно, вращающийся разноцветный куб. Притом, на куб этот можно будет смотреть под разными углами и с разного расстояния, перемещая камеру при помощи клавиатуры и мыши. И плюс к этому еще кое-что.

Akka HTTP — это такая штука для написания своих веб-сервисов и хождения по HTTP в чужие, являющаяся преемником популярного веб-фреймворка Spray. Сегодня с помощью Akka HTTP мы напишем пару простых примеров клиентского и серверного кода. Поскольку писать телефонные книги уже как-то поднадоело (раз, два), примеры эти будут работать с сервисом plivo.com. Данный сервис позволяет звонить на телефоны, слать SMS и делать прочие подобного рода вещи.

В этой заметке я намерен поделиться с вами своим субъективным мнением касательно Amazon Web Services, которое сформировалось у меня после года использования этого облака на практике. Поскольку есть основания полагать, что те же рассуждения применимы не только к AWS, но и к Azure с Google Cloud, я рискну экстраполировать свои мысли также и на другие облака.

В прошлый раз мы сделали заготовку кроссплатформенного проекта на C++, в котором используется OpenGL. Мы определились с тем, как будем управлять зависимостями, какую систему сборки и IDE будем использовать. Мы даже научились рисовать окошки при помощи GLFW и перемножать матрички, используя GLM. Как оказалось, в этом нет большой науки. Сегодня же мы поговорим о самом OpenGL, так как, напомню, в предыдущем примере мы использовали устаревшие процедуры glBegin, glEnd и подобные, и в наши дни так делать не нужно.

Когда в системе что-то ломается или начинает вести себя необычным образом, пользователи дружно страдают. Следовательно, в этом случае нужно как можно скорее уведомить кого-нибудь о поломке. А еще лучше было бы предвидеть возникновение проблем заранее. В данной заметке будет описана установка и настройка Nagios, который позволяет вполне успешно решить такие задачи.

Сегодня мы рассмотрим простой пример организации pubsub поверх RabbitMQ. Как уже многократно отмечалось в предыдущих заметках, если вашим бэкендам нужно между собой как-то общаться, желательно взять готовую шину, а не писать по сути свою с нуля на каком-нибудь Akka Cluster. Если только, конечно, вы не пишите свой собственный RabbitMQ или там Spark.