Обновить

Разработка

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

Почему хорошие разработчики пишут плохой код в больших компаниях

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

Каждую пару лет кто-нибудь замечает, что крупные технологические компании иногда пишут на удивление мусорный код. Если вы не работали в большой компании, то вам может быть сложно понять, почему это происходит. Уровень зарплат в крупных технологических компаниях позволяет привлекать многих компетентных разработчиков. Они работают довольно неспешно, поэтому создаётся впечатление, что у них достаточно времени, чтобы выполнять работу качественно. Как же появляется плохой код?

Читать далее

Работаем быстро, храним экономно: в деталях о механизме охлаждения для Tarantool DB 3.0

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели9.7K

Компании ежедневно генерируют большие объемы данных, но далеко не вся информация одинаково важна: со временем многие данные становятся менее востребованными, продолжая занимать дорогие и высокопроизводительные накопители (SSD, RAM). В результате хранение таких «холодных» данных обходится неоправданно дорого, поскольку потребность в постоянном доступе к ним минимальна.

Решение проблемы — технология охлаждения данных, которая предполагает перемещение редко используемой информации на более дешевые и емкие носители, то есть файлы остаются доступными, но перестают нагружать дорогие и быстрые устройства. Именно такой механизм охлаждения данных мы добавили в Tarantool DB 3.0.

Привет, Хабр. Меня зовут Сергей Фомин. Я старший менеджер продукта Tarantool DataBase. В этой статье я расскажу, как именно мы реализовали механизм охлаждения и какие бизнес-выгоды могут получить компании при его использовании.

Читать далее

Векторный поиск: как выбрать систему и не пожалеть

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

От поиска по архивам документов и медиафайлам до рекомендательных систем и AI приложений — всюду работают эмбеддинги и векторный поиск. Но когда дело доходит до выбора конкретного инструмента, глаза разбегаются: Qdrant, Milvus, Weaviate, Redis, Elasticsearch, Pgvector…

Если вы:

планируете внедрять семантический поиск в свой продукт,
выбираете между проверенными временем БД и специализированными системами обработки векторов,
ищете независимые бенчмарки,

то этот материал — для вас. Мы разберем основные концепции векторного поиска, сравним популярные open-source решения и протестируем скорость их работы с учетом загрузки процессора и памяти.

Читать далее

Как я с DeepSeek писал информационную систему (электронный журнал) для образовательного центра за пару дней

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели17K

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

Центров этих в районе десятка по стране. И до этого года все они работали на базе общей информационной системы.

Меня попросили что-то придумать с этим. О том, что нас отключат от системы, я узнал немного заранее. Рассмотрел open-source варианты систем, которые могут выполнять подобную задачу, и пришел к выводу, что проще написать такую систему с нуля (приоритетом было, чтобы преподаватели легко перешли на новую систему). Но прикидывая, сколько моих человеко-часов уйдет на эту задачу (да ещё и бесплатно), я плавно сливался с этой темы.

Собственно, я и не собирался ничего делать, но вспомнил, что хотел испытать, на что способна ИИ-шка при написании подобных задач с нуля. Обычно я мучаю DeepSeek и пару других gpt для простеньких скриптов, фикса багов, других проблем с Легаси, и просто для тупых вопросов. Поэтому решил в DeepSeek эту задачку и закинуть. Такого, честно, я не ожидал :)


Читать далее

Видеокодек AV2 готов. Почему нам важны открытые стандарты

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

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

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

Как говорится, достаточно продвинутая технология неотличима от магии. Так и видеокодеки нового поколения — это настоящая программная магия.

Читать далее

Создаём шахматы с «туманом войны» на JavaScript: от идеи до работающего прототипа

Уровень сложностиСредний
Время на прочтение39 мин
Охват и читатели16K

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

И тут я вспомнил о своей идее сделать сайт для консольной реализации шахмат на Python. Это была сухая игра, написанная на Pygame для двоих программистов, но не для людей, так как её нельзя было запустить на других устройствах. И у меня родилась идея: а что, если превратить этот скелет игры в веб-приложение на JS?

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

