Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Апгрейд Postgres с 11 до 17 версии без боли: мой гайд по логической репликации

Уровень сложностиСредний
Время на прочтение25 мин
Количество просмотров2.8K

Вступление: Почему я вообще это пишу?

Представьте: нужно обновить базу данных размером с небольшое озеро — целых 10 ТБ. Классические методы тут не работают. Сделать дамп и восстановить? Это ж на неделю бизнес встанет. Обновлять «в лоб» с 11-й до 17-й версии? Это рискованно и надолго всё упадёт.

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

Пока я готовился, я наступил на все возможные грабли — от устаревших расширений до разницы в ОС. Чтобы вы не повторяли моих ошибок, я решил написать этот неформальный гайд. Здесь — только суровая практика, без воды и заумных терминов.

Читать далее

Как ломали самый известный в мире код

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров7K

35-летняя сага о Kryptos, загадочной скульптуре с четырьмя зашифрованными сообщениями, расположенной перед штаб-квартирой ЦРУ, только что приняла странный поворот. Первые три отрывка криптографы разгадали уже в 1990-х годах, всего через несколько лет после того, как художник Джим Санборн установил медный монолит. А вот четвёртый отрывок, известный как K4, оставался неприступной крепостью, состоящей из 97 символов, 35 лет — вплоть до 2 сентября, когда журналисты Джаретт Кобек и Ричард Бирн обнаружили ответ в архивах Смитсоновского института.

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

Читать далее

Поднимаем внутренний мессенджер и VoIP-сервер без нарушения законодательства

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров16K

Cейчас, когда связь с внешними сервисами работает с перебоями, а самым стабильным международным способом созвониться теперь является, внезапно, Steam, VoIP которого точно не блокируется, возникает резонный вопрос: а как коммуницировать хотя бы в рамках собственной компании? Особенно с учетом того, что Discord давно и надежно заблокирован, Slack с рынка ушел, а популярные публичные мессенджеры замедляются или рискуют отправиться в бан? Решение очевидно: поднимать собственные текстовые и VoIP-сервера, о чем мы и поговорим в статье на примере связки Matrix и Jitsi.

Читать далее

Как некачественные данные подтачивают способности нейросетей и что с этим делать

Время на прочтение5 мин
Количество просмотров840

Языковые модели помогают кодить, писать тексты, отвечают на вопросы и даже подсказывают идеи. Но все, чему они учатся, берется из интернета, а там хватает и полезного, и откровенного мусора. Ученые из Texas A&M и Purdue University выяснили, что если в обучающие наборы попадает слишком много поверхностного или ошибочного контента, модели начинают работать хуже. Этот эффект исследователи описали как «размягчение мозга» (brain rot) — по аналогии с тем, как у человека притупляется внимание после длительного погружения в поток однотипной информации.

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

Читать далее

Купил увлекательный квест за 0,00896 BTC

Время на прочтение11 мин
Количество просмотров3.9K

Эта история началась в далёком 2021 году, когда я на стихающей волне хайпа криптовалют решил купить немного биткоинов и эзериумов. Просто на всякий случай, чтобы были, вдруг их стоимость вырастет в 100 раз. Честно говоря, они так и пролежали большую часть времени в кошельке. Я сделал пару покупок просто, чтобы потратить их хоть на что‑то, например, оплатил хостинг у одного провайдера.

Не так давно я решил купить ещё один вечный сервак у этого провайдера. И здесь начинается ещё не сам квест, а предыстория к нему...

Читать далее

Динамические группы проксируемых серверов в Angie

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1.5K

Современная инфраструктура приложений динамична и требует гибкости от конфигурации ключевых элементов. В этой статье мы разберём все варианты реализации динамических групп серверов (upstream) в Angie. С помощью этих методов вы сможете изменять состав и статус серверов без вмешательства в конфигурацию Angie. 

Читать далее

Пять лет спустя: почему мы всё переписали с нуля

Время на прочтение8 мин
Количество просмотров12K

Пять лет назад на Хабре мы писали о Web Camera Pro — и казалось, что впереди только апдейты, оптимизации и новые функции. За это время изменилось многое — и не только в технологиях, но и в законодательстве.

Как мы наступили на те же грабли

Когда в 2015 году мы начинали разработку системы для видеонаблюдения, Qt 5 казался идеальным решением. На первый взгляд всё выглядело просто: берём готовые библиотеки, оборачиваем в красивый интерфейс, добавляем AI-аналитику — и готово.

На Qt было создано множество известных программ для видеонаблюдения, и мы — как и десятки команд по всему миру, поверили в его универсальность.

“Один фреймворк, любая платформа” — звучало как музыка.

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

Qt позволял быстро собрать прототип, но, когда речь заходила о стабильности, о 24/7-нагрузке, о реальной работе с потоками и камерами, его недостатки становились критичны.

Читать далее

Шардирование сервиса объявлений Авито Доставки. Часть I

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров4K

