Обновить
1024K+

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

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

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

Кастомная галерея на iOS: от лага на 60 000 фото до lazy-загрузки и Combine

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

Если вы когда-нибудь разрабатывали мессенджер, то наверняка сталкивались с задачей выбора фотографий и видео для отправки. На первый взгляд кажется, что Apple предоставляет всё необходимое: UIImagePickerController, PHPickerViewController. Но стоит только копнуть чуть глубже, и оказывается, что стандартные компоненты не покрывают и половины того, что нужно в реальном продукте.

Читать далее

Пишем игру для Commodore-64 в 2020-е: ретроспектива

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

В начале 2021 года я взялся написать игру для компьютера, которому тогда было уже 40 лет — речь о его благородии Commodore 64. Релиз игры Cab Hustle наконец состоялся осенью 2022 года, после того, как я в течение нескольких месяцев эпизодически добивался по ней некоторого прогресса. В начале 2023 года я также выпустил версию этой игры для ПК.

Читать далее

Инженер будущего не пишет код. Он строит обвязку для агентов

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

OpenAI 5 месяцев строили продукт без единой строчки ручного кода — миллион строк, 1500 PR, 7 инженеров. Разбираю их подход «harness engineering» и что из этого можно применить уже сейчас: как организовать AGENTS.md, почему скучные технологии побеждают, и зачем нужна архитектура с первого дня.

Читать далее

Автоматизированный анализ графита по ISO 945: архитектура и инженерная реализация модуля

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

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

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

Определение чугуна

Чугун представляет собой сплав железа с углеродом, где содержание углерода превышает 2,14% (обычно от 2,5% до 4,5%). Благодаря своей жидкотекучести, малой усадке и относительно низкой стоимости, чугун является одним из основных конструкционных материалов в машиностроении, энергетике и строительстве.

При анализе чугуны разделяют по состоянию углерода и форме графитовых включений, что определяет их физико-механические свойства:

Читать далее

ТОП-10+1 «Золотых правил» оптимизаций Java 21+: как заставить JIT петь, а GraalVM — летать

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

Почему ваша Java-система буксует там, где должна летать? Мы привыкли доверять магии JVM, но в мире Java 21 и Native Image правила игры изменились. От микро-оптимизаций байт-кода до радикальной смены парадигмы с Scoped Values – разбираем 11 “золотых правил”, которые заставят JIT петь, а ваш бинарник – стартовать за миллисекунды. Никакой “воды”, только хардкор, регистры процессора и “голоса” компиляторов внутри вашего кода.

Работая с кодом, я не раз ловил азарт: а как этот метод можно ускорить ещё? Какую гайку подкрутить, чтобы JVM не просто работала, а буквально летела? Что изменить в архитектуре, чтобы Native Image стал ещё компактнее, а холодный старт – ещё быстрее?

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

Это не просто советы по стилю кода. Это “10+1 Золотых правил оптимизации Java 21+”.

Это те рычаги, которые заставляют JIT-компилятор петь, а GraalVM – генерировать бинарники с хирургической точностью.

Приготовьтесь! Мы начинаем оптимизировать!

Начать оптимизацию!

Java на диете: 45 МБ RAM и старт за 1.4 с. Смертный приговор классическим JVM?

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

Когда я впервые увидел, как мой сервис на Spring Boot с Postgres, MongoDB и Kafka «съел» всего 45 МБ оперативной памяти, я почувствовал азарт. Азарт инженера, который нашёл способ обмануть систему. Я был заряжен Axiom NIK: его эффективностью, его агрессивной компиляцией и тем, как он превращает «жирный» корпоративный стек в изящный бинарник.

Многие годы нам вдалбивали: «Java — это прожорливо!». Нам говорили: «Выдели 2 ГБ под микросервис, иначе JIT не прогреется».

Забудьте об этом! Я провёл R&D, который ставит точку в спорах о прожорливости Java!

Это не просто тесты. Это вскрытие!

Смотреть результаты вскрытия

Скормил нейросети 40 статей ПИК с Хабра: RAG-бот на GigaChat для BIM без опыта в разработке

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

Меня зовут Владислав Пономарев, я архитектор, проектирую дома. Ещё в магистратуре, 10 лет назад я занимался BIM-внедрением в проектной организации в Сочи. Это были Revit, Civil 3D и другие инструменты. Делал это в рамках своей темы магистерской работы. Потом переключился на архитектуру в частном домостроительстве, где больше изучал практические вопросы проектирования и философию архитектуры, ее эстетические качества. Но любовь к более сложному BIM осталась. С энтузиазмом продвигал тему BIM, когда до массового внедрения в РФ было еще далеко.

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

Читать далее

Python уже не торт? Как и почему меняются приоритеты разработчиков

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

Последние годы Python был вроде универсального инструмента: на нем писали всё — от мелких скриптов до огромных ML-систем, а его первое место в рейтингах воспринималось как норма. Но к началу 2026-го заметно, что динамика меняется. Скорее всего — вслед за приоритетами. Уходит время, когда удобство и низкий порог входа перекрывали любые вопросы к производительности. Компании всё чаще смотрят на отдачу — сколько ресурсов съедает система и как ведет себя под нагрузкой. Давайте посмотрим, что там с местом Python’а в рейтингах, и оценим причины. 

Читать далее

Транслятор РПГ М-220. Рукописи не горят

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

Со мной опять произошла какая-то мистика.

С тех пор как начал писать  серию статей под названием «Пятьдесят лет по стезе программирования», особенно когда готовил третью статью, мне хотелось найти рукопись с исходными кодами, написанного мною транслятора с языка РПГ (RPG) для ЭВМ М-220:

Читать далее

Интеграция утилиты Artistic Style в скрипт сборки прошивки

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

Есть утилита для автоматического выравнивания отступов в исходных кодах. Называется astyle.exe.

В этом тексте я покажу, как работать с утилитой Astyle.

Читать далее

Как стандарты W3C и блокчейн формируют цифровое доверие в России

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

Технологии децентрализованной идентификации и верифицируемых данных перешли от концепций к промышленной эксплуатации. И ключевой драйвер этого перехода – не отдельные продукты или вендоры, а стык между международными стандартами (прежде всего W3C) и адаптированными под наше регулирование блокчейн-решениями. Статья объясняет, как эти два слоя взаимодействуют на практике, где уже применяются и какие вызовы остаются на пути массового внедрения.

Читать далее

Нужна ли программисту пассионарность

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

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

Читать далее

Как мигрировать кусочек Яндекс Такси с PostgreSQL на YDB и перестать считать подключения к шардам

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

Привет, Хабр! Меня зовут Игорь Березняк, и мы с командой делаем Техплатформу Городских сервисов Яндекса. Я уже писал на Хабре про архитектуру платформы, рассказывал на «Хайлоаде» (и на Хабре) про шардирование и миграцию на YDB.

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

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

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

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

Читать далее

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

Нет времени на тесты — через неделю релиз

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

«На автотесты нет времени — релиз через неделю!» говорит зарубежная компания со штатом 500+ человек, зарплатами 5 000 €, баг-репортами по ISO. Разбираю, откуда берётся эта фраза, почему разработчики не могут объяснить бизнесу очевидное.

Читать далее

Литания: создаем свой язык программирования с лексером, парсером и интерпретатором

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

В наше время программирование стало очень доступным из-за развития инструментов и языков. Написать «привет, мир» может практически каждый, а количество фреймворков для JavaScript уже воспевается в шутках. Теперь, чтобы выделиться и впечатлить друзей и коллег, нужно спускаться глубже. Придумаем свой язык шуточный программирования! 

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

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

Читать далее

Запуск DOOM на Siglent SDS5000X

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

Приветствую! В этой статье я расскажу, как мне удалось запустить DOOM на осциллографе Siglent SDS5034X. Для этого пришлось найти шелл (вендор получил мой репорт), адаптировать систему ввода игры под энкодеры на лицевой панели и вывести звук на встроенную «пищалку».

Читать далее

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

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

Сегодня утром я прошёл лайв-кодинг в одну англо-продуктовую компанию. Написал ноль строчек кода руками. Задеплоил результат на свою VPS прямо во время звонка. Интервьюер сказал: "It's so wonderful just how much everything has changed." А неделю назад другая компания не зачла мне тестовое, потому что я забыл про запрет AI.

20+ собесов за последние месяцы. Фронтенд, бэкенд, фулстек, AI-инженер. Python, TypeScript. Разные рынки, разные компании, совершенно разное отношение к одному и тому же инструменту. Я не теоретик, который рассуждает о будущем. Я прямо сейчас хожу на эти собесы и вижу, как рынок разламывается пополам.

Читать далее

Вайбкодинг для ленивых: читаем видео на YouTube

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

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

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

Погрузится в немного ироничный вайбкодинг

Мелочи ИИ-шной жизни. Как GitHub Copilot Hook может помочь совершенствовать ваш английский параллельно с вайбкодингом

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

Вы, читатель, как и автор, тоже досадуете, когда в промтах проскакивают досадные опечатки или грамматические конструкции, которые заставляют даже терпеливую LLM «задумчиво» переспрашивать: «What do you mean?»

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

Читать далее

Как не поехать кукухой и всё успеть: выстраиваем рабочую систему из привычек

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

Уже вечер, ты активно пишешь код. Тревожность вместе с тобой. Утром на дейли сказал, что добьёшь таску: да она не сложная, каких‑то 2 стори поинта. Но вот вечер, и ты точно не успеваешь. Завтра на дейли спросят статус задачи, а ты — не сделал. Да, ты общался с архитектором по решению, отвечал на вопросы поддержки и помогал решать проблемы с тестовым окружением. Ещё был синк с другой командой, помог решить проблему с локальным окружением другому разработчику и готовил контракт для фронта для будущей таски. И на обед ты не сходил. Но кого это заботит, если твоя задача все ещё в InDev? Точно придётся посидеть ещё пару часов ночью, чтобы закрыть должок.

Или другой вариант. Ты — менеджер. У тебя за день от 5–6 встреч. Всё нужно решить. Ну и текучка не отпускает: нужно решить конфликт в команде «А», есть запрос на согласование обучения для Иванова, нужно ещё согласовать технические работы и выдать пару доступов. А ещё Сергей из команды «B» недостаточно открыто ответил на вопрос своего коллеги, и тут просят твоего внимания. И, кстати, ещё нужно запланировать изменение процесса и предложить расчёт новой метрики.

Знакомо?

Тогда тебе точно нужен курс по time management ряд привычек, которые каждый может внедрить в свою работу.

Читать далее