Несколько лет назад я начал добавлять Go в свой арсенал языков (будучи на тот момент Java разработчиком). Мне было очень непривычно. Более того, я принял язык не с первой попытки. Причём пришлось принять его больше из-за сложившихся обстоятельств, чем по собственному желанию.
Но прошло время, Go стал моим основным языком и, рискну сказать, любимым. В статье ниже расскажу, почему язык казался мне непривычным, какие парадигмы мне пришлось поменять в своей голове и почему во многом это оказалось более эффективно.
Уточню: статья ориентирована больше на тех, кто планирует перейти в Go, чем для опытных разработчиков.
Читать далееПривет, я собрал небольшой бортовой компьютер для авто, который умеет показывать температуру, время с момента включения и раздавать «Free Wi-Fi». В этой статье приведён код, список компонентов и всё остальное, чтобы собрать такой же. Назвал я его Kruk — от беларуского слова «Крук» (рус. «Крюк»).
Вот видео его работы на YouTube. Здесь его страница на GitHub.
Если вы уже посмотрели видео, то понимаете суть функции «Free Wi-Fi». Как только к Wi-Fi подключаются, система сразу переводит пользователя на captive portal, а сам компьютер начинает показывать, помимо температуры и времени, ещё два дополнительных окна с информацией о количестве пользователей, подключившихся к Wi-Fi, и о количестве пользователей, которые до сих пор к нему подключены (online).
Читать далееС вами снова Кирилл Прямов, менеджер по развитию NGFW в UserGate. В прошлый раз мы рассказали о нашей новой производительной аппаратной платформе UserGate F8010 и провели несколько нагрузочных тестов. Сегодня, как и обещали, продолжаем тему — поговорим о тестировании гибридного устройства UserGate G9300 с аппаратным ускорением на базе FPGA из новой линейки G, которую мы планируем вывести на рынок осенью 2025 года.
Читать далееПочему физический труд становится "антихрупким" навыком в эпоху ИИ
Автор: HRD в IT, наблюдаю трансформацию рынка труда изнутри
Читать далееGoogle Photos — отличный сервис для хранения фотографий, но у него есть одна проблема: он не умеет находить дубликаты. Вернее может, но 100% одинаковые - даже разные EXIF данные - и все - давай, до свидания! За годы использования в моей библиотеке накопились тысячи похожих фотографий, и удалять их вручную — задача на десятки часов.
Особенно, когда тебя предупреждают, что 80% места занято - купи еще!
Я решил создать расширение для Chrome, которое автоматически найдет дубликаты. Казалось бы, простая задача: скачать фотографии, сравнить их с помощью нейросети, готово! Но оказалось, что браузерные расширения — это совершенно особый мир со своими ограничениями, и привычные подходы здесь не работают.
Читать далееЭтой проблеме я уже посвятил две статьи. Ну, как проблеме — проблеме для меня. Никак не удавалось охватить её целиком, когнитивно и ментально промоделировать. Появление Copilot кардинально всё изменило — ментальные границы раздвинулись, и здесь я выкладываю окончательное решение для семейств микроконтроллеров Synergy и RA8 от Renesas.
Читать далееИсследование механизмов и патологий формирования субъективного опыта в системах искусственного интеллекта
Читать далееМы с Крисом недавно «с нуля» буквально за пару часов создали механизм поиска для моего блога. Основную часть проделал именно Крис, так как до этого с word2vec я был знаком лишь отдалённо.
Разработанный нами поисковик основывается на векторных представлениях (эмбеддингах) слов. Принцип здесь следующий. Функция получает слово и отображает его в N-мерное пространство (в данном случае N=300), где каждое измерение отражает определённый оттенок смысла. Вот хорошая статья (англ.) о том, как обучить собственную модель word2vec, и её внутреннем устройстве.
Суть работы созданного нами поиска заключается в преобразовании моих статей, а точнее составляющих их слов, в эмбеддинги, сохраняемые в общем пространстве. Затем при выполнении конкретного поиска текст его запроса преобразуется аналогичным образом и сопоставляется с векторами статей. В результате этого сопоставления, используя метрику косинусного сходства, мы ранжируем статьи по их релевантности запросу.
Уравнение ниже может показаться пугающим, но в нём говорится, что косинусное сходство, представляющее косинус угла между двух векторов cos(theta), определяется в виде скалярного произведения, поделённого на произведение величин каждого вектора. Разберём всё это подробнее.
Читать далееЯ ненавижу руками создавать бойлерплейты. Любые. Нет, LLM-ки тут тоже не помогут: им надо писать промпты (а потом ещё проверять, что оно там нагенерировало). Мне всегда хотелось, чтобы остов приложения задавался конфигурацией, а я бы только добавлял бизнес-логику. Буквально, в уже сгенерированные для неё места.
Именно в такой парадигме написана моя библиотека finitomata, в которой конфигурация конечных автоматов задаётся текстовым представлением (PlantUML/Mermaid), а бизнес-логика просто распихивается по колбэкам переходов. Но мне этого оказалось мало, и я решил обернуть в такие же абстракции хранение и подписку на изменения.
Так родилась библиотека (пока не опубликована, доступна только в исходниках) persistomata.
Даже не библиотека, а (простите) фреймворкДесятки тысяч компаний используют Ansible для управления конфигурациями и автоматизации ИТ-процессов. И мы подготовили подборку материалов, которые помогут познакомиться с этим инструментом — от базовых руководств уровня «с чего начать» до продвинутых практик по написанию эффективных плейбуков.
Читать далее
Чем больше пишешь ретроспектив, тем отчётливее понимаешь, как в творчестве многое зависит от удачи. Но даже при таких исходных история появления и успеха французской RPG под названием Clair Obscure: Expedition 33 — это чудо из чудес. Как команда ноунеймов нашла друг друга, завоевала армию игроков и что данный феномен значит для игровой индустрии? На эти и не только вопросы давайте найдём ответы вместе.
Читать далееПривет, Хабр! Меня зовут Сергей Игнатущенко. Я ведущий разработчик C# в МТС, а еще обожаю путешествия. Как раз недавно побывал на Филиппинах и остался дико доволен. Сегодня расскажу, как организовал поездку, во сколько обошлись билеты и к каким минусам на островах стоит подготовиться. Надеюсь, мой опыт поможет спланировать классное путешествие. Начнем!
Читать далееЕсли наша Солнечная система кажется стабильной, то это только с точки зрения короткой жизни человека. Земля вращается, ночь сменяет день, Луна перемещается через свет и тень, а Солнце висит в небе. Но на самом деле всё движется и влияет друг на друга, и тонкий баланс, который мы наблюдаем, может легко разрушиться. Могли ли пролетающие звёзды нарушить орбиту Земли и привести к резким климатическим изменениям в прошлом нашей планеты?
Звёздный пролёт [stellar flyby] – это событие, при котором другая звезда проходит достаточно близко к нашей Солнечной системе, чтобы вызвать в ней заметные изменения. Наш район в Млечном Пути относительно малонаселён, поэтому звёздные пролёты происходят реже, чем в других частях галактики. Но они всё же происходят.
Читать далееВсё самое интересное из мира кибербезопасности /** с моими комментариями.
Новости этой недели про то, как государство закручивает гайки и приближает нас к 1984, новые уязвимости, позволяющие получит root в linux, фейковая новость про утечку в 16 млрд. записей и другие только самые интересные и важные новости информационной безопасности.
Читать далееСегодня хочу рассказать вам о библиотеке yolo_detector — простой, удобной и производительной обёртке для использования моделей компьютерного зрения YOLO на языке Rust.
Читать далееВ этом материале я бы хотел поделиться инструкцией по установке Stable Diffusion и ComfyUI.
Изначально я писал это как туториал для себя (на случай, если придётся переустанавливать), но друзья просили поделиться туториалом и я подумал, что материал может быть интересен ещё кому-нибудь. Все это, конечно же, можно нагуглить, но только что уже это сделал, погуглил, початогепетил и собрал результаты в виде одной инструкции.
Читать далееЭта статья будет интересна тем хабравчанам, которые регулярно занимается силовыми тренировками. Если вы начали заниматься по моей программе, которую я публиковал в ноябре прошлого года (она получила много положительных отзывов, спасибо вам!), то к этому времени у вас может иссякать ваш newbie gains, и все все чаще начинаете слышать фразу "Хочешь расти дальше, нужно прогрессировать".
(А если вы еще не знаете, зачем заниматься силовыми, вот вам 7 железных причин для этого).
Хочешь быть сильным? Становись сильнее.
Хочешь накопить 12 млн за год? Откладывай каждый месяц по 1 млн.
Хочешь быть уверенным в себе? Становись увереннее по чуть-чуть каждый день.
Глупости, да?
Почему тогда великая силовая мудрость последних лет «Хочешь расти? Нужно прогрессировать» кажется логичной?
В этой фразе есть зерно… нет. Ведро зерен правды, но восприятие полностью искажено, с нарушением причинно-следственной связи.
Давай разбираться, что такое прогрессия, как ее создавать и использовать с умом.
Читать далееИсследователи вскрыли еще один фрагмент головоломки Болезни Паркинсона. Определенные клетки иммунитета проявляют необычную активность задолго до того, как проявляются конкретные симптомы, связанные с тремором. Это открывает путь к разработке более ранних диагностических инструментов и немного меняет мнение о первопричинах Болезни Паркинсона.
Читать далееВ программировании часто приходится писать программные компоненты, которые, в общем очень похожи друг на друга по своей структуре и API.
В заметке я представил простую утилиту r.exe для авто-замены токенов в файлах и названиях файлов.
Читать далее