Обновить
1380.55

Программирование *

Искусство создания компьютерных программ

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

Rust, mmap и 10 миллионов пикселей: делаем производительный Log Viewer для VS Code

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

Наверняка у каждого бэкендера или девопса была такая ситуация:
Нужно срочно посмотреть, что случилось на проде. Вы скачиваете server.log, по привычке кликаете на него в VS Code... и всё.
Редактор зависает, кулеры ноутбука взлетают, интерфейс не отвечает. Файл весит всего-то 2-3 ГБ, но для редактора на базе Electron/DOM это приговор.

Обычно в этот момент мы убиваем процесс VS Code и идём в терминал писать less или tail -f. Это работает, но лишает нас комфорта: нормального поиска, копипаста мышкой, подсветки синтаксиса.

Я перепробовал кучу расширений, но все они либо пытались загрузить файл в память (и падали), либо работали слишком медленно. Поэтому я решил написать своё решение — с Rust на бэкенде, memory-mapping и виртуализацией всего, что только можно.

Под катом расскажу, как скрестить VS Code с нативным бинарником, обойти лимиты браузера на высоту скролла и сделать grep по гигабайтам текста мгновенным.

Читать далее

Ночь, телескоп, ИИ, комета: анализ спектра 3I/ATLAS с собственным Python-pipeline

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

У вас когда-нибудь была мечта, которая поднимает посреди ночи, и вы на цыпочках идете через спящий дом к компьютеру — посмотреть, что показывает ваш телескоп? Поймал ли он 3I/ATLAS, с джетами или без, как слабую точку или как большой объект с необычно яркой комой? Эти ночи — мои будни уже 3 месяца. И сегодня я расскажу, как любитель-астроном исследует самый необычный межзвездный объект за всю историю человечества:

Читать далее

Новогодний IT-челлендж для разработчиков: сможете расшифровать сообщение?

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

Всем привет! С приближением Нового года мы запускаем IT-челлендж, чтобы размять мозги перед праздничным отдыхом.

Нужно расшифровать сообщение, написав собственное решение, и показать путь к результату. Тот, кто решит эту задачу первым и представит элегантное решение, получит главный приз: годовой Telegram Premium (или ~2500 звёзд)!

Читать далее

Эта музыка будет вечной: микросервисы против монолита, camelCase против snake_case и другие неугасающие споры в ИТ

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

В любой сфере деятельности найдутся неоднозначные решения, время от времени заставляющие полыхнуть ту или иную часть интернета. Разумеется, такие «вечнозеленые споры» есть и в ИТ, и сегодня мы в Beeline Cloud решили вспомнить некоторые из них. Разбираемся, почему даже сейчас находятся поводы для недовольства у сторонников разных регистров, о чем продолжают спорить сторонники и противники low-code и есть ли все-таки будущее у микросервисов.

Читать далее

В GitHub Actions, пожалуй, худший пакетный менеджер

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

Когда я закончил работать над проектом ecosyste-ms/package-manager-resolvers, мне стало интересно, какой алгоритм разрешения зависимостей использует сервис GitHub Actions. Когда вы записываете в файл рабочего потока uses: actions/checkout@v4, то объявляете зависимость. GitHub её разрешает, скачивает и исполняет. Так работает управление пакетами. Я же решил отправится в кодовую базу runner, чтобы увидеть весь этот процесс изнутри. И открытия, скажу я вам, оказались весьма тревожными.

Читать далее

Арифметика сверточных слоев. Вычисляем размерность изображения с учетом stride, padding и dilation

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

Одна из проблем при проектировании сверточных сетей (CNN) – несоответствие размеров тензоров. Неправильно заданные padding, stride или dilation могут замедлить разработку модели.

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

Читать далее

Ассемблер для гоферов. Структура и макросы. Часть 2

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

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

Читать далее

Почему xor eax, eax используется так часто?

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

В одном из моих докладов по ассемблеру я показал список из 20 самых часто исполняемых команд на среднем десктопе x86 с Linux. Разумеется, в этом списке были привычные  movaddleasubjmpcall и так далее; неожиданным стало включение в него xor — «eXclusive OR». В эпоху, когда я занимался хакингом на 6502, наличие XOR было почти абсолютно точным указанием на то, что найдена часть кода, связанная с шифрованием, или какая-то подпрограмма обработки спрайтов. Поэтому удивительно, что машина с Linux, просто занимающаяся своими делами, выполняет такое количество этих команд.

Но потом мы вспоминаем о том, что компиляторы любят генерировать xor при присвоении регистру нулевого значения.

Читать далее

Я вернулся в 1999-й и поймал «Чернобыль»

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

Я вернулся в 1999-й и поймал вирус CIH, он же Чернобыль. В новой серии машины времени проверяю: что бы случилось с моим компьютером, если бы я случайно запустил заражённый .exe.

В статье вы узнаете:

• Почему 26 апреля 1999-го мой компьютер превратился в «кирпич»;
• Как CIH перезаписывал BIOS и стирал загрузочные сектора;
• И зачем создавали ранние вирусы в эпоху без денег;

