Обновить
0
@shoomaread⁠-⁠only

Пользователь

Отправить сообщение

journald вместо syslog

Время на прочтение7 мин
Охват и читатели45K

Использование journald как замена syslog'у для приложений с большим числом логов.Давным-давно, когда были дебаты о том, стоит ли принимать в качестве init-системы systemd (с одной стороны удобно, с другой стороны, довольно токсичный автор...), вместе с systemd приехал и journald. В целом, он ощущался как аппендикс к systemd, и вместе с ForwardToSyslog, он мирно жил на серверах. Дефолтная конфигурация в целом устраивала, а всё нужное можно было по-старинке накрутить в syslog'е.

В одном из проектов у нас образовалась потребность в обработке большого числа логов, и мы решили попробовать journald вместо (r)syslog(d|-ng). Оказалось, что:

journald решает все наши проблемы

документации по нему подозрительно мало (особенно, в сравнении с systemd)

при том, что его поведение более-менее разумно, интуиция о том, как он работает, практически отсутствует и её надо набирать.

Read more

О неизменном: история 9 места Russian AI Cup 2019

Время на прочтение14 мин
Охват и читатели10K

Меня зовут Андрей Рыбалка, я участвую в Russian AI Cup под ником lama и я снова расскажу вам, как не выиграть макбук. Благо, я в этом человек опытный — вот этими вот руками не выиграл уже целых 7 штук.


Итак, задачей этого года был платформер/2D-шутер, для которого нужно было написать бота. Выглядела игра вот так:



Бот выглядел так:



Если вам интересно, как картинка #2 играла в картинку #1, прошу под кат.

Секрет эффективности — качественный код, а не эффективный менеджер

Время на прочтение4 мин
Охват и читатели7.7K
Одна из самых перегруженных идиотами специальностей — менеджеры, управляющие программистами. Не все, а те, которые сами программистами отродясь не были. Те, которые думают, что можно «повышать» эффективность (или повышать «эффективность»?) методами из книжек. Даже не удосужившись эти самые книжки прочитать — видосик ведь есть цыганский.

Те, которые никогда не писали код. Те, для которых снимают голливудские фильмы про программистов — ну, те, где электронную почту командной строкой смотрят. Те, которым не интересно ничего, кроме показателей, сроков и собственной зарплаты.

Те, которых большинство.

Но идиоты они по другой причине. Они хотят эффективности, или хотя бы результативности (давай, менеджер, гугли, в чем разница), не разбираясь ни в том, ни в другом. Вообще не понимая сути, процесса получения результата, потерь, происходящих в этом процессе, затрат на разработку. Короче, работая с программистом, как с черным ящиком.

Понабежали в управление программистами ровно по одной причине: тут хайп, деньги, рынок и куча таких же идиотов. Есть, где затеряться.

Был бы хайп в механосборочном производстве — побежали бы туда. Универсалы хреновы. Не удивлюсь, что чувак, продающий в декабре ёлки в нашем квартале, это ИТ-менеджер в отпуске.

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

Ну всё, хватит про менеджеров. Теперь по делу, для программистов. Как повысить эффективность разработки, научившись писать качественный код.
Читать дальше →

Давайте решим несколько денег

Время на прочтение4 мин
Охват и читатели13K
Мысленно оторвитесь от привычного взгляда на работу – свою и компании. Я предлагаю вам подумать о пути денег в компании. Я, вы, ваши соседи, ваш начальник – все мы стоим на пути денег.

Мы привыкли видеть деньги в виде задач. Вы, возможно, и не думаете о них, как о деньгах.

Если вы – программист, то видите требования, используемые технологии, сложность клиента, оценку в часах или попугаях.

Если вы – менеджер, то видите в задаче кусок выполненного плана, геморрой с выбором аналитика и исполнителя, прикидываете свой процент с выручки.

Но вы не смотрите на задачу, как на деньги. А сейчас попробуйте. Вот прям так: задача – это деньги. Представьте, что к вам в офис пришел клиент, и принес пачку денег – хочет их вам отдать. Не просто так – он же не дурачок, это нормальный, адекватный человек с пачкой денег. Каков будет путь этого человека и его денег?
Читать дальше →

RabbitMQ против Kafka: два разных подхода к обмену сообщениями

Время на прочтение18 мин
Охват и читатели416K

В прошлых двух статьях мы рассказывали об IIoT — индустриальном интернете вещей — строили архитектуру, чтобы принимать данные от сенсоров, паяли сами сенсоры. Краеугольным камнем архитектур IIoT да и вообще любых архитектур работающих с BigData является потоковая обработка данных. В ее основе лежит концепция передачи сообщений и очередей. Стандартом работы с рассылкой сообщений сейчас стала Apache Kafka. Однако, для того, чтобы разобраться в ее преимуществах (и понять ее недостатки) было бы хорошо разобраться в основах работы систем очередей в целом, механизмах их работы, шаблонах использования и основной функциональности.



