[ $davids.sh ]
رفتن به کانال در Telegram
high load, ai и clientful (и немного gamedev) С 🖤 от @david_shek
نمایش بیشتر396
مشترکین
اطلاعاتی وجود ندارد24 ساعت
+47 روز
+330 روز
آرشیو پست ها
🔥 Подъехала моя новая методичка, так еще и по фронтенду 🔥
[ widget-sliced-design.davidshekunts.ru ]
> Архитектура фронтенда, которой никогда не понадобится рефакторинг
WSD – это одно из лучших открытий в моей карьере программиста. Оно настолько логично повторяет то, как устроен фронтенд, что идеально ложится под любые задачи.
Я использую этот подход уже лет 7 и ни разу не было кейса, когда он создавал бы мне проблемы или подводил.
Звучит как мифическа “серебряная пуля”? Буду глупцом, но черт возьми, скажу “да”, потому что оно сработало в каждом моем кейсе. Не веришь? Докажи обратное, атеист.
Ребята, просьба: глава "Правила структурирования" получилась ооочень сложной и оттого пугающей, при том, что мысль там крайне простая: "клади по папкам, если выше и Х переиспользуй, если ниже и Х не переиспользуй" – пожалуйста, помогите переформулировать так, чтобы стало понятно
[ $ echo "всем_мощной_прокачки" ]
💰 Такой дорогой (а теперь бесплатный) 301 редирект
301 редирект – это когда вы открываете домен, запрос доходит до сервера, он возвращает 301 HTTP status и куда идти, а вы туда и идите
Особенно важно, когда вы перенесли свой контент в новое место или у вас много ссылок, которые ведут на один и тот же контент
DNS записи не имеют REDIRECT, что крайне прекскорбно, потому что звучит как неплохая идея в стиле symlink, поэтому что-то на каком-то сервере должно принять запрос по домену и ответить куда идти
По-классике это nginx на вашей VPS, по-современному возможность в UI хостинга назначить это правило и он сам будет редиректить
В Cloudflare и Vercel есть аж 3 варианта: Workers, Routers и Page Rules – каждый дает возможность
А вот чего нет у Cloudflare и Vercel? В чем их выигрывают российские площадке? Верно, у них нет возможности нормально работать на территории РФ, а это серьезное бизнес-преимущество, поэтому пиршлось на них перейти
Проблема – ни у одного из провайдеров нет функции редиректа в стиле, как я описал выше, а значит мне для моей задачи иметь 4 книжни с 4-мя длинными и сокращенными доменами придется брать VPS за 500 рубасов, чтобы разместить там nginx на 301 редирект
Буду ли я так делать? Нет, я лучше сожгу книги (уверен, что Достоевский по той же причине это сделал)
Но если прямого решения нет, а цель ясна: "бесплатный 301 редирект" – надо искать обходные пути...
И он найден
Яндекс.Клауд – единственные ребята, которые дают "встроенный редирект": создаешь S3 бакет, привязываешь домен, назначаешь его "бакетом-сайтом" и включаешь с него редирект на другой бакет-сайт
Так вот, вместо того, чтобы сделать select с выбором других своих "бакет-сайтов" они дали возможность просто вписать произвольную строчку (что в реальности так всегда и будет), а значит что? Значит, можно вписать любой домен, на который оно будет редиректить
Прописываем нужный домен и получаем абсолютно бесплатный 301 редирект
Пользуйтесь и берегите золотые 🪙
🦀 Крабус умный, крабус железный
Решил по-приколу прикинуть прикинуть: какое железо нужно, чтобы собрать умного ИИ ассисстентна тамагочи в формфакторе, чтобы на брелок повесить
Вот примерное железо:
- Wifi + BLE + RFID + NFS
- Mic + Speaker + 3 buttons + USB + SD Card + (Touch) Screen
- SIM + GPS
- Battery xxxx
Пришел к 2-м вариантам реализации:
- "Малой" – микроконтроллер типа ESP32, которому я говорю что-то в микрофон, или отправляю сообщение через приложение, оно переотправляется в OpenClaw на моем серваке и кло принимает решение какие подключенные девайсы надо вызвать, отправляет команды для их вызова Малому, Малой делает что нужно и возвращает результат
- "Старшой" – линуксовая тачка, на которой крутится ZeroClaw, claude cli / codex, чтобы использовать подписку и даже, возможно, какие-то локальные МЛ-ки (да, такое уже возможно). Сам обрабатывает сообщения и сам принимает решение что делать
- "Посерединок" – линуксовая тачка, но сама почти ничего не делает, просто интерфейс до железок, как "Малой". Срединок нужен, чтобы проверить концептуально удобство и смысл такой конструкции прижде, чем суперсильно заебаться с низкоуровневым кодом ESP32.
Решил поискать что по второму варианту есть и вот опции:
. Raspberry Pi Zero 2W – самая большая проблема это 512 RAM (и тудаже ОС), то есть можно только скрипты запускать
. Radxa Zero 3W – до 16Gb, но работает через раз и хуй нормально запустишь или будешь работать, потому что 0 норм документации
. Orange Pi Zero 3W – МОНСТР вышел 2 месяца назад, 1-16Gb оперативы, уже есть видосы на которых он просто топово ебет
Тогда будем пробовать делать Середняка на распбери 2W, а Старшого на оранже 3W
Пока основная проблема: размер батареи. Думаю, с тонкой батарейей Старшой даже 10 часов может не протянуть, у Средняка есть шансы, а вот Малой как раз максимально автономен
Похожие проекты:
- flipperclaw.com
- github.com/espressif/esp-claw
- github.com/syxanash/maxheadbox
- https://github.com/brenpoly/be-more-agent
Кидайте кто, что видел похожее
🔥 Подъехала моя новая методичка, так еще и по фронтенду 🔥
[ widget-sliced-design.davidshekunts.ru ]
> Архитектура фронтенда, которой никогда не понадобится рефакторинг
WSD – это одно из лучших открытий в моей карьере программиста. Оно настолько логично повторяет то, как устроен фронтенд, что идеально ложится под любые задачи.
Я использую этот подход уже лет 7 и ни разу не было кейса, когда он создавал бы мне проблемы или подводил.
Звучит как мифическа “серебряная пуля”? Буду глупцом, но черт возьми, скажу “да”, потому что оно сработало в каждом моем кейсе. Не веришь? Докажи обратное, атеист.
Ребята, просьба: глава "Правила структурирования" получилась ооочень сложной и оттого пугающей, при том, что мысль там крайне простая: "клади по папкам, если выше и Х переиспользуй, если ниже и Х не переиспользуй" – пожалуйста, помогите переформулировать так, чтобы стало понятно
[ $ echo "всем_мощной_прокачки" ]
🔑 clientful как anti vendor-lock
[ clientful.davidshekunts.ru ]
Добавил еще один пункт в clientful:
> Anti Vendor-lock – все данные буду представлять из себя json файлы, разложенные по папкам, а значит, если пользователю срочно потребуется мигрировать (например, из-за недоверия площадке, или новых законов страны) мигрировать между файловой систему, Goodle Drive-like провайдерами, S3-like провайдерами и подобным.
Очень интересное свойство, которое технологическим решением открывает новые продуктовые преимущества, а именно все приложения, где потеря данных – смерть
Например, ваши пароли. Если они в Google, значит блокировка учетки и жопа, если они в каком-то сервисе, значит блокировка IP и тоже жопа, если они на вашем сервааке, то смерть сервака или блокировка учетки и тоже конец
А если ваши пароли это .json файл, в приложении вы можете подцепить файловую систему + Google Drive + Yandex Disk + S3 (все, нажатием 1 кнопки), то вот тут потерять данные практически невозможно
Добавим сюда, что приложению не нужны сервера, а значит один раз получив html, css и js, вы обеспечиваете себя работоспособностью приложения до конца своих времен
🧑🦼 Эпидемия технологической толерастии
Я ненавижу как ИИ часто делают описание и сравнение технологий: это или “вот если хочешь OpenAI, то codex, а если Anthropic, то Claude” (это блять реальный ответ сравнения технологий от Клода), или, портянка из абстрактного текста без ответа «что это» / «что это реально дает» / «что это дает в сравнении с аналогами»
То есть, приходится требовать примеры, читать их и только так понимать применение (а это требует и сил, и опыта, а значит не решает мой запрос «объясни»)
И, ясен пень, я все настроил, чтобы сразу таблицы сравнений, описание что есть что и примеры, бла бла бла, но оно все равно сука неконкретное из-за технологической «толерастии»
Я лучше от махрового PHP-шника выслушаю какая у него либа крутая, а Го - кал, чем буду читать это ИИсусье: «не, ну, всему свое место в этом мире, все мы создания божьи»
Человек вполне себе хорошо делает 2 вещи: говорит что что-то гавно, а что-то нет, и конкретно говорит «это Х, чтобы захерачить Y, а вот в случае G не варик»
Поднимаю этот бокал, чтобы мы все оставались людьми со своими вкусами и уникальным «фи» 🥂
📤 Выгрузка из ТГ -> Перевод -> Статический сайт -> Бесплатный хостинг
Вчера вайбанул набор скриптов, чтобы выгрузить свой tg канал на сайт
https://github.com/Dionid/telestatic
Цель: сделать блог с англ контентом из тг для бургерного резюме, НО АБСОЛЮТНО БЕСПЛАТНО, даже камень за хостинг не отдам (за перевод всего моего паблика и комментариев отдал 20 центов)
Пример сайта: https://blog.davids.sh
Как: выгружаем историю канала и чата, запускаем
make extract-clean-preapare-translate, далее меняем дизайн сайта на Astro, make build-deploy на какой-нибудь Cloudflare Pages
Состояние: реально работает, но хадркод, поэтому делайте Fork для себя
Ваша задача: напихуярьте мне туда здвезд, чтобы рекрутеры текли
[ $ echo "всем_мощной_прокачки" ]Привет! Меня зовут Давид Шекунц
[ $ davids.sh ]
Как Tech Lead (Go / Node.js / Python) за последние 12 лет успел собрать команды, cпроектировать, разработать и развивать:
- AI / IoT дефектоскопия для заводов spectra.palatine.ru
- AI / IoT система контроля проезда palatine.ru
- крипто кастодиальный кошелек для gomining.com
- движок процессинга крипто-транзакций для nearpay.io
- IoT платформа мониторинга криптоферм для hosting.gomining.com
- IoT платформа вендинговых устройств для smvend.io
- IoT платформа телеметрии для innopolis.university
- 5+ систем в сферах IoT, AI, fintech, gamedev и SaaS
А также выпустил книгу, 2 whitepaper и 2 курса для senior разработчиков:
- FOP – функциональная альтернатива ООП
- Записки с High Load – 52 best-practice разработки High Load проектов
- clientful – как разрабатывать real-time collaborative offline-first приложения без backend сервисов и баз данных
Здесь я сосредоточу материалы на моих разработках и исследованиях в 3-х областях: high load, ai и clientful (и немного gamedev)
Буду рассказывать про проекты, над которыми работаю, делиться вымученными за эти годы best-practice и болячками, обсуждать с вами библиотеки, подходы, статьи, видео и книги
Рад видеть вас на моем канале, учавствуйте в обсуждениях, не стесняйтесь задавать вопросы, даже в директ, и желаю всем мощной прокачки 🦾
[ историческая справка: раньше этот канал назывался "🦾 IT-Качалка Давида Шекунца 💪" в честь "Летающего Цирка Монти Пайтона", но я немного устал от этого брендинга и теперь отсылка на Монгольский Скайнет и вебпанк ]
🪓 HEEEEERE'S DAVID 🪓
Что случилось за 8 месяцев (хосподь всемогущий, как быстро летит время...) моего молчания:
i. Написал еще один whitepaper
clientful – архитектура разработки real-time collaborative offline-first приложения без традиционных backend сервисов и баз данных
clientful.davidshekunts.ru
Штука ооочень непохожая и на традиционный web 2.0 и на web 3.0. Ближе всего offline-first / local-first, но даже там синхронизация обычно происходит с центральным сервером. Моя же методология предполагает, что нет никакой централизации и все данные синхронизируются полностью p2p.
А самое интересное – оно работает и уже даже попало в продакшен, о чем ниже.
ii. Разработал и выпустил 3 продукта
1. Spectra (spectra.palatine.ru) – скоростной камерой фотографируем изделия на конвейре, анализируем CV-шками, принимает решение является изделие дефектным и выкидывает с конвейера бракованные. И все это оффлайн и за 900мс по 15 CV моделей на 1 изделие.
2. Tempera Palatine – вместе с palatine разработали десктопный аналог Miro с встроенным GenAI, работающие полностью оффлайн. При этом есть режим как одиночного использования, так и коллаборативного именно благодаря clientful.
3. Mooden (mooden.app) – приложение в стиле "трекер настроения", но с некоторыми специфичными механизмами для людей с нестабильным настроением. И здесь тоже использовал clientfiul – нет никакого backend, все приложение представляет из себя frontend, БД хранится Google Drive и автоматически синхронизируется между всеми устройствами пользователя.
iii. Что будет дальше на канале
1. Начну выпускать статьи по каждому из продуктов, с ссылками, историями создания и техническими ноу хау, которые пришлось придумать, чтобы вообще это ожило
2. Проекты закончились и поар идти дальше, поэтому ищу работу как Tech Lead (Go / Node.js / Python), резюме и подробности в следующих постах
3. Также, я переименую этот канал 😢 боюсь, что "IT-Качалка" себя изжила и будет брендинг с серьезным таблом, НО, суть в виде всратых шуток и кряхтения на все остается на местах
И по-прежнему всем мощной прокачки 🦾
🤜 Не одним CRDT едины или как решать конфликты в local-first приложениях 🤛
Сегодня поговорим про реализации решения конфликтов подходов local / offline-first – это когда ваше приложение позволяет пользователям работать полностью или частично оффлайн, а когда они выходят в сеть, синхронизировать все их изменения.
Примеры таких приложений: Notion-like редакторы, Figma-like вайтборды или Linear-like таск менеджеры.
Основная идея – коллаборация, а коллаборация несет за собой конфликты, разберем очень наглядный пример:
Что делать, если 2 человека одновременно поменяли название документа с "Новая папка" на "IT-Качалка Давида Шекунца" и "davids.sh"?
Подробнее в статье на Хабр
https://habr.com/ru/articles/946722
Как всегда, заходим и кидаем в меня карму, спасиба 💗
🔎 Лутаем Open Source #24. Они наконец-то починили MongoDB! Перенеся его на PostgreSQL... 🔎
https://github.com/documentdb/documentdb
DocumentDB – БД от Microsoft, которая состоит из 3-х частей:
- PG расширение, добавляющее BSON формат (написанный, на С)
- CRUD API поверх него (С)
- Сервис трансляции Mongo Query в SQL (Rust)
Зачем она нужна? В чем будут проблемы при переезде с MongoDB? Причем тут альцгеймер? Узнаете в новом посте на Хабр
https://habr.com/ru/posts/943926
Опять же, лайкаем, чмокаем, обсуждаем
🔨 Развивать или выпиливать легаси: где грань? 🪚
А теперь первая за очень долгое время статья на Хабр.
Очень неуверен в ней, думаю, что меня отменят, но попытка не пытка
https://habr.com/ru/articles/943396/
Поддержите пожалуйста кармой на хабре или первыми закидайте меня гавном (лучше уж свои это сделают) 💋
😐 Пробуем писать посты на Хабр 😐
Давно ссусь, но решил начать хоть с чего-то: небольшой постик на тему эксперимента с лоцированием кода ближе друг к другу
https://habr.com/ru/posts/941090/
Ребята, ставим лайки, повышаем карму, срем на меня в комментах 🫶
😬 Ищи компанию по проблемам 😬
Пришла тупая || гениальная идея:
Как найти работу на которой будут интересные задачи / технологии / подходы?
Выбирай проблемы, которые ты сам хотел бы решить!
А как узнать у кого какие проблемы?
Смотреть выступления на конференциях!
Буквально сейчас нашел несколько компаний, о которых никогда не видел и не слышал, но уже по конференции понимаю, по-крайней мере, как мыслят разрабы и с какими проблемами сталкиваются
Если поделитесь какими-то похожими фишками поиска в комментах, будет круто
#career #jobhunt
🧪 Исследование для backend-разработчиков
Прошел очень интересный опросник от моего коллеги @d_r_q на тему "поддерживаемых backend"
Команда пытается выяснить какие факторы действительно влияют на упрощение поддержания и развития кодовой базы
Если вы работали хотя бы три месяца над зрелым проектом, находившимся в разработке не менее полугода до вашего прихода — обязательно приходите поучавствовать
👉 Принять участие: https://forms.yandex.ru/cloud/685ccc62eb614635657832a4
📊 Результаты исследования будут опубликованы осенью 2025 года на сайте: https://maintable-backends.tilda.ws/
А со своей стороны напомню, что я написал аж 2 книги по теме:
(λ) Фунционально Ориентированное Программирование – процедурно-функциональная альтернатива ООП
🛌 Fatigue Driven Development – буквально книга про best-practice разработки, которые упрощают жизнь и улучшают сон
Всегда рад получить говна на вентилятор обратную связь по обеим книгам 🙌
#career #jobs
🔎 В поисках Middle+ Full-stack 🔎
Моему близкому товарищу в palatine.ru на проект нужен Middle+ TypeScript Full-stack, скорее, с упором во фронт
Команда
- 1 Tech Lead – очень опытный игрок, который будет лидить проект и помогать по всем вопросам и давать обратную связь. Гарантируем рост твоих навыков разработки
- Команда ML инженеров – занимаются разработкой нейросетевых моделей
- 1 DevOps – решает вопросы с выкаткой системы в прод
- 2 Дизайнера – создают UI и UX системы нам красоту
Проект
Ребята создают продукт-аналог recraft.ai и florafauna.ai для школ и университетов. Если совсем коротко, то это Miro + интеграция генеративного ИИ. Создают его на базе blocksuite.io
Твоими главными задачами будут:
- Взять blocksuite и реализовать с его помощью новые новые графические инструменты
- Сделать интеграцию с сервисами нейронных сетей
- С нуля разработать фронт и бек личного кабинета, аналогично Affine, при этом реализовав мультитенанси и коллаборативность
Стэк
- React + TypeScript + blocksuite
- Node.js + TypeScript + PostgreSQL + Hasura
- Electron / Tauri
Формат работы
- Формат: полная удаленка
- Занятость: проектная первые 2 месяца, дальше парт-тайм
- Оплата: безналичный перевод / оплата на юр. лицо / криптовалюта
- Оформление: ИП / самозанятость / ГПХ;
Что нужно
- Продакшен опыт вывода 2-3-х React приложений в прод
- Умение писать backend for frontend и знание SQL (со схемой и остальным помогут, backend небольшой, но знать как SELECT … JOIN … и UPSERT ... нужно)
- Хорошие знания TypeScript (infer – ваш друг и товарищ)
- Вам придется выучить blocksuite и со временем стать спецом по нему, хоть в начале задачи по нему будут неочень сложные
Бонус
- Разработка графических редакторов или плагинов для них (даже как пет-проект)
- Работа с локальными БД (типа local-storage, embedded sqlite, etc.)
- Опыт работы с yjs или другими системами синхронизации стейта на фронте
Собесы
- Лучше всего заполнить анкету. Если с ней проблемы - можно отправить свое резюме и портфолио в телеграм, но это может занять немного больше времени: @anya_krolya
- Короткий созвон со знакомством и парой технческих вопросов (никаких HR, только кодеры)
- Далее тестовое (да, без этого никак, нужно чтобы человек показал, что способен будет разобраться с blocksuite, даже если его придется форкнуть)
- Далее сис диз (составите с Tech Lead архитектуру будущего проекта)
- Если все ок, то приступаете
Не забудьте написать, что пришли от меня
+1
💪 Сокачки, мы с вами вошли в историю 🦾
14 пальцев вверх, 3 сердечка, одна строчка кода...
MR был принят с личными благодарностями от авторов
Поздравляю всех, коллеги
https://github.com/tursodatabase/turso/pull/2067
🦫 Мой самый эпичный вклад в open source 🦫
Ребята, пора и вам поучавствовать в развитии open source: наставьте там лайков, чтобы приняли
https://github.com/tursodatabase/turso/pull/2067
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