Идея зацепила сразу, представьте: вы переносите свой проверенный, рабочий кейс, у которого вся шахматная логика (проверка ходов, матов и пат) уже работает и ничего нового придумывать не надо, нужно только сделать интерфейс для браузера и все новые идеи (например, таймер).

Читать далее

Иллюзия 95%: гайд по самой частой элементарной ошибке в Data Science

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

Что, если я скажу тебе, что у параметра нет вероятности?

Это самая распространенная и устойчивая когнитивная ошибка в Data Science. Она встречается в курсовых, в учебниках и даже в документациях библиотек.

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

Добро пожаловать в кроличью нору частотной статистики.

Читать далее

Самописный SDR для спутника RS44

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

Изучая вопрос наличия подходящего софта для проведения связей через популярный у радиолюбителей спутник RS44 (ДОСААФ-85), с удивлением обнаружил, что подходящей мне программы просто нет. SDR всяких написано уже не мало, но вот так чтоб работал дуплекс, при этом были разные диапазоны приёма и передачи, коррекция допплера, да ещё и разные виды модуляции на приём и передачу – такого не сумел найти. По этой причине пришлось написать свой минималистичный SDR, специально ориентированный на решение только одной задачи – проведения связей через RS44. По традиции, решил написать программу на Rust. За деталями работы программы и ссылкой на гитхаб прошу под кат.

Читать далее

Три способа менять один объект из нескольких потоков. Больше нет

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

Три способа менять один объект из нескольких потоков. Больше нет

Mutex, CAS, акторы, STM, CRDT, иммутабельность, MVCC, Disruptor…

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

На самом деле их ровно три. Всё остальное — реализации и комбинации.

Эта статья — попытка навести порядок в голове. После неё вы сможете:

за 5 секунд классифицировать любой подход к конкурентности;
понимать, почему Erlang выбрал акторы, а Java предлагает synchronized;
не изобретать велосипеды и не зацикливаться на «единственно правильном» решении;
проектировать многопоточный код, держа в голове простую модель.

Заодно, покажу почему ООП вообще не было изначально спроектировано под многопоток.

Читать далее

Олимпиады — всё?

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели26K

Думаю, что среди читательской аудитории Хабра многих бывших (а возможно, и действующих) олимпиадников, поэтому решил поделиться с сообществом наблюдениями и размышлениями об актуальных проблемах олимпиадного движения в стране. Коротко о том, какое я имею отношение к олимпиадному движению и почему считаю себя в праве публично высказываться на эту тему: я сам бывший олимпиадник (призёр Всероса по информатике), 15 лет веду кружки по информатике и программированию и, в том числе, готовлю школьников к выступлению на олимпиадах, среди моих учеников призёры Всероса по информатике, ВКОШП и других олимпиад по информатике и программированию, кроме того вот уже 10-ый год подряд я участвую в подготовке и проведении школьного и муниципального этапа ВсОШ по информатике в своём регионе.

Позавчера после опубликования результатов муниципального этапа по информатике этого года мама одного из участников прислала мне сообщение: "Я хочу сказать вам спасибо за дисквалы. Потому что списывание достигло какого-то маразма. И по другим предметам вообще ничего не боятся и ничего не стесняются". Речь идёт о том, что мы дисквалифицировали большое количество участников муниципального этапа за списывание друг у друга и за использование искусственного интеллекта при решении задач. В олимпиадах по информатике всё, что делает участник, фиксируется в тестирующей системе, и мы, жюри, имеем возможность анализировать это и на основании определённых критериев делать вывод о несамостоятельности выполнения работы. В силу специфики профессии мы, информатики, во-первых, имеем технические возможности бороться со списыванием, а, во-вторых, воспринимаем сложившуюся ситуацию как некий вызов, которому интересно попытаться что-то противопоставить. Но ситуация постепенно ухудшается. Ниже статистика дисквалификаций на муниципальном этапе ВсОШ по информатике по 9-11 классам по нашему региону:

Читать далее

Как LLM-вендоры обращаются с вашими данными: подробный разбор безопасности и конфиденциальности

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

Привет, Хабр! Я Андрей Яковлев, исследователь в области информационной безопасности. Работаю с корпоративными AI‑сервисами и активно внедряю технологии искусственного интеллекта в продукты Positive Technologies.