Привет, меня зовут Артем, и я работаю в Авито с 2016 года. Начинал как тестировщик, затем вырос в backend-инженера, с 2019 года пишу на golang, а сейчас руковожу командой разработки в Авито Доставке в роли техлида. В этой статье поделюсь опытом шардирования нашего основного сервиса delivery-item: зачем мы это сделали, как подошли к задаче, с какими граблями столкнулись и как всё выглядит спустя почти два года.

Читать далее

Как мы воскресили русский NLP и сократили потребление памяти на 90%

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров7.1K

Как мы воскресили русский NLP и сократили потребление памяти на 90%

Форкнули четыре ключевых библиотеки русского NLP (pymorphy, razdel, slovnet, natasha), которые не обновлялись годами. Сократили потребление памяти на 90%, ускорили загрузку в 30 раз, повысили точность токенизации с 70% до 95%. Всё работает offline, 100% совместимо с оригинальными API. Экосистема MAWO — production-ready инструменты для работы с русским текстом.

Помните ли вы тот момент, когда открываешь проект для обработки русского текста и видишь знакомую картину? В requirements.txt красуется pymorphy2, последний коммит в репозитории датирован 2015 годом, Python 3.12 ругается на deprecated методы, а production ждать не будет. Знакомо? Тогда эта история для вас.

Читать далее

Open source-стратегии: как МойОфис развивает открытый подход — рассказывает Тамара Щепалкина, CTO компании

Время на прочтение11 мин
Количество просмотров3.9K

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

Читать далее

GPS-мониторинг выездных сотрудников: посчитать, ускорить, не оставить в беде

Время на прочтение12 мин
Количество просмотров1K

На высоких конференциях и форумах говорят о цифровой трансформации, бизнес-форумы обсуждают автоматизацию и оптимизацию, на конференциях разбирают высоконагруженные системы и экономику данных под красными, зелёными, синими узнаваемыми логотипами.

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

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

Традиционные методы, основанные на устных отчетах, бумажной документации, да даже на электронных таблицах, давно исчерпали себя, создавая «слепые зоны» в операционной деятельности, которые прямо влияют на скорость выполнения заявок, удовлетворенность клиентов и, как следствие, на общую рентабельность бизнеса.

Поставляя компаниям CRM-системы, мы видели, что компании нуждаются в хорошем комплексном решении для управления выездными сотрудниками. Так появился наш GeoMonitor, о котором мы сегодня расскажем максимально подробно.

Читать далее

Как я научила ИИ быть моим напарником по тестированию

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров8.5K

Всем привет! Меня зовут Катя и я ведущий инженер по тестированию в MD Audit.

Хочу поделиться как я внедрила ИИ в процессы тестирования, чтобы не тратить время на рутинные задачи и больше заниматься любимым делом (кидать мемы в рабочие чаты).

Читать далее

Нейро-дайджест: ключевые события мира AI за 1-ю неделю ноября 2025

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.2K

Привет! Это новый выпуск «Нейро-дайджеста» — коротких и полезных обзоров ключевых событий в мире искусственного интеллекта и технологий.

Неделя выдалась насыщенной: Qwen3-Max получила ризонинг, открытые модели догоняют закрытые, среди LLM проводят турнир по покеру, ИИ-релизы от Canva и обновление Cursor 2.0. Массовый хейт рекламы Coca-Cola, ИИ-инференс от Дурова и домашний робот NEO.

Всё самое важное — в одном месте. Поехали!

Читать дайджест →

Ближайшие события

Когда свет начинает думать: путешествие в мир оптических вычислений

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров2.2K

Если спросить вас, какая сцена из фильма «Матрица» запомнилась больше всего, большинство назовёт уклонение от пуль или момент с красной таблеткой. Но для меня это разговор Морфеуса с Нео, когда он говорит, что всё, что тот считает реальностью, — всего лишь электрические сигналы, которые мозг интерпретирует как ощущения.

Читать далее

OpenAI ModerationAPI: примеры использования

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров360

Всем привет!

В последнее время всё чаще появляются новости о том, что искусственный интеллект (ИИ) удалось взломать или обойти его защитные механизмы. Это действительно актуальная проблема — особенно для тех, кто занимается разработкой ИИ‑агентов и интеграцией языковых моделей в продукты.

Чтобы понять суть проблемы, представим ИИ в виде ребёнка, который знает правила, но может поддаться на уговоры. Злоумышленник здесь выступает в роли «дяди с конфеткой»: он находит способы убедить модель нарушить установленные ограничения.

Недавно в нашем Telegram‑канале «Код на салфетке» мы опубликовали подробный разбор того, как можно попытаться обойти встроенные ограничения ИИ. Такие попытки обхода называют джейлбрейком (jailbreak). Это термин из сферы IT, который изначально использовался для обозначения взлома защитных механизмов мобильных устройств, а теперь применяется и к ИИ.

