«Я не большой специалист по компьютерной истории, но меня всегда интересовало, есть ли какая-то весомая причина, по которой мир компьютеров сегодня выглядит именно так, или это, по большому счёту, просто историческая случайность»
Почему в байте именно 8 бит?
Всем привет! Меня зовут Михаил, и я актуализирую базы клиентов beeline cloud. Сложность тут в том, что наша компания использует множество различных систем как собственной, так и сторонней разработки. А у каждого сервиса своя база данных. Когда появилась необходимость собрать всё это воедино, началось самое интересное.
Оказалось, в разных местах один и тот же клиент может называться по-разному: где-то с опечатками, где-то заглавными буквами, а где-то может быть псевдоним вместо официального названия из ЕГРЮЛ. Чтобы привести всё к единому виду, мы решили собрать всех клиентов вместе и организовать полнотекстовый поиск по «эталонной» базе. Так любой сервис может узнать актуальные данные по клиенту даже с неточным запросом.
Теме поиска посвящено множество статей и даже отдельный хаб. Но мы хотели реализовать поиск здесь и сейчас, поэтому вместо Elasticsearch или Sphinx организовали полнотекстовый поиск средствами PostgreSQL через SQLAlchemy, о чём я подробно рассказал в своей статье. Если хотите полноценно погрузиться в тему, посмотрите ниже — собрал полезное с Хабра из моего «Избранного».
— Как мы внедряли полнотекстовый поиск
Автор делится опытом реализации поиска. Сравнивает разные технологии и даёт общее представление о проблематике. В комментариях — активный дискус, что лучше: сторонний сервис или поиск напрямую в базе.
— PostgreSQL Antipatterns: сказ об итеративной доработке поиска по названию, или «Оптимизация туда и обратно»
Хороший разбор того, как работает нечёткий поиск в Postgres и почему это может быть удобнее, чем сторонний поисковик.
— Ищем имена с опечатками в PostgreSQL
И ещё один пример.
— Готовим полнотекстовый поиск в Postgres. Часть 1 и часть 2
Подробная статья о том, как писать запросы и строить индексы на чистом SQL. Много внимания уделено оптимизации и выборе нужного индекса. Материал оказался очень полезным для реализации FTS в нашем проекте.
— Индексы в PostgreSQL — 7
Очень глубокий анализ работы индексов в PostgreSQL. Будет полезно для общего развития. В этой части разбирается работа индекса GIN, который используется также для индексирования pg_trgm.
Если интересуетесь темой, как и я, подписывайтесь на наш блог. Ещё будем рассказывать об IaaS, Private Platform, VDI, DRaaS, BaaS, S3-хранилище, colocation, DBaaS, Kubernetes, Cloud NGFW, SSL VPN, Secure Email Gateway, MFA, WAF, защите от DDoS, Cloud 152 и многом другом.
«Сегодня у меня есть особенная история, которую хотел бы поделиться с вами. Я являюсь одним из разработчиков проекта Meshtastic, и сегодня я обнаружил, что российская госкорпорация Ростех представила уникальную разработку — mesh-терминал, который выглядит удивительно знакомо для любого энтузиаста, использующего Meshtastic»
«Ростех» разработал «независимую сеть передачи данных для беспилотников»
Искусство «Мераки»: как привить человеку желание работать
Если вы сидите в социальных сетях, то со временем можете заметить, что там есть совершенно безумные люди. И речь не о теориях заговора или тех, кто пытается переспорить собеседника в Интернете. Есть гораздо более странный вид сумасшедших. Это те, кто во время отпуска постит: «Не могу дождаться, когда вернусь на работу». Или пишет: «Я работаю не ради денег, мне просто это доставляет удовольствие».
Что это, попытки выслужиться перед боссом? Тот самый появившийся недавно новый термин токсичная позитивность? Расстройство психики? Невозможно же «любить» свою работу, правильно? Современное общество учит нас, что нужно внимательно поддерживать баланс между трудом и личной жизнью, а чуть что не получится — выгорать. Любой, кто наслаждается работой больше, чем своим свободным временем, немного неадекватен. Так?
На самом деле, действительно есть категория людей, для которых работа является страстью. Им нравится приходить и браться за задачу, они получают удовольствие от проблем, которые каждый день доставляет им труд. Эти люди сделали из работы своё личное призвание. И у греков с древних времён для этого есть специальное слово: мераки (μεράκι).
Подводные камни С++: решаем загадки неопределённого поведения
Изучение и понимание неопределённого поведения — важный шаг для разработчика C++, поскольку undefined behavior бывает источником серьёзных ошибок и проблем в программах. UB может проявляться в разных аспектах языка, включая операции с памятью, многопоточность, арифметические вычисления, работу с указателями и так далее.
Погрузимся в мир неопределённого поведения в C++ и рассмотрим некоторые примеры ситуаций, в которых оно может возникать
«Представляю вашему вниманию мою конструкцию такого экстремально нишевого убер-гиковского гаджета, как портативный аппаратный проигрыватель чиптюновой музыки для звукового чипа AY-3-8910. В этой статье вы получите краткую историческую справку об истории компьютерной музыки, узнаете о довольно занимательном факте существовании класса подобных устройств, а также кому и для чего таковые могли понадобиться»
Портативный аппаратный проигрыватель музыки для AY-3-8910 — hway
Nature: создан моющийся HEPA фотокаталитический фильтр со сроком службы до 20 лет
Исследователи Samsung разработали фильтр для очистки воздуха от пыли (PM) и летучих органических соединений (VOC) со сроком службы 20 лет, убирающий 95% PM и 82% VOC за проход, и моющийся при этом обычной водой почти до показателей первоначальной эффективности.
Чтобы вы понимали, сейчас чаще всего используют разные фильтры для PM и VOC. Оба этих фильтра одноразовые со сроком службы порядка полугода. Именно так и выглядит прорыв.
Космическому запуску — космический квиз!
27 июня в 14:34 по московскому времени компания RUVDS запустила в космос свой орбитальный сервер — пикоспутник размером 5×5×10 см, на который возложила немалые надежды и который будет решать ряд задач. В честь этого события ребята решили устроить тематический квиз с классными призами.
Да пребудет с тобой Сила, username!
«Программирование текстовых редакторов может быть очень интересной и сложной задачей. Типы задач, которые должны решать текстовые редакторы, варьируются от тривиальных до невероятно трудных. Недавно я занимался переработкой внутренних структур данных редактора, над которым я работаю. В частности, самой фундаментальной для любого текстового редактора структуры данных: текста»
Выбор структур данных для самописного текстового редактора
Странная история подростков, создавших ботнет Mirai
Студенты-первокурсники колледжа вполне обоснованно могут быть раздражены тем, что им не удаётся выбрать популярные факультативные дисциплины. Но обычно они лишь ворчат. Парас Джа стал исключением. Разгневанный тем, что старшекурсникам отдаётся приоритет при выборе курса computer science в Ратгерского университета, Парас решил обвалить веб-сайт регистрации, чтобы записаться не смог никто.