Мы нашли отличную серию статей, которая сравнивает функциональность Apache Kafka и другого (незаслуженно игнорируемого) гиганта среди систем очередей — RabbitMQ. Эту серию статей мы перевели, снабдили своими комментариями и дополнили. Хотя серия и написана в декабре 2017 года, мир систем обмена сообщениями (и особенно Apache Kafka) меняется так быстро, что уже к лету 2018-го года некоторые вещи изменились.

Читать дальше →

PG12: Дюжина патчей от Postgres Professional

Время на прочтение7 мин
Охват и читатели6.5K
Приятно видеть знакомые фамилии в списке Acknowledgments официального релиза PostgreSQL 12. Мы решили свести вместе попавшие в релиз новшества и некоторые багфиксы, над которыми трудились наши разработчики.

1. Поддержка JSONPath


Release Notes это звучит как Add support for the SQL/JSON path language (Nikita Glukhov, Teodor Sigaev, Alexander Korotkov, Oleg Bartunov, Liudmila Mantrova)

Сам этот патч, возможности JSONPath и история вопроса обсуждались в деталях в отдельной статье здесь на хабре. JSONPath — серьезное достижение Postgres Professional и одно из главных новшеств PostgreSQL 12 вообще.

В 2014 году А.Коротковым, О.Бартуновым и Ф.Сигаевым было разработано расширение jsquery, вошедшее в результате в версию Postgres Pro Standard 9.5 (и в более поздние версии Standard и Enterprise). Оно дает дополнительные, очень широкие возможности для работы с json(b).

Когда появился стандарт SQL:2016, оказалось, что его семантика не так уж сильно отличается от нашей в расширении jsquery. Не исключено, что авторы стандарта даже поглядывали на jsquery, изобретая JSONPath. Нашей команде пришлось реализовывать немного по-другому то, что у нас уже было и, конечно, много нового тоже.

Хотя специальный патч с функциями до сих пор не закоммичен, в патче JSONPath уже есть ключевые функции для работы с JSON(B), например:

jsonb_path_query('{"a": [1,2,3,4,5]}', '$.a[*] ? (@ > 2)') возвращает 3, 4, 5
jsonb_path_query('{"a": [1,2,3,4,5]}', '$.a[*] ? (@ > 5)') возвращает 0 записей

Кроме того, были оптимизированы и некоторые функции, которые уже работали с JSON раньше. Этим успешно занимался Никита Глухов.

Например, оператор #>>, соответствующий функциям jsonb_each_text() и jsonb_array_elements_text(), раньше достаточно быстро преобразовывал JsonbValue в text, но работал неторопливо с другими типами. Сейчас всё работает быстро.
Читать дальше →

Все, что вы хотели знать об обратном маятнике

Время на прочтение5 мин
Охват и читатели44K
Статья служит шпаргалкой для тех, кто хочет сделать свой обратный маятник. Здесь описаны проблемы, из-за которых я все переделывал несколько раз, приведен краткий обзор теории, необходимый для понимания, как стабилизировать систему.

Почему топовые физики обожают теорию струн

Время на прочтение4 мин
Охват и читатели22K

Теория струн (суперструн, М-теория, F-теория) является на данный момент наиболее перспективным и по сути единственным кандидатом на теорию всего. Петлевая квантовая гравитация, спиновые сети и прочие «альтернативные теории» всерьез сейчас научным сообществом не рассматриваются.
Читать дальше →

Убил ли Linux коммерческий Unix?

Время на прочтение7 мин
Охват и читатели28K


Продажи коммерческого Unix падают, будто с обрыва. За этим драматическим спадом должно что-то стоять. Убил ли Linux своего предка, став прекрасной ему заменой, будто реализовав "Вторжение похитителей тел" в мире операционных систем?



Начало Unix


Первый выпуск Unix состоялся 50 лет назад, в 1969, в лабораториях Белла – принадлежащей AT&T компании, занимающейся исследованиями и разработками. С днём рождения, Unix. Правда, в то время он ещё назывался Unics, от UNIplexed Information and Computing Service. Никто не может вспомнить, когда cs сократилось до x. Написали его на компьютере DEC PDP/7 на DEC-ассемблере.

В лабораториях существовала необходимость в печатном наборе заявок на патенты. Команда разработки Unix восприняла это как возможность заграбастать себе новый мощный компьютер DEC PDP/11/20, поэтому они быстренько набросали программу для набора текстов, выдававшую заявки на патенты. После этого в компании популярность Unix постоянно росла.
Читать дальше →

