Boltology Tech | Nikita Sinyavin
237 subscribers
428 photos
33 videos
3 files
327 links
Канал про open source, болтологию и трудовыебудни программиста.

TG: @LesleySin
email: nikandsin@gmail.com
Download Telegram
Семейная фотосессия

Никита, Карина, Лесси, Макс, Марс (лысый) 🩷
16🔥12😍4
Одна из ключевых фаз процесса обучения — рефлексия. Без этого человек в полной мере не осознает полученные знания и опыт. Хабр решил отобрать эту возможность у пользователей.

Хабр добавил кнопку "объяснить" при отображении фрагментов кода, что позволит прямо в статьях получать объяснения по приведенному фрагменту. А заниматься этим будет ИИ-ассистент Яндекса. Коллаборация года, о которой никто не просил.

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

"Хабр уже не тот" — теперь и я это вижу. Я намерен уделить время переносу всех написанных ранее материалов на другой (скорее всего собственный) ресурс и больше не намерен публиковать новые статьи на этом сайте. Я выражаю глубокое презрение к политике Хабра, которая ставит во главу угла интересы не тех, для кого некогда создавалась площадка, а интересы корпораций.

Забавный факт: отключить эту кнопку нельзя (по словам представителей хабра) 🙂
👍61😁1😢1🥴1
Альтернатива макросам в Dart? 👀

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

По заявлениям разработчика кодогенерация, после обмазывания аннотацией и сохранения изменений (Ctrl+s) вы автоматически получите .g.dart-файл за ~ 100мс

```code
@dataClassMacro
class UserProfile with UserProfileData {
const UserProfile({required this.name, required this.age});

final String name;
final int age;
}```


Пакет генерирует боллерплейтный код для таких методов, как: fromJson, toJson, copyWith, equality operators и toString.

Пока макросы можно применять только для генерации data classes, да и они не полностью поддерживаются на физических Android и iOS устройствах, но у разработчика уже в планах:

1️⃣ Поддержка применения макросов к переменным и функциям

2️⃣ Дополнительные возможности макросов для разработчиков библиотек

3️⃣ Больше встроенных макросов для распространённых шаблонов

4️⃣ Работа над текущими ограничениями пакета

p.s. В текущей реализации пакет больше смотрится, как более легковестная альтернатива freezed, но есть куда расти 😏

p.s.s. Главный минус - требуется глобальная установка. Т.е. он постоянно будет крутиться у вас в фоне, и отлавливать сохранения в IDE и запускать кодген для сохрененных файлов. Дело в том, что автор выдрал все необходимое для кодгена из билдраннера. И если тому нужен прогрев при запуске, то этот пакет всегда на стреме и готов действовать 🤔

Как вам такой пакет?

👍 - О, да, детка
👌 - Сомнительно, но окей
👎 - Отстой! На кой мне сдался какой-то левый сервис, крутящийся на моей машине в фоне?
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔10👍4👎2
Forwarded from DUIT (Nikita Sinyavin)
"Пусть мама услышыт, пусть мама придет..."

Друзья, здравствуйте!

Развитие Duit сопряжено с определенными трудностями, одной из которых выступает количество пакетов, в которые требуется вносить изменения синхронно с остальной кодовой базой. Это крайне трудозатратная история и не позволяет взять более высокий темп разработки новых фич фреймворка.

В связи с этим вынужден сообщить, что разработка DSL-пакета duit_js заморожена в на текущей версии — v4.0.0.

Но все не так плохо, как может показаться! Пакет ищет свою маму/папу, своего мейнтейнера, который любит и умеет (или хочет научиться) работать с развестстой системой типов TypeScript и все это в контексте нетривиальной задачи создания DSL.

Спектр задач мейнтейнера:
- Поддержка и развитие кодовой базы проекта: имплементация новых фич фреймворка, фикс багов, развитие идей DSL Duit с учетом специфики TypeScript
- Работа с сообществом: разбор входящиз ишаков (issues) в части касающейся, ревью входящих PR
- Участие в "меж-пакетной" деятельности: проектирование API новых фич фреймворка и тд.

Чтобы присоединиться к проекту требуется направить на эл. почту duit.foundation@gmail.com письмо, где указать следующие данные:
- Имя и фамилия
- Возраст
- Краткое описание опыта работы с TypeScript и разработкой библиотек, а также опыт контрибьюта в open source проекты
- Ссылку на github, где можно глянуть релевантные примеры кода

Надеюсь, проект не заглохнет окончательно и найдется энтузиаст, способный взвалить на свои плечи такую нелегкую задачу :)
😢5🔥2👾21
Pub.dev: количество != качество

Популяризаторы Dart часто апелируют к зрелости системы, ссылаясь именно на показатель количества пакетов. Но забывают об их качестве.

Я подписан на рассылку от @FlutterObserver_bot , который помогает следить за новыми появляющимися пакетами на pub.dev. И если внимательно всмотреться в то, что люди публикуют, можно сделать неутешительный вывод — "пакеты говна" (непроверенные, неиспользуемые и не поддерживаемые после публикации) становятся проблемой для экосистемы Dart.

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

По факту же имеем:
- Несколько сотен качественных и поддерживаемых решений
- Несколько тысяч нишевых проектов, которые могут претендовать на "полезность" для сообщества в определенных условиях
- Тысячи пакетов-однодневок, которые были созданы и загружены в публичное поле по какому-то недосмотру вселенной

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

А как бы вы решали возникшую проблему?
1👍12
Часто вижу формулировку "чистый Си"/"на чистом Си". А есть ли "грязный Си"? Или это они про С++?

