Pull to refresh
1
0
xRay @xRay

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

Send message

Как мы планировали повысить версию PHP за месяц, а потратили на это год

Level of difficultyEasy
Reading time14 min
Views23K

Как и множество больших сервисов, Яндекс Еда основана на микросервисной архитектуре. В общей сложности у нас чуть больше 200 микросервисов. Но есть один сервис, который совсем не микро – легаси-монолит.

Он написан на PHP 7.2 разработчиками разного уровня и в разное время. Мы подумали, что так больше нельзя, и решили навести порядок. В ходе разбирательств выяснилось, что версия языка, на котором всё написано, устарела и уже не поддерживается, что ведёт к рискам безопасности. Делать нечего — мы приняли решение обновиться до 8-й версии.

В этой статье я расскажу, чего стоило нам проапгрейдить монолит, сколько тестов мы сломали и как в этом проекте поучаствовали почти все PHP-разработчики Яндекс Еды. Это интересный и уникальный опыт, которым я хотел бы с вами поделиться. В конце дам несколько советов тем, кто тоже захочет ввязаться в подобную авантюру.

Читать далее
Total votes 92: ↑92 and ↓0+92
Comments55

Лучший regexp для Go. Benchmark c другими ЯП. Сравнение библиотек

Level of difficultyMedium
Reading time9 min
Views3.6K

"Не используйте регулярки - иначе вместо 1 проблемы, у вас их станет 2!" - как то так говорят знатоки... А что остается делать непослушным, желающим эффективный поиск по большому количеству шаблонов?

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

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

Читать далее
Total votes 14: ↑13 and ↓1+12
Comments8

PHP-Дайджест № 222/4 (26 апреля – 31 мая 2022)

Reading time5 min
Views7K

Доброго дня! Представляю вашему вниманию очередной дайджест новостей из мира PHP.

В этом выпуске: новые версии PHP, новости RFC, новости популярных фреймворков, обзор интересных статей и многое другое.

Читать далее
Total votes 24: ↑22 and ↓2+20
Comments7

Мелодия и золотое сечение

Level of difficultyEasy
Reading time5 min
Views5.8K

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

Читать далее
Total votes 11: ↑10 and ↓1+9
Comments8

Парсинг, хранение и отображение логов 3-х разных агентов доставки электронной почты. MTA Log Parser

Reading time3 min
Views3.9K

Эта моя первая коротенькая статейка на Хабре в попытке сделать проект, который делал для себя в целях самообразования и применения на работе, полезным кому-то еще. Можно было бы написать больше букв, но ввиду особенностей профессиональной деятельности, времени на это мягко говоря не очень много. Кто заинтересуется, всегда может подробности почерпнуть самостоятельно на гитхабе.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments9

Создаем блог на Django с опросами и тестами. Краткая инструкция. Часть 1

Reading time7 min
Views17K

Самый действенный способ изучить фреймворк — написать пет-проект. Например, свою социальную платформу на Django. Во время реализации можно попрактиковаться в работе с формами, представлениями, сигналами и SMTP.

В Proglib собрали небольшой шаблон, на базе которого можно создать свой блог на Django, а после — задеплоить на виртуальный сервер. Материал будет полезен новичкам, которые знакомы с базовыми концепциями фреймворка и хотят закрепить знания. Подробности под катом!
Читать дальше →
Total votes 52: ↑49 and ↓3+46
Comments7

Собираем логи веб-приложений в Kibana/Loki

Reading time7 min
Views7.6K

Привет, Хабр! Меня зовут Евгений Лабутин, я разработчик в МТС Digital. Расскажу вам о том, как мы на нашем проекте МТС Твой бизнес собираем логи с клиентских веб‑приложений. А еще обсудим вспомогательный микросервис логирования, который мы вывели в Open source, и поговорим о том, как устроено логирование в принципе.

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments13

Mysqldump в MySQL

Reading time7 min
Views15K

Привет! Предлагаем вашему вниманию перевод не новой, но способной оказаться полезной статьи. Автор делится полезными возможностями утилиты Mysqldump.

Читать далее
Total votes 15: ↑13 and ↓2+11
Comments4

Распределенный SQL: альтернатива шардированию баз данных

Level of difficultyHard
Reading time7 min
Views14K

Шардирование баз данных – это процесс разделения данных на меньшие части, называемые «шарды». Эта техника обычно используется, когда возникает потребность в масштабировании записей. В течение жизненного цикла успешного приложения способность сервера его базы обрабатывать операции записи рано или поздно достигает своего предела. Деление данных на несколько шардов – с размещением каждого на собственном сервере БД – уменьшает нагрузку на отдельные узлы, по сути, повышая записывающую способность базы данных в целом. Этот процесс и является шардингом.

Распределённый SQL представляет новый способ масштабирования реляционных баз данных с помощью полностью автоматизированной и прозрачной для приложений стратегии, подобной шардингу. Распределённые БД SQL изначально спроектированы под практически линейное масштабирование. В текущей статье вы познакомитесь с основами распределённого SQL и узнаете, как начать работу с этими базами данных.
Читать дальше →
Total votes 43: ↑40 and ↓3+37
Comments21

Сбор и анализ логов в Linux

Reading time8 min
Views32K

Журналирование событий, происходящих в системе является неотъемлемой частью функционала любого серьезного программного обеспечения. Операционная система или приложение должны в обязательном порядке рассказывать о своей жизни: регистрировать входы в систему, сбои, ошибки и другие значительные события.

В этой статье мы будем говорить о том, как устроено логирование событий в ОС Linux. В качестве примера будет рассматриваться Ubuntu Linux 22.04, однако в других дистрибутивах основные элементы будут сходными.   

Читать далее
Total votes 12: ↑10 and ↓2+8
Comments4

Догнать Jira за полгода… Российская Jira 2.0

Reading time7 min
Views14K

Atlassian (Jira, Confluence) ушёл из России. +‑ с июня 2022г. в 8 раз выросло количество обращений на импортозамещение этих сервисов в EvaTeam. Мы в EvaTeam полгода закрывали разрыв по функциональности с Jira и Confluence.

К декабрю 2022 закрыли разрыв (Осталось улучшить популярные плагины типа «structure») + сделали крутой импорт.

Основной болью на декабрь 2022г. оставался интерфейс (по словам клиентов). Он был немного другой, пользователи не хотели привыкать. Было принято стратегическое решение — сделать полный клон. Вариант интерфейса «Jira».

Ниже описание со скриншотами того, что удалось разработать за полгода. Российские разработчики сделали за полгода то, что разрабатывалось и внедрялось 20 лет (первый релиз Jira 2002 год).

Кратко, что будет в этой статье:

WorkFlow, GitHub, GitLab, Автоматизация, Миграция из Jira № 1, Гант, Отчеты, Дашборды, Time‑tracker, BQL, аналоги плагинов Tempo, Scriptrunner, draw.io, а также On‑Premise‑версия и т. д. в обновленной EvaProject и EvaWiki

Читать далее
Total votes 34: ↑27 and ↓7+20
Comments72

Как поместить весь мир в обычный ноутбук: PostgreSQL и OpenStreetMap

Reading time29 min
Views26K

Когда человек раньше говорил что он контролирует весь мир, то его обычно помещали в соседнюю палату с Бонапартом Наполеоном. Надеюсь, что эти времена остались в прошлом и каждый желающий может анализировать геоданные всей земли и получать ответы на свои глобальные вопросы за минуты и секунды. Я опубликовал Openstreetmap_h3 — свой проект, который позволяет производить геоаналитику над данными из OpenStreetMap в PostGIS или в движке запросов, способном работать с Apache Arrow/Parquet.

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

Первый пост не претендует на монографию, начну с краткого обзора...

Читать далее
Total votes 79: ↑79 and ↓0+79
Comments22

Что выбрать для очередного API: HTTP или gRPC

Reading time6 min
Views19K


Команда VK Cloud перевела статью с подробным техническим сравнением двух типов API: HTTP и gRPC. Автор рассказывает о своем опыте работы и описывает нюансы, преимущества и недостатки каждой технологии.
Читать дальше →
Total votes 41: ↑35 and ↓6+29
Comments9

Kodi перестал обновлять информацию о фильмах, потому что TMDB заблокировал доступ пользователям из России

Level of difficultyEasy
Reading time3 min
Views22K

Kodi - это мультимедийный центр со свободным кодом, который в том числе позволяет представить все локальные файлы с фильмами в виде своего собственного домашнего кинотеатра с описанием и постерами. Kodi стал для меня аналогом ТВ-приставки любого оператора связи, только без ежемесячной оплаты и с возможностью работы без интернета.

The Movie Database (TMDB) - это популярная редактируемая пользователями база данных фильмов и сериалов, которая содержит описания большинства фильмов и обложки на русском языке.

При помощи своего парсера Kodi может идентифицировать фильм по названию файла, а затем скачать описание, обложку, актёров и многое другое с TMDB.

Блокировка доступа пользователям из России к TMDB произошла примерно в апреле 2022 года, но я разбираюсь с этим сейчас, потому что актуальным для меня стало только теперь, а конкретного решения проблемы коди не скачивает обложки, не работает скрепер я не нашёл.

Kodi c The Movie Database (TMDB) без VPN
Total votes 26: ↑25 and ↓1+24
Comments25

«Кандидат сбежал в слезах»: 5 главных вопросов для собеседования на Python разработчика

Reading time3 min
Views99K

В июле и августе 1991 года я, с подачи Гвидо Ван Россума, проводил технические интервью на позицию Middle Python Backend developer. И, видимо, буду вынужден продолжать проводить, о чём ниже.

Задача формулировалась как «найти человека, который сможет задать и поддерживать высокий уровень профессионализма в применении языка Python». Под эту задачу я сформировал новый опросник вместо того, которым пользовался несколько дней — старый имел слишком жесткий закос под промышленное программирование.

И вот что я хочу сказать вам, коллеги: вы меня огорчаете.

Читать далее
Total votes 322: ↑193 and ↓129+64
Comments358

Прогнозирование авиапассажиропотока между городами РФ

Reading time4 min
Views4.1K

Всем привет!

Это моя первая статья на Хабре, поэтому буду рад комментариям, советам, предложениям и любой реакции :)

Я работаю в авиакомпанию, занимаюсь анализом продаж, что сильно связано в том числе с планированием и прогнозированием. В условиях, когда российский рынок авиаперевозок сужается, авиакомпании стремятся оптимизировать свою маршрутную сеть, а если и развиваться - то только на направлениях с высоким пассажиропотоком. Дефицит самолетов в условиях санкций делает ошибки непростительными, поэтому своей целью я ставил разработку модели прогнозирования трафика между городами РФ.

Читать далее
Total votes 18: ↑18 and ↓0+18
Comments19

Краткий гайд по эргономике для трудяг IT-индустрии

Reading time9 min
Views18K

Боль в кистях рук, сухость глаз, перенапряжение шейного отдела позвоночника и другие симптомы продолжительных сессий за компьютером — с этим сталкивается почти каждый наш коллега, будь то DevOps-специалист или дизайнер.  А самое неприятное это всё ломает рабочий дзен. Сегодня мы с вами попробуем разобраться, что не так с нашими рабочими местами, и исправить это. 

Читать далее
Total votes 42: ↑40 and ↓2+38
Comments19

Git для ленивых: обзор консольной утилиты Lazygit

Reading time7 min
Views25K

При работе с Git-репозиториями часто нужно выполнять множество одинаковых действий: фиксировать изменения, переключать ветки, синхронизировать репозитории. Всё это требует ввода соответствующих команд в терминале. Когда частота ввода повышается до утомительной, на помощь могут прийти различные GUI-инструменты. В статье расскажу об одном из них — Lazygit, легковесном консольном клиенте для Git, который облегчает и упрощает работу с репозиториями.

Читать далее
Total votes 50: ↑48 and ↓2+46
Comments35

Js, трюки, наблюдения, бенчмарки и как Лиса уничтожает Хром. Я протестировал всё, что вам было лень

Reading time4 min
Views25K
Картинка, конечно, стронгли анрилейтед

Разные трюки я тестировал на Google Chrome 107.0.5304.107 и Mozilla Firefox 107.0 на Windows 10.

Чтобы результаты всегда были железно воспроизводимыми, я отключил все С-State’ы, ядра зафиксировал на 5 ГГц.

У меня 9900К, это Coffee Lake c AVX256, какие оптимизации применит Jit для вашего процессора — я не знаю, результат на вашем компьютере может отличаться от моего, в т.ч. из-за микроархитектуры процессора.

Скорость парсинга кода тоже входит в бенчмарк, поэтому браузер с быстрым парсером будет впереди.
Читать дальше →
Total votes 133: ↑117 and ↓16+101
Comments77

Information

Rating
Does not participate
Registered
Activity