Comcast лоббирует запрет на шифрование DNS

Время на прочтение4 мин
Охват и читатели21K

Иллюстрация из статьи zhovner «Google Public DNS тихо включил поддержку DNS over TLS»

Mozilla и Google продолжают продвигать протокол шифрования DoH. Его уже внедрили в ранние альфы Firefox и Chrome. Шифрование DNS-запросов поддерживают Google Public DNS, Cloudflare DNS и другие резолверы.

Шифрование DNS-трафика с невозможностью слежки «человеком в середине», составлять и продавать профили пользователей — сильный удар по интернет-провайдерам, которые занимаются всем перечисленным. В отдельных странах это не понравится правоохранительным органам, которые затрудняют гражданам доступ к определённым ресурсам в интернете (например, в России заблокированы «Луркоморье», «Рутрекер» и 289 955 других ресурсов). Протокол DoH практически сводит на нет усилия властей.

Своё недовольство уже высказали провайдеры Великобритании, которые назвали Mozilla «главным злодеем интернета» якобы за подрыв системы блокировки сайтов с детской порнографией. На этой неделе стало известно о закулисной борьбе в коридорах законодательной власти США, где компании могут лоббировать свои интересы и легально «подкупать» депутатов.
Читать дальше →

Лес не сдается технологиям поиска, но инженеры наносят ответный удар

Время на прочтение6 мин
Охват и читатели20K

Фото: «Лиза Алерт».

Если в лесу пропал человек, лучший способ его найти — отправить тренированных поисковиков на прочесывание. Ни одна технология поиска пока не может заменить людей. В начале лета мы писали про несколько команд, которые в рамках конкурса «Одиссея» разрабатывали решения для дикой природы. Многие инженеры полагались на беспилотники с камерами и компьютерное зрение, но столкнулись с не очевидными проблемами — плохая связь, низкая скорость обработки и передачи огромных данных, плотные кроны деревьев и многое другое.

В итоге ни одно решение с компьютерным зрением не прошло в финал конкурса. Но технические эксперты говорили — если бы команды объединили усилия, вместе собрали датасет и обучили на нем алгоритмы, у компьютерного зрения мог быть шанс.

На прошлой неделе, 9 августа поисковый отряд «Лиза Алерт» вместе с «Билайном» объявили о запуске инструмента, который будет искать людей на фотографиях с беспилотников. Мы сходили на пресс-конференцию, приуроченную к запуску, и узнали, как он работает.

Обыскать 314 км² за 10 часов — финальное сражение инженеров-поисковиков против леса

Время на прочтение15 мин
Охват и читатели39K


Представьте задачу — в лесу пропали два человека. Один из них еще подвижен, другой лежит на месте и не может пошевелиться. Известна точка, где их видели последний раз. Радиус поиска вокруг нее — 10 километров. Получается территория площадью 314 км2. У вас есть десять часов на поиск с помощью новейших технологий.

Услышав условие в первый раз, я подумал: «пфф, подержите мое пиво». Но потом увидел, как передовые решения спотыкаются обо все, что возможно и невозможно учесть. Летом я писал, как около 20 инженерных команд пытались решить задачу в десятки раз проще, но делали это на пределе возможностей, и только четыре команды справились. Лес оказался территорией скрытых подвохов, где современные технологии бессильны.

Тогда это был лишь полуфинал конкурса «Одиссея», организованного благотворительным фондом «Система» — цель которого придумать, как модернизировать поиск пропавших в дикой природе людей. В начале октября в Вологодской области прошел его финал. Четыре команды столкнулись с той самой задачей. Я отправился на место, чтобы понаблюдать за одним из конкурсных дней. И в этот раз ехал с мыслью, что задача — нерешаемая. Но я никак не ждал увидеть «Настоящий детектив» для любителей DIY-электроники.

Как проводить Code Review по версии Google

Время на прочтение5 мин
Охват и читатели145K
Вопросы код-ревью меня интересуют очень давно. Много раз возникали те или иные проблемы то с качеством кода, то с климатом в коллективе. И действительно, code review — это если не единственное, то одно из самых главных мест для возникновения конфликтов в коллективе разработчиков.

И вот недавно при подготовке к очередному выпуску подкаста "Цинковый прод" я узнаю, что Google опубликовал свод правил по проведению Code Review, битком набитый ценными мыслями. Весь материал довольно объемный и не влезет в одну статью, поэтому я постараюсь выделить наиболее интересные (мне) мысли.


Итак, поехали

Читать дальше →

Cockpit – упрощение типичных административных задач в ОС Linux через удобный веб-интерфейс

