Обновить

Все потоки

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

А нам точно нужны code agents?

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

Размышления на тему, почему LLM в роли основного генератора кода ломает ревью, когнитивную нагрузку и кто ответственен за код?

Читать далее

Новости

Рука без автора — анатомия шестиосного промышленного манипулятора

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

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

Если коротко, то никто. Точнее, никто конкретный.

В запястье этой роборуки скрыта передача, которую в 1955 году придумал инженер американской обувной компании.В основании стоит редуктор, запатентованный немецким инженером, который еще до Второй мировой продал лицензию в Японию. В контроллере крутится математика, которую формализовал стэнфордский ученый в 1968-м для защиты диссертации. На в локте используется балансир, который крановщики знали еще в XIX веке, а в каждом суставе — инвертированный тормоз, изобретение лифтостроителей 1900-х. Эти люди не были знакомы, и все же их изобретения работают вместе, будто созданы друг для друга.

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

Читать далее

А мы и не заметили, или о том, какие ИИ живут в вашем кармане

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

Один разработчик запустил 400B-модель на iPhone 17 Pro. Еще раз, 400 млрд параметров, правда с оговоркой, сделал он это через стриминг весов с SSD прямо в обход оперативки. И она работала. Выдавала 0,6 токена в секунду — это примерно слово в пару секунд, с задумчивыми паузами, как диалап в 2003. Технически бесполезно, на практике возможно (но ведь запустилась же).

И вот еще из неочевидного. Прямо сейчас, пока вы читаете это в Chrome на десктопе, в ваш браузер уже скачана языковая модель на несколько миллиардов параметров, и любая открытая вкладка может ее дернуть без спроса. В вашем телефоне крутится Apple Intelligence? Поздравляю, вы обладатель ИИ в вашем смартфоне. В общем, маленькие языковые модели уже среди нас.

Так давайте разберемся, что это за модели на 1–7 млрд параметров, кто их делает, как они запускаются на телефоне, в браузере, и где вас ждет подвох, которого нет ни в одной таблице с бенчмарками.

Читать далее

Doom работает везде, даже на Neo Geo

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

Примерно месяц назад мы сняли видео [а на Хабре опубликовали его перевод] о сложности реализации игры наподобие Doom на консоли Neo Geo. Причина заключается в том, что у Neo Geo нет концепции буфера кадров, то есть всё, что мы видим на экране Neo Geo, рендерится, как спрайт. Также в этом видео я рассуждал о концепции движка рейкастинга, который вполне неплохо работал на Neo Geo. Придуманная мной концепция, по сути, заключалась в создании плоской сетки блоков и испускании одного луча на каждый вертикальный столбец. Разработчик Sabino даже предпринял любопытную попытку создать на этом движке игру в стиле Doom.

Но, разумеется, рейкастер и движок уровня Doom — это далеко не одно и то же. Рейкастер может работать только с сеткой, то есть с квадратными блоками, а значит, все объекты на карте должны иметь одинаковую высоту, а стены находиться под прямыми углами. Doom же устроен сложнее: в нём есть стены, располагающиеся под любыми углами, помещения с разной высотой полов, лестницы, лифты и двери. Ничто подобное невозможно реализовать в простой игре с рейкастингом. Даже в проекте Sabino поворот за угол выглядит не особо естественно. В конечном итоге, мы имеем дело с сеткой из квадратных блоков, поэтому в таком движке с рейкастингом невозможно реализовать что-то наподобие уровня E1M1, The Hangar.

Однако у этой саги «Doom на Neo Geo» недавно появилось несколько продолжений, и я в восторге от того, куда всё это может привести. Как я упоминал в последующем видео, люди действительно серьёзно принялись за решение этой задачи. У нас появились новые подходы к реализации Doom на Neo Geo.

Читать далее

Ходовые вакуумметры. Часть 2. Манометры термопарные

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

Приступив к сборке откачного поста [1] для изготовления любительских электровакуумных и ионных (газонаполненных) приборов в домашней мастерской [2], неизбежно столкнулся с выбором средств измерения остаточного давления в «системе». Делом, как оказалось, мудрёным, но и прелюбопытным. Прямые измерения отрицательного давления, как, например, в манометрах барометрических [3] и компрессионных — процесс небыстрый, громоздкий и хлопотный, часто требующий ртуть и немало. Применять подобные средства измерения, например, U-манометры c маслом, разумно только для градуировки рабочих вакуумметров косвенного измерения — где используется какой-то из физических эффектов связывающий давление и некую электрическую (не всегда и не везде) величину. Например, в манометрах сопротивления (Пирани) [4], ухудшение вакуума в колбе лампы-преобразователя увеличивает потери тепла нагретой током металлической нити. Регистрируемая величина — изменение сопротивления нити или количество затраченной на нагрев энергии. Рассмотрим же ещё один тип очень распространённых манометров — тепловые термопарные — как включаются, как работают, особенности, ретро и современные заводские варианты, измерительные блоки для них.

Читать далее

Оживляем раритетный трамвайный информатор на магнитной ленте

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

Приветствую всех!

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

И вот, спустя много лет поисков я всё-таки нашёл один такой аппарат. Как он устроен и как работает? Сейчас и узнаем...

Press F1 to continue

Я хотел просто посмотреть фильм, а собрал сеть из OpenWrt-роутеров почти как в ЦОД

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

Репозиторий проекта: https://github.com/karen07/openwrt-mesh-builder

openwrt-mesh-builder почти полностью автоматизирует построение routed-сети из OpenWrt-роутеров и Ubuntu/VPS-серверов: с leaf/spine-топологией, несколькими exit-узлами, динамической маршрутизацией Babel, point-to-point WG/AWG-линками, IPIP data-plane, policy routing, access-подсетями, split DNS и автоматическим переключением при отказах.

Вся сеть описывается в одном config.json. На его основе проект рассчитывает топологию и адресацию, генерирует конфигурации роутеров и серверов, ключи, access-клиентов, firewall-правила, настройки DNS, DHCP и Wi-Fi, собирает готовые образы OpenWrt, устанавливает их на роутеры и развёртывает exit-серверы.

То есть почти весь путь — от описания сети до её развёртывания и последующих обновлений — автоматизирован.

Читать далее

Архитектура «Гегелло», или как мы создали собственную платформу для анализа состояния оборудования

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

Всем привет! Меня зовут Юрий, я руковожу группой прикладной разработки в департаменте мультивендорной поддержки YADRO. Мы занимаемся развитием собственного сервисного инструмента «Гегелло», который позволяет работать с диагностическими данными различного оборудования и визуализировать проблемы в системах. 

Какую задачу решает платформа, почему это не просто «Grafana у нас дома» и что в основе архитектуры «Гегелло» — читайте в статье.

Читать далее

Про бритьё

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

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

И это безусловно — бритьё! :-)

Читать далее

Инструкция по секвенированию собственной ДНК в домашних условиях

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

Я уже пять раз секвенировал свой геном с помощью портативного секвенатора MinION, разработанного Oxford Nanopore Technologies. Этот процесс включает взятие мазка, его подготовку, пропуск через секвенатор и последующий анализ. Для этой задачи хорошо подходит буккальный эпителий (клеточная ткань внутренней поверхности щёк) — он легко доступен и быстро восстанавливается. Однако эти ткани не подходят для диагностики рака, выявления воспалений или оценки экспрессии генов в других частях тела. Например, если у вас сыпь на груди и вы хотите узнать, какие гены экспрессируются в воспаленных клетках, вам нужно собирать именно эти проблемные клетки и сравнивать с их здоровыми образцами.

Для секвенирования клеток я купил специальный лабораторный материал и расходники. Мне пришлось около двух месяцев собирать всё необходимое, чтобы выполнить качественный процесс от и до. К тому же, стоит это всё очень дорого для рядового человека, хотя цены снижаются (причём экспоненциально!). Так что в будущем мы получим вполне доступную технологию — как это было с сотовыми телефонами или ИИ — которая позволит нам в реальном времени узнавать экспрессию генов ДНК и РНК.

Читать далее

Между инди и AAA: как небольшие команды конкурируют в геймдеве

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

В игровой индустрии сложилось устойчивое представление, что успех = масштаб. И часто это действительно так — монументальные хиты вроде The Witcher 3 или Red Dead Redemption 2 создаются усилиями тысяч людей и огромных бюджетов.

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

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

Чтобы понять, как это работает на практике, мы поговорили с Иваном Дворяновым, руководителем игрового направления Magnus Tech. В этой статье делимся его экспертизой и выясняем: почему для коммерческого успеха порой достаточно команды из 7–10 человек и как не сломаться под грузом мультизадачности, выбрав этот путь.

Читать далее

Как фильтр Блума ускоряет JOIN'ы в PostgreSQL

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

Как ускорить Hash Join в PostgreSQL, отбросив 99% строк ещё до самого соединения? Рассказываем о фильтре Блума в СУБД Tantor Postgres на живых и синтетических примерах.

