Сегодня существует великое множество VoIP решений — вспомним хотя бы Skype, Hangouts, TeamSpeak. Большая проблема с ними заключается в том, что решения эти закрыты и часто предоставляются исключительно в виде SaaS. Сама по себе закрытость исходного кода не обязательно означает, что продукт плохой. Многие закрытые продукты я использую каждый день. Но при наличии достойной открытой альтернативы я склонен отдавать предпочтение именно ей. Поэтому сегодня мы познакомимся с совершенно замечательным открытым приложением для голосовых звонков Mumble.

Рассмотрим типичную ситуацию — приходит пользователь и говорит «я делаю в приложении то-то и то-то и у меня все сильно тормозит». Как понять, в чем проблема, и исправить ее? Вот об этом мы и поговорим в данной заметке. Приведенный список методов не претендует на полноту, однако это то, что в настоящее время я чаще всего использую на практике. Несмотря на то, что пишу я сейчас в основном на C, описанные методы будут также применимы в проектах, использующих С++, и, возможно, другие языки программирования.

Библиотека cURL, написанная на языке C, реализует ряд сетевых протоколов, включая HTTP, FTP, SMTP, POP3, Telnet, и другие. Если вам нужно поговорить о чем-то с сервером, где-то в 90% случаев вы можете сделать это, используя cURL. В рамках сей заметки мы разберемся, как при помощи libcurl написать не самый тривиальный HTTP-клиент.

Как известно, во FreeBSD можно использовать пакеты как бинарные, так и собранные из исходных кодов при помощи портов. Устройство портов за последнее время ничем не изменилось. А вот на смену утилитам для управления бинарными пакетами pkg_add, pkg_info и прочим pkg_* в последних версиях FreeBSD пришел новый пакетный менеджер pkg (также известный как pkgng). Данная небольшая заметка рассказывает о том, как им пользоваться.

Многие скажут, что сегодня я выступаю в роли Капитана Очевидности, и будут совершенно правы. Тем не менее, в разных мейлинг листах и чятиках то и дело появляются люди с вопросами типа «посоветуйте мне идеальную базу данных, а то у меня SQL тормозит и вообще все говорят, что MongoDB сейчас в моде». C 2007-го года я успел поработать со многими СУБД, не исключая ряда NoSQL решений, и по данному вопросу я имею сказать следующее.

СУБД является важнейшим компонентом многих современных систем. Поэтому совершенно естественным является желание собрать эту СУБД из исходников самостоятельно с флагами -march=native -O3, не говоря уже о куда более тонкой настойке при помощи скрипта configure. В этом случае вы также можете подобрать компилятор, который лучше оптимизирует конкретную СУБД под ваши конкретные задачи. Не исключено также, что готового бинарного пакета нужной вам версии приложения еще попросту не существует. Наконец, умение самостоятельно собирать и настраивать приложение дает куда более лучшее понимание его работы, чем простое запоминание каталогов с конфигами и логами. В силу названных причин, давайте попробуем разобраться, как собрать из исходников PostgreSQL, а затем настроить его для полноценной работы.

В этом выпуске: где можно найти бесплатную техническую литературу, некоторые интересные компиляторы и интерпретаторы Python, как нарисовать красивую диаграмму для грамматики в Bison, роемся в кроличьих кишках, познаем суть повторного использования кода, и не только. Предыдущие выпуски: январь 2016, декабрь 2015, ноябрь 2015, октябрь 2015.

Прошло три года с тех пор, как я попрощался с FreeBSD, по крайней мере, как с десктопной операционной системой. Сомнений в том, что FreeBSD по большому счету является неплохой серверной ОС, у меня нет. В частности, веб-сервер, отдающий страницы этого блога, работал и продолжает работать на FreeBSD. А вот о том, изменилось ли что-то в мире FreeBSD в отношении десктопов, достоверных сведений нет. Так что, я решил разобраться в текущем состоянии дел самостоятельно, попробовав установить FreeBSD на ноутбук Toshiba Portege Z930-DKS, который все равно сейчас пылится у меня без дела.

Вот некоторые «специалисты» авторитетно заявляют, что самая большая проблема в Linux — это большое количество дистрибутивов, которые прям так сильно отличаются пакетными менеджерами, путями до конфигов и прочим. На самом деле, в 99% случаев используется либо что-то на базе Debian, либо на базе RedHat. Всякие Arch и Gentoo, конечно, тоже существуют, но в основном они существуют на десктопах энтузиастов, а не в продакшене. И сегодня мы с вами убедимся, что отличий CentOS от Debian, с которым мы уже неплохо знакомы, не так уж много. По крайней мере, в вопросах, касающихся управления пакетами.

Пришло время научиться работать с Linux Containers, более известными под названием LXC. Далее мы будем рассматривать LXC в контексте Debian и Ubuntu, но написанное во многом будет применимо и для других дистрибутивов Linux. Мы коснемся не только основ использования LXC, но и узнаем, как настроить bridged сеть, ограничить количество ресурсов, используемых контейнером, и даже осилим unprivileged containers.