В продолжение темы о полнотекстовом поиске в PostgreSQL хотелось бы также рассказать о расширении под названием pg_trgm. Данное расширение предназначено для поиска текстовых документов по триграммам, то есть, всем подпоследовательностям из трех букв, входящих в индексируемый текст. На практике такой поиск интересен, помимо прочего, тем, что позволяет находить документы по запросам, содержащим опечатки.

Регулярные выражения могут быть чрезвычайно полезны при решении множества задач. Пару лет назад в этом блоге рассматривались регулярные выражения C++11 (std::regex). Однако тогда они показали себя не очень хорошо (стоит отметить, что ситуация уже могла измениться к лучшему), да и в чистом C этими регулярками не воспользуешься. Поэтому в данном посте мы познакомимся с более консервативным, зато проверенным временем и гарантированно работающим подходом, заключающимся в использовании библиотеки libpcre.

Сегодня мне хотелось бы рассказать о лабораторном блоке питания, набор для сборки которого продается на AliExpress. Штука эта очень удобная, хотя бы по той причине, что избавляет от необходимости держать на столе множество блоков питания на разное напряжение и с разными разъемами для разных устройств.

Полнотекстовый поиск (Full-Text Search, FTS) это когда вы ищите какие-то документы, скажем, товары в интернет-магазине или статьи в блоге, по текстовому запросу, как в Google. Немногие знают, что в PostgreSQL из коробки есть полнотекстовый поиск, притом, в отличие от некоторых других РСУБД, очень даже неплохой. Далее в этой заметке будет рассказано, как им пользоваться.

BEC (Battery Elimination Circuit) — это всего лишь используемое в авиамоделизме хитровыдуманное название для регуляторов напряжения. Типично в квадрокоптерах используются 3S или 4S батареи, имеющие напряжение 11.1 В или 14.8 В соответственно, плюс-минус в зависимости от уровня заряда. Поскольку полетный контроллер и приемник питаются от 5 В, возникает потребность в понижающем регуляторе напряжения.

Некоторое время назад мы познакомились с Autotools. Несмотря на то, что Autotools до сих пор используется во многих известных проектах с открытым исходным кодом, инструмент этот трудно назвать особо удобным. Кроме того, нормально работает он только в *nix системах, а в каком-нибудь Windows пользоваться Autotools, скажем так, весьма непросто. В общем, Autotools — это легаси, и нормальные программисты в наше время пытаются использовать CMake или, например, SCons. В этой заметке мы познакомимся с CMake.

После успешных экспериментов с радиоуправляемым гусеничным роботом и робо-рукой MeArm мне захотелось собрать что-то посложнее. Например, что-то летающее. Оказалось, что авиамоделизм — это просто огромное направление. Собирают и самолеты, и вертолеты, и мультикоптеры. Если взять даже одни только мультикоптеры, то их десяток разных видов помножить на разные размеры и решаемые задачи (гонки, фотосъемка, полеты по GPS, …). Было решено начать с классического квадрокоптера среднего размера с возможностью дальнейшего апгрейда. В общем, чтобы можно было со всем немного поиграться.

Генераторы статических сайтов, такие, как Octopress, Jekyll или Hakyll, не даром пользуются большой популярностью. Поскольку сайт получается статическим, для работы ему не нужно ничего, кроме какого-нибудь Nginx. Естественно, сайты получаются очень быстрыми, не требовательными к ресурсам, а также безопасными, так как никаких админок и прочего на них просто физически нет. Многим нравятся языки разметки типа Markdown, и генераторы статических сайтов используют именно их. В общем, звучит как что-то, что мне хотелось бы попробовать. А поскольку из скриптовых языков я предпочитаю Python, выбор пал на написанный на этом языке генератор статический сайтов Pelican.

Если вы пишете код на языке C или C++, поиск и устранение ошибок работы с памятью, таких, как утечки, выход за границы массива или обращение к неинициализированной памяти, могут доставить немало хлопот. Существует по крайней мере два инструмента для решения этих проблем — Valgrind (не путать с Vagrant!) и Clang’овский MemorySanitizer. Последний работает исключительно под Linux и показал себя несколько сырым и не слишком гибким инструментом, поэтому поговорим о Valgrind. Он довольно гибок и работает везде. Кроме того, в отличие от MemorySanitizer, Valgrind может находить неинициализированные данные с точностью до одного бита. Из недостатков Valgrind стоит отметить сравнительно низкую скорость работы.

RepRap — это проект открытого и дешевого DIY 3D-принтера. Существует множество модификаций RepRap. По моим наблюдениям, модификация Prusa i3 является наиболее популярной. Коль скоро речь идет об открытом проекте, вы можете изготовить и купить все необходимые детали самостоятельно, или же купить готовый набор для сборки. Как вы можете знать из предыдущий постов, я предпочитаю приобретать готовые наборы.