TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #7 · 14.02

Я регулярно участвую в хакатонах и конкурсах для разработчиков. При всей прелести основной работы, в ней частенько не хватает творческой активности, поэтому меня спасают конкурсы с относительно свободными задачами. Там можно не только выиграть ценные призы, но и поделать что-то нестандартное. А это и приятно само по себе и полезно для программиста, как источник новых знаний и нового опыта. В этот раз мы с командой приняли участие в хакатоне от Яндекса и Великого Новгорода. Цель была такая: создать навык (то есть голосового чат-бота) для «Алисы», который будет интересен гостям и жителям этого города. Подробнее в статье. #dev#hacks https://teletype.in/@clockstackwheels/novgorod-hack

Hashtags

Резултати

Намерени 877 подобни публикации

Общо глобално търсене

Офигенная история про бытовой кибертерроризм. Я уже вам рассказывал пару раз о вредоносных закладках в OpenSource коде — описывал, например, борьбу одиночек с корпорациями таким способом, хотя последнее время больше внимания к антироссийским закладкам по политическим мотивам. Обычно мы понимаем работу софта, как что-то в компьютере, а вот тут случай из мира Internet Of Things. Baza написала об этом без технических подробностей, поэтому мне пришлось порыться самому. В интернете есть куча проектов "умной гирлянды" для украшения окон к новому году. Как правило, это прямоугольная матрица из адресных светодиодов: ей завешивается окно целиком, а микроконтроллер позволяет (путём изменения цвета каждого диода) выводить любой рисунок, надпись, анимацию. Как работает и выглядит можно посмотреть вот тут. В очередной такой версии один из участников форума AlexGyver'а (не сам Алекс) выложил форк прошивки для управления адресными диодами. Прошивка подключается по вайфай к роутеру, чтобы с телефона можно было через удобный UI настраивать эти самые тексты и анимации. Так вот, оказалось, что автор изначальной версии — украинец. В свою версию кода три месяца назад он добавил закладку: устройство, пользуясь подключением к ВайФай, определяет по IP местоположение, откуда оно запущено. Если это Россия, то из постоянной памяти считывается последовательность кодов символов так, чтобы в полночь первого января устройство отключало все внешние кнопки и выводило на окно надпись, прославляющую Украину. Такая надпись в итоге появилась, по видимому, у нескольких людей, использовавших эту гирлянду. И как минимум одного из них заметили соседи и настучали, вроде как дело завели даже. Морали лично для меня две: — Компьютерное уже давно не только в компьютере, а вполне влияет на физический мир. Это очевидно, но не во всех случаях эту мысль просто принять. — IoT должен быть только из источников, которым вы полностью доверяете, либо написан самостоятельно. P.S. Кстати, забавно видеть, что комментарии к коду у этого разработчика до определённого времени все по-русски, а в новых правках исключительно по-украински. То есть вроде как от вражеского языка отказался, но отредактировать всё предыдущее лень. #dev

Hashtags

Salt Soup Garage

@SaltSoupGarage · Post #935 · 16.10.2025 г., 08:36

4️⃣#Dev (For Devs & ReDevs Only) 📱 XaBlob Reversing Tool ➖➖➖➖➖➖➖➖➖ ☄️ Python tool to unpack/repack Xamarin assembly store, Developed By Me (Kirlif') ➖➖➖➖➖➖➖➖➖ 🔗Check Out/Download Here ➖➖➖➖➖➖➖➖➖ ✈️ TG: @SaltSoupGarage

Hashtags

В этом году не успел поучаствовать в VK Fresh Code, зато меня позвали оценить конкурсные проекты и посодействовать в награждении. Кажется, из всех постоянных конкурсов, в которых я участвовал, Fresh Code это единственный, который не скатился в тупые метрики (привет, Яндекс Диалоги), а его до сих пор судит команда жюри, что приводит к появлению большого количества действительно разнообразных проектов. В 17:00 будет стрим, можете посмотреть, и я там буду :) #dev https://vk.com/video-166562603_456239155

Hashtags

На выходных посетил HolyJS — это такая конференция для Frontend-разработчиков. Обратил внимание на то, что уровень технической погруженности докладов был ниже, чем на Joker (конфа по Java), при этом дисперсия интересности более кучная — на HolyJS было существенно больше докладов, которые мне понравились на уровне "хорошо", а на Joker некоторые доклады прям совсем не зашли, и я оценил их на "так себе". Кстати да, у JUG (организатора этих всех IT конференций) такая шкала оценки доклада: Ужасно, Плохо, Так себе, Нормально, Хорошо, Отлично, Супер. Я поставил одну "Так себе", одну "Нормально", одну "Супер" и кучу "Хорошо". Считаю, что оценку "ужасно" можно ставить, если докладчик пришёл бухой и вместо рассказа кидался в зал огрызками яблок. Потому что все доклады проходят отбор, и там не бывает именно критически низкого качества. Бывает, что вам не зашла тема, либо докладчик рассказал не то, что вы ожидали — но это, как мне кажется, не заслуживает оценки "ужасно". Думаю, в большинстве случаев такая оценка это просто эмоции: личная неприязнь к докладчику, либо несогласие с какой-то его идеологической позицией. Я сам "ужасно" никогда не ставлю. При этом на HolyJS было очень много разнообразных по темам и направлениям докладов, и это следствие того, что фронтенд можно исследовать в ширину сильнее, чем какую-нибудь Джаву, которую скорее копают в глубину (и поэтому на Joker доклады технически более сложные). Джава, хоть и запускается на миллионах устройств, делает это примерно одинаково везде. Во фронтенде же куча фреймворков и множество совершенно различных путей приложения: тут тебе и 3D, и процедурка, и сайты, и мобильные приложения, и какие-нибудь киоски, и геймдев, и умные телевизоры. Так что, резюмируя, я бы посоветовал HolyJS как точку входа в конференции для разработчика, если он не строго прилип к какому-то одному стеку. Тем более, честно говоря, для современных программистов знать хотя бы по верхам фронтенд это полезно независимо от основного направления, в котором они работают. #dev

Hashtags

Компания Volvo отключила россиянам свои онлайн-сервисы, в том числе мобильное приложение для взаимодействия с автомобилями, ПО для сервисных центров итд. Причём, ограничение работает даже в том случае, если вы смогли перевезти свой автомобиль в другую страну: достаточно того факта, что он изначально был поставлен в Россию. Пару лет назад мы с командой выиграли IT-хакатон от компании Volvo. По окончании нас попросили подписать документы о полной передаче нашего кода в собственность компании и отказе от любых прав на него. Не исключено, что этот код был в итоге как-то использован, и крутится где-нибудь на серверах Volvo. Если не код, то хотя бы концепция наша им тогда очень понравилась. Как говорится, можно вывезти Volvo из России, но... #dev

Hashtags

Сходил для интереса на конфу для Java-разработчиков, хотя не пишу на Java уже давно (а на хорошем уровне не писал никогда). Было много всего интересного, но особенно меня впечатлила лекция об истории развития этого языка. Java, на секундочку, вероятно самый распространённый язык программирования в мире с точки зрения количества разных устройств, на которых он присутствует. То есть буквально один из столпов современной цифровизации всего человечества. Так вот, когда он только зарождался, компания Sun Microsystems наняла себе в помощь несколько сотен разработчиков из России, бОльшая часть которых сидела у нас в Питере — это были выходцы из матмеха СПбГУ. Более того — в какой-то момент именно питерская ячейка стала крупнейшей по числу инженеров, превзойдя даже ту, которая располагалась в Калифорнии. И люди периодически ездили в США, чтобы синхронизировать свою работу с тамошним офисом (пересылали diff репозитория архивами по почте!). Потом Sun купила Oracle и постепенно ушла из России. Но вклад наши внесли, оказывается, очень существенный. #dev Перерисовал на эту тему картинку из XKCD

Hashtags

Роскосмос пару дней назад опубликовал отчёт о том, почему упала "Луна-25". Там конечно канцелярит, но можно примерно понять, что двигатель коррекции получил неверные данные от акселерометра: из-за возможного попадания в один массив данных команд с различными приоритетами их исполнения прибором Это очень похоже на программную ошибку, а это моя сфера, и я решил над ситуацией поразмыслить. Хейтеры сразу стали строчить комментарии в стиле "Ололо, наняли каких-то идиотов, которые простейшие тесты не провели". Тут обычно справедливо вспоминают аварию с европейской ракетой Ариан-5 в 1996 году. Там буквально из-за пары строчек кода в результате неправильного приведения числовых типов ракета за 7 млрд баксов развалилась на куски в воздухе. Бывает. Что касается Роскосмоса, при всей его сомнительной репутации, объяснение "Дураки не провели тесты" звучит лично для меня неправдоподобно. На мой личный взгляд возможны два варианта: 1. Если в описании ошибки слово "приоритет" обозначает какой-то признак внутри объекта команды, значит, на входе в приёмный модуль эти команды не были отфильтрованы. Выглядит как грубая ошибка, целый логический блок упущен. Вряд ли этот блок вообще не написан, скорее всего он не выполнился. Такое бывает, если в тестовой среде есть какое-то условие, которого нет в рабочей, и именно это условие отвечает за выполнение участка кода. Сталкивался с таким миллион раз. Самое дикое из последнего: код парсит эксель-таблицу с числами. Разработчик написал, запустил проверил, прогнал тесты, всё ок. Отправляем в прод — все числа будто бы рандомно меняются на другие. Запускаем снова — у всех разработчиков функционирует нормально, а в проде на сервере нет. Таблица одна и та же. Можете подумать, почему так. Ответ: у разработчиков стоит русская локаль и десятичный разделитесь это запятая, а на проде в докере точка. При парсинге на проде запятая уже интерпретируется как разделитель тысячных разрядов. 2. Куда вероятнее, что слово "приоритет" в описании ошибки обозначает время, а, значит, список команд просто не был отсортирован, и в обработчик уже после актуальных значений попали какие-нибудь начальные нулевые данные, сбившие логику. По косвенному описанию проблемы очень похоже именно на это. Значит, на тестах всегда порядок возникновения команд соответствовал порядку их прихода, а в реальности перестал соответствовать. Вообще, работать с железом очень сложно. Какую-нибудь схемку заглючило от холода, она задержала ответ от датчика на миллисекунду, и всё. Никто не знал, что такая проблема возможна, пока она не возникла. Мне рассказывали о таком случае: юзер логинится на сайт и иногда логин проходит, а иногда нет. Логин и пароль те же самые. Просто в случайные моменты времени ему возвращают токен авторизации, а в другие моменты времени ошибку 403. Никакой закономерности нет вообще. Нет зависимости от времени суток и даты. Сервер точно работает стабильно и не падает все 100% времени. Почему так может быть? Ответ: у сервиса авторизации два инстанса, перед которыми балансировщик нагрузки. В одном инстансе данные для авторизации есть, в другом нет. Балансировщик при примерно одинаковой нагрузке включает просто случайный выбор между ними. В общем, программисты иногда допускают такие косяки, что какая-то мелочь может привести к серьёзной аварии. Это я вам говорю как программист, который пишет для атомных станций :) #dev

Hashtags

