Все потоки
Поиск
Написать публикацию
Обновить
1044.73

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

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

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

Как я, не разработчик, читаю туториал, который ты, разработчик, написал для меня

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

«Привет! Я разработчик. Для начала расскажу о своём важном для этой статьи опыте: я пишу код на Hoobijag, иногда на jabbernocks и, разумеется, на ABCDE++++ (но никогда — на ABCDE+/^+; вы что, шутите?); мне нравится работать с Shoobababoo и иногда с клептомитронами. Я устроился на работу в Компанию1 и занимаюсь там кодом для Shoobaboo, поэтому перешёл к использованию Snarfus. Давайте разбираться!

Читать далее

Новости

PostgreSQL 18: новый асинхронный I/O ускоряет запросы до 3-х раз. Что происходит?

Время на прочтение5 мин
Количество просмотров15K

В мире баз данных, где каждая миллисекунда на счету, а объемы информации растут как на дрожжах, выход PostgreSQL 18 стал настоящим подарком для разработчиков и администраторов. Это не просто косметический апгрейд, а глубокая перестройка подкапотных механизмов, от облачных хранилищ до высоконагруженных OLAP-систем. Давайте разберемся, что там в этом релизе появилось и/или изменилось.

Читать далее

Транзакционная работа с топиками: архитектура и сравнение решений в Apache Kafka и YDB Topics

Время на прочтение14 мин
Количество просмотров3.9K

Привет, Хабр! Меня зовут Алексей Николаевский, и мы с командой делаем СУБД Яндекса. С 2013 года в Яндексе использовали Kafka для потоковой передачи данных. Но Kafka со временем перестала справляться с растущими объёмами, и в 2017 году мы перешли на своё решение.

Брокер сообщений YDB Topics во многом вдохновлялся Kafka: в нём также есть топики, партиции и аналогичные способы работы с данными. Но есть и существенные отличия, о которых в конце прошлого года я рассказал на московской конференции HighLoad. Под катом — адаптированная для Хабра статья по мотивам этого доклада: про архитектуру транзакций в обеих системах и интересные для разработчиков детали и нюансы, которые мы обсуждали на конференции.

Читать далее

Почему я не верю в ИИ-агентов в 2025 году, несмотря на то, что сам их разрабатываю

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

Команда AI for Devs перевела статью, в которой автор делится прогнозами о будущем ИИ-агентов в 2025 году. Его выводы: несмотря на шумиху, «автономные агенты» столкнутся с экономическими и техническими барьерами. Почему текущий подход к архитектуре агентов не сработает и какие методы действительно приносят результат — читайте в статье.

Читать далее

Издательство «БХВ» теперь на Хабре. С чем мы к вам пришли

Время на прочтение4 мин
Количество просмотров8.6K

Приветствуем, коллеги!

Вы читаете первую статью от имени издательства «БХВ» (BHV) из Санкт-Петербурга, которое наконец-то решило официально обосноваться на Хабре и попробовать систематизировать нашу работу на этой великолепной платформе, объединив рекламный контент, тизеры и спойлеры в корпблоге. Меня зовут Олег Сивченко, я тружусь в БХВ менеджером проектов в области компьютерной литературы 4+ года, одновременно работаю в редакции Хабра, где веду небесспорный, но очень интересный научно-популярный блог @OlegSivchenko и блог с IT-переводами @Sivchenko_translate Кроме меня в команде БХВ есть ещё один маститый хабровчанин, пишущий под псевдонимом Валентин Холмогоров @Holmogorov — ведущий редактор журнала «Хакер», ранее работавший в отрасли кибербеза, руководил командой технических писателей. Так что, феномен хаброблога и хабрааудитории для нас не в новинку. Далее — немного о нашем издательстве.

Читать далее

Проблема, о которой вы наверняка не задумывались: print(.1+.2)

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

Как следует отображать на экране результат деления 3.0 на 10.0 ? Сколько цифр следует вывести, если пользователь не указал точность?

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

Давайте продолжим разговор о самой неоптимизированной в мире библиотеке эмуляции плавающей точки при помощи целочисленной арифметики.

Это вторая статья из цикла «Санпросвет о плавающей точке»:

1. Компьютеры и числа

2. Вывод чисел с плавающей точкой на экран <- вы тут

Читать далее

В поисках идеального терминала

Время на прочтение8 мин
Количество просмотров21K

Сколько часов в день вы проводите в терминале? Часто задумываетесь о том, что какую-то операцию можно сделать быстрее? Любите привлекать внимание коллег необычным видом своего рабочего стола? Сегодня я решил собрать не просто интересные приложения, позволяющие повысить продуктивность работы, но и те, которые однозначно вызовут внимание окружающих и вопросы в стиле «а что это за софтина такая?».

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

Читать далее

Санпросвет о плавающей точке, статья первая: компьютеры и числа

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

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

Оказалось, что форумы кишат людьми, которые не до конца понимают, как компьютеры манипулируют числами. Например, мемасик с КПДВ я стянул с реддита (перечеркнул его я). Кто-то настолько был напуган страшными ошибками округления чисел с плавающей точкой, что даже смешную картинку смастерил. Только вот проблема в том, что 0.5 + 0.5 в точности равно 1.0.

Таким образом, я решил засучить рукава, и изобрести велосипед. То есть, написать самую неоптимизированную C++ библиотеку для эмуляции IEEE754 32-битных чисел с плавающей точкой при помощи исключительно 32-битной целочисленной арифметики. Библиотека уложится в несколько сотен строк кода, и в ней не будет никакого битхакинга. Задача написать понятный код, а не быстрый. А заодно хорошенько его документировать серией статей.

Итак, этим полукреслом мастер Гамбс начинает новую партию мебели, или статья первая: поговорим о числах и компьютерах.

Читать далее

Я отклоняю комиты с использованием кучи и прошу коллег переписать такую логику

Время на прочтение11 мин
Количество просмотров58K

Хочу поделиться своим опытом разработки крупных игровых проектов на C++, где производительность и стабильность — это не просто приятные бонусы, а абсолютно естественные требования к разработке. За годы работы над движками и играми я понял, что подход к управлению памятью очень сильно влияет на весь проект. В отличие от многих приложений - игры, особенно большие, часто работают часами без прерываний и должны поддерживать стабильный фреймрейт и отзывчивость. Когда проседание fps или фриз происходит на глазах у сотен тысяч игроков, вам уже никто не поможет — ущерб уже нанесен, а в steam полетели отзывы о кривизне рук разработчиков.

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

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

Читать далее

Оценка сроков выполнения задач: покоряем закон Хофштадтера

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

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

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

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

Читать далее

Одноразовый вейп в качестве веб-сервера

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

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

Предыстория

Уже пару лет я собираю коллекцию одноразовых вейпов, полученных от друзей и членов семьи. Поначалу я только извлекал аккумуляторы для «будущих» проектов (это точно не синдром Плюшкина), но в последнее время одноразовые вейпы стали гораздо более продвинутыми. Не хотел бы я быть юристом, которому придётся доказывать, что устройство с разъёмом USB C и перезаряжаемым аккумулятором можно классифицировать, как «одноразовое». К счастью, в ближайшее время я не планирую подаваться в юриспруденцию.

В прошлом году я разбирал одну из этих технологичных сосок для взрослых и заметил нечто любопытное: вместо обычной чёрной капли, которой заливают ASIC (Application Specific Integrated Circuit), я увидел небольшую интегральную схему с маркировкой «PUYA». Не буду винить читателей, если это название не вызвало у вас того же восторга, что и у меня — большинство людей никогда его не слышало. Эта компания больше всего знаменита своими флэш-чипами, но впервые я узнал о них из поста Джея Карлсона о самом дешёвом флэш-микроконтроллере. Это довольно мощные крошечные микроконтроллеры ARM Cortex-M0+.

За последний год у меня скопилось довольно много таких одноразок с PY32; это были разные модели вейпов одного производителя. Я не буду бесплатно рекламировать табачный бренд, но выражу благодарность проектировщику за маркировку на отладочных контактах!

Читать далее

Вам больше не нужен JavaScript

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

Команда JavaScript for Devs подготовила перевод статьи о том, как CSS и HTML могут заменить значительную часть JavaScript. Автор делится взглядом на веб как на искусство, показывает возможности современных фич CSS — от вложенности и @starting-style до динамических viewport-единиц, — и доказывает, что сайты могут быть быстрыми, красивыми и интерактивными даже без JS.

Читать далее

Локальные LLM модели: обзор и тестирование

Уровень сложностиСредний
Время на прочтение33 мин
Количество просмотров24K

В ★5УГЛОВ мы часто работаем с языковыми моделями — как облачными, так и локальными. И если про онлайн‑сервисы знают все, то локальные LLM до сих пор остаются недооцененным инструментом. Я решил поделиться личным опытом: какие модели можно запускать прямо на ПК, чем они полезны и зачем их вообще использовать в реальных проектах.

