Деволлим
226 subscribers
92 photos
15 videos
99 links
Привет, я Лёша - стартапер, фулл-стэк разработчик с 15+ годами опыта.

Делюсь тем, что реально помогает - как быстрее делать MVP, как балансировать между качеством, архитектурой и тем, что «работает сейчас».

@devall
Download Telegram
У браузерного js как языка есть большой недостаток являющийся плюсом - деобфускация.

Большой минус в том, что деобфускация js не сложна и любой человек может разобрать твой продукт на кусочки и спасения этому увы нет (а llm значительно удешевляют этот процесс).

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

Один из сильных для меня примеров - это Linear, которые, понимая бессмысленность защиты, всего лишь минифицировали код (оставив даже нэйминг файлов), но при этом у них сильные и выразительные инженерные решения:

- интересная организация моделей с Mobx и свой «Sync Engine»
- механика описания и использования «Action»'ов (которые можно передавать как классы в специальные react компоненты и получать например готовые кнопки с иконками, текстом, шорткатом и правилами активности; вешать глобальные шорткаты; в зависимости от активности той или иной модели применять этот экшен именно к ней; и тот же экшен можно увидеть в «Command Menu»)
- определение роутов и использование «useLoaderData» (который завезли в реакт роутер 3 года назад)


**Как правило reverse engineering легален в образовательных целях, но зависит от законодательства страны и лицензионного соглашения
🔥3😎1
Если у вас очиститель воздуха от xiaomi и нет желания нормальный фильтр выкидывать на помойку

https://unethical.info/2024/01/24/hacking-my-air-purifier/

Сработало даже с айфоном, хотя, мне казалось, не так давно он умел только читать rfid метки

(есть еще способ с нажатием разного рода кнопок и играми с питанием, но этот банально быстрее)
Небольшие итоги года (с учетом что до этого сидел на другом акке)

https://cursor.com/2025
🔥2👏2
Tailscale и homelab