Читать далее

Как математическая модель победила нейросеть: ректификация документов, сложенных втрое

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

Сегодня практически любую задачу компьютерного зрения пытаются решить нейронной сетью. Геометрическая ректификация документов — не исключение: современные модели умеют распрямлять даже скомканные листы бумаги.

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

В Smart Engines мы пошли другим путем: вместо универсальной нейросети построили математическую модель документа, сложенного втрое. В результате получили алгоритм, который не только превосходит современный геометрический трансформер DocTr по качеству, но и работает до 60 раз быстрее.

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

Читать далее

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

Пишем движок для игры Arcanum на С++ 23 в 3D. Глава 00 — В начале славных дел

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

Приветствую, Хабравчане.

Предлагаю вам, окунуться в ретро программирование на С++ 23 и модулях. Да вы не ослышались. Это вполне возможно и я готов вам рассказать это и показать на практике.
Но сначала мы напишем движок для моей любимой игры Arcanum. Но мы не остановимся на спрайтах и старой графике, я добавлю 3D.

Если хотите узнать как. Заходите. Я рад всем.

Егог

Иллюстрированный разбор одной пользовательской реализации malloc()

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

Программисты, работающие с языком C, несомненно, узнают стандартную функцию malloc(). Это главный аллокатор памяти в языке, который тесно связан со всем известными ошибками сегментирования. Функция malloc() – именно то средство, при помощи которого программы приобретают память во время выполнения. Зачастую она также превращается в основной инструмент создания объектов и управления ими. Учитывая такой центральный статус malloc(), удивлён, что большинство программистов обращаются с ней как с чёрным ящиком. Этот пост призван немного исправить ситуацию, и в нём рассказано, что именно происходит под капотом. Также рассмотрим одну из возможных реализаций этой функции.

Читать далее

Лучшие практики по Kubernetes. Жаль, я не знала о них раньше

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

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

В материале — ключевые практики для 2026 года: задавать requests и limits для каждого контейнера, изолировать нагрузки через namespaces и NetworkPolicy, автоматизировать health checks и еще много всего. Приглашаю под кат.

Читать далее

Чарльз Бэббидж: Отец Кибернетики и гроза уличной мафии

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

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

Читать далее

Компании одного хита: почему один гениальный продукт так трудно повторить

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

Привет, Хабр! В ноябре 2016-го дрон GoPro Karma начал падать с неба. У части аппаратов прямо в полёте пропадало питание, и меньше чем через три недели после старта продаж GoPro отозвала все проданные экземпляры, около 2500 штук. Провалился даже не один гаджет — провалилась попытка компании стать чем-то большим, чем автор одной удачной идеи.

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

Читать далее

Как мы переезжали с FatFS на LittleFS, и причем тут MTP

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

Всем привет! Меня зовут Андрей, я технический директор в компании “КЕДР Солюшенс”. Как коллеги вы, наверняка, разделяете мнение, что не стоит изобретать велосипед там, где можно обойтись стандартными, проверенными временем решениями. Но сегодня я хочу честно поделиться историей одного нашего проекта, в котором этот постулат дал сбой. Я покажу, как стандартная архитектура хранения данных загнала нас в тупик и какие шишки мы набили при попытке все исправить с наскоку.

Читать далее

Как мы встроили DSL в тестовый фреймворк и научили тесты говорить по-человечески

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

«У нас было две горячих ноды, 75 дев-стендов, 5 видов тестов, горка внешних сервисов, и целое множество тест-кейсов всех сортов и расцветок, а также CI/CD, core-модель, пачка customer-модулей и DBUnit. Не то чтобы это был необходимый запас для интеграционного тестирования. Но если начал делать свой тестовый фреймворк, становится трудно остановиться. Единственное, что вызывало у меня опасение – это Excel. Нет ничего более беспомощного и обреченного, чем тестировщик, который вынужден заполнять 20 листов записей вручную. Я знал, что рано или поздно мы перейдем и на эту дрянь». © Хантер Томпсон, если бы работал гонзо-тестировщиком

Привет, Хабр! Меня зовут Настя Кензина, я – QA-инженер в компании HFLabs и занимаюсь тестированием CDI (Customer Data Integration) — системы управления клиентскими данными. В этой статье я расскажу, какие сложности накопились у нас за годы эксплуатации и развития тестового фреймворка, в чем минусы табличного хранения тестовых данных, и какое итоговое решение выявленных проблем мы для себя нашли.

Читать далее