This media is not supported in your browser
VIEW IN TELEGRAM
Archify превращает описание системы в интерактивную схему. А если дать ему кодовую базу — сам покажет, как связаны компоненты.
Можно менять диаграмму прямо в чате: «добавь Redis», «покажи rollback».
Поддерживает 5 типов схем, экспорт в PNG/SVG и работает через Claude Code, Codex, Cursor и OpenCode.
🔥 — забираю
❤️ — прощай, draw
.ioPlease open Telegram to view this post
VIEW IN TELEGRAM
🔥32❤12🤔9😢7👏4🙏4💯4🎉3🌚3🥰2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁50👏15❤6🥰5🤩5👍4🤔3💯3👾3❤🔥2
Всё чаще предлагают притормозить ИИ, пока он не вышел из-под контроля. Но проблема может быть прозаичнее: 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
👍27❤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