SILLYFEED

Программирование — страница 20

Лента темы

Откровения от Олега
Питон - это стройная система костылей. Это значит, что один костыль успешно подпирает другой.Например, PyTorch почему-то не поддерживает карты Nvidia 50xx серии. Там Nvidia уже 6000 серию представила, а PyTorch всё еще не знает о картах годичной давности.Можно поставить ночные неофициальные сборки торча, но тогда рассыпятся другие библиотеки, которые о них не знают.И тут вступает в дело Мощь Питона. Сторонние библиотеки на диске лежат в виде обычных текстовых файлов, поэтому мы можем рекурсивно пройтись по ним регуляркой (!) и запатчить их, убирая использование несуществующих API.Красиво и ужасно, как змея, кусающая тебя за хуй.
Киса | Deploy la Deploy
Правильный сетап для вайбкода (часть 2)Теперь от теории к практике, как жесткА поиметь эту концепцию и создать себе реально работающее приложение.Повторю главное — мой основной инструмент это Claude Code. Я обожаю работать в терминале и считаю это вершиной эволюции. Куча кнопочек в ваших курсорах это баловство, излишек удобства для пусси боев.Настоящие мужчины (и мужицкие женщины) сидят в командной строке своего мака или линукса. Виндусятники тоже.. но это как различие между манерным геем и латентным. Ладно, не суть..Ставим себе Claude code.Для экономии времени всех юзеров, я вынес публично вот этот гайд. Супер минималистый, за вас прописана установка и какие кнопки нажать.Конечно, можно использовать и Codex, в котором Codex модель ChatGPT. Можно и на курсоре запускать с подключенными подписками. Но я работаю только в Claude code, включая и чужие модели по API, потому шо могу.Начинаем прописывать AI агентов.Но. Но. Перед самым началом нужно воспользоваться другим гайдом, который я тоже вынес публично. Как подключить плагин оркестрации, дальше работать мы будем именно с ним.И мы можем как сразу дать задачу прописать пайплайн/воркфлоу, так и действовать поэтапно. Ведь собирать в рабочие "команды" можно каких угодно агентов, что вы заранее создали.Как бы странно не звучало, нам даже шибко много думать не нужно или писать по определенной структуре. Есть конечно всякие сайты/референсы и гайды, как это писать правильно.Но по тупому и вполне эффективно, мы можем просто дать задачу: напиши мне AI агента "какойтонейм".Мне нужен агент режиссер роликов и промптов, который будет читать документы в папке и на их основе придумывать креативные примеры сцен/ракурсов и реплик. Его главная задача писать крутой динамичный сценарий, опираясь на киношную картинку.Мне нужен агент промптовик для видео генерации, который будет использовать актуальные данные про Sora 2 и Veo 3.1, писать подробные, оптимизированные и не нарушающие правил платформы промпты. Чтобы создавать детализированные, качественные и реалистичные ролики.И вы спросите. А почему я показываю примеры не связанные с вайбкодом (ну типо написание кода, нет?). Ну я скорее показываю какими разными и дополняющими друг друга могут быть агенты.Для вайбкода достаточно простого советского.. пайплайна.После создания самих агентов, которых Claude создал и распихал по папкам. Мы даем прямое поручение:Создай мне пайплайн для написания приложений/сайтов/скриптов, включи туда моих созданных агентов или создай недостающих. В моем случае структура примерно такая: - Агент1 продумывает всю архитектуру проекта, в подробностях опрашивая меня о моей задумке- Агент2 подключает внешний ресерч (у меня это плагин Tavily), чтобы проверить какой стэк вообще стоит взять и вернуть агенту1 фидбек- Агент3 садится за само написание кода- Агент4 (у меня это Codex) смотрит на все это говно и дает подробную и развернутую инструкцию по фиксу багов- Агент3 включается в работу и переписываетИ тут сразу стоит сказать. Что у меня интегрированы другие LLM, что могут закрыть более узкую задачу ЛУЧШЕ. Иногда дешевле, иногда дороже. Но главное, что саму работу они сделают лучше.Мы даем Claude Code написать скрипт, который создает обращение к API того же OpenRouter. Ваш запрос передается модели, а ответ обратно в чат.Скрипт можно "усложнить" прописав там задачу для Claude, а именно обработку контекста вашего запроса.Настрой команду /<model> так: 1. Скрипт принимает флаг --files для чтения файлов 2. Claude смотрит только ls (список файлов), не читает содержимое 3. Claude формирует команду: script.sh --files file1 file2 -- "промпт" 4. Скрипт сам читает файлы и отправляет в API 5. Если задача изменить файл — Claude записывает результат через Edit Вместо или рядом с командой может быть простая триггерная фраза или слово. Но мне честно говоря удобнее командами вызывать.
Управление Уязвимостями и прочее
Сегодня меня спросили: как скачать базу уязвимостей с сайта NVD? Если нужны данные из NIST NVD по всем уязвимостям, проще всего скачать архивированные фиды в формате JSON.Запускаем скрипт: import requestsBASE = "https://nvd.nist.gov/feeds/json/cve/2.0/"for year in range(2002, 2027): # при необходимости расширяем диапазон fname = f"nvdcve-2.0-{year}.json.zip" url = BASE + fname print("Качаю", fname) with requests.get(url, stream=True, timeout=300) as r: r.raise_for_status() with open(fname, "wb") as f: for chunk in r.iter_content(8192): if chunk: f.write(chunk)Скрипт пишет: Качаю nvdcve-2.0-2002.json.zip...Качаю nvdcve-2.0-2026.json.zipИ скачивает в текущую директорию zip-архивы с JSON-чиками, которые затем можно обработать по своему усмотрению. 😉@avleonovrus #NIST #NVD #JSON #Python #насспрашивают
Горящий Тестер 🐞 Антон Дуенин
💡С подключением, транснациональная мегакорпорация!Интересный факт номер 1: в процессе регистрации в Salesforce (капитализация $217 млрд) нужно выбрать номер телефона, и среди кодов стран есть некая Югославия 🎧Интересный факт номер 2: страна Югославия перестала существовать в 2003 году (или в 2006, если считать окончательным окончанием разделение Сербии и Черногории) 🔫Интересный факт номер 3: ни СССР, ни Чехословакии, ни Византии, ни Месопотамии в списке кодов в регистрации в Salesforce (капитализация $217 млрд) обнаружено не было. Это уже хороший знак 👍А вы жалуетесь, что модные фреймворки долго докатываются до ваших проектов. Это не долго, у крупнейшей в мире CRM вон пинг такой, что они историю переписывают.
Уральский Лефранк
ДиадокШел 2026 год. По Марсу ездят марсоходы, ИИ ускорил весь мир, а Диадок все еще не может понять, что файл со словом «счет» — это счет, а со словом «акт» — это акт.Вдумайтесь, компания с 1988 года делает продукты для бизнеса, а ее самый главный документооборот в стране не может распознать элементарные документы. Я должен все данные перебивать руками. Мрак.И так работает большинство продуктов сейчас, не только у Контура. Жду не дождусь, когда ненормальность этой ситуации станет очевидной.
Молянов
Ребят, я к вам за помощьюДело такое. Бывают задачки, которые надо сделать в определенное время и ОЧЕНЬ важно не пропустить. Например, овернайт депозит в Точке закинуть вечером.Обычная напоминалка в таск-менеджере или Телеге разок пикнет — и все. Если я не услышу, то задачку упущу.Сейчас я это решаю будильниками. Просто завожу будильник на нужное время — его пропустить нереально.Но хочется какое-то более изящное решение. Чтобы поставленные задачи в таск-менеджере могли доставуче орать на телефоне, а не просто один раз скромно пикатьКак это можно сделать, кто знает?Короче, нужен способ запускать что-то типа будильника на айфоне, но по API или через синхронизацию с календарем
Кадровый радар
«Удаленка должна умереть» – очередной манифест про возвращение в офис? Нет, интереснее.Автор применяет принципы DDD и микросервисной архитектуры к организационной структуре. Если коротко: удаленка работает слишком хорошо для сотрудников, и именно поэтому бизнес от нее отказывается. Когда команда распределена как микросервисы, каждый отвечает за свой домен и минимально зависит от других – эффективность растет. Но контроль падает.Для многих компаний это невыносимо. Не потому что страдает продуктивность (часто она только выше), а потому что рушится привычная модель управления через присутствие.В итоге получается парадокс: мы строим гибкие продуктовые команды, внедряем автономность и ответственность, а потом требуем всех в офис, чтобы было понятно, кто чем занят.https://habr.com/ru/articles/991772/?utm_campaign=991772&utm_source=habrahabr&utm_medium=rss
{Иноземцев}
⚠️ Что делать, если близкий человек ВАЙБКОДЕРВайбкодинг — это навязчивое цифровое расстройство, характерное для тех, кто выше работы «руками». Такие люди не любят дедлайны, месяцами сидят над стратегией и постоянно все оптимизируют. Как понять, что человек в опасности• Он просит деньги на подписку, уверяя, что это в последний раз и вот-вот все окупится (нет)• С придыханием рассказывает, как вайбкодил до четырех утра, но показать результат еще не может• Отказывается от простых задач со словами «это проще автоматизировать» и пропадает на два дня• По ночам шепчет странные заклинания: апи, рейт лимит, токены... Также характерна полная отрешенность от выполнения задач. Что делать, если дома буйный вайбкодерСоблюдайте полное спокойствие. Резкие движения могут спровоцировать новый MVP. Переключайте внимание больного с вайбкодинга на привычные действия: зумы, таски, дедлайны. Не вступайте в перепалку, не переубеждайте в безумии и фанатизме. Соглашайтесь с тем, что это масштабируемо и обязательно окупится.И помните: вайбкодинг — это не приговор.
Kobezzza. База в программировании
Инженер 2026Специально или нет, но этот заголовок навеивает некоторые пост-апокалиптические ассоциации. И, действительно, мы живём в переломное время: светлые мечты учёных и инженеров прошлого тают под напором «не думай — учись промптить», «учёба и труд — это для бедных», «работай меньше — получай больше». Скажете, что я драматизирую? Может и так, но меня действительно тревожит, в каком направление мы движемся.И дело тут не в уже набившем оскомину ИИ-хайпе, но в том, что мы со страшной скоростью катимся не к покорению галактики, а к утопии иного рода — где «изнеженные, жирные и тупые люди» уже не могут самостоятельно сходить в туалет без ИИ-ассистента. Такая смесь «Идиократии» и «ВАЛЛ-И», или подставьте другую антиутопию на ваш выбор.Мы создали инструменты, чтобы быть эффективнее, но сами не заметили, как скомпенсировали их возможности собственной же глупостью, ленью и раздолбайством. «Не думай, не смотри, даже не пытайся разобраться, как это работает» — этот лозунг, пусть и неявно, уже стал нормой для многих. И те навыки, которые раньше и отличали хорошего инженера от посредственного — обесценились первыми и сильнее всего:- Писать чистый код? Генерируется. И пускай большая часть написанного мусор, ведь все равно никто не прочитает: «А давайте ИИ сделает ревью?».- Делать рефакторинг? Генерируется. И пускай, что после него код стал еще более шатким и запутанным: «Пока ты делаешь сам таску, мой агент сделает 10».- Писать тесты? Генерируется. И пускай, половина их тестирует одно и тоже, а самое важное — просто игнорируется.- Писать документацию? Генерируется. Не важно что там, её все равно уже никто не прочитает.А самое страшное — за этими сиюминутными ускорениями мы теряем способность к главному:- самостоятельно видеть, где бизнес через полтора года будет биться головой об стену из-за сегодняшнего «быстрого» решения;- держать в голове 17 конфликтующих ограничений и находить среди них наименее плохой компромисс;- чувствовать запах будущей катастрофы, когда все вокруг говорят «да норм, сойдёт»;- брать ответственность и говорить «нет, мы это делать не будем» — даже когда это невыгодно прямо сейчас.Повторюсь: дело не в инструментах. Дело в нас. Глупо отрицать пользу от них, как и глупо ими не пользоваться. Человек ленив и его стремление облегчить себе жизнь привело человечество к прогрессу. Но то была лень благородная, ведомая любопытством. А вот на смену ей пришла лень иного характера — та, что заставляет нас предаваться бессмысленному потреблению, деградации и депрессии.И вот вам парадокс 2026 года: чем мощнее становятся модели, тем дороже становится человек, который умеет не подменять мышление промптами; чем больше людей сдаются и превращаются в «операторов ИИ», тем выше ценность тех, кто всё ещё умеет держать в голове сложную систему целиком.Поэтому сейчас, когда все вокруг кричат «работай меньше — получай больше», самое время делать ровно наоборот: инвестировать в свою голову. Инвестировать так, будто от этого действительно зависит твоё будущее. Потому что, черт возьми, так оно и есть.Приходи на мой открытый урок «Инженер 2026» в эту пятницу. Обещаю — равнодушным не уйдёшь.
Pavlenko / Solo Founder
Я каждое утро отвожу дочь в школу на такси. И почти каждый раз, если за рулём какой-то дед, происходит одно и то же. Таксист говорит, что навигатор какую-то херню показывает, поехали лучше вот так. И мы каждый раз въебываемся в пробкуЭто мне напоминает "дедов" программистов, которые открещиваются от использования AI
главное себя не потерять
Давайте поделимся секретами, как делаем телеграм удобным для жизни.У меня все каналы рассортированы по папкам по темам. Есть папка «Первым делом», где собраны те каналы, новые посты в которых я точно не хочу пропускать.Недавно сделала папку с чатами, чтобы не пропускать новые сообщения. Туда автоматически попадают сообщения и от друзей, и от новых контактов.Что еще упускаю?
Сугубо частное мнение🇷🇺
🚀 В понедельник я решил отправиться в космосВсем привет! Скажите, а вы когда-нибудь смотрели на старт ракеты и задумывались: «Вот же чудо! Как эта махина вообще поднимается?» А потом смотрели на свой ноутбук в понедельник утром и понимали, что ваш проект тоже должен взлететь, но вы не Циолковский и даже не Илон Маск.Знакомое чувство? Давайте разбираться, как же работает эта штука, чтобы отвлечься от мыслей о совещании в 10 утра.🩵Просто о сложном: почему она вообще летит?Представьте, что вы - воздушный шарик. Внутри давление, вы отпускаете хвостик, и он с шумом летит по комнате. Всё просто: воздух вырывается в одну сторону, а шарик летит в другую. Это и есть реактивное движение. Ракета делает то же самое, только вместо воздуха - раскалённые газы от сгорания топлива, а вместо вашей гостиной - космос.Главный секрет в том, что ей не нужен воздух вокруг. Всё необходимое для горения - топливо и окислитель (тот же кислород, но в жидком виде) - она тащит с собой в огромных баках. Поэтому и летает там, где ничего нет.🩵Матрёшка для взрослых: зачем ступени?Если бы ракета была цельной, ей пришлось бы тащить наверх пустые баки от уже сгоревшего топлива. Очень нерационально, это как тащить на собеседование все свои старые дипломы.Поэтому ракету сделали многоступенчатой. Это как матрёшка:🩵Первая ступень поднимает всё это богатство на 40-50 км и отстреливается.🩵Вторая - зажигает двигатели, продолжает разгон и потом тоже прощается с нами.🩵Третья - выводит корабль на точную орбиту.Каждая следующая ступень меньше и легче. Так мы не возим лишний груз и экономим топливо. Блестяще, правда? Сбрасывая балласт, мы летим дальше. Прямо как в жизни.🩵Физика на пальцах: закон сохранения импульсаВернёмся к школьной физике. Представьте: из двигателей ракеты вниз со скоростью в несколько километров в секунду вырываются тонны раскалённых газов. Естественно, сама ракета с такой же силой толкается вверх. «Толкни назад, чтобы двигаться вперёд» - это про неё.🩵И что в итоге?Пока мы пьём кофе в понедельник и строим планы на неделю, где-то на космодроме ракета медленно отрывается от Земли, чтобы вывести на орбиту спутник для навигации, связи или изучения далёких галактик.P.S. Если вам, как и мне, иногда нужно оторваться от земной рутины и мыслить глобальнее - подписывайтесь на канал! Будем вместе открывать удивительные вещи, от законов космоса до прорывных технологий. Чтобы наши понедельники начинались не только с кофе, но и с полёта мысли.Обсудить совместный проект @Chek8007Смотрите примеры https://t.me/Chek58007/7871И поддержите канал голосом https://t.me/boost/Chek58007😊Визуал сгенерирован нейросетью PixVerse и CapCut.#космос #ракета #технологии #наука#главный_секрет #матрёшка #ступени #понедельник #старт
Задачи DS - Собеседования, Соревнования, ШАД
Здравствуйте, мои маленькие любители DS/ML! Сегодня поговорим про то, как админ проходил собес в HFT компанию Spectrals Technologies на позицию ML RESEARCHER.Как и любой этап, данный отбор начинался со скрининга с HR. В целом тут все было более менее стандартно, спрашивали, про опыт, про то, почему именно эта компания, что я знаю об HFT. Потом был ряд технических вопросов. Например спросили про геометрический смысл Adam, про ансамбли, что такое градиентный спуск. Как оказалось, данный этап не для галочки и правда влияет то, насколько ты подробно все описываешь. Я это предчувствовал и прямо четко по полочкам все разжёвывал и приводил примеры. Мой друг, который тоже решил попробовать свои силы в этом отборе тоже на все ответил. Но ему отказали, потому что как оказалось он отвечал не так подробно. Стоит отметить, что на такие вакансии отбирается достаточно мало людей, и если конкуренция есть, то на 1 место сразу несколько человек.Далее через пару дней мне назначили техническое интервью, которое было отчасти необычным. По структуре оно напоминало мне MLP секцию в Яндекс, но с большей въедливостью и подробностями. 1) Была задача про то, как решить задачу по мл для предсказания цены в оредрбуках, я разложил по полочкам бизнес кейс, но ошибся с правильной функцией потерь (я не совсем знаком с доменом финансовых данных). Получил такой фидбек:’’’Видно, что кандидат хорошо разбирается в классическом машинном обучении и глубоком обучении, но на специфическом наборе финансовых данных подход с предсказанием абсолютной цены — это классическая "ловушка" (цена сама по себе слишком шумная и не стационарная, поэтому обычно работают с другими метриками).’’’2) Рассказать про устройство случайного леса со всей подноготной от разделения выборок до критериев остановки. Фактически реализовать псевдокод.Тут справился хорошо, в фидбеке похвалили.3) написать псевдокод трансформера описывая каждую размерность. Тут я ответил тоже хорошо, сходу расписал, но забыл про софтмакс после получения матрицы атенншена. Собеседующий задал вопрос - как будем бороться с потенциальными бесконечностями после преобразования mask. Я сказал, что там есть какая то функция , которая превращает бесконечности в нули, но не вспомнил название (давно повторял уже).В итоге получил реджект. В целом, опыт классный, компания тоже. Отзыв был подробный, HR приятная, собеседующему не пофиг. Но по факту, таким компаниям нужны специалисты с знаниями финансовых данных. Лично мне не хватило ориентации в этом домене, а также деталей реализации известных алгоритмов глубокого обучения. Поэтому при подготовке к таким собесам учитывайте мельчайшие детали, потому что в хфт это роляет. Также, им важен сигнал крутости, например хакатоны и соревнования, статьи. Я слышал мнение , что им нужны обязательно люди, которые закончили ШАД - на самом деле это не так, важно все, что подтверждает вашу компетентность. Например , хороша книга, которую мы прикладываем в комментариях. Поэтому пробуйте свои силы и всегда stay focused😎🫵
Черемухин Александр. Про вебчик и не только
На автовебинаре GetCourse рандомно удаляет сообщения живых пользователей 🎓Знаю, что вы любите реальные истории, поэтому вот очередная история, которая произошла вчера. В одном из проектов, где я проводил живой эфир, решили сделать автовебинар. Технический специалист все настроил как надо, всё работает. Но в один момент модераторы, которые сидели на этом эфире, заметили, что сообщения от живых участников удаляются, хотя они этого не делают. Естественно, они пишут техспецу. Как я оказался в этой ситуации? Ко мне просто пришли за помощью, т.к. самостоятельно решить вопрос не могли. Первое, что мне пришло в голову: наверное, изолировали пользователя, и все сообщения от него удаляются. Но нет — изолированных пользователей не было. А других вариантов, что может быть ещё, мне в голову и не пришло. Написали в ТП и позвонили, чтобы ускорили наш вопрос, т.к. автовебинар идёт. В работу задачу взяли быстро, нам задавали дополнительные вопросы, чтобы определить проблему. В итоге в течение всего автовебинара мы найти решение не смогли, и ответ пришёл уже после окончания автовеба. Но мы смогли исправить всё на будущие сценарии. А проблема оказалась на видном месте. Мы указали список запрещённых слов столбиком, а нужно их указывать через запятую. (Смотрите скриншоты выше 👆). Об этом даже написано в блоге самого GetCourse — также смотрите скриншот выше. Буду откровенен: я не знал этого и, скорее всего, написал бы тоже в столбик. Даже в голову мне не пришло посмотреть запрещённые слова, т.к. я их никогда нигде не ставил. Грубо говоря, т.к. не было никогда такого опыта, отсюда и не знаешь, куда ещё можно было посмотреть, чтобы найти проблему. Если сидит модератор, то он пусть удаляет сам — он же не просто так там сидит. Если вы тоже не знали этого, то учтите этот момент на будущее, чтобы у вас не случилась такая же проблема. 😉Пост знакомство#истории_из_жизни #геткурс #getcourse
PRO анализ в ИТ
Чем я занимаюсь в 8 утра в воскресенье?Редкий случай: рано лёг, нормально выспался, проснулся бодрым и в хорошем настроении.И на что я решил это потратить?Правильно — на вот эти три чудесных экрана.Три разных проекта, запущенных в Antigravity. За сегодняшнее утро я уже полностью высадил квоту на Gemini 3 Pro. Сейчас добиваю Gemini Flash, а дальше в ход пойдёт Claude — его тоже можно довольно эффективно «сжигать» в этом сетапе.С одной стороны, выглядит это, конечно, слегка идиотично.С другой — это именно то, что меня по-настоящему радует и от чего я получаю удовольствие.Очень надеюсь, что сегодня получится запустить хотя бы один из этих проектов.Ладно, если честно — два.Потому что третий — это рабочий прототип, который я собираю под показ в понедельник–вторник.А вот два других — это мои собственные сайд-проекты, сайты, которые я давно хотел довести до релиза. И я правда надеюсь порадовать вас ими уже в ближайшие дни.Так что — stay tuned 🚀
КПД
Дело бы вечером, делать было нечего, и я попробовал завайбкодить интепретатор Python на Rust.Самым банальным промптомYou are a professional Rust programmer. Write python interpreter in Rust Language.Сначала попробовал GPT-5.2-Codex. На первой итерации он сделал рабочую минималистичную версию на 300 строк с присваиванием и арифметическими операциями, но без циклов, сравнений и функций. Затем по запросу он стал добавлять эту функциональность и за 5 попыток файл main.rs вырос до 3к с небольшим строк. Однако, cargo run выдал простыню ошибок. Я этой простыней закинул в него. Он такой сорян, мой господин, ща поправлю. На следующий раз ошибок стало еще больше. После 3х итераций я сдался.Взял тогда Claude-4.5-Sonnet с начальной точки и тем же промптом. С первой попытки он начал реализовать всю функциональность (функции, лямбды, и т.п) и еще ридмихи с примерами использования.cargo run тоже упал но все с 4 ошибками вида error[E0614]: type `i64 cannot be dereferenced`. Кинул в него трейсбеком и со второй попытки завелось. Все хозяйство примерно заняло чуть менее 80к токенов генерации. Затем еще интереса ради тыкнул в Gemini-3-Pro. Получилось нечто среднее по качеству между кодексом и соннетом. С 4-х промптов реализовало нужный функционал, но без подробных ридмишек. Зато без ошибок компиляции сходу.Какова мораль?Морали нет, но сам получившийся репозиторий ниже:🐈‍⬛ Репозиторий
Николай Хитров | Блог
Рисуем квадратики из кодаРисовать схемы руками дело долгое и неблагодарное. Всегда легко что-то упустить, человеческий фактор, все дела. Рабочая тема - генерировать из кода. В каждом стеке есть свои библиотеки для такого, в моем случае для python есть pydeps, impulse. Но у них есть одна большая проблема: при отрисовке вложенных модулей вся схема превращается в кашу. Приходится каждый уровень рисовать отдельной картинкой, что очень неудобно. Вдобавок обе эти либы генерят только картинки и .dot, который задолбаешься читать и редактировать рукамиПоэтому я решил написать свою тулзу, которая эти две проблемы решаетВо-перввх, в отличии от остальных она выдает схему в plantuml. Хочешь - храни в документации или в git, хочешь - меняй схему руками. Во-вторых, связи рисуются не в тупую с каждым модулем, а на уровне неймспейсов. Это позволяет смотреть на всю структуру целиком и углубляться в отдельных модулях поглубже без превращения схемы в кашуВ последних ревизиях Tapeline добавил рендер схем в d2, а fadedDexofan сделал подчеркивание циклических связей Кидайте свои схемки в комменты, ставьте звездочки, все такоеhttps://github.com/nkhitrov/arch-blueprint
Записки CPU designer'a
Новый сайт с упражнениями по VerilogФормат заданий скорее напоминает упражнения по программированию, чем что-то близкое к реальным индустриальным кейсам, но это не умаляет их пользы.Сайт позволяет поупражняться как с классическими HDL, так и поэкспериментировать с новомодными языками и HCL-подходами: SpinalHDL, Chisel, Clash, Amaranth, HardCaml и т.д.Из интересного - есть таблицы лидеров, где решения сравниваются по частоте и площади. Метрики там не самые очевидные (измеряются в каких-то своих условных единицах), но как инструмент для сравнения подходов и мотивации к оптимизации - вполне себе хорошая идея.Если смотреть на leaderboards, то Verilog все еще занимает топовые позиции по количеству отправленных решений. В целом - неплохое дополнение к уже существующим платформам вроде QuickSilicon, особенно если хочется просто порешать RTL-задачи и поэкспериментировать с разными языками.
Папочка Разработки
Играли в геометри даш?Вот там тыкаешься, страдаешь, кликаешь буквально по памяти и пытаешься дойти до следующей контрольной точки, чтобы страдать уже на следующем участке.Снапшоты в Event Sourcing — контрольная точка в геометри даш. Без них каждый раз:— Запрос пришёл на Петин баланс— Баланс Пети на первого января 2017-ого года был 0 рублей, он тогда открыл карту— До текущей даты было произведено 10к транзакций, надо посчитать, сколько сейчас, потому что циферки баланса нигде нет.Снапшоты:— Запрос пришёл на Петин баланс— Баланс Пети на первого января 2024-ого года был 500 рублей (снапшот)— До текущей даты было произведено 57 транзакций, надо посчитать сколько сейчасЕсть разница?События — истина, которая никогда не меняетсяСнапшоты — удобная точка отсчёта, от которой быстрее считать.
Rust
🤠 Трюк Индианы Джонса: std::mem::takeТипичная ситуация: у вас есть &mut self, и вы хотите забрать поле (например, String или Vec), что-то с ним сделать, и, возможно, вернуть обратно или сохранить измененную версию.Компилятор бьет по рукам: нельзя просто так переместить (move) значение из-за мутабельной ссылки. Новички часто делают .clone(), чтобы успокоить borrow checker. Но это лишняя аллокация!Решение: std::mem::take.Оно забирает значение из ссылки, оставляя на его месте Default::default().struct Buffer { data: Vec<u8>,}impl Buffer { fn process(&mut self) { // Мы "выкрадываем" вектор. // В self.data теперь пустой Vec (без аллокаций). let raw_data = std::mem::take(&mut self.data); // Тяжелая обработка в другом потоке/функции, // требующая владения (ownership) let processed = heavy_transform(raw_data); // Возвращаем результат self.data = processed; }}Это работает для всего, что реализует Default (Option, String, Vec). Для типов без Default есть std::mem::replace.Это zero-cost, семантически верно и намного быстрее клонирования.#rust #std #optimization #tips👉 @rust_lib
Product Сult / Паращенко Сергей
Продуктовая VS Инженерная культура. Какая культура эффективнее? (Пост 1)Вчера на митапе от South Hub про роли CPO и CTO, их зонах ответственности в современных реалиях, подняли тематику «Продуктовой» и «Инженерной» культуры, и мол, какая лучше. Но для начала давайте определим, что есть что :)Начну с Продуктовой культуры. Основной вопрос, на который ищется ответ в ней - «Что мы строим и зачем?». Тут весь фокус на пользователе и ценности, которую мы ему наносим. Вроде бы очевидно, но дьявол в деталях:- Важен не объём работы, а результат. Не то, сколько фич мы запилили, а то, изменилось ли что-то для пользователей и как поменялись наши метрики. Выросла ли конверсия? Стали ли люди чаще возвращаться? Вот это важно.- Эмпатия к пользователю значит реально погружаться в их проблемы, делать исследования, слушать обратную связь. Решения принимаются не потому, что «стейкхолдеру так показалось», а потому что есть данные и исследования.- Эксперименты являются важной частью продуктовой культуры. Мы признаём, что не знаем многого. Делаем MVP, тестируем гипотезы, смотрим на цифры. Ошибка — это не провал, а обучение, познание того, а как оно на самом деле. - Лучше выкатить что-то рабочее сегодня и получить фидбек, чем полировать до идеала год, пока рынок не ушёл.- Видение продуктовое важно, но оно должно подтверждаться метриками и калиброваться об реальность.- Роль членов команды, в частности инженеров - ты не просто кодер, получающий ТЗ. Ты соавтор решения. Ты понимаешь бизнес-контекст и можешь предложить более простое техническое решение для достижения цели.Инженерная культура. Основной вопрос - «Как мы это строим?»Здесь в центре — технологическое совершенство, надёжность и качество процессов:- Качество кода имеет доминирующее значение. Чистая архитектура, минимум технического долга, принцип «оставь код чище, чем нашёл». Звучит идеалистично, но это про долгосрочную эффективность и стабильность.- Рутина убивает продуктивность, потому фокус на автоматизация всего (CI/CD, автотесты и пр.). Если что-то делается руками больше двух раз — автоматизируй. - Важен постоянный обмен знаниями для развития всей системы и каждого разработчика - Code review как способ обучения, внутренние митапы, документация. В хороших командах знания не монополизируются, а усиливают друг друга.- Когда что-то сломалось, мы ищем не виноватого, а причину в системе. Post-mortem анализ, чтобы не повторить ошибку. Люди должны чувствовать себя безопасно.- Право выбирать инструменты и технологии, если это обосновано является ядром автономности инженеров.- Продукт для инженеров это нагрузка на систему. Их задача сделать так, чтобы эта нагрузка систему не уронила, чтобы всё было безопасно и поддерживалось годами.Эти две культуры часто конфликтуют, и это нормально, если конфликт конструктивный:Продакты говорят: «Нужно вчера, давайте быстрее, рынок не ждёт!»Инженеры отвечают: «Нужно сделать правильно, спешка породит баги и техдолг».Продакты смотрят на код как на инструмент. Его можно выбросить, если не зашло.Инженеры видят код как актив. Плохой код замедлит нас в будущем.Продакты боятся сделать никому не нужный продукт.Инженеры боятся, что система упадёт или станет неподдерживаемой.Для продактов качество — это когда пользователь доволен и метрики растут.Для инженеров качество — это когда система стабильна, код покрыт тестами, архитектура масштабируется.Когда доминирует продукт, команда скатывается в Feature Factory. Бесконечная гонка за фичами, а техдолг игнорируется. Через год-два разработка встаёт колом, любое изменение всё ломает, лучшие люди увольняются от работы с говнокодом.Когда доминирует инженерия, выстраивается Ivory Tower. Бесконечный рефакторинг ради рефакторинга, модные технологии, которые не нужны бизнесу. В результате идеальный код продукта, который никому не нужен, или выход на рынок, когда конкуренты уже всё заняли.Если одна культура полностью давит другую — компания и продукт и пользователь страдают. Все страдают.Продолжение будет в следующем посте.
Junior AI PM
#рецептВайбкодить должен каждый ПМ, чтобы лучше пониматьЗдравствуй, возмутившийся читатель!Я не говорю про продвинутый дипкодинг, вайб-инжиниринг и AI-assisted coding path. Я говорю именно про вайбкодинг. Легко что-то сделать, чтобы получить быструю ценность не напрягаясь и вообще иногда с голосовым вводомТут ты скажешь: "На**га, автор? Ты вроде серьёзный человек. Нормальное и стабильное у неофита не выйдет. И вообще, мы же менеджеры, а не инженеры". Да, всё такНо есть как минимум три способа, где вайбкодинг реально приносит пользу1️⃣ Делать прототипы вместо презентаций и в дополнение к ТЗ Если ты сядешь и начнёшь делать фичу сам, ты её очень хорошо продумаешь. Вылезут узкие места, потери в юзкейсах, просто неудобства. Тебе не нужен настроенный Claude Code с кучей плагинов, продуманными MCP и скиллами. Иногда антигравити более чем достаточно2️⃣Делать простенькие автоматизацииДо которых не хватает рук, времени или которые не позволяют текущие инструменты вроде Jira workflow. Пять лет назад нормально посчитать lead time в YouTrack было проблемой. Сейчас это вопрос одного скрипта и максимум 30 минут3️⃣Воссоздавать рабочую средуДумаешь, у вас просадки при ревью? Повайбкодь с автономным агентом: поревьюй его таски или дай ему поревьюить твои -> как на работе, с чеклистом и апрувами. Тимлид хочет усилить качество и ставит ruff + ещё 7 пакетов? Попробуй на себе. Думаешь про адаптивный регресс? Вперёд!А ещё это чистый кайф, держать всё под контролем и делать что-то как инженер. Сделать ноу-хау на коленке, показать команде и сказать: «Смотри, я собрал, оно решает нашу задачу. Давай скопируем подход, но сделаем нормально» — это суперсильный аргументЯ периодически вайбкожу для Twinby простенькие сервисы, а недавно начал делать прототипы. Однажды таким прототипом я нашёл причину просадки очень важной метрики (на уровне конверсии) в несколько раз и предложил решение, которое сейчас команда имплементирует
Корпоративная Мифология
Как ИТ лидеру понять, что он не управляет, а убегает от хаоса стартапа?Если у вас жёстко определён только реестр целей, а всё остальное живёт “в головах” и чатах — вы в классическом стартап‑хаосе.Минимальный контур управляемости для ИТ‑лидера — это четыре базовых реестра: 2 статических и 2 динамических. Статические создают возможность для деятельности, динамические — саму деятельность.🗿 Реестр ИТ‑систем (что вообще поддерживаем и развиваем)🌊 Реестр релизов (что меняем и когда)🧮 Реестр штатного расписания (какие роли предусмотрены)🏃🏻‍♂️ Реестр сотрудников (кто реально есть и чем занят)Если к любому из этих реестров у вас нет прозрачного доступа — хаос уже внутри процессов.А что вы добавили бы в базовый список?#Процессы@CorpMythology
Прибежище варвара
Всем привет, дорогие друзья!В прошлом своём сообщении я рассказвал, что написал «свой ютуб», сегодня я с новой поделкой... Где-то год тому назад, может чуть больше, общались мы с @henryaestersnest на тему гугл доков, и Генри озвучила опасения, что скоро они могут схлопнуться и нужна альтернатива. Я тогда выяснил, что, оказывается, существуют яндекс доки, так что без инструмента не останемся в случае чего, но мысль в голове засела и свербела там потихоньку. А так как я по натуре своей люблю проектировать, я, конечно же, в башке своей продолжал проектировать, ну и, у меня вырвалось... В общем я написал свой редактор для написания книг. Это достаточно простой текстовый редактор с минимальным форматированием, версионированием, выгрузкой книг в основные форматы и возможностью коллективной работы над документом (правда пока не в онлайне, а по очереди). Ну и комментирование на случай приглашения бетаридеров.Не претендую на замену всем привычных гуглдоков, но на случай чего для себя инструмент сделал. Да и чего греха таить, новую книгу я планирую писать в нём (на скрине не настоящий текст, это рыба ☺️).В общем, пробуйте, буду рад обратной связи!Всем хороших книг!UDP Забыл написать, вёрстку под мобильные устройства я не оптимизировал, так как писать книги с телефона мне лично прям очень неудобно, я особенно и не старался в ту сторону думать. Возможно, доработаю по необходимости.
Лев Левицкий | IT и финансы
Впервые сегодня познакомился с оценкой трудозатрат по Фибоначчи.Оценку ставим не по линейной шкале (1, 2, 3, 4, 5, 6, 7…), а по ряду Фибоначчи (1, 2, 3, 5, 8, 13, 21…). Прикольно, потому что позволяет учесть комплексную сложность, которую часто не учитывает линейная шкалаP.S. Пока не погуглил, был уверен, что пишется «Фибонначи». Век живи — век учись!
Денис Бесков написал
11 рисков проектов В анкете предзаписи задаю в том числе вопросы про основные риски, которые вас сейчас волнуют в проекте. Я собрал список из 11 рисков ИТ-проектов, которые: — имеют критические последствия, — повторяются из проекта в проект, — и снижаются…
Павел Лисовский. Аптечный и Фармбизнес от первого лица.
Диплодок-кейсы в аптечном ПОЧто такое «диплодок-кейс»?Это ситуация, когда у компании есть самая свежая и важная рыночная информация или технология, которая позволила бы заработать и обойти конкурентов, но ПО как диплодок — неповоротливое, медленное, неспособно работать с этими данными. В итоге компания теряете и скорость, и рыночное преимущество.Кейс 1. Февраль 2022 упущенный ценовой скачок🟰🟰🟰🟰🟰🟰🟰В феврале 2022 уже было понятно, что будет ценовой скачок. Сеть срочно подготовила ТЗ на модуль для обработки ценовых волн. Поставщик ПО пообещал сделать, но модуль был готов только к июлю. К тому моменту острая необходимость в нём уже отпала — момент был упущен.Не помню сколько стоила доработка блока, но точно меньше 1 млн. руб. Потери сети из-за его отсутствия оценивались десятками миллионов.Кейс 2. Дистрибьютор, который всё пропустил🟰🟰🟰🟰🟰🟰🟰Дистрибьютор использовал мощную, но тяжёлую ERP-систему Oracle. Каждое утро у него были актуальные данные по ценам конкурентов за 15 минут до начала торгов. Задача была очевидной - быстро проанализировать их и скорректировать свои цены и рассчитать прайс листы для всех клиентов к началу торговой сессии. Но система Oracle могла выполнить все эти расчёты только за 6 часов(!). Т.е. имея данные в 8 утра, дистрибьютор получал готовые прайс-листы только к вечеру, когда не то что старт торгов прошёл, а торговый день уже заканчивался! Фактически он выходил на рынок с вчерашними данными и неактуальными ценами.Гигантское конкурентное преимущество было утеряно. Точно оценить потери достаточно сложно, но для сравнения, другой дистрибьютор с нормальным (не идеальным) ПО в аналогичных условиях получил +182% к валовой прибыли и более 250% прироста товарооборота.Так сколько реально стоит эксплуатация вашего ПО? #Аптечный_бизнес #аптечное_ПО #Автоматизация_LisovskiyP🟰🟰🟰🟰🟰🟰🟰✅ @LisovskiyP "Системы Лисовского" - технологии прибыльного фармбизнеса
Андруша пишет код
Тут я выпал на неделю из жизни, так как делаю свои проекты. pickyouragent.dev один из них. Но и он уже около недели-двух не обновлялся.Причина проста: оказывается, вайбкодить не так просто. Если совсем не заглядывать в код и не иметь нормальной архитектуры внутри, то проект превратится в говно.В итоге если раньше я думал, что можноа) не уметь писать на языках программирования проектов, а уметь просто читатьб) не разбираться в подходах, так как как-то заработаетТо теперь понимаю, что это не так.Если у вас нет нормальных исходников, то проект будет будет деградировать с катастрофической скоростью. В итоге сейчас я изучаю как пишут cli приложения на расте, ios/macos приложения на свифте и переписываю на норм ядро pickyouragent.dev, потому что проекты тупо перестали быть расширяемыми.Так шо теперь всякий вайбкодинг только для одноразовых проектов.P.S. с рабочим проектом, за который получаю деньги, всё куда лучше. Благодаря людям проект скатывается в говно не так быстро. В итоге мы теперь уборщики для ллмок
1С:Урок для учителей и школьников
Информатика, которая связана с реальными задачами бизнеса и работы в компаниях. Дополнительное образованиеНа уроках информатики часть ребят задаётся прямым вопросом: «И где мне всё это потом пригодится?». Курс «Информатика. 1C:Предприятие. 7–11 класс» — яркий пример того, как школьная тема может быть напрямую связана с реальной работой: обучающиеся осваивают основы программирования и сразу применяют их на практике, в системе «1С:Предприятие 8.3», в которой работают тысячи бизнесов и организаций. Это помогает увидеть, что алгоритмы и модели — не абстракция из учебника, а инструмент для решения понятных задач.​👍 Курс можно выстроить по‑разному: сделать модуль для 7–9 классов, стартовать в 10–11 или вести одну линию с 7 по 11 класс, — всё зависит от учебного плана школы. Мы предлагаем готовые блоки: учебную версию «1С:Предприятие 8.3» с документацией, основы алгоритмизации и программирования, темы про виды информации и её обработки, моделирование, информационные технологии и системы, а также материалы про программное обеспечение как автоматизированную информационную систему, и дополнительно – большой справочник и отдельный раздел «Учителю» с методическими рекомендациями по проведению уроков и практических занятий.​Тренажёр состоит из двух кейсов, которые рекомендуется проходить по порядку. Возможен формат совместной работы в парах за одним компьютером — это будет способствовать развитию аналитического мышления и навыков обсуждения решений.Курс включает 10 папок и 114 ресурсов, которых хватает и на отдельные занятия (например, «Знакомство с 1С»), и на объёмный практический модуль по программированию и работе с информационными системами. Для подростков это возможность попробовать себя в среде, которая действительно используется в профессии, а для учителя — готовый набор материалов, который связывает школьную информатику с миром автоматизации и прикладных IT-технологий.Материалы курса уже выложены в Библиотеке «1С:Урок», их можно найти по ссылке.