Сова пишет…
Відкрити в Telegram
14+ лет инженерю фронтенд, руковожу и обучаю. По внедрению AI в ваши процессы и код, пишите в личку канала
Показати більше3 112
Підписники
+324 години
-17 днів
-530 день
Архів дописів
3 112
Небольшой эксперимент.
Представим, что завтра у вас:
- горит релиз;
- ушёл ведущий разработчик;
- застряла миграция;
- нужно быстро внедрить AI-фичу;
- накопился технический долг;
- не хватает технического лидерства.
Сколько времени понадобится, чтобы найти человека, который сможет реально помочь?
Судя по рынку - недели или месяцы.
У меня сейчас редкая ситуация: я быстро доступен для проектов и задач.
14+ лет в разработке.
Архитектура, React, TypeScript, инженерные процессы, найм, обучение разработчиков, продуктовая разработка.
Если вам нужен человек, который может быстро включиться в сложную задачу - напишите @sovasergey.
А если нужно кому-то из ваших знакомых, скидывайте этот пост.
Возможно, сейчас как раз тот случай, когда этот пост увидит нужный человек.
3 112
Repost from Дизраптор
Используете чужой код (пусть даже открытый)? Не забудьте прочитать все условия
Расскажу вам очень показательный кейс (за наводку спасибо The Edinorog).
Есть такая китайская компания Bambu Lab. Это крупнейший в мире производитель 3D-принтеров. Её в 2020 основали выходцы из DJI, потом был бешеный рост, а уже в 2025 (всего за 5 лет) она стала топ-1 в мире по продажам 3D-принтеров (не промышленных, а для обычных людей и малого бизнеса). Сегодня она поставляет аж 8 из 10 потребительских 3D-принтеров в Китае и стоит несколько миллиардов.
В общем, образцовый tech-стартап. Что может пойти не так?
Недавно Bambu Lab подала в суд на польского разраба Павла Ярчака. По словам компании, Павел замутил реверс-инжиниринг её софта и "угрожает её безопасности". Казалось бы: ну ок, компания защищает свои наработки и судится в неаккуратным частником. Обычное дело. Но вокруг Bambu Labs начался скандал, tech-инфлюэнсеры развернули кампанию против неё, юзеры начали массово кэнселлить, некоторые крупные клиенты - переходить на 3D-принтеры конкурентов. А в перспективе у Bambu могут быть ещё более серьёзные проблемы.
Дело вот в чём:
Слайсер Bambu (это программа, которая режет 3D-модель на слои для печати - ключевой софт 3D-принта) - это форк форка. Они взяли открытый PrusaSlicer и сделали форк поверх него. А этот PrusaSlicer - сам по себе форк ещё более древнего Slic3r.
Вообще, это обычная практика. Опенсорс часто переваривают по 100500 раз и спокойно используют для своих целей. Но конкретно этот код был не совсем опенсорсом. Смотрите, вот есть копирайт - обычное авторское право: "это моё, другим нельзя". А есть "копилефт", буквально "авторское лево". У кода тоже есть владелец, но он разрешает брать свой код, менять его, продавать и делать с ним что в кайф. Но с важным условием - всё производное от копилефта обязано остаться таким же открытым.
Slic3r (с которого и началась вся форк-цепочка) - это как раз копилефт. А китайцы из Bambu взяли его переваренную версию, переработали её под себя, но свой результат закрыли для других. Но потом некий анонимус сделал свой форк из слайсера Bambu, а уже его форкнул этот польский разраб. И получил бумагу от китайцев. Надеюсь, у вас не взорвался мозг (если взорвался, то ничего, в ограниченных дозах полезно 👍).
Копилефт - это хоть и открытая штука, но тот, кто его использует, должен жёстко следовать лицензии. Bambu обязан был открыть свой код для других, и не имел права кого-то буллить.
Теперь компании придётся это всё разруливать. Серьёзный репутационный удар - это ещё не всё:
Вариант один - им придётся открыть свой код. На продажу самих 3D-принтеров это не повлияет, но "лочить" юзеров в своих облаках, вводить подписки и прикручивать другую монетизацию может быть сильно тяжелее. Вся бизнес-модель Bambu заточена на бурный рост и будущую выручку, и удар по монетизационным возможностям серьёзно расстроит инвесторов и подкосит их будущие раунды и оценку.
Вариант два - если не согласятся открыть, то им запретят распространять всё ПО, построенно на копилефте. Тогда придётся переписывать софтовое ядро для всех устройств, включая уже проданные.
С одной стороны, сами виноваты, надо было внимательно читать условия. А ещё лучше - делать свой проприетарный код, раз уж метите в миллиардные оценки. Ну или хотя бы не палиться через левые предъявы инди-разрабам.
Мораль такая. Открытый код - дело хорошее. Но если собираетесь использовать его по-взрослому, то обязательно читайте все условия (особенно мелкий шрифт, хех).
Дизраптор
3 112
Пишу все Rust проекты в Zed Editor с момента его релиза v1.0
На удивление гладко переехал с VSCode/Cursor. Чем больше пользуюсь, тем приятнее.
За несколько последних версий, еще и rustc стал побыстрее собирать проекты.
На днях написал простой проект на Rust, aisdk и sqlite без нейронок, чтобы почувствовать тот старый вайб ручного программирования.
3 112
Repost from Pavel Zloi
Пока все шумят про it's revolution, Johnny обновление Codex я наткнулся на вот это видео, поначалу всё было как обычно, коробочка на базе ESP, но под конец я немного подафигел.
И так, в нём идёт речь про экосистему оборудования Genesis созданную компанией Axiometa, скорее всего вам всё это ничего не говорит, но возможно вы когда-то слышали про микрокомпьютеры ESP и Arduino, которые позиционируются как коробочки для обучения микроэлектронике для самых маленьких в формате эдакого конструктора.
И вот представьте, что вместо классических плат прототипирования, проводков и электронных элементов у вас плата со входами аля Raspberry Pi и 50+ готовых заменяемых стандартизированных модулей, любой их которых можно подключить в плату и собрать коробочку с нужными модулям себе по вкусу.
Но самое любопытное в том, что Axiometa реализовали Axiometa Studio которая позволяет общаться с агентом Axie, просто пишешь какие модули есть и что хочешь сделать, а нейронка в формате вайбкода генерирует решение заточенное под текущий набор модулей. Готовую прошивку можно сразу из браузера залить на железку.
PS. К сожалению в Россию коробочки можно доставить только через байеров (сервисы доставки типа сдек шопинг).
3 112
Repost from Dev News от Максима Соснова
portless
Утилита от Vercel Labs, которая открывает урлы вида
http://localhost:3000 на именованных доменах .localhost. Например, вместо http://localhost:3000 можно открывать https://myapp.localhost. Из коробки поддерживает HTTPS и HTTP/2.
Работает просто:
portless myapp dev # https://myapp.localhostportless сам выпустит сертификат и даст доступ к https. Поддерживаются разные фреймворки, порты, под-домены, монорепозитории. Из интересного - подхват git worktree. Если portless видит, что приложение запущено из worktree, то название worktree становится именем домена https://github.com/vercel-labs/portless #development #tools #localhost #vercel #devtools #github
3 112
Какое интересное API предлагает команда Google Chrome
Теперь можно делать автоматические замены HTML-шаблона на реальный контент, в момент, когда контент будет доступен.
Хоть стриминг, хоть через javascript.
Когда браузер видит
<div>
<?marker name="placeholder">
</div>
он игнорирует <?marker>, но позволяет позже на него сослаться.
А когда контент загружен или отправлен с сервера, достаточно разместить в DOM:
<template for="placeholder">
Here is some <em>HTML content</em>!
</template>
Бразуер автоматически заменит <?marker name="placeholder"> на содержимое между соответствующими тегами <template for="placeholder">.
По мне это выглядит крайне годно, позволяя в будущем отказаться от кучи кода для обработки стриминга HTML.
P.S.
<?marker> подобные инструкции уже давно есть в XML, но браузер их игнорирует, если встречает в HTML. Это значит, что разметку можно использовать уже сейчас и ничего не сломается, а для разработчиков опережающих зеленые браузеры есть полифилл.
Крайне рекомендую почитать оригинальную статью:
https://developer.chrome.com/blog/declarative-partial-updates?hl=en3 112
Repost from CSS mind
А вы знали, что next ломает вам типизацию перменных?
Если вы напишите ...
@property --var {
syntax: "<percentage>";
initial-value: 0%;
inherits: true;
}
...то next оптимизирует до initial-value: 0;, потому что cssnano в текущей последней версии next считает что это хорошо.
И работает конечно ничего не будет.
Что делать?
Писать initial-value: 0.0%;, либо менять тип на <length-percentage>.
Ну и ждать пока next обновит версию cssnano.
P.S. первый ночной пост в канале 👩💻🌚3 112
У меня есть 3D принтер Ender 3 S1 Plus
Ковыряю его уже какое-то время, недавно залил стороннюю прошивку, стало куда веселее.
Учитывая, что Marlin(прошивка) опенсорсная, я заинтересован вдвойне. Правда там все на Си, так что приятного мало, но вон 1М строк с zig на rust мигрировали, тут тоже вполне можно.
У моей версии принтера нет закрытой камеры, так что ABS пока мне не дается.
P.S. еще проблемы с выравниваением частенько. CR touch работает всрато, иногда не открывается и печать не идет.
Пока хз как починить. Мб прошивку еще поковыряю в свободное время
3 112
Всем доброе утро!
Тут накидали справедливых за капюшоны.
Что ж, помимо уже обещанного материала докинем еще всякого в курс.
Всё же, за эти два года в разработке многое поменялось: агенты, фреймворки, инструменты.
🧡
3 112
А кто ставил 😡 на предыдущий пост, напишите, че как?
Что не нравится? Какая претензия?
3 112
О чём этот канал
Меня зовут Сергей Сова, я software engineer с 14+ годами коммерческого опыта.
Больше всего меня знают по React, TypeScript, Effector и разговорам про frontend-архитектуру, но вообще я успел потрогать довольно много всего: начинал с игр на C++ Source Engine, писал backend на PHP, Ruby, Node.js и Go, последние годы активно ковыряю Rust, AI tooling, агентные системы и свои микростартапы.
Этот канал о том, что мне интересно, а интересно мне довольно многое:
— React, TypeScript и Effector;
— архитектура frontend-приложений;
— Feature-Sliced Design и разделение ответственности;
— DX, tooling, типизация и библиотеки;
— AI-инструменты и агентные пайплайны;
— open source, обучение и продуктовая разработка;
— всякие инженерные находки, боли и размышления.
Обычно мне интереснее не «какую библиотеку поставить», а почему проект превращается в кашу, где должна жить бизнес-логика, как не размазать всё по компонентам и как строить системы, которые можно менять без страха.
Сейчас я развиваю frontend.vision, пишу материалы для разработчиков, экспериментирую с AI-assisted education и постепенно возвращаюсь к регулярным постам.
В ближайшее время тут будет больше про Effector, React, архитектуру, useEffect, роутинг, бизнес-логику в компонентах, фабрики, эффекты, тесты, DX и всё то, из-за чего frontend становится либо нормальной инженерией, либо бесконечным болотом.
Ещё у меня есть личные консультации.
Могу помочь с React, Effector, FSD, архитектурой приложения, ревью кода, проектированием фичи, DX, TypeScript, tooling, API, миграционным планом или просто разобрать вашу инженерную боль со стороны.
Обычно за час-два можно довольно быстро понять, где настоящая проблема: в архитектуре, границах, процессах, данных, команде или в том самом useEffect, куда случайно сложили половину продукта.
Писать можно в личку: @sovasergey
Новичков приветствую.
В комментариях иногда бывает жарко, поэтому берегите перья.
3 112
Repost from Effector news
☄️
@effector/router v1.0.0 release candidate
Новый роутер основан на идеях и коде atomic-router и argon-router. А так как последние уже не поддерживаются, то effector core team приняли решение о переносе проекта в организацию effector.
Чтобы перевести свой проект, нужно заменить зависимости предыдущего роутера на @effector/router@v1.0.0-rc.0 и @effector/router-react@v1.0.0-rc.0.
Кроме этого, из ломающих изменений сейчас необходимо использовать historyAdapter(history) или queryAdapter(history) для router.setHistory().
https://router.effector.dev/core/adapters.html
До полноценного релиза важно получить фидбек и истории переезда. В том числе, чтобы написать полноценный Migration Guide.
Репозиторий: https://github.com/effector/router
Документация: https://router.effector.dev
🧡3 112
Repost from Effector news
☄️
@effector/router v1.0.0 release candidate
Новый роутер основан на идеях и коде atomic-router и argon-router. А так как последние уже не поддерживаются, то effector core team приняли решение о переносе проекта в организацию effector.
Чтобы переехать нужно заменить зависимости предыдущего роутера на @effector/router@v1.0.0-rc.0 и @effector/router-react@v1.0.0-rc.0.
Кроме этого, из ломающих изменений сейчас необходимо использовать historyAdapter(history) или queryAdapter(history) для router.setHistory().
https://router.effector.dev/core/adapters.html
До полноценного релиза важно получить фидбек и истории переезда. В том числе, чтобы написать полноценный Migration Guide.
Репозиторий: https://github.com/effector/router
Документация: https://router.effector.dev
🧡
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