Настоящая интернет-ностальгия 1999-го ждёт.

Читать и отправиться в 2000-й

Ловушки PowerShell: поведение, которое ломает привычные ожидания разработчиков

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

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

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

Читать далее

ООП и Синглтон (на примере простого консольного рендера) в Си

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

Всем привет, это Stalker320. Я вернулся на Хабр, осознав несколько концепций, с интересным подходом к разработке ПО с использованием Си.

Читать далее

ARC-AGI для оценки способностей ИИ и новый релиз ChatGPT 5.2

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

Вчера вышла новая версия модели ChatGPT 5.2. В очередной раз Сэм Альтман и OpenAI удивляют качеством модели (в последний месяц было так много релизов, что они решили не отставать). В целом, все как обычно — топовые результаты на большинстве бенчмарков.

Но хочу уделить внимание одному очень сложному бенчмарку, на котором пока многие спотыкаются — ARC-AGI (Abstract and Reasoning Corpus for Artificial General Intelligence). Именно здесь ChatGPT 5.2 показал значительный скачок.

На сегодня существует две версии этого теста. Так о чем же он?

Читать далее

Как сократить расходы на токены и повысить точность LLM

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

Когда количество доступных LLM инструментов (tool-ов) разрастается, традиционные подходы к tool calling становятся непрактичными — утилизация токенов улетает ещё до начала общения. К тому же, модели становится сложнее выбрать нужный набор tool-ов для решения проблемы.

В новом переводе от команды Spring АйО читаем о паттерне Tool Search Tool, предложенном Anthropic и реализованном в Spring AI с помощью ToolSearchToolCallAdvisor. Он позволяет LLM динамически находить нужные инструменты по мере необходимости, экономя до 64% токенов и повышая точность.

Читать далее

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

6 Docker-фич для продвинутого использования. Часть 2

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

Привет Хабр! Снова.

Docker уже давно стал стандартом, и базовые команды вроде docker rundocker build или docker compose up знакомы любому разработчику. Но экосистема и инструментарий контейнеризации гораздо глубже.

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

Читать далее

Rust 1.92.0: проверка типа never, unused_must_use, генерация таблицы раскрутки стека на Linux, Валидация #[macro_export]

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

Команда Rust рада сообщить о новой версии языка — 1.92.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.

Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.92.0 вам достаточно выполнить команду:

$ rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.

Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta (rustup default beta) или nightly (rustup default nightly). Пожалуйста, сообщайте обо всех встреченных вами ошибках.

Читать далее

Фишинг в 2025 году: как искусственный интеллект превратил email в оружие

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

Помните смешные письма от нигерийских принцев? Времена изменились. В 2025 году фишинг превратился из примитивного мошенничества в отдельную индустрию, которая по уровню организации не уступает легальному бизнесу.

Читать далее

Умершие языки программирования (Fortran, Ada, Cobol) И почему на западе они до сих пор живы

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

Существуют языки, которые все считают мертвыми, но есть ньюанс. В СНГ на Бейсике вакансий больше чем на Руби, а вакансий у Паскальщиков не сильно меньше чем у шарпистов.

Все не так просто, поэтому давайте разбираться.

Читать далее

I'm on the stairs to hell

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

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

Читать далее

Правда ли, что ICPC работает как социальный лифт в IT-карьере

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

Привет, Хабр! Я давно отучился в школе и институте, но хорошо помню, как мне говорили: «Учи! Тебе это пригодится! Без этого никуда! Это очень важно…» и почти никогда не объясняли, зачем учить, когда это пригодится и для чего.

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

Так как же обстоят дела на самом деле? Какие алгоритмические привычки пятичасовых контестов переходят в инженерную практику? И помогают ли навыки с олимпиад, когда сталкиваешься с реальным сервисом, данными и нагрузками, а не с абстрактными задачами?

Читать далее

Дети, запомните: если дядя из туториала предлагает вам начать проект на Express.js… Рейтинг opensource для фронтенда

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

Всем привет! Меня зовут Алексей Золотых, я тимлид команды веб-редакторов в МойОфис. Недавно мы запустили новое шоу АйТир Лист. В каждом выпуске мы берём одну тему из мира разработки и раскладываем всё по тир-листу: от FAIL до GOD.

В пилотном выпуске мы с коллегой — Александром Коротаевым, фронтенд-гуру и энтузиастом креативного кодинга, прошлись по популярным опенсорс-инструментам для фронтенда: от тех, которые пора отпускать, до тех, что стали эталоном. Эта статья — расширенная версия выпуска. Под катом рассказываем, что у нас попало в FAIL, кто выжил на уровне MVP, кого мы поставили в SENIOR и кто, по нашему мнению, заслужил звание GOD.

Дисклеймер: мы с большим уважением относимся ко всем упомянутым проектам. Многие из них помогли индустрии вырасти. Но сегодня мы смотрим на них через призму вопроса: что бы мы посоветовали новичку или команде в 2025 году.

Читать далее

Вклад авторов