Обновить
1132.75

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

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

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

Я написал алгоритм вычисления дат, который на 30–40% быстрее остальных

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

В этой статье я представлю мой завершённый очень быстрый алгоритм преобразования дат.. Он обеспечивает существенный прирост скорости, по величине сравнимый с приростом, достигнутым предыдущим самым быстрым алгоритмом (Neri-Schneider 2021) относительно его предшественника (C++ Boost). Полная реализация алгоритма на C++ выпущена как свободное и бесплатное ПО (лицензия BSL-1.0).

Алгоритм генерирует точные результаты за период ±1,89 триллиона лет, поэтому подходит для обработки полного 64-битного времени UNIX (в секундах).

Читать далее

Обзор Divoom Times Gate для любителей кастомизации

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

Привет, Хабр! На связи Владимир Туров, разработчик в Selectel. В рекомендациях одного маркетплейса мне попалось чудо китайской киберпанковой мысли — часы и по совместительству пиксельный дисплей Divoom Times Gate. Мне понравился визуальный стиль и потенциальная возможность выводить любую информацию. У часов есть свое приложение с регистрацией, что навевает грустные мысли… Вдруг часы управляются исключительно через серверы производителя? 

Я купил девайс и немного разобрался в его интерфейсах. В этой статье проведу минимальный обзор устройства и расскажу про возможности API и локального управления на примере шуточной интеграции с Baldur’s Gate 3.

Читать далее

Как я писал книгу «Python для инженерных задач»

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

Пост о том, как появилась идея написать книгу «Python для инженерных задач», и о том, как эта идея реализовывалась.

Читать далее

Трактор без тракториста: почему разработка не упрощается при наличии современных инструментов

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

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

Продолжаю делиться дискуссиями из нашего телеграм-канала Dev Q&A. На этот раз собрались поговорить о том, почему при всём богатстве инструментов — Kubernetes, CI/CD, low-code, AI-ассистенты — разработка не становится ни быстрее, ни дешевле.  Собрал ключевые мысли в статью. Получилось про три столпа эффективности, про хаос который понятнее порядка, и про то, почему скрам по книжке остановил компанию на две недели, а Waterfall принёс миллиард. 

Читать далее

10% на LLM и 90% на инженерию: как российские компании используют ИИ

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

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

Продолжаю делиться материалами живых дискуссий, которые идут на телеграм-канале Dev Q&A. На этот раз тема — выбор между open source и коммерческими LLM для корпоративных задач. Обсудили главные болевые точки: почему почти все корпоративные заказчики требуют он-прем, как узкоспециализированные модели обходят универсальные решения, насколько реален GPU-дефицит для практических задач.

Читать далее

ИИ в разработке: почему иногда «в три раза быстрее» не означает «проект раньше»

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

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

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

Читать далее

Почему рынок найма в IT ощущается все хуже? +Опрос

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

Привет, Хабр!
Я - AddRaiser, фронтендер с 6 годами опыта и геймдевелопер по вечерам :)

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

Читать далее

Изменения цен на GitHub Actions

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

GitHub только что анонсировал изменения в ценообразовании Actions. Ранее GitHub Actions имел бесплатный control plane. Это означало, что если вы использовали GitHub Actions, но запускали задачи вне GitHub-hosted runners — будь то ваши собственные машины или в вашем собственном AWS аккаунте — вы ничего не платили GitHub за эти минуты; вы платили только за вычислительные ресурсы. Теперь подход изменился. Команда Spring АйО подготовила перевод анонса команды Github.

Читать далее

Вайбкодим с плагином Kilo Code в VS Code и IntelliJ IDEA из России

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

В новой статье от команды AI for Devs разбираемся, как организовать вайб-кодинг с плагином Kilo Code в VS Code и IntelliJ IDEA из России. Пошагово настраиваем Kilo Code через RouterAI, подключаем Claude, GPT, DeepSeek и другие модели, разбираем роли агента, diff-патчи, правила проекта и нюансы работы с контекстом.

Читать далее

1000 и один способ угробить программу из-за гонки данных в Go

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

Команда Go for Devs подготовила перевод статьи о самых коварных и трудноуловимых гонках данных в Go. Автор показывает на реальных примерах, как даже опытные разработчики легко попадают в ловушки конкурентности: от случайных захватов переменных в замыканиях до неправильного срока жизни мьютексов и скрытых гонок в стандартной библиотеке.

Читать далее

Анатомия performance-critical C++ кода на примере ECS

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

Всем привет! Это продолжение статей про мою ECS with Sectors в моём движке Stellar Forge!

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

Статья будет полезна всем, кто пишет performance-critical код на C++: геймдев, HFT, обработка данных, embedded.

Читать далее

Как мы делаем курсы: взгляд программного эксперта Яндекс Практикума

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

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

Меня зовут Вова Тарасов, я программный эксперт курса «Мидл Java‑разработчик» в Яндекс Практикуме, в прошлом — разработчик в Яндекс Маркете. В этом материале я расскажу, как мы создавали курс, какую роль в этом процессе играл я и почему я рекомендую поучаствовать в создании учебных программ каждому, кто давно в разработке и верит в свои силы.

Читать далее

AsmX G3 v30-rev1.0: мы открыли новую эру низкоуровневого программирования

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

AsmX G3 v30.0.0-rev1.0 — крупное архитектурное обновление, которое делает ассемблер не «инструментом 90-х», а полноценным современным языком системного программирования. Главные изменения: пакетная сборка --multiboot с Supervisor, атомарная очистка --multiclean, поддержка изменяемых данных (.data), новые ISA-инструкции (включая inc/dec и movsxd) и выразительный синтаксис функций с экспериментальной поддержкой возвращаемых типов.

Одной командой теперь можно собрать загрузчик, ядро, модуль ядра и динамическую библиотеку — и Supervisor гарантирует консистентность и изолированность ошибок в подзадачах. Для разработчиков это означает: CI в 3–5 строк вместо громоздких Makefile, меньше рутины и полная управляемость сборки.

Языковые улучшения (честные строки, @syscall, @fn share, @fn static, полноценная .data) переводят AsmX G3 в категорию «язык для реальных проектов»: библиотеки .so, production-модули .ko и микро-ОС — всё это теперь удобно писать, собирать и отлаживать на чистом ассемблере.

Если вы работаете с ядром, драйверами или пишете рантаймы, v30 — релиз, который стоит испытать прямо сейчас: меньше хака, больше гарантий, полный контроль над железом — и при этом современный синтаксис.

Читать далее

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

Ускоряем LLM по максимуму. Как я создал кросс-платформенный Flash Attention с поддержкой Turing+ архитектур и не только

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

На сегодняшний день трансформеры правят балом хайпа в мире машинного обучения, особенно после появления ChatGPT и ему подобных языковых моделей. Это стало возможным благодаря лежащему в основе их архитектуры механизму внимания (attention), однако он же и является слабым местом с точки зрения производительности и потребления памяти. Хотя в связи с этим и была разработана изящная концепция Flash Attention (Tri Dao), её существующие реализации имеют ряд ограничений.

Поэтому представляю вашему вниманию первую и единственную open-source реализацию Flash Attention 2 на Triton с поддержкой Linux и Windows, Turing-Blackwell архитектур (теперь можно работать в Google Colab и Kaggle), гомо и гетерогенных кластеров, опциональным детерминизмом, а также возможностью ручной кастомизации ядер (kernels) для более гибкой настройки под каждую GPU архитектуру отдельно. Более подробно о том как это устроено и не только — далее в статье.

Читать далее

Await своими руками в C#

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

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

Многим кажется, что await работает только с Task и ValueTask, но на самом деле язык позволяет сделать любой объект ожидаемым — нужно лишь реализовать определённый паттерн.

Итак, зачем нужен свой await? Бывают случаи, когда вам хочется написать асинхронный метод, но результат приходит не из готового Task или таймера. Например, ждёте какое-то событие, изменение файла, считывание из сокета, или просто хотите встроить задержку без запуска Task. Когда вы пишете await expr, компилятор в глубине понимает так: берётся результат expr.GetAwaiter(), затем вызывается awaiter.IsCompleted. Если false, он подписывается на awaiter.OnCompleted, когда завершится, и потом берёт awaiter.GetResult().

Читать далее

11 Python-скриптов, которые изменят вашу рутину

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

Готов поспорить, вы кодите на Python достаточно давно, чтобы чувствовать себя уверенно... ровно до того момента, как открываете терминал в понедельник утром и думаете: «Должен же быть способ получше, чтобы автоматизировать весь этот бардак».

Хорошие новости: он есть.

После 4 с лишним лет создания автоматизаций, отладки катастроф, которые я сам же и устроил, и написания скриптов, которые каким-то образом выставляют меня кибер-волшебником в глазах друзей, далёких от Python, я отобрал 11 чрезвычайно практичных и редких Python-скриптов, которые сделают ваш ежедневный рабочий процесс гладким, как свежеустановленный дистрибутив Linux.

Поехали.

Читать далее

Как «приватные» VPN-расширения слили переписки 8 миллионов пользователей с ChatGPT и Claude

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

Команда AI for Devs подготовила перевод резонансного расследования о том, как "приватные" VPN-расширения на самом деле зарабатывают на ваших ИИ-переписках. 8 миллионов пользователей, Featured-бейджи от Google и Microsoft, полный доступ к ChatGPT, Claude и Gemini — и всё это утекает дата-брокерам. История о том, почему обещания безопасности в браузере стоит читать особенно внимательно.

Читать далее

Roadmap.sh: дорожные карты для изучения IT, 346k звёзд на GitHub

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

В 2013-м я получил свою первую вакансию джуна. Требования: PHP, MySQL, jQuery. Всё. Я открыл tutorial, за выходные накодил todo-лист, через месяц уже чинил баги в проде.

Вчера смотрел вакансию для джуна. Требования занимали два экрана. Node.js ИЛИ Python ИЛИ Go. React ИЛИ Vue ИЛИ Angular. PostgreSQL + Redis + MongoDB. Docker обязательно. Kubernetes — плюсом. GraphQL знание приветствуется. Плюс микросервисы, CI/CD, облака...

Я посчитал: чтобы формально соответствовать этой вакансии, нужно изучить минимум 15 технологий. На поверхностное изучение каждой — месяц. Итого больше года непрерывной учёбы. Для позиции джуна.

А что сейчас?

Сейчас — это Node.js, Deno, Bun для JavaScript-бэкенда. Go, Rust, Elixir для хайлоад. Python с FastAPI, Django, Flask. Kotlin, Java, Scala для enterprise. Плюс Ruby, PHP (еще жив), C#/.NET... И это только языки и рантаймы. А еще базы: PostgreSQL, MySQL, MongoDB, Redis, Cassandra, ElasticSearch. Очереди: RabbitMQ, Kafka, NATS. Контейнеризация: Docker, Kubernetes, Helm. CI/CD: GitLab, Jenkins, GitHub Actions, CircleCI. Облака: AWS, GCP, Azure.

Бедные джуны. Хотя нет — бедные мы все. Даже опытные разрабы теряются в этом океане, когда делают шаг в сторону. Зоопарк технологий растёт экспоненциально. И вопрос "с чего начать?" и "куда двигаться?" превращается в настоящий паралич выбора.

Читать далее

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

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

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

Теперь давайте поговорим про оставшиеся этапы нового рабочего процесса.

Читать далее

Kак мы разработали новую модель автодополнения кода в GigaCode

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

Привет, Хабр! Меня зовут Дмитрий Бабаев, я руковожу R&D в GigaCode — это ИИ‑ассистент для разработчиков от Сбера. Сегодня расскажу про очередной этап развития наших кодовых моделей. Недавно мы выпустили новую версию inline‑модели автодополнения кода (code completion). Это первая в мире MoE‑модель, созданная специально для этой задачи, мы полностью разработали и обучили её с нуля.

Читать далее

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