Как стать автором
Поиск
Написать публикацию
Обновить

Как стать автором

7 способов убить карьеру через GitHub

Уровень сложностиПростой
Время на прочтение4 мин

Я предлагаю рассматривать GitHub не как портфолио, а как витрину. Витрину, которую стоит чистить. Особенно если вы ищете работу, и особенно, если вы думаете, что она вам в этом помогает.

Безусловно наличие гитхаба в резюме – дополнительный плюс. За последние три года я просмотрел сотни GitHub-аккаунтов кандидатов. И в большинстве случаев это был цифровой мусор. Десятки странных репозиториев, в которых невероятно сложно найти что-то релевантное. Сломанные pet-проекты. Непонятные тестовые задания для той самой вакансии из далекого 2017 года. Туториалы без изменений. И, самое любимое, репозитории «на будущее», которое так и не наступило.

В этом тексте я расскажу, как гитхаб портит впечатление о вас и как превратить его в актив, а не в мертвый груз, тянущий вас на дно. 

Читать далее
Всего голосов 90: ↑58 и ↓32+41
Комментарии129

От Job Story к User Story. Часть 1. Введение в связь артефактов и циклов

Уровень сложностиСредний
Время на прочтение4 мин

Мы любим говорить: «Нужно делать CustDev». Или: «Нужно считать Юнит-экономику». Или: «Нарисуем CJM — и станет ясно».

Проблема в том, что эти артефакты часто делаются изолированно: JTBD не связывается с User Story, Юнит-экономика существует в вакууме, Use Cases живут отдельно от гипотез, а гипотезы накапливаются и становится непонятно, почему они появились именно в таком порядке.

В результате — знания есть, но целостной картины видения продукта нет.

Читать далее
Всего голосов 3: ↑3 и ↓0+4
Комментарии3

AR в фарме: зачем нужен и как построен производственный процесс

Уровень сложностиСредний
Время на прочтение7 мин

Меня зовут Пётр Толочков, я основатель компании Way2Win. Мы более 7 лет делаем проекты в фарме с использованием AR технологий. В этой статье я расскажу, зачем в фарме AR, какие задачи решает эта технология и как выстроен производственный процесс.

Читать далее
Рейтинг0
Комментарии1

Загрузка Docker-образа в Private Registry: руководство для чайников

Уровень сложностиПростой
Время на прочтение3 мин

Автор: Оганесян Микаэль, backend-developer

В этой статье я расскажу, как создать, тэгировать и загружать Docker-образ в приватный Docker Registry, используя Key ID и Key Secret. Также рассмотрим, как скачать образ с Registry на целевой сервер.

Читать далее
Всего голосов 12: ↑2 и ↓10-7
Комментарии2

Эти 5 игр кажутся простыми, но заставляют залипнуть. Почему?

Уровень сложностиПростой
Время на прочтение10 мин

Привет! С вами Саша Солдатов, CEO диджитал-студии REBOOT. Я помогаю бизнесу делать игры. С их помощью можно привлекать клиентов, продавать товары, проводить онбординги внутри компаний — короче, решать бизнес-задачи. 

Я долго наблюдал за хабровчанами, а потом подумал, почему бы мне самому не написать первую статью. Решил посвятить материал тому, что люблю и с чем работаю каждый день, — геймификации. 

В статье расскажу о пяти залипательных мини-играх. Разберу, как их создавали и что за механики внедряли гейм-дизайнеры. А ещё попробую ответить на вопрос, чем же так хороши эти продукты для бизнеса.

В конце статьи поделюсь чек-листом по созданию игр для бизнеса. Он поможет начать разрабатывать собственную игру.

Читать далее
Всего голосов 17: ↑14 и ↓3+14
Комментарии19

Разработка IoT устройства с нуля от чайника для чайников

Уровень сложностиСредний
Время на прочтение58 мин

Всем привет!

Меня зовут Егор - я бэкенд разработчик и работаю в бигтехе. Но я не буду рассказывать о перекладывании jsonчиков (или буду). Данная статья (надеюсь, вы оценили каламбур в названии) рассчитана на разработчиков, которые ранее слышали об Arduino или пробовали программировать под эту платформу. В ней мы рассмотрим опыт новичка в плане проектирования и разработки IoT устройства мониторинга уровня CO2 в помещении. Наша цель - сделать устройство, которым просто пользоваться и оно приносит пользу.

Читать далее
Всего голосов 41: ↑41 и ↓0+52
Комментарии35

Как заранее рассчитать стоимость проекта, если у вас мало информации о нем

Время на прочтение6 мин

Привет! Меня зовут Герман Лышков, я руковожу проектами в диджитал-продакшене Далее. Если вам когда-то приходилось оценивать разработку сферического коня в вакууме, это статья для вас. Я расскажу, как это сделать и дам пару советов из личного опыта. 

Читать далее
Всего голосов 9: ↑8 и ↓1+7
Комментарии15

Как «взрастить» ответственность в сотруднике (реальный опыт команды)

Уровень сложностиПростой
Время на прочтение4 мин

Всем привет!

Сразу оговорюсь, что это моя первая статья на Habr. Надеюсь, что она окажется полезной для команд, сталкивающихся с проблемой вовлеченности и ответственности новых участников. Желание написать ее появилось внезапно. Мне захотелось поделиться успешным опытом преодоления проблемы, с которой мы в нашей команде внезапно столкнулись. Но обо всем по порядку.

Читать далее
Всего голосов 16: ↑14 и ↓2+14
Комментарии8

Как мы искали лучшие AI-модели (часть 1)

Уровень сложностиПростой
Время на прочтение17 мин

AI используется всё чаще. Кому‑то это упрощает ежедневную рутину, кому‑то заменяет психолога, кому‑то помогает приобретать новые знания. Есть и те, кто хочет существенно усовершенствовать процессы в уже работающем бизнесе или создает на основе AI свои продукты (наш вариант — последний).

В начале этого года нам понадобилось провести тестирование AI‑моделей на предмет имеющегося функционала и возможностей AI‑моделей для оценки перспективности использования в тех или иных продуктах.

Данная серия статей про результаты такого тестирования — от простого до самого продвинутого.

Читать далее
Всего голосов 3: ↑3 и ↓0+7
Комментарии4

PACS и ИИ: от внедрения до интеграции машинного обучения в российском здравоохранении

Уровень сложностиСредний
Время на прочтение13 мин

PACS (Picture Archiving and Communication System) — это не просто софт. Это нервная система медицинской визуализации, которая собирает, архивирует и распределяет DICOM-данные между всеми участниками медицинского процесса. А внедрение PACS в реальном здравоохранении — это смесь инженерии, логистики, дипломатии и кризис-менеджмента.

Представьте, что вы врач-радиолог. Каждый день вы просматриваете сотни медицинских изображений, ища признаки заболеваний, травм или аномалий. Но как эти изображения попадают к вам? Как они сохраняются и передаются между больницами? Ответ кроется в стандарте DICOM и системе PACS.

DICOM (Digital Imaging and Communications in Medicine) — это не просто формат файлов, это целая экосистема для медицинской визуализации. Представьте его как универсальный язык, на котором говорят все медицинские устройства: от рентгеновских аппаратов до МРТ-сканеров. Каждый DICOM файл — это не просто картинка, а целая история пациента, закодированная в цифровом виде.

Когда пациент проходит обследование, оборудование создает не только само изображение, но и записывает массу дополнительной информации: кто пациент, когда проводилось исследование, на каком оборудовании, с какими настройками. Все это упаковывается в DICOM файл вместе с пиксельными данными. Получается своеобразная медицинская капсула времени — полная картина того, что происходило в момент исследования.

Когда мы говорим об интеграции машинного обучения в медицинскую диагностику, PACS становится естественной точкой входа для ИИ-алгоритмов. В этой статье я расскажу о практическом опыте внедрения PACS в масштабах, сопоставимых с федеральным проектом, и о том, как мы интегрировали ИИ-диагностику в эту систему.

Читать далее
Всего голосов 2: ↑2 и ↓0+4
Комментарии1

VCP STlink-v3minie быстро и просто

Уровень сложностиПростой
Время на прочтение3 мин

Про настройку отладку ваших stm микроконтроллеров с помощью программатора-отладчика STLINK-V3MINIE через встроенную функцию VCP.

В статье описана настройка инструментов на ОС Windows и ОС Linux, также приведен пример кода для вывода данных себе в терминал на ПК.

Читать в продолжение
Всего голосов 1: ↑1 и ↓0+3
Комментарии4

Как я написал современный GUI для yt-dlp на Python

Уровень сложностиСредний
Время на прочтение7 мин

Надоело каждый раз лезть в терминал, чтобы скачать видео с YouTube? Мне тоже. Поэтому я сделал нормальный GUI для yt-dlp - без лишних кнопок, с современным интерфейсом и чтобы просто работал. Код на GitHub, готовая сборка тоже есть.

Зачем вообще это делать?

Да, yt-dlp крутой - качает с кучи сайтов, быстрый, надёжный. Но блин, каждый раз набирать команды в консоли - это не для всех. Особенно когда нужно быстро скачать что-то и не париться с параметрами.

Посмотрел на существующие GUI - одни выглядят как из 2005 года, другие напичканы настройками, которые 99% пользователей никогда не трогают. Захотелось сделать что-то простое: вставил ссылку, выбрал качество, скачал. Всё.

Что хотел получить:

Простоту - минимум кликов от ссылки до файла

Нормальный вид - тёмная тема, без уродских кнопок из 90-х

Скорость - никаких тормозов и зависаний

Работает везде - Windows точно, остальные ОС в планах

Не требует установки - скачал exe и пользуешься

Читать далее
Всего голосов 52: ↑50 и ↓2+59
Комментарии97

Пишем чат-бота для мессенджера MAX на Python

Уровень сложностиПростой
Время на прочтение2 мин

Рассказываю как создать эхо-бота для MAX на Python с помощью библиотеки maxapi без проблем для aiogram разработчика!

Получить код
Всего голосов 44: ↑15 и ↓29-10
Комментарии58

AGI: от идеи к реализации, часть 3: архитектура трансформер и идеи для улучшения

Уровень сложностиСредний
Время на прочтение11 мин

Для понимания структуры и процессов в AGI системе, давайте рассмотрим решения на текущий момент: LLM - большая языковая модель, архитектура трансформер.

Трансформер представляет собой преобразователь текста: входной текст преобразуется в наиболее вероятный токен (часть слова) предсказанный моделью.

Информация основана на подробном разборе кода трансформера GPT2 и DeepSeekV3.

Подробная формула:

Input - вход или промпт.

Tokens = Tokenize(Input),

Output = Ptokens = Attention(Tokens) + FeedForward(Tokens).

Здесь мы видим что преобразование задается функцией! Т.е оно линейно. Наиболее вероятный токен затем выбирается с помощью случайного значения если задана температура. Т.е здесь случайность влияет в конце и только на выбор токена. Поэтому температура при больших значениях может иметь непредсказуемый результат. Внутри функции Attention: есть матрицы Wq, Wk, Wv и FeedForward: Wa, Wb которые подбираются таким образом чтобы ошибка предсказанного значения имела минимальное значение. Как это делается? Мы видим что само преобразование задается математической функцией и задача в том чтобы найти такие значения матриц чтобы результирующая функция потерь LOSS имела меньшее значение чем текущее. Как же это делается? Это называется backpropagation и вычисляется через градиент функции. Для этого все слои Attention, FeedForward представляются в виде вычислительного графа который называется TensorFlow.

Вершины графа — это операции, ребра это входные значения. Каждой вершине соответствует некоторая функция. Для примера рассмотрим такую функцию:

Читать далее
Всего голосов 3: ↑3 и ↓0+5
Комментарии12

Парсинг российских СМИ

Уровень сложностиПростой
Время на прочтение14 мин

В эпоху больших языковых моделей полноценный сбор информации с сайтов все еще не самый очевидный сценарий, требующий учета многих мелких деталей, а также понимания принципов работы сайта и взаимодействия с ним. В этом случае единственный оптимальный метод сбора такой информации - это парсинг.

В данной статье мы сфокусируемся на парсинге сайтов российских СМИ, в числе которых Meduza,* как официально запрещенное в РФ и более государственно-подконтрольных RussiaToday и Коммерсанта. Разберемся какой это сделать наиболее эффективно и получим текст и метаданные статей. Как основные инструменты используем классические библиотеки в Python: requests, BeautifulSoup, Selenium.

Читать далее
Всего голосов 5: ↑5 и ↓0+8
Комментарии13

Про esModuleInterop и совместимость модулей ES6 и CommonJS

Уровень сложностиПростой
Время на прочтение8 мин

Всем привет, хабровчане! Я (не)начинающий разработчик с относительно небольшим стажем, который пытается углубить свои знания в любимой технологии. В работе и повседневной жизни очень часто приходится работать с языком TypeScript, который мне очень нравится, но к своему стыду, сам очень плохо знаком с настройкой его конфигурации, поэтому решил восполнить этот пробел, ведя собственный Today I Learned. Некоторые опции tsconfig являются очень простыми и понятными. Другие же заставляют знатно напрячься. И даже если поверхностное назначение какой-то настройки является понятным, все равно возникает желание разобраться с принципом ее действия, понять, на какие структурные аспекты проекта она влияет, а также узнать, а как вообще людям жилось до ее появления.