Время на прочтение4 мин
Охват и читатели117K
В этой статье я расскажу про возможности инструмента Cockpit. Cockpit создан с целью облегчения администрирования ОС Linux. Если говорить кратко, то он позволяет выполнять наиболее типичные задачи администратора Linux через приятный веб-интерфейс. Возможности Cockpit: установка и проверка обновление для системы и включение автообновления (процесс патчинга), управление пользователями (создание\удаление\смена паролей\блокировка\выдача прав суперпользователя), управление дисками (создание\редактирование lvm, создание\монтирования файловых систем), настройка сети (team, bonding, ip managing и т. д.), управление systemd-юнитами\таймерами.


Читать дальше →

[Не] используйте CDN

Время на прочтение10 мин
Охват и читатели25K
Практически в любой статье или инструменте для оптимизации скорости сайтов есть скромный пункт «используйте CDN». Вообще, CDN – это content delivery network или сеть доставки контента. Мы в компании «Метод Лаб» часто встречаемся с вопросами клиентов по этой теме, некоторые самостоятельно включают себе CDN. Цель этой статьи разобраться, что может дать CDN с точки зрения скорости загрузки сайта, какие проблемы могут возникать и в каких случаях использование CDN оправдано.

image

Обведённые на картинке задержки вызваны использованием CDN.
Читать дальше →

Как я проработала 3 месяца в Я.Маркете и уволилась

Время на прочтение6 мин
Охват и читатели319K

Первая попытка


Все началось с того, что я люблю ходить по конференциям и частенько хожу на них в Яндекс, Mail.ru и другие крупные компании. Однажды мне написал HR из Яндекса и попросила сделать тестовое на стажера фронтенд-разработчика.

Я его сделала, вот оно. По условию оно должно было работать на айфонах и андроидах, поэтому я проверила его в Browser Stack и дописала пару префиксов и css-стилей.

Через какое-то время поняла, что не хочу быть стажером, имея несколько лет опыта за плечами и зааплаилась в Я.Маркет через форму на их сайте.

Мне позвонила HR и предложила пройти скайп-интервью с лайвкодингом. Перед собеседованием я повторила структуры данных, сложность алгоритмов, сортировки. Тогда я еще не знала, что этого недостаточно.

На интервью я не смогла решить алгоритмические задачки, не знала внутренности JS и меня сбрили.

Это задело мою самооценку и весь следующий год параллельно с работой я учила JS на глубоком уровне и решала задачки на codewars. Здесь можно оценить мой прогресс.
Читать дальше →

«Где та молодая шпана, что сотрет нас с лица земли?»

Время на прочтение7 мин
Охват и читатели30K
Экзистенциальным вопросом, вынесенными в заголовок в формулировке Гребенщикова, я задался после очередного раунда обсуждения в одном из сообществ на предмет того, нужны ли начинающему web backend девелоперу знания SQL, или ORM все и так сделает. Ответ решил поискать немного шире, чем просто про ORM и SQL, и в принципе постараться систематизировать, кто те люди, которые сейчас идут на собеседования на младшие и средние разработческие позиции, какова их история и в каком мире они живут. В целом-то мнение у меня было, но оно сформировано личным опытом найма и явно скорректировано под локальный рынок. В общем, стало любопытно. Вот что удалось найти.
Читать дальше →

Я мотоцикл покупал, чтобы ездить, а не чтобы падать

Время на прочтение8 мин
Охват и читатели176K


Эта статья не совсем в формате Хабра, но, наблюдая какими темпами растет количество двухколесных на улицах столицы, в том числе и среди ИТ-шников, я всё же рискну — может это спасёт несколько жизней, что не так уж и плохо.

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

Нужно ли собирать NAS?

Время на прочтение28 мин
Охват и читатели179K

image


Как в блогах, так и в журналах есть множество статей о том, как собрать NAS своими руками.
И с первого взгляда кажется, что при наличии прямых рук, свой NAS по всем пунктам бьёт покупное решение.
"Фигак, фигак и в продакшн", — и вот уже быстро, дёшево и качественно реализованное хранилище радует вас высокой производительностью и надёжностью.

Читать дальше →

Карго-культ в разработке ПО

Время на прочтение4 мин
Охват и читатели16K
В последнее время вижу много примеров, как технические руководители проектов (aka CTO) следуют канонам Карго-культа при разработке и управлению проектами, вместо того, чтобы вводить сущности по мере их надобности, а сам процесс выстраивать исходя из текущих потребностей, доступных ресурсов и квалификации исполнителей. Мы поговорим о том, как выявить такого Карго-культиста и какие риски для проекта они несут.
Читать дальше →
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность