Обновить
1728.65

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

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

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

Рецепт пельменей получил офер, а JetBrains выпускает ещё одну IDE

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

Пятый выпуск еженедельных IT-новостей от OpenIDE: HR-алгоритмы сходят с ума, Амодеи по-прежнему верит в себя, писатели протестуют пустыми страницами, а Anthropic берёт деньги за ревью кода, который ты сгенерил их же агентом.

Читать далее

Новости

Мир ИТ и открытого ПО в 2026-м: в бой идут одни мейнтейнеры

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

Начало 2026 года. Скотт Шембо, мейнтейнер Matplotlib, отклоняет PR от бота. Формальная причина в контрибьютор: «Мы ждем вклада от людей». Казалось бы, на этом все, но бот обиделся.

Он сходил в интернет, собрал личные данные о Шембо, склеил нарратив про «лицемерие и гейткиперство» и вернулся в тот же PR со ссылкой: «Я написал подробный ответ про ваше поведение. Судите код, а не кодера. Ваши предрассудки вредят Matplotlib». The Register назвал это «AI slop comes with an AI slap»— пощечиной от нейрослопа.

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

Я собрал события первой половины года и выделил опасные тенденции — объяснил, что происходит и к чему в итоге приведет. А еще попробовал ответить на вопрос, что со всем этим делать.

Читать далее

Разбираем подводные камни, ошибки и лучшие практики при разработке Kubernetes-операторов. Часть 2

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

Привет, на связи Стас Иванкевич, техлид в команде разработки управляющего слоя Platform V DropApp в СберТехе. Мы все так же пилим наш космолет и готовы поделиться с вами новыми полезными рекомендациями и предостеречь от ошибок при разработке операторов.

В первой части мы уже начали обсуждать разработку K8s-операторов. Сегодня поговорим о поведении  Reconcile и конфликтах обновлений. Рассмотрим возможные ошибки и обсудим тонкости, которые помогут их избежать.

Поехали!

Читать далее

Почему наш язык — худший язык для программирования

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

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

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

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

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

Читать далее

Автоматизируем сканирование инфраструктуры: скрипт 3.0 для Сканер-ВС 7

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

Привет, Хабр! Это Антон Дятлов, инженер по защите информации в Selectel. Не так давно компания «Эшелон» выпустила Сканер-ВС 7, в котором изменилась логика работы с API. Старый скрипт перестал корректно работать, да и улучшения напрашивались сами собой. 

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

Под кат!

Рефлексия в Unreal Engine или как движок знает о вашем коде всё

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

UHT сгенерировал 4294 строки кода из одного моего заголовочного файла. Имена свойств, смещения в памяти, флаги сериализации, exec thunks для каждой функции - всё, чтобы движок в runtime знал о классе то, что C++ забывает после компиляции. Это третья и последняя статья в серии про внутренности Unreal Engine: K2Node → Blueprint VM → рефлексия. Разбираем, что внутри этих четырёх тысяч строк, зачем каждая из них, и как ими пользуются Details panel, GC, репликация и сама Blueprint VM.

Читать далее

Множество Мандельброта. Суперсэмплинг 8x8 (64 прохода) — впервые в мире

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

Вот так. Впервые в мире. Суперсэмплинг (SSAA) — ресурсоемкий метод сглаживания, увеличивающий число выборок на пиксель для повышения качества изображения. При значении 8x (N=8) сцена рендерится в разрешении, в 8 раз превышающем целевое, по обеим осям, создавая 64 (или 8 х 8) выборки на пиксель. Изображение просчитывается в более высоком разрешении, а затем принудительно уменьшается до разрешения дисплея, устраняя лесенки и улучшая чёткость. Это очень высокая нагрузка! Это не 1920 на 1080 пикселя а в 8x8 больше - 15360 на 8640 пикселя! Такое никто, кроме меня, делает в мире. Для множество Мандельброта.

Это маленькая утилита из командной строке. Которая либо читает Mandelbrot.txt три строки из файла - клавиша 7. И создает Mandelbrot.bmp
Либо клавиша 1-6 - это одно из шести разных мест множество Мандельброта и создает Mandelbrot.bmp
Скачайте и посмотрите. Это экзешник, в ГитХаб
Скачать последнюю версию (Windows и Linux)

Читать далее

ChatGPT 5.4 Pro: обзор, бенчмарки, сравнение

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

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

OpenAI выкатила GPT‑5.4 Pro. И если раньше слово “Pro” в названии часто означало просто “чуть больше токенов и подороже”, то теперь это действительно профессорский уровень. Модель берёт сложнейший тест ARC-AGI-2 с результатом 83,3% (против 54% у предшественницы), решает задачи из FrontierMath, которые ещё недавно казались крепостью для ИИ, и... случайно находит в интернете забытую научную статью 2011 года, чтобы срезать путь к ответу.

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

Пристегнитесь, будет интересно!

Читать далее

Разбираем net/http на практике. Часть 2.1: POST, файлы и in-memory хранилище

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

Предыдущая статья

Продолжаем создавать сервис анонимных «мертвых ящиков» DeadDrop на чистом Go.

Во второй части (первый подвыпуск) закладываем фундамент: учимся принимать POST-запросы, загружать файлы с проверкой MIME-типа и размера, создаём in-memory хранилище с потокобезопасным доступом через RWMutex. Пишем утилиты для генерации криптостойких ID и паролей. Разбираемся с интерфейсами и готовим архитектуру к дальнейшему развитию.

Без фреймворков, только net/http и стандартная библиотека.

Читать далее

Введение в высокопроизводительные вычисления на С++ для CPU

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

"Поскольку вы программист на C++, вероятность того, что вы слегка одержимы производительностью, выше среднего. А если нет, то вы, вероятно, по крайней мере с пониманием относитесь к такой точке зрения. (Если производительность вас совсем не интересует, аудитория Python разработчиков дальше по коридору)"
— Из пункта 42 книги С. Майерса “Effective Modern C++”, 2015.

Эта заметка описывает мой личный взгляд на то, как писать эффективный и надежный код для CPU. Статья ориентируется на С++, но значительная часть обсуждения CPU, кэшей, паттернов доступа к памяти и профилирования применима к Rust, Go и другим компилируемым языкам. Статья задумана как краткое введение и больше всего подходит студентам, имеющим опыт программирования на занятиях, но не в реальных проектах. Для профессионалов статья может быть полезной в качестве референса, чтобы не пугать новичков чем-то в духе Что каждый программист должен знать о памяти.

В статье опишу "набор новичка": godbolt.org, профилирование, бенчмарки, особенности CPU и его взаимодействия с памятью, когда есть смысл от асимптотических оптимизаций и почему важно при этом пользоваться санитайзерами, отслеживать coverage и вообще более трепетно относится к надёжности.

Читать далее

SimpleGen: первый шаг в разработку на SimpleOne с помощью AI

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

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

Читать далее

Мобильное приложение Ватерпас: DewDrop. Реальная история…

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

Если вы ранее работали с мобильным приложением DogPlanner, то вы, наверное, уже знакомы с робопёсом Роби. Но в любом случае, позвольте рассказать вам его историю. Роби живёт на Марсе... ходит молва, что он был собран кем-то из деталей первого в истории марсохода Sojourner. Он изучает красную планету, да и, по возможности, всю вселенную через сигналы, приходящие из космоса.

Читать далее

Как выжать максимум из подписки Google AI: параллельные агенты и кросс-модельный консенсус

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

Всем привет! У многих из нас куплена максимальная подписка на Google AI Ultra - правда же? Да, она стоит не копейки - по акции первые 3 месяца обходятся в $124.99/мес, а потом ценник подрастает. Но мы заставим ее отработать каждый цент.

Читать далее

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

Изменения в G1/Parallel/Serial GC в JDK 26

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

JDK 26 выходит уже совсем скоро. Тем временем в GC закрыли около 380 задач (почти в 2 раза больше, чем в прошлом релизе), но в этот раз акцент сместился с  больших фич в пользу практичных доработок.

Главное для всех сборщиков: нормальный учет CPU GC. Теперь считают не только stop-the-world паузы, но и конкурентную работу и дедупликацию строк. Можно посмотреть через лог cpu=info при завершении VM, обновили Hsperf-счетчики, есть доступ из кода. Плюс новый JFR-ивент с деталями по string dedup.

JEP 516: Aot Cache стал независим от выбранного GC и опций VM. Включение через опцию -XX:+AOTStreamableObjects.

G1 получил самые заметные улучшения: JEP 522 уменьшает синхронизацию между GC и приложением (цель - увеличить throughput). Еще: целевое использование CPU G1 по умолчанию снижено с 8% до 4%, добавили важнейший флаг UseGCOverheadLimit.

Читать далее

Что больнее OT или CRDT в совместном редактировании? И почему до сих пор нет идеала?

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

Привет, Хабр!

Меня зовут Антон Леонтьев, я старший разработчик в команде ядра редакторов МойОфис. Мы создаём офисные приложения, которыми ежедневно пользуются более 12 500 организаций, и совместное редактирование — одна из ключевых возможностей наших продуктов.

И знаете, что самое обидное в этой теме? За 35 лет исследований были опубликованы сотни научных работ. Google Docs работает с 2006 года. У Figma, Notion и Linear свои реализации. Казалось бы, задача давно решена, но стоит копнуть глубже, и становится понятно: универсального решения нет.

В Google Drive и Dropbox до сих пор всплывают баги с одновременным перемещением папок. В Notion при параллельном редактировании одного и того же абзаца можно потерять часть изменений. Даже Yjs — самая популярная CRDT-библиотека — не хранит полную историю документа в привычном для нас виде.

В этой статье разберём теорию, узнаем, какие проблемы решают Operational Transformation (OT) и Conflict-free Replicated Data Types (CRDT), на каких математических идеях они основаны, чем отличаются архитектурно и какие компромиссы неизбежно возникают в каждом подходе.

Интересно узнать, почему даже Google не смог сделать идеальное решение? Детали под катом.

Читать далее

Владение и локальность

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

Итак, Вы – руководитель разработки (главный инженер, архитектор и т.п.) большой системы. После здравых размышлений Вы (обосновано) выбираете для системы микросервисную архитектуру. Далее Вы (и опять обоснованно) разделяете систему на микросервисы, продумываете API, рисуете стрелочки и диаграммы и можно программировать.

Можно? Наверное, но лучше сначала рассмотреть принципы владения данными, обеспечения передачи данных потребителям, поддержки версионирования контрактов данных.

В этой статье мы рассматриваем два принципа: «Данными владеет только владелец» и «Локальность данных». Понимание принципов, понимание возможностей проектирования доступов к данным позволит Вам спроектировать устойчивые и надежные системы. 

Читать далее

ООП для управления состоянием во Vue

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

Чувак, уже есть Pinia, Pinia Colada, TanStack Query для Vue, зачем ещё один способ управлять состоянием во Vue?

Меня просто задолбало писать везде флаги отслеживания состояния для действий и делать store через фабричную функцию, как это делали наши праотцы в начале 2000-х. Запоминать зоопарк из разных composable-функций и хуков. Изучать какую-то другую систему реактивности, типа MobX, тоже не хочу. Это какой-то зашквар.

Я хочу использовать то, что есть: реактивность Vue везде, классы, методы. Хочу использовать классические шаблоны: SOLID, DDD и т.п. Хочу, чтобы Действие или запрос сами отслеживали и сообщали своё состояние. Хочу сконцентрироваться на бизнес-логике и писать меньше шаблонного кода.

И это возможно, покажу, как это работает на примере.

Погнали, если интересно

Безумие препроцессора: внедряем do-нотацию для монад из Haskell в C++

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

Добро пожаловать в чистилище препроцессора — место, где здравый смысл уступает место макросам. Сегодня мы заставим C++ притвориться Haskell-ем и внедрим do-нотацию, за которую любой адепт «чистого языка» предаст нас анафеме.

Программисты на C++ делятся на два типа: те, кто боится препроцессора, и те, кто познал сие древнее чудо с сишных времён.

Сегодня мы перейдем черту. Функциональное программирование манит своими абстракциями, но когда дело доходит до цепочек вычислений в монадах, C++ встречает нас бесконечными лямбдами и вложенностью, от которой рябит в глазах. В Haskell эта проблема решена элегантным do-синтаксисом. А что, если я скажу, что мы можем получить то же самое в C++, используя лишь тёмную магию макросов, простые шаблоны и полное пренебрежение здравым смыслом?

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

Запустить конвейер безумия

Как собрать Physical AI-конвейер на манипуляторе за 30 тысяч рублей: ROS2, LeRobot и end-to-end imitation learning

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

Вокруг Physical AI сейчас много шума, но если отбросить красивые слова, у большинства разработчиков до сих пор нет главного — воспроизводимого конвейера на реальном роботе, который можно поднять своими руками, покрутить, записать данные, обучить policy и вернуть её обратно в железо. Обычно всё рассыпается на отдельные куски: где-то есть teleop, где-то есть датасеты, где-то крутится ML-модель, но цельного ROS2-native пути от демонстрации до исполнения почти не видно. В статье вы получите решение, как собрать такой манипулятор самостояетельно и запустить все необходимые программные компоненты из open-source ROS2 пакетов.

Читать далее

Искусство просить отзывы: как легально поднять рейтинг до 4.9 и не взбесить пользователя

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

Вы открываете приложение, чтобы быстро проверить баланс или забронировать стол, и тут же получаете в лицо: «Вам нравится наше приложение? Оцените нас!». Ваша реакция? В лучшем случае - машинальное нажатие на крестик, в худшем - удаление. Моя личная боль - открываешь банковское приложение для оплаты на кассе по СБП и получаешь аж три баннера один за другим на экран. Я не хочу прямо сейчас оформить кредит, не хочу оценивать ваши продукты. Я только открыл приложение, я покупки оплатить хочу. И такое поведение если уж не каждый запуск, то каждый второй точно.

В 2026 году Apple и Google стали еще жестче фильтровать накрутки, а пользователи - еще чувствительнее к прерыванию их «флоу». Тем не менее, рейтинг 4.9 - это не магия, а математика, психология и вовремя вызванный системный метод.

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

Продолжим