Как раз об одном из них и пойдет разговор в этой статье, а именно об esModuleInterop. Действие опции проверялось при попытке подружить CommonJS-модуль с ES-модульным проектом. Поверхностная гуглешка не дала исчерпывающий ответ на ряд моих вопросов, поэтому приходилось обращаться к спецификации ES6, документации tsconfig (упаси боже читать документацию (шутка)), в личные блоги авторитетных дядек в сообществе и к описаниям модульных систем. На основе найденной информации я составил небольшое резюме, с попыткой собрать материал во едно. Надеюсь, кому-то он покажется интересным. Приятного чтения!

Читать далее
Всего голосов 11: ↑11 и ↓0+14
Комментарии2

Geely и ECARX, что с вами не так?

Уровень сложностиСредний
Время на прочтение23 мин

Периодически читая Хабр, я еще не находил статей, описывающих внутренний мир штатных головных устройств (далее — ГУ) на базе Android, хотя я уверен, что не только мне было бы интересно, как там всё устроено и работает. Речь пойдет про одни из самых популярных авто на нашем рынке: Geely Coolray и частично Geely Tugella.

Эта статья обещает быть длинной с вырезками кода из JADX и не только, добро пожаловать под кат.

Читать далее
Всего голосов 59: ↑59 и ↓0+76
Комментарии25

Как я стал быстрее переключаться между задачами

Уровень сложностиПростой
Время на прочтение3 мин

В этой статье я поделюсь тем, как можно быстро переключаться и эффективно работать, когда у вас есть много задач с разными контекстами, и все они требуют глубокого погружения.

Приятного просмотра
Всего голосов 32: ↑30 и ↓2+31
Комментарии15

Полноценное RAG-приложение на Go — безумие?

Уровень сложностиПростой
Время на прочтение6 мин

Прежде всего хочу сказать, что я не являюсь никаким специалистом, даже джуновского лвла, просто безработный студент, пишущий на коленке свои пет-проекты. И код, и тем более архитектура далеки от идеала. Однако, я думаю, некоторые моменты, о которых я буду рассказывать далее в статье, могут быть интересны полноценным разработчикам как бэкенда, так и ИИ-агентов.

С технологией RAG я познакомился около года назад на хакатоне, посвященном обработке естественного языка. Там мы с командой разработали его простейшую имплементацию, с которой и заняли «почетное» 5-е место. Подробно об этой технологии в данной статье рассказывать я не буду, так как статья не о ней; вкратце - RAG позволяет генерировать ответы LLM на основании базы контекста, необходимый фрагмент которой вместе с запросом передается языковой модели на вход.

Шло время, мои навыки росли, я полностью пересел с Python на Go, начал интересоваться больше бэкенд-разработкой и думал какой бы пет-проект мне написать. Идея приложения, связанного с ИИ на Go кажется сперва странной: язык предназначен для совершенно других целей, отсутствуют хорошие библиотеки сообщества, вроде Langchain (langchaingo слишком слаба). И с одной стороны, если бы идеей было обучить собственную языковую модель - это было бы действительно глупо. Но чем больше я думал о разработке RAG и ИИ-агентов, тем больше понимал, что это чисто бэкенд задача, с нулем машинного обучения под капотом.

Эта мысль натолкнула меня на следующие рассуждения: зачем использовать низкопроизводительный Python, если можно создать более эффективное ИИ-приложение на Go, к тому же с лучшей масштабируемостью? Конечно, в основном это дело привычки и наличия в питоне необходимых библиотек, да и мало кто из-за небольшого прироста производительности пойдет переписывать всех ИИ-агентов на Go, Rust или C++. Но для меня это и стало хорошей идеей для своего странненького пет-проекта.

Читать далее
Всего голосов 8: ↑8 и ↓0+11
Комментарии3

Зачем я написал очередной велосипед для работы с директориями (спойлер: не совсем велосипед)

Уровень сложностиПростой
Время на прочтение3 мин

Вы когда-нибудь сталкивались с плагинами, которые лезут в чужие папки, перезаписывают файлы ядра и превращают git status в ад?

Я — да. И вместо того чтобы мириться с ручным копированием, гигантскими .gitignore и вечными конфликтами, написал dmp — инструмент, который:
 Отслеживает, откуда взялся каждый файл,
 Автоматически разрешает конфликты (или даёт контроль),
 Не ломает IDE (никаких симлинков!),
 Работает с любыми языками и фреймворками.

Для кого:
— Разработчики плагинов/модулей,
— Те, кто устал от git-submodules и rsync,
— Все, кто хочет чистый workflow без монрепозитория.

Читать далее
Всего голосов 5: ↑4 и ↓1+4
Комментарии3