2025 год перевернул привычные ожидания и практики, связанные с конфиденциальностью больших языковых моделей (LLM) Представьте ситуацию: вы технологическая компания, которая несколько лет использует ChatGPT для быстрого прототипирования и поддержки клиентских запросов. Раньше казалось, что раз диалог удалён — значит, данные исчезают навсегда. Но в мае 2025 года федеральный суд США в рамках искового дела The New York Times к OpenAI поставил точку в этом заблуждении — OpenAI обязали бессрочно хранить все пользовательские данные (включая удалённые через пользовательский интерфейс).

В этой статье я разберу различные LLM-ки и расскажу, как их разработчики решают проблему конфиденциальности. Предупреждаю – достанется всем :)

Исследование охватывает западных вендоров (OpenAI, Anthropic, Google AI, GitHub Copilot), российские решения (GigaChat, YandexGPT), китайскую платформу DeepSeek, а также ключевых провайдеров-агрегаторов (OpenRouter, Cursor, Windsurf). Анализ включает детальное сравнение политик для частного и корпоративного использования, документированные случаи утечек данных и их последствия, а также практические рекомендации по выбору решений в зависимости от требований к безопасности данных.

Читать далее

Bug Bounty Минцифры: как найти критическую уязвимость и получить дырку от бублика в награду

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

Привет, Хабровчане!

Решил написать небольшую заметку о моем личном опыте взаимодействия с багбаунти программой Минцифры РФ. На самом деле у меня наберется много интересных историй так или иначе связанных с багбаунти, но некоторые из них являются особо примечательными. Об одной из них и пойдет речь в данной статье.

Для начала немного расскажу о себе. Опыт в ИБ у меня обширный и разнообразный. В данной сфере я уже чуть более 13 лет. Поработал на многих участках кибербеза, начиная от так называемого "папирсека" (специалист, отвечающий за подготовку всех необходимых документов по ИБ) до application security инженера. Работал и в органах государственной власти, и в компаниях с государственным участием и в чистой коммерции. В общем небольшое представление об ИБ имею.

Читать далее

Теоремы Гёделя, Тьюринга и Хайтина – доказательства неалгоритмичности Вселенной и неполноты физических теорий?

Уровень сложностиСредний
Время на прочтение67 мин
Охват и читатели10K

Учёные доказали: мы не живём в Матрице! В октябре 2025 г. был опубликован доклад о неразрешимости в физике, неалгоритмичности Вселенной и невозможности её полной симуляции, опирающийся на теоремы Гёделя о неполноте. Перевод этой статьи с пояснениями был выполнен уважаемым @Dmytro_Kikot На теоремы Гёделя вообще часто ссылаются, чтобы доказать существование или несуществование Бога, ограниченность научного метода, невыразимость истины словами, непознаваемость мира разумом, невычислимость сознания, неспособность искусственного интеллекта превзойти естественный, невозможность самосовершенствования и т.д. Говорят, эволюционировать, познавать себя и создавать что-то сложнее себя можно только при наличии сверхъестественного источника бесконечной сложности, иначе это превращается в задачу вытащить себя за косичку из болота. Также проводятся параллели со Вторым законом термодинамики, согласно которому энтропия в замкнутой системе не может уменьшаться, а значит, там не будет самоорганизации и упорядоченности. Да и что вообще может рассказать нам наука, если даже математика нелогична, а мир противоречив и парадоксален? Остаётся только уповать на интуицию, которая якобы неалгоритмична и является откровением самой Истины, снисходящей лишь до тех, кто достоин. А может, мы просто неправильно понимаем теоремы Гёделя? Давайте разбираться, каковы следствия этих теорем для физики, информатики и философии, возможна ли алгоритмическая теория всего, и накладывает ли неполнота Гёделя ограничения на то, что мы можем познать своим разумом.

Читать далее

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

Я задолбался читать про АИ

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

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

Больше топов меня бесят только коллеги, которые дуют щёки и говорят, что вот они‑то познали искусство промтинга, и теперь они — 10х программеры, потому что вместо того, чтобы делать задачи самим, они запускают пяток‑другой агентов, и те пишут код лучше, чем они.

Во‑первых, ребята, если агенты правда пишут код лучше, чем вы — у меня для вас плохие новости...