В декабре 2022 года я собрал свой homelab (рис 1) и записывал что покупал, что ставил, как настраивал (рис 2), думая что когда то это где то опубликую, но руки так и не дошли создать свой digital garden (аля https://nikiv.dev/) из obsidian, да и в целом упаковать все в удобный для понимания “проект” (и имхо многие вещи можно было бы сейчас переложить на terraform + ansible, но мотивация есть только на занятие продуктами)

Поэтому сегодня просто поделюсь актуалочкой про tailscale.

Какое то время он был недоступен для пользователей рф, а я его использовал для подключения к homelab из разных мест (фотки выкачать, к devcontainer’ам подключиться, менеджер паролей синкануть, селф хост решениями попользоваться и тд). Но вот прошло время и мне снова потребовался кейс с удаленным доступом к homelab и tailscale вновь работает, а я чуть детальнее сделал настройку.

Задача в этом случае у меня для homelab простая - я использую macOS и создаю аналог screen.studio для записи экрана с автозумом и редактированием, но пытаюсь сделать программу кроссплатформенной и мне для этого нужны VM’ки (сейчас windows; рис 3 и 4). В homelab стоит proxmox (рис 5), а в нем винда (с прокинутой видюшкой), которая иногда используется как game vm с playnite лаунчером (некоторые вечера были проведены с джойстиком в руках, т.к комп подключен по hdmi к телеку с прямым доступом к экрану винды)

Так вот, tailscale позволяет создать частную виртуальную сеть (VPN) и связать наши устройства.

Можно поставить tailscale на все устройства и vm’ки, а можно пойти более интересным путем:
- Поставить tailscale на основную тачку (с настройками как на рис 6)
- Поставить tailscale на proxmox и запустить его как маршрутизатор для subnet routes

tailscale up --advertise-routes=192.168.1.0/24

(после этого в admin console tailscale нужно апрувнуть эти маршруты для машины)

И получится так что вы сможете получать доступ к любым vm’кам представленным в proxmox используя внутренние ip proxmox’а

Чтобы увидеть routing tables (узнать к каким ip можно делать запросы и проверить ip’шники vm’ок):

netstat -rn
🔥21
В новом году хочется пожелать всем одной простой, но редкой вещи — идею, которая реально сработает.

Не обязательно что-то грандиозное.
Идею, которая:
- может вытащить с нуля, если сейчас пусто
- или сдвинуть с мёртвой точки, если упёрся в потолок

Потому что одного усердия почти никогда не хватает.
Можно пахать годами — и топтаться на месте.
А можно попасть в правильное направление — и тот же объём усилий внезапно начинает давать кратный эффект.
Идея здесь работает как усилитель.

Но есть ещё более важный момент.
Чтобы тебе самому было не скучно этим жить.

Не «нравится, потому что платят», а по-настоящему цепляет.
Иначе всё ломается очень быстро:
ты зарабатываешь первые деньги — и вдруг понимаешь, что больше не хочешь этим заниматься.
А без интереса нет ни длинной дистанции, ни роста, ни удовольствия.

Поэтому бизнес (и проекты в целом) — это не про «терпеть ради денег».
Это про возможность делать то, что тебе близко, и зарабатывать достаточно, чтобы продолжать это делать.

Так что желаю в новом году найти свою идею.
Именно найти — не выдумать из воздуха.
Хорошие идеи обычно уже где-то рядом: в работе, в быту, в раздражениях, в чужих костылях. Их просто нужно вовремя заметить.

Не так важно, где ты их ищешь.
Важно, чтобы они у тебя появлялись.

С Новым годом.
С новыми идеями 🥂
6
Pwnagotchi: привет из детства

Перед новым годом наткнулся на видео про pwnagotchi. Штука не новая — знал о ней давно, но руки не доходили. А тут внезапно появилось желание собрать и просто поиграться (воспоминания про aircrack лет 13 назад подогревали интерес).

Начал с поиска железа: Raspberry Pi Zero 2 W, e-ink экран, аккумулятор. И довольно быстро понял — ждать долго, а вкладываться в эксперимент, который может надоесть через пару вечеров, не хочется.

Зато в ящике лежал Raspberry Pi 4 из 2020 года — обязательный артефакт любого неугомонного айтишника. Решил использовать его: без дисплея и просто с power bank.

Образ быстро прожегся через Raspberry Pi Imager, но самое интересное началось потом — настройка сети на маке, доступ по SSH, конфигурация, web UI и Bluetooth-tethering, который неожиданно оказался одной из самых удачных частей всей конструкции: Raspberry цепляется к хотспоту телефона, pwnagotchi сам держит соединение, переживает обрывы и ходит в интернет. А я спокойно захожу в веб-интерфейс с телефона и вижу всё то же самое, что обычно выводится на e-ink дисплей.
Плюс установил плагины, которые добавляют функциональности. На все про все меньше часа.

Дальше началась практика:
• за первый же вечер — хэндшейки, не выходя из квартиры (плагином автоматическая выгрузка в wpa-sec для облачного брута) и несколько сетей действительно поддались;
• поездка к друзьям — ещё улов;
• бизнес-центр — рекорд по количеству точек (около сотни за раз, но только у части собрались полноценные хэндшэйки).

И вот что интересно: вся эта история не только про взлом, но и про любопытство и исследование. Про то же чувство, из-за которого когда-то покупались журналы «Хакер», читались мануалы и хотелось «понять, как оно работает».

Кажется, такие штуки — это еще и отличный способ показать детям, что IT — это не только учебники, фреймворки и митинги, а ещё и живой интерес, эксперименты и удовольствие от процесса.

Старые интересы никуда не делись. Просто теперь они запускаются с power bank’а.

(История нелегальна и является фантазией автора)
3
История про ещё одну железку и LLM’ки

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

А у меня с 2018 года пылится набор Arduino Uno (позже еще брал Arduino Nano, ESP8266, Raspberry PI 4B, Jetson Nano - теперь вы знаете как выглядит шопоголизм айтишника). Тогда все попытки закончились быстро: я так и не понял, как быть инженером-электронщиком и при этом ничего не спалить.

В этот раз подход был другой — через ChatGPT.

Я просто:
• сфоткал все свои запчасти,
• написал, что хочу собрать,
• и отправил это в чат.

В ответ получил:
• какие компоненты подойдут,
• как их соединять,
• код прожигаемый через Arduino IDE,
• с чего начать и в каком порядке идти.

И тут снова словил это чувство: мы реально живём в золотое время.

За час у меня уже получился рабочий прототип. Да, есть что улучшать:
• нужен CO₂-датчик уровня Birdie — Sensirion SCD40 (цена 10$),
• вместо шумной SG90 — нормальная бесшумная серва (до сих пор не понял, что у них используется),
• корпус — хочется напечатать на 3D-принтере (нашёл только один похожий проект, но модельки не зашли и нужно ещё много правок, в чем я не силен).

Параллельно возникла мысль:
а что если такие устройства можно было бы делать и продавать?
Birdie стоит ~200$, что, честно говоря, выглядит странно для девайса с логикой «поднять / опустить индикатор при превышении порога >10 минут».

Полез в Perplexity, начал искать патенты (у них на сайте упоминается patent pending — решил проверить). И да — патент реально есть, и он довольно точно описывает дизайн и функциональность. Так что делать прямого конкурента — идея сомнительная.

Но.

Самое важное открытие здесь даже не в железке и не в бизнесе.
А в том, что вещи, которые 7 лет назад казались для меня недоступными, сегодня решаются за час — через обычный диалог с LLM.

В разработке и быту я это ощущаю уже давно — ускорение заметное и знакомое.

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

Время ими пользоваться.
🔥42
В ютубе всё чаще появляются видео про offline AI на Raspberry Pi — от максимально слабых конфигураций (но не совсем offline) до последнего Raspberry 5 с отдельным акселератором под инференс.

Примеры:
• Raspberry Pi Zero 2W (openai ключ)
https://www.youtube.com/watch?v=Nwu2DruSuyI
• Raspberry Pi 5 + LLM8850 (offline)
https://www.youtube.com/watch?v=IuTD5OMaVVU

И это выглядит как начало очень интересного года для DIY-энтузиастов.

Модели всё меньше, железо доступнее, без облаков и подписок (а если хочется можно и канал к своему компу через tailscale).

Я давно жду момент, когда LLM станут таким же бытовым слоем, как роутер или NAS — тихо работающим в фоне дома.
Массово это ещё не доехало, но направление очевидно.

А пока — смотрим/собираем сами.
🔥2
Cursor и Agent Skills

В Cursor (nightly-сборка) уже есть полноценная поддержка agent skills и rules — совместимых с экосистемами Claude, Codex, а также собственных cursor-skills.

И это важно понимать правильно: речь не про шаблоны промптов.

Agent skill — это:
- именованный контекстный модуль,
- с чётко описанным назначением,
- условиями применения,
- ограничениями,
- и ожидаемым поведением агента.

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

Агент сам выбирает, когда и какой skill активировать.
В результате вы не пересобираете поведение в каждом диалоге — вы один раз описываете роль или workflow,
а дальше агент использует его как инструмент.

Что это меняет на практике:
- длинные system-промпты уходят,
- поведение становится воспроизводимым,
- агент действует по заранее заданной логике, а не «по наитию»,
- skills можно накапливать, версионировать и переиспользовать между проектами.

И ключевой момент:
если вы работаете только в Cursor, внешние репозитории со skills теперь полностью применимы.
Это не «чужие SDK», а готовые контекстные блоки, которые Cursor умеет подключать нативно.

Полезные репозитории со skills:
- Anthropic https://github.com/anthropics/skills/tree/main/skills
- OpenAI https://github.com/openai/skills/tree/main/skills
- Vercel https://github.com/vercel-labs/agent-skills/tree/main/skills

Cursor постепенно перестаёт быть просто IDE с чатиком.
Это уже среда, где агенту задают архитектуру поведения,
а не объясняют задачу заново при каждом запросе.

Самый легкий старт от vercel:

npx add-skill vercel-labs/agent-skills
🔥2
Tailwindcss и воровство UI

Самый большой подарок и одновременно самое большое наказание, которое можно сделать своему проекту — это Tailwind CSS.

Подарок, потому что:
• у тебя мгновенно открывается доступ к огромной экосистеме готовых UI-блоков и компонентов
shadcn, 21st.dev и десятки каталогов вокруг → https://www.shadcn.io/awesome
бонусом выделю:
- https://www.launchuicomponents.com/
- https://inspira-ui.com/
- https://blocks.so/
- https://tailark.com/
- https://www.kibo-ui.com/
- https://reactbits.dev/
• отличный DX
• и, что важно в 2025/26, LLM’ки очень хорошо умеют в Tailwind и собирают интерфейсы почти без ошибок

Наказание, потому что:
• чтобы украсть твой UI, достаточно Ctrl+C → Ctrl+V в чат Cursor
• классы Tailwind — это уже финальная форма дизайна, как правило без дополнительного слоя абстракции

Здесь и возникает ключевая проблема:
UI перестаёт быть активом.
Он становится полностью воспроизводимым артефактом.

И это не то, чего можно аккуратно избежать, если ты хочешь:
• пользоваться готовыми компонентами
• оставаться внутри экосистемы Tailwind
• сохранять скорость разработки

Можно отказаться от готовых компонентов и начать использовать tailwindcss с css-modules + @apply, но тогда все руками и это уже бьёт по перформансу (и Tailwind об этом пишет)

В итоге имеем трейдофф мира умнеющих LLM:
• скорость, DX, экосистема и поддержка LLM
vs
• уникальность и «защищённость» UI от копирования LLM
🔥2