Приехали фотки с DotNext. Как вы помните, неделю назад мы с коллегой выступили на этой конференции. В прошлом году на мой личный взгляд DotNext выдался вялым (я был там как участник): мало людей, скучноватые доклады. Злые языки заявляли, что это, во-первых, из-за ухода западных компаний: дескать, Майкрософт может рассказать что-то интересное, а МТС или Тинькофф не может; во-вторых, из-за того, что все айтишники, разумеется, уехали из страны. В этом году у конференции явно открылось второе дыхание (видимо, айтишники вернулись обратно, ага). Во-первых, людей было очень много. Так много, что организаторы, по-видимому, не рассчитывали на такой наплыв: площадка не справлялась. Это, пожалуй, единственное замечание — в залах то и дело не хватало мест, на обеде невозможно было найти себе стол, отстояв перед этим огромную очередь. С другой стороны, приятные впечатления от такой сильной востребованности конференции перевешивают любые проблемы. Во-вторых, что тоже важно, доклады офигенные, один лучше другого. Было очень трудно выбрать, на какие идти (обычно параллельно шло по три доклада в трёх залах). Узнал несколько очень интересных для себя новых вещей, да и в целом всегда любопытно посмотреть на чужой опыт. Наш доклад по DDD собрал полный зал — организаторы даже доносили стулья. Местами вышло хорошо, местами, конечно, есть куда развиваться. Получили в целом положительные отзывы. Среди критики есть обоснованная (например, мы не слишком внимательно проверяли код на слайдах), но есть и немного откровенного хейта. Его очень мало, буквально от пары человек (из нескольких сотен общей аудитории доклада), но, мне казалось, что в профессиональном сообществе народ старается вести себя, хм..., профессионально :) По слухам кое-кого не взяли выступать с примерно такой же темой, как у нас, так что источник хейта тоже понятен. Ещё любопытный момент. У нас был доклад о практическом применении DDD: мы взяли настоящую архитектуру со своей работы, заменили там названия сущностей, упростили и рассказали в виде доклада. При этом получили несколько комментариев в духе: "Так не бывает, это всё теория, на практике не применимо". Вроде и критика, а вроде и гордость берёт за то, что мы сделали так, как другие считают невозможным. В общем, очень круто. Спикерам дают проходку на все конференции сезона, так что я загляну как участник ещё на несколько. А в следующем году буду, наверное, снова подаваться докладчиком. Ещё есть, что рассказать. #dev

Hashtags

Сбер выкатил сегодня свой Гигачат на всех (до этого была только закрытая бета). Немного обидно за ребят — ещё год назад этот релиз был бы очень значимым, но сейчас разговаривать с откровенно косячащим и допускающим детские ошибки Гигачатом совершенно неинтересно, если вы видели, как работает GPT4, в том числе на русском языке. За решением практических задач тоже нет никакого смысла (пока что) ходить в русские сетки Яндекса и Сбера, потому что GPT4 просто делает лучше абсолютно всё. Он реже ошибается, у него лучше с логикой, он отвечает одинаково на одинаковые запросы (у Яндекса с этим очень большие проблемы пока что), более точен в фактах и рассуждениях. Ещё команда Гигачата ведёт очень странный маркетинг: будто бы это телепередача для домохозяек. Начиная от частых унылых инфоповодов в духе "Сегодня день резиновых уточек, спросим у гигачата что он думает про резиновых уточек" и заканчивая восторгами по поводу туповатых ответов нейросетки на попсовые запросы ("Пять отмазок не идти на работу"). Создаётся впечатление полного отсутствия product-market fit — Сбер не понимает, что это за продукт, для какой аудитории он нужен, кто будет готов за него платить и в каких обстоятельствах. Домохозяйки вряд ли будут. Впрочем, Яндекс про свою сетку запостил полторы новости и замолчал, так что я даже не знаю, что хуже. Но зато у Яндекса есть preview API, и мне удалось его погонять. Ожидаемо хуже, чем GPT4. Как я уже сказал, основная проблема в том, что пять одинаковых запросов вернут пять разных ответов, причём даже по размеру разных: объём текста может отличаться в несколько раз. #dev

Hashtags

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

Hashtags