Читать далее

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

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

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

Один особенно мудрый взрослый (где-то в 1996 году) однажды отвёл меня в сторону и сказал: «Знаешь, хорошо, что программирование приносит тебе удовольствие, потому что в будущем оно тебя не прокормит. Делать это из любви, а не ради денег — отличный подход.

Программированию приходит конец. Объектно-ориентированный подход позволит одному человеку, который будет намного умнее любого из нас, один раз написать библиотеку, которую мы будем использовать бесконечно. Решив какую-либо задачу, повторно решать её больше не придётся.

Через пять лет соберётся целая библиотека объектов, где они будут лежать подобно книжкам на полках, и бизнес сможет решать любую программную задачу по щелчку пальцев, просто комбинируя нужные библиотеки как детали LEGO. Вы ему не потребуетесь». 

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

И вот я здесь почти 30 лет спустя, и разработка, несмотря ни на что, продолжает меня кормить. Существует опенсорс, и всегда находятся библиотеки, с помощью которых я могу скроить что-то нужное. Постоянно возникают новые серии задач, для которых ещё нет готовых решений. Комбинирование деталей LEGO по-прежнему требует усердного труда. Как только я решаю эту задачу на одном уровне абстракции, мы переходим на другой… и так продолжается по кругу.

Читать далее

Как работают современные браузеры. Часть 1

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

Веб-разработчики нередко воспринимают браузер как «черный ящик», который каким-то чудом превращает HTML, CSS и JS в интерактивные веб-приложения. На самом деле современный браузер — будь то Chrome (на базе Chromium), Firefox (Gecko) или Safari (WebKit) — представляет собой чрезвычайно сложное программное решение. Он управляет сетевыми запросами, разбирает (парсит) и выполняет код, рендерит графику с ускорением на графическом процессоре (GPU) и изолирует контент в отдельных процессах для обеспечения безопасности.

В этой серии статей мы подробно рассмотрим, как устроены современные браузеры, сделав акцент на архитектуре и внутреннем устройстве Chromium, но также отметим ключевые отличия в других браузерах. Мы рассмотрим весь цикл: от сетевого стека и конвейера парсинга до рендеринга с помощью Blink, выполнения JS с помощью движка V8, загрузки модулей, многопроцессной архитектуры, песочниц безопасности и инструментов разработчика. Главная цель — дать понятное и доступное объяснение того, что происходит в браузере "под капотом".

Читать далее

Чего нам стоит перевод фильма AI построить

Уровень сложностиСредний
Время на прочтение41 мин
Охват и читатели12K

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

Читать далее

Подключение SD карты по SPI (Капсула памяти)

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

В этом тексте я написал про некоторые особенности работ c SD картами при соединении их с микроконтроллером по интерфейсу SPI.

Читать далее

Связь без мобильной сети: как я развернул свою VoIP-телефонию на участке

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

Когда мобильная связь подводит, особенно важно оставаться на связи с близкими. Почему бы тогда не организовать собственную телефонную сеть на основе VoIP? Меня зовут Дима Абакумов, и под катом расскажу, как я решал эту задачу и с какими трудностями столкнулся

Читать далее

Прокси для ленивых: поднимаем SOCKS5 поверх SSH, пока чайник закипает

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

Доступ к интернету в наши дни напоминает игру в «Сапёра»: никогда не знаешь, где рванёт и какой репозиторий отвалится завтра. Утром ты сеньор-помидор, а к обеду не можешь стянуть дистрибутив, потому что чей-то IP попал под горячую руку регулятора.

Если вы давно живёте в терминале, скорее всего всё это знаете - этот текст для тех, кто ещё не использовал SSH как SOCKS5-прокси.

Конечно, можно развернуть VLESS с XTLS-Reality, обернуть это в CDN и присыпать сверху магией, но иногда нужно решение в стиле «тяп-ляп и в продакшен».

Встречайте: SOCKS5 поверх SSH. Дешево, сердито и работает (если ваш провайдер еще не научился вскрывать SSH-пакеты зубами).

Имея VPS за пару долларов, вы можете вернуть себе доступ к документации (и, чего уж греха таить, к котикам в Instagram) буквально одной командой.

Ищем документацию