Всё чаще предлагают притормозить ИИ, пока он не вышел из-под контроля. Но проблема может быть прозаичнее: AI становится слишком дорогим в обслуживании.
Новые дата-центры требуют всё больше электричества, а производство GPU и памяти не успевает за спросом.
В итоге лидеры AI одновременно обсуждают риски сверхмощных моделей и упираются в ограничения собственной инфраструктуры
🌚 — Значит, дальше будет только дороже
🔥 — И куда ещё столько GPU
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚60🔥20⚡6🎉6😢4😁3🙏3❤2🤩2😍2
Почему C++ ring buffer читает данные раньше записи
В однопроизводительном кольцевом буфере после миллионов операций потребитель иногда получал старые или частично обновлённые структуры. В отладочной сборке ошибка не проявлялась, а с
Причина: порядок памяти
Разбор ошибки и тестового стенда показывает, как поймать повреждение по контрольной сумме. Проверяйте такую очередь и с ThreadSanitizer, и в оптимизированной сборке.
В однопроизводительном кольцевом буфере после миллионов операций потребитель иногда получал старые или частично обновлённые структуры. В отладочной сборке ошибка не проявлялась, а с
-O2 срабатывала проверка целостности.Причина: порядок памяти
relaxed позволял потребителю увидеть новый индекс tail раньше данных в слоте. Запись tail с release публикует изменения, а чтение с acquire заставляет увидеть их до обращения к слоту.Разбор ошибки и тестового стенда показывает, как поймать повреждение по контрольной сумме. Проверяйте такую очередь и с ThreadSanitizer, и в оптимизированной сборке.
❤8😁5🔥4🤔4😍4👏3🙏3🌚3😢2👾2
Кандидат быстро решил тестовое и дошёл до финального раунда. Там руководитель засыпал его техническими вопросами. На одном кандидат не смог ответить сразу — и услышал:
«Если ты не можешь на это ответить, ты слишком глупый для работы здесь».
В комментариях теперь спорят не столько о технических вопросах, сколько о том, где заканчивается стресс-интервью и начинается обычное хамство
Please open Telegram to view this post
VIEW IN TELEGRAM
😢28❤17🌚8👾5⚡4😍4👍2🎉2
Как собрать первый модуль ядра Linux и понять ошибки сборки
Минимальный модуль занимает 22 строки, но на машине автора сборка создала файл размером около 106 000 байт. После удаления отладочных данных осталось 4 864 байта. Точный размер зависит от компилятора, конфигурации ядра и даже пути к каталогу сборки.
Для эксперимента нужны компилятор и заголовки именно запущенного ядра. Makefile передаёт исходник в kbuild, систему сборки ядра. Она компилирует код, проверяет обращения к экспортированным символам и собирает модуль в файл
Если сборка не начинается, проверьте ссылку
Минимальный модуль занимает 22 строки, но на машине автора сборка создала файл размером около 106 000 байт. После удаления отладочных данных осталось 4 864 байта. Точный размер зависит от компилятора, конфигурации ядра и даже пути к каталогу сборки.
Для эксперимента нужны компилятор и заголовки именно запущенного ядра. Makefile передаёт исходник в kbuild, систему сборки ядра. Она компилирует код, проверяет обращения к экспортированным символам и собирает модуль в файл
.ko.Если сборка не начинается, проверьте ссылку
/lib/modules/$(uname -r)/build. Перед загрузкой также стоит проверить Secure Boot и режим блокировки ядра: они могут отклонить уже собранный модуль. Полный путь от hello.c до диагностики ошибок включает Makefile, устройство файла .ko, параметры модуля и причины несовместимости старых руководств.👍17❤7😍4😁3😢3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🌚9❤8🤔7😢7💯7😁4🎉4👾4❤🔥3
Как правило против ложных срабатываний ослепило линтер
Автор линтера не проверял поле
В четырёх конфигурациях стояло
Разбор слепого пятна советует проверять исключения: нет ли внутри них ошибки, которую можно найти без внешних данных.
Автор линтера не проверял поле
tools: список допустимых инструментов меняется, и сохранённая копия быстро устаревает. Защита от лишних предупреждений скрыла ошибки синтаксиса, для которых список вообще не нужен.В четырёх конфигурациях стояло
tools: *. Документация не считает одиночную звёздочку допустимым шаблоном, а для доступа ко всем инструментам советует убрать поле. Четыре зелёных прогона ошибку не заметили, ручное чтение заметило.Разбор слепого пятна советует проверять исключения: нет ли внутри них ошибки, которую можно найти без внешних данных.
❤9👏6🙏5🎉4👾3❤🔥2🔥2🌚2⚡1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
У Anthropic есть команда
/claude-api-prompt-audit
которая проверяет CLAUDE
.md, AGENTS.md, skills и промпты.Please open Telegram to view this post
VIEW IN TELEGRAM
❤21🔥8🌚5👍4😁4💯4😢3🥰2👾2
И мы решили открыть первое занятие всем — можно просто взять и посмотреть, что происходит внутри курса.
А дальше — практика на собственном проекте. Ваш код: контекст, планирование, subagents, тесты, ревью и PR.
По ходу работы разберёте MCP и научитесь контролировать расходы на модели.
Если хотите попасть в этот поток — ещё не поздно, присоединяйся
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤8😍5🔥4🤔4🎉4🙏4🤩3😁2🌚2
Как ускорить Quicksort на C, сократив ветвления
Процессор теряет время, когда ошибается в предсказании условий. Автор разбора переписал разбиение массива: элементы распределяются относительно опорного значения без условных переходов.
На Apple M1 сортировка 50 млн чисел заняла 1,70 секунды вместо 3,70. После дополнительных оптимизаций вариант показал 0,86 секунды против 1,19 у
В разборе с кодом на C показаны буфер, защита от неудачного разбиения и обработка малых участков.
Процессор теряет время, когда ошибается в предсказании условий. Автор разбора переписал разбиение массива: элементы распределяются относительно опорного значения без условных переходов.
На Apple M1 сортировка 50 млн чисел заняла 1,70 секунды вместо 3,70. После дополнительных оптимизаций вариант показал 0,86 секунды против 1,19 у
std::sort. На Intel Xeon соотношение другое, поэтому результат нужно проверять на своём процессоре.В разборе с кодом на C показаны буфер, защита от неудачного разбиения и обработка малых участков.
easylang.online
Branchless Quicksort
❤13👍13😁11😍6🔥5🥰5👏5👾5
This media is not supported in your browser
VIEW IN TELEGRAM
LibreTranslate — переводчик, который живёт прямо на твоём ПК.
А значит, можно переводить даже если вырубили свет или заглушили связь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26❤11😁8😍4💯4⚡3🙏3😢2🌚2👾2
Как модернизировать устаревшее приложение с ИИ без полного переписывания
ИИ может перенести старый код на новый стек вместе с неясными правилами и проблемами развёртывания. Получится та же система, только переписанная быстрее.
Сначала составьте карту кодовой базы: правила, зависимости, побочные эффекты и внешние вызовы. Затем зафиксируйте текущее поведение характеристическими тестами, чтобы видеть изменения после переработки.
Функциональность лучше переносить небольшими частями, а ИИ использовать для анализа, тестов и повторяющихся преобразований. Решения о том, что сохранять, остаются за инженером.
Полный процесс миграции разобран на TypeScript и Vitest.
ИИ может перенести старый код на новый стек вместе с неясными правилами и проблемами развёртывания. Получится та же система, только переписанная быстрее.
Сначала составьте карту кодовой базы: правила, зависимости, побочные эффекты и внешние вызовы. Затем зафиксируйте текущее поведение характеристическими тестами, чтобы видеть изменения после переработки.
Функциональность лучше переносить небольшими частями, а ИИ использовать для анализа, тестов и повторяющихся преобразований. Решения о том, что сохранять, остаются за инженером.
Полный процесс миграции разобран на TypeScript и Vitest.
❤12👏6👍5😁5🌚5🎉4👾4🙏3⚡2🤩2
Как сделать системную утилиту понятнее и приятнее
Системная утилита не должна молча выполнять команду и исчезать. Если программа не показывает ход работы и итог, пользователю сложнее понять результат и доверять ему.
Автор предлагает объяснять действие до запуска, показывать изменения по ходу процесса и завершать сценарий ясным результатом.
Подход команды MacPaw к служебным приложениям пригодится и для внутренних инструментов: человек должен понимать, что произошло.
Системная утилита не должна молча выполнять команду и исчезать. Если программа не показывает ход работы и итог, пользователю сложнее понять результат и доверять ему.
Автор предлагает объяснять действие до запуска, показывать изменения по ходу процесса и завершать сценарий ясным результатом.
Подход команды MacPaw к служебным приложениям пригодится и для внутренних инструментов: человек должен понимать, что произошло.
❤8😢7🤔6💯5👍4🔥4🎉4❤🔥3🙏2😍2
После Go 1.24 обычный map внутри работает уже не так, как раньше: вместо старой схемы с overflow buckets используется Swiss Tables.
И там довольно много интересного: хеш делится на части, поиск идёт группами по 8 слотов, SIMD сразу сравнивает несколько значений, а при росте таблица может дробиться.
Если хочется понять, почему Go map работает быстро, а не просто знать, что он O(1) — почитать стоит.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤🔥5👍5🙏5⚡4🤩4🥰3👾2💯1
Почему Big O недостаточно для выбора структуры данных в C++
Автор создал hashbrowns, набор тестов для массивов, связных списков и хеш-таблиц. В замерах линейный поиск по массиву обгонял хеш-таблицу до примерно 150 элементов: вычисление хеша съедало выигрыш от быстрого доступа.
На создание тестов ушло четыре месяца: пришлось исключить влияние виртуальных вызовов, добавить прогрев процессора и фиксировать условия запуска.
Разбор устройства hashbrowns показывает, почему перед оптимизацией стоит измерять свою нагрузку: результат зависит от заполнения хеш-таблицы, ключей и удалений.
Автор создал hashbrowns, набор тестов для массивов, связных списков и хеш-таблиц. В замерах линейный поиск по массиву обгонял хеш-таблицу до примерно 150 элементов: вычисление хеша съедало выигрыш от быстрого доступа.
На создание тестов ушло четыре месяца: пришлось исключить влияние виртуальных вызовов, добавить прогрев процессора и фиксировать условия запуска.
Разбор устройства hashbrowns показывает, почему перед оптимизацией стоит измерять свою нагрузку: результат зависит от заполнения хеш-таблицы, ключей и удалений.
🔥8❤7🙏6🤔5😁4👍2🥰2
git add --resolved — безопаснее закрывать merge-конфликтыmerge-base в некоторых репозиториях стал в десятки раз быстрееgit history drop — удалять коммиты из историиgit bisect теперь может сам вернуться после нахождения проблемного коммитаИ это только часть изменений
🔥 — пора обновляться
👾 — забираю новые команды
👍 — я всё ещё на Git 2.4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥12❤10👾7🙏4😁3🎉2😍2
Кодить — это хорошо, а разбираться в том, что происходит за кадром, тоже полезно. Что там анализируют, зачем нужны метрики, кто такой этот ваш UX, какие задачи решает дизайн? Материалы ниже как раз об этом. Вникать во всё на сто процентов, конечно, не нужно, но базовое понимание поможет находить общий язык с коллегами и видеть чуть дальше кодовой базы.
💵 Как один лотерейный билет превратился в несколько сотен требований, десятки интеграций и пять месяцев Discovery
👍 Очнуться от мрака метрик: три истории от продакта о том, как решать неочевидные проблемы бизнеса
👨🎓 Как проверять продукт на UX на примере личного кабинета студента
🟠 Как тестировать пуши и диплинки в финансовом приложении
🏨 Дизайн в маркетинге: как фирменный стиль решает бизнес-задачи
🐸 Библиотека программиста
👨🎓 Как проверять продукт на UX на примере личного кабинета студента
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🥰6😢5❤🔥4🎉3🔥2💯2🤔1👾1
Как спроектировать память ИИ-агента, а не склад контекста
Один индекс для диалогов, правил и предпочтений смешивает временные обходы с утверждёнными процедурами: агент помнит всё, но не понимает, чему доверять.
Рабочая память хранит состояние задачи, эпизодическая хранит прошлые случаи, семантическая — устойчивые факты, процедурная хранит проверенные действия. Записям нужны тип, источник, уровень уверенности и срок жизни.
Схема архитектуры памяти агента показывает, как проверять эпизоды перед превращением в знания и удалять устаревшие данные.
Один индекс для диалогов, правил и предпочтений смешивает временные обходы с утверждёнными процедурами: агент помнит всё, но не понимает, чему доверять.
Рабочая память хранит состояние задачи, эпизодическая хранит прошлые случаи, семантическая — устойчивые факты, процедурная хранит проверенные действия. Записям нужны тип, источник, уровень уверенности и срок жизни.
Схема архитектуры памяти агента показывает, как проверять эпизоды перед превращением в знания и удалять устаревшие данные.
1👾8😁7❤5⚡4👍4🤔4😍4🤩3🌚3💯1