Не пойму никак 🫠
🤔3
Каждый уважающий себя айтишник, как принято считать, должен иметь собственный сайт-визитку. Этого я, пожалуй, никогда не понимал и не принимал. В этом всегда чувствовался элемент самолюбования вместо какой-то реальной пользы. Но время идёт — и вот я представляю вам свой личный сайт.

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

Но начнем издалека.

В среде людей, которые ведут блоги, для меня особняком стоит и возвышается горой позитивного примера блог Антона Волкова — «Точка сборки». Его посты почти никогда не существуют в вакууме: они постоянно ссылаются друг на друга, на старые заметки, на внешние источники. В итоге ты читаешь не просто текст, а входишь в сеть мыслей, где каждый новый узел отсылает к предыдущим.

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

Второй причиной стало внедрение на Хабр ИИ-объяснялки для примеров кода. Казалось бы, мелочь. Но для меня это — акт неуважения к аудитории. Как метко заметили в комментариях: «Хабр опять насрал на хомяков».

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

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

Welcome to my digital garden!

P.S. За наводку на Quartz спасибо человечку с ником @spetsialny
P.S.S Я уже успел немного наполнить сайт некоторыми избранными материалами из этого канала
P.S.S.S Сайт поддерживает RSS, если кто-то вдруг пользуется этой технологией древней цивилизации
7🔥5
Forwarded from DUIT (Nikita Sinyavin)
⚡️Вести с полей - Duit

Первый релиз после перехода на рельсы v4 — flutter_duit v4.1.0!

Что внутри:
⚙️ Новые виджеты: AnimatedPositionedDirectional, ClipRect, ClipOval, PageView, Badge
⚙️ Новая функциональная возможность — работа с FocusNode и управление фокусом

Также при проектировании и реализации Focus API был "обкатан" новый подход к расширению фреймворка, который позволяет исключить breaking changes при добавлении новых методов драйвера в duit_kernel.

Поддержать проект:
- Кодом
- Денежкой
🔥4👍3
Новый пост

P.S. Удобен ли вам, читателям, такой формат публикации?
4👍4
🔥Книга «Основы Dart: Community edition» 2-е издание🔥

Вот и настал черед релиза второго издания бесплатной версии книги по Dart 😏

По принятой когда-то традиции она доступна в 2-х версиях: PDF и EPUB, которые можно скачать с

Яндекс диска

ㅤㅤ- pdf: https://vk.cc/cSpsqh

ㅤㅤ- epub: https://vk.cc/cSpst8

Google Drive

ㅤㅤ- pdf: https://vk.cc/cSpt5X

ㅤㅤ- epub: https://vk.cc/cSpt7Y

Где можно приобрести полную версию книги?

PDF и EPUB полной версии книги можно приобрести на Boosty. Там же можно задонать на поддержание моих преподавательских штанов😉А лучше – на абонемент в спортзал 😎

p.s. О том, что изменилось относительно прошлого издания можно почитать в этой статье на хабре 😇

Буду очень благодарен за максимальный репост новости о книге!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
Свежий взгляд на проектирование устойчивых и расширяемых API. Такого вы еще не видели...

Технический рецензент: @madteacher_channel

В свободном доступе статья будет опубликована в 2026 году.

Читать на Boosty
🔥2👍1
Эссе про то, как IT превратилось в завод, почему миф о "сложных задачах" ломает ожидания людей и как признание своей роли помогает перестать воевать с собой и реальностью.

Рецензент: @MadMarchello

P.S. Репосты крайне приветствуются 🩷
P.S.S. Обсудить прочитанное можно (и нужно) в комментариях под этим постом
8🔥3👍1
Рождение ребёнка — событие, которое обнуляет прежнюю систему координат. Поэтому итогов года не будет: у меня и моей семьи всё только начинается.

Друзья, поздравляю вас с наступающим 2026 годом!

Желаю вам энергии, внутреннего согласия и честности с самими собой — чтобы любые барьеры были по плечу.

В общем, желаю быть на коне 😁

С наступающим новым годом!
🥰1611🍾7🔥2👍1
Зимняя прогулка с собаковной (закопали)
10😁8🔥4😱3
Не думал, что когда-то подобное скажу, но "лучше бы у разрабов из Яндекса за Flutter спросил". У них практика более репрезентативная 🙂

Намерен посмотреть сие чуть позже, пока не созрел.

P.S. Как считаете, кто лучший (более достойный) кандидат в ру сегменте для того, чтобы рассказать за Flutter?
😁8
Еще в октябре прошлого года я уверенно заявил, что стартую новый проект — "Осознанная инженерия". И даже публиковал одну из заметок по проекту. Но после этого наступила тишина.

Так вот, нарушаю эту тишину важным сообщением: проект не заброшен. Более того, он как раз перешел в ту самую ключевую фазу, которую мы так часто пытаемся проскочить рывком — фазу обучения и погружения.

Я на серьезных щах думал, что, имея за плечами опыт разработки, смогу сразу начать эволюцию языка. И в чем-то я был прав — для старта хватило. Но вскоре проявились нюансы. Много нюансов. Оказалось, между "закрытием тасок" (линтер, багфиксы, мелкие оптимизации) и реальным развитием языка программирования — целая пропасть. А перейти ее можно только по мосту из глубоких фундаментальных знаний.

Моим учебником стала культовая книга "Crafting Interpreters" Роберта Нистрома. Интересный факт — сейчас Роберт в Google работает над Dart. Получается, я учусь создавать языки у одного из тех, кто развивает язык, на котором пишу :)

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

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

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

Рецензент: женулька

P.S. Репосты крайне приветствуются 🩷
P.S.S. Обсудить прочитанное можно (и нужно) в комментариях под этим постом
3