Автор OpenSource библиотеки тайно ворует данные разработчиков, чтобы проверять, донатят они ему, или нет. Вообще, скандалы с опенсорс-библиотеками бывают не так уж и редко. Разработчики делают что-то бесплатно, этот труд оказывается нужен тысячам людей, включая большие корпорации, а дальше возможны варианты. За последние пару лет ожидаемо было много политических заявлений и даже вредоносного кода по признаку страны, из которой запускается софт. Просто, стартуя с какой-то версии, какая-нибудь библиотека начинает делать что-то постороннее, помимо своей основной функциональности. К чести комьюнити, такие вещи всегда очень жестко критикуют, даже если идеологические взгляды разработчика выглядят общепринятыми в той среде, где это комьюнити развивается. Вот на днях новый такой скандал. Впервые в моей жизни в такую ситуацию попала библиотека, которую используем на работе — а именно Moq для .NET. Автор написал код, который спаунит новый системный процесс и командой git config --global user.email читает почту разработчика, а затем с помощью почти зашифрованной закрытой DLL-библиотеки, помещённой в поставку Moq, отправляет данные в сервис GitHub SponsorLink, чтобы проверить, платит ли разработчик донаты. Конечно же, система безопасности на проде не даст никуда сходить этому коду и ничего плохого сделать. Но, помимо прода, рабочие проекты запускаются еще и на компьютерах разработчиков локально. Вот тут заложена настоящая опасность. Где запрос почты, там может быть следующим шагом что угодно другое — скачивание ваших интимных фото и передача вовне, чтение файла с паролями из папки браузера, поиск номера кредитки... Разумеется, всё во имя самых благих целей. В общем, комьюнити порассуждало о том, что это критический подрыв доверия, хотя автор оправдывался как мог (как moq, хе-хе). Народ просто закидал его камнями, начал массово исключать Moq из своих зависимостей, ставить дизлайки, отправлять репорты. Вроде как это вынудило мейнтейнера откатить изменения. Но на всякий случай Moq лучше не обновлять больше никогда и постепенно заменить на аналоги. Доверие — важнейший ресурс в опенсорсе. #dev

Hashtags

Впервые использовал нейросетку для реальной практической пользы в коммерческом заказе. У заказчика есть база данных, куда информация вносится кое-как. Представьте, что вы составляете каталог, например, книг, и в базе данных предусмотрены поля: "Автор книги", "Название книги", "Число страниц" и ещё десяток других полей с информацией. Но заполняют эту базу другие люди, которых вы не контролируете, поэтому информация может случайным образом лежать в любом произвольном поле, быть введена с ошибками, опечатками и так далее. В реальном заказе были не книги, я просто привожу пример такой же задачи. Вот как это может выглядеть: 1. В поле "Автор" написано "Лондон, Дж. Белый Клык", поле "Название" при этом пустое. 2. В поле "Название" написано "150-страничный сборник рецептов", поле "Число страниц" пустое 3. В поле "Название" написано "джеклондон мартин иден", поле с автором пустое 4. В поле "Автор" написано "150-стр.3изд,доп.перераб инструкция по пользованию подстанциями типа ТП-13, М.Васильев москва 98" ...и так далее. А нужно искать нормально по автору, названию, числу страниц, городу и году издания. Никакими прямыми алгоритмами это не берётся: регулярки, поиск по ключевым словам, морфология, нечёткая логика — всё это либо даёт много ложноположительных результатов, либо (если подкрутить пороговые значения) вообще перестаёт искать. И вот тут в какой-то момент мы решили попробовать запрашивать через API GPT. Нейросетке задаётся следующий промт: "Есть следующая информация: «150-страничный роман джеклондон мартин иден». Если здесь есть то, что похоже на имя автора книги, напиши мне его, иначе ответь null". И, надо сказать, даже 3.5 справляется с этой работой очень хорошо. Получилось сравнительно без ошибок разметить около 80% данных (остальные с ошибками даже после нейросетки). Но, важный нюанс. Сначала мы пытались поймать все данные одним запросом: "GPT, выведи мне JSON, в котором есть автор, название, число страниц...", но тесты показали, что значительно эффективнее будет отдельно спросить 5 раз про 5 разных типов данных. Да, это расходует больше токенов, но они и так сравнительно дёшевы. Кстати, API у OpenAI безбожно глючит даже на платном тарифе. Обещанных 3500 запросов в минуту нет даже приблизительно. По факту удаётся отправлять около 200-300 запросов в минуту, потом оно вываливается в таймауты или ошибку 429, нужно делать какие-то умные паузы, ждать итд. Над этим всем пришлось повозиться, зато результат вполне ощутимый. #dev

Hashtags

123456•••10•••15•••20•••25•••30•••35•••40•••45•••50•••55•••60•••65•••70•••7374