Существует множество техник джейлбрейка — от простых манипуляций с формулировками до сложных многоэтапных схем. Однако разработчики не стоят на месте: для каждой атаки создаются соответствующие защитные механизмы.

В этой статье мы сосредоточимся на одном из ключевых инструментов защиты — модерации контента. Разберём, как с помощью Moderation API автоматически фильтровать вредоносные или некорректные запросы, настроим пакетную проверку и логирование, а также рассмотрим практические примеры интеграции модерации в реальные сервисы.

Читать далее

Сама не разберётся: мои 7 принципов генерации кода с LLM

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров7.9K

Всем привет! Меня зовут Виктор, и более трёх лет я работаю с языковыми моделями – от проприетарных решений вроде ChatGPT до open-source систем, которые можно разворачивать локально и встраивать в собственные продукты. Я застал времена жутких галлюцинаций GPT-3.5 и ждал обещанного GPT-5 – того самого почти AGI, которое, казалось, вот-вот появится.

За это время многое изменилось: появились десятки моделей, которые можно запустить даже на слабом ноутбуке, и мощные коммерческие системы, способные понимать с полуслова. Но одно остаётся неизменным – AGI так и не случилось.
Если два года назад нам уверенно обещали, что «всё уже близко», то теперь даже крупнейшие компании признают: ждать придётся долго.

И это не плохо. Просто разработчикам, приходится учиться работать с тем, что есть, и извлекать максимум пользы из нынешних LLM.

За годы работы с моделями я выработал ряд принципов, которые помогают получать стабильные и читаемые результаты. На первый взгляд – ничего нового: это те же инженерные практики, которые мы применяем в обычном программировании.
Но в контексте LLM они начинают работать совсем иначе.

Читать далее

Кому нужен Graphviz, если можно написать его самому?

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров8.3K

Недавно мы переделали наши внутренние инструменты, визуализирующие компиляцию JavaScript и WebAssembly. При работе оптимизирующего компилятора Ion мы теперь можем генерировать интерактивные графы, демонстрирующие, как конкретно обрабатываются и оптимизируются функции.

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

В процессе экспериментов обратите внимание на то, насколько стабильна схема графа даже при изменении размеров блоков и добавлении новых структур. Попробуйте нажать на заголовок блока, чтобы выделить его, а затем перетащить ползунок, и наблюдайте за тем, как меняется граф, а блок остаётся на месте. Или нажмите на номер команды, чтобы подсветить её и следить за ней между проходами.

Разумеется, мы не первые, кто начал визуализировать внутренние графы компиляторов, и не первые, кто сделал их интерактивными. Но меня не устраивали результаты работы популярных инструментов наподобие Graphviz и Mermaid, поэтому я решил создать алгоритм специально под наши потребности. Получившийся алгоритм прост, быстр, создаёт на удивление высококачественный вывод и его можно реализовать в менее чем тысяче строк кода. В этой статье я объясню алгоритм и конструкторские решения, лежащие в его основе.

Читать далее

MapStruct: как безобидный метод портит весь маппинг

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров4K

При работе с MapStruct возникает соблазн добавлять небольшие вспомогательные методы прямо в ваш mapper и вызывать их через expression. Однако если такой метод оперирует довольно общими типами (например, String -> String), MapStruct может обнаружить его и применить к другим полям того же типа — даже если вы этого не планировали.

Читать далее

Скрытые пасхалки в компьютерных программах, кто их придумал и почему сегодня так почти не делают

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров7K

Пасхалки на системных платах наших устройств, – история, прямо скажем, весьма специфическая. Ну, какова вероятность, что обычный человек – не схемотехник – вдруг полезет внутрь и чего-то там разглядит? Наверное, не очень высока. С другой стороны, эти послания там оставляют и не для обывателей, а для таких же инженеров, которые не просто увидят, но и поймут, что к чему. Хотя пасхалки имеют и другую природу. Они бывают еще и софтверные, скрываясь в неожиданных разделах приложений, которыми все мы пользуемся. Но как вообще зародилась идея оставлять в ПО “приветы” для пользователей? Об этом и поговорим.

Читать далее

Java Digest #30

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров2K

Всем привет! 👋👋👋👋👋

Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

Октябрь выдался интересным: JDK 26 приносит поддержку HTTP/3, Vector API снова в инкубации, а Swing внезапно обзаводится своим DatePicker — да, 2025-й, а Swing жив! Разработчики обсуждают Leyden и GPU-ускорение для Java-ИИ, а Oracle чинит 15 уязвимостей. В статьях свежие оптимизации ZGC, разбор виртуальных потоков, Jackson 3, Kafka Queues и немного философии про «хороший вкус» в разработке. А под конец релизы, от JUnit 6 до Spring 6.2.12. Заваривайте кофе, обновляйтесь до JDK 25 и читайте. Поехали 🚀

Читать далее