Большие языковые модели (Large Language Model, LLM) уже давно не являются громоздкими программными продуктами, закрытыми от пользовательских доработок и требующими огромных вычислительных мощностей. Многие ИИ можно скачать и запустить на обычном компьютере без интернета. Популярны так называемые «дистиллированные» модели — сжатые версии основных нейросетей, имеющие меньше параметров. Они требуют меньше ресурсов и могут работать даже на не самых мощных настольных ПК или ноутбуках. За последнее время локальные ИИ заметно улучшились: они стали быстрее, стабильнее и качественнее. Если раньше многие из них стремились отвечать по‑китайски (если явно не указать язык), то сегодня выбор значительно шире и работать с ними удобнее. Попробуем оценить самые популярные на разных задачах и выбрать лучшую.

Читать далее

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

DIY Open Source принтер. Часть 0

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

Привет, Хабровчане! Этот цикл (надеюсь) статей будет посвящён моему пути в создании своего собственного решения по струйной печати. Это будет что-то вроде блога или дневника разработчика в котором постараюсь изучить как же всё таки работает печатающая головка у принтера и как ей можно управлять с помощью микроконтроллера. А также нас ждёт интригующий ответ на вопрос: "Если ли место DIY и OpenSourse в мире струйной печати".

Читать далее

Механизм запуска процесса в Linux

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

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

Изучил я этот механизм, когда разрабатывал Zapper — инструмент Linux, удаляющий все параметры командной строки из любого процесса без прав root.

Читать далее

Модернизация древнего драйвера Linux с помощью Claude Code

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

В качестве одного из своих увлечений я помогаю людям восстанавливать данные со старых ленточных кассет, например QIC-80, которые в 90-е годы часто применялись для резервного копирования. Ими пользовались отдельные люди, компании, операторы досок объявлений и не только. К ленточным кассетам я испытываю очень тёплые чувства. Есть нечто особое в том тактильном ощущении, которое возникает, когда держишь эту кассету в руках. Нечто такое, что делает сам процесс её использования приятным несмотря на все огрехи дизайна, которыми славилась технология QIC. Причём, если вникнуть в процесс и воссоздать все необходимые условия, то данные на этих лентах, даже спустя столько времени, вполне можно восстановить.

Читать далее

Я — идеальный программист

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

Я — идеальный программист. Не помню себя таким, чтобы не хотел быть программистом. Задачки с двумя звёздочками, уроки информатики, олимпиады, домашний ПК раньше, чем у остальных — всё шло к моей профессии. Я был твёрдо убеждён в необходимости базового математического образования и получил его. Для меня программирование — это не ремесло, а искусство, помноженное на математику. Каждое утро я читаю Хабр и спецификации языков программирования. Пока чищу зубы, пролистываю профессиональные телеграм‑каналы.

Читать далее

DOOMQL: DOOM-подобный многопользовательский шутер на чистом SQL

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

Недавно я набрёл на шедевр Патрика — клон DOOM, основанный на DuckDB-WASM и работающий в браузере. Прочитав о нём, я решил  довести  эту великолепную идею до логического завершения: написать многопользовательский DOOM-подобный шутер целиком на SQL. При этом всю тяжёлую работу хотел сделать через базу данных CedarDB. Отлучившись с работы в месячный отпуск по уходу за ребёнком (бессонных ночей хватало), я попытался сделать именно это.

Вот вам тизер DOOMQL:

Читать далее

Post-PHP эра: куда движется веб-разработка?

Время на прочтение6 мин
Количество просмотров20K

Привет, хабровчане! Я Алиса — тимлид в e-commerce-агентстве KISLOROD, по базовой профессии — сеньор PHP-разработчик с десятилетним стажем. И да, спойлер: PHP не только жив, он бодро бегает марафоны.

По данным W3Techs, PHP работает на более чем 76% серверов, где известен язык бэкенда. Последние релизы стабильно приносят +20–25% производительности на версию — на фоне вечного рефрена «PHP умер». Удобно хоронить то, чьи обновления не открывал с 2012-го, верно? Давайте разбираться.

Читать далее

История Rust: от стартапа до продакшена

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


Вокруг Rust в Linux-сообществе до сих пор не утихают жаркие споры. Кто-то считает его спасением, а кто-то — проклятием. В дебатах сталкиваются две позиции: сторонники видят в нем ключ к безопасности и модернизации ядра, противники опасаются усложнения и нарушения традиционных подходов. 

Давайте разберем, как он появился, какие точки роста сделали его рабочим, где он уже побеждает и почему вы его недооцениваете. А также подскажем, как Rust-разработчикам сделать вклад в развитие реального open source-проекта. Детали под катом.

Читать далее
1
23 ...

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