Джун на фронте | 📝 @divatoz Channel on Telegram

Джун на фронте | 📝

@divatoz


📆 Стартап @pravku без NDA
🗣 Исходный код моего пути в IT
🤖 Документирую каждый пивот жизни

Джун на фронте (Russian)

Джун на фронте - это Telegram канал, который предназначен для всех начинающих специалистов в сфере IT. Здесь вы найдете полезную информацию, советы, и истории успеха от опытных профессионалов. Через этот канал вы сможете быть в курсе последних тенденций в IT-индустрии, узнавать о вакансиях, и получать поддержку от сообщества. Пользователь @divatoz, создатель канала, рассказывает о своем пути в IT и делится своими знаниями с теми, кто только начинает свой путь в этой области. Он поможет вам найти свой путь в мире технологий и даст советы по саморазвитию. Если вы только начали свой путь в IT и ищете поддержку и мотивацию, то канал 'Джун на фронте' - идеальное место для вас. Присоединяйтесь к сообществу начинающих IT специалистов, делитесь своими успехами и вопросами, и двигайтесь вперед вместе с нами!

Джун на фронте | 📝

18 Feb, 15:24


Джуны тупеют — таким наблюдением поделился разраб Наманяй Гоел.

Он описывает довольно очевидную проблему — новички всё чаще используют ИИ для написания кода, но они не понимают, как он работает.

То есть, если раньше вы сталкивались с ошибкой, нужно было идти в Google или на StackOverflow и искать, что именно не так и как это фиксануть. Сейчас же можно закинуть код в о3 и попросил исправить.

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

Джун на фронте | 📝

18 Feb, 05:12


Я только что понял, что создан для языка Go, ведь в нём можно вызвать панику внутри функции (это реальный термин).
Так же панику можно отловить, тем самым продолжить работу приложения после паники.

Джун на фронте | 📝

16 Feb, 16:24


Глобальный AI тренд или локальный спад?

🤔 В ленте гуляет график IT-вакансий, где после ковида виден резкий спад и автор делает вывод: виноват ИИ.

Но если посмотреть на весь рынок США, динамика схожая даже в несвязанных с кодингом сферах.

📊 Реальные причины:

🧡 Экономика, а не нейросети – вакансии в разработке (первый график) достигли пика в 2022 году и с тех пор упали более чем в 3 раза.

Но общий рынок (второй график) показывает тот же тренд: рост после ковида → перегрев → спад.

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

🧡 ИИ в кодинге – хайп недавний – массовая адаптация нейросетей в разработке пошла только в 2023-2024 годах. Но вакансии начали падать еще в 2022 году, до взлета GPT и Copilot.

🧡 Коррекция после пузыря – IT-рынок в ковид перегрелся, количество вакансий в разработке выросло более чем в 2,2 раза к 2022 году. Теперь идет естественный откат.

💡 Факт: ИИ – мощный инструмент, но он не заменяет разработчиков, а дополняет их.Чтобы автоматизировать навык, человек сначала должен освоить его сам.

📌 Катастрофы нет, это обычный рыночный цикл, коррекция, в РФ ситуация схожа.

📊 #статистика День 1173 == 2553 час в IT

Джун на фронте | 📝

13 Feb, 16:09


Рабочий дневник: День 146
User flow XMTP-чата

Вот такой пользовательский поток у меня получился. Подключились к XMTP, проверили адрес и (если всё ок), можем создать с ним чат, попутно загрузив сообщения.

Конечно, есть ограничения — сам чат слишком узкий. В моём представлении слева должен быть бар с контактами, cправа — поле для переписки. Как в Discord или Telegram на вебе, ёпта.

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

Но пока дизайна нет, особо можно не переживать за UI/UX. Мне даже так удобнее — спокойно пилю свои компоненты, попутно шлифуя логику. Если под капотом всё нормально без спагетти, то натянуть вёрстку уже не составит труда.

📊 #статистика День 1169 == 2542 час в IT

Джун на фронте | 📝

13 Feb, 12:03


Важно вовремя завалить ебало, чтобы оно тебя не обыграло 👌

Джун на фронте | 📝

13 Feb, 10:58


Для тех, кто еще не видел, интересный график количества вакансий в ИТ / разработке. Первый провал на графике — ковид. Второй — ИИ. Пока что отменяют манкикодеров, но экспертиза в цене. Сегодня любой нубас с GPT может заделиверить MVP. Завтра все это будет работать и без нубаса. Послезавтра — аналогичный тренд ждёт все остальные офисные профессии. Для один повод поужасаться, для других — уникальная возможность, когда меняется структура рынка.

Джун на фронте | 📝

13 Feb, 10:37


Админка Telegram Ads

😶 Попробовал запустить рекламу канала через Telegram Ads за звёзды, но пополнить баланс таким способом не вышло. Зато оплату в TON принимают без проблем.

С аккаунтов, пополненных в TON, рекламу не видно в пяти странах: Россия, Украина, Израиль, Палестина, Германия. Однако пользователи с VPN видят эти объявления.

🤑 Если аккаунт пополнен в евро, реклама доступна пользователям из России и Украины. Также можно таргетировать аудиторию по тематикам и языку.

Открыть европейский аккаунт можно только через реселлеров. Минимальный депозит — от 500 до 1500 евро. Комиссия реселлеров составляет 15-30% от суммы пополнения.

😑 Telegram Ads использует аукцион первой цены — сколько поставили, столько и списалось. Минимальная ставка CPM — 0,1 TON.

Умные алгоритмы, которые оптимизируют показы под клики или конверсии, отсутствуют.

После 1000 показов можно анализировать статистику и определять, с каких каналов идёт лучший трафик.

🤡 Инфу взял отсюда, но многое остаётся непонятным. Например, как определить адекватную ставку CPM в зависимости от тематики?

Не круто же ставить цену на рекламу для криптопроектов такую же, как для рекламы порно. Аналитики в Telegram Ads я пока не нашёл.

🤫 С другой стороны если работать напрямую и закупать рекламу самостоятельно, цена варьируется от 500 до 5000 рублей за 1000 просмотров.

Стоимость зависит от тематики и аудитории. Так что работаем братья, пока по старинке:)

Джун на фронте | 📝

12 Feb, 08:39


Диана Шурыгина вкатилась в Web3

🍆 Эскортница из Ульяновска решила вспомнить свой опыт на Первом канале запустив «криптопроект». Тикер выбрали незамысловатый — $SHURYGINA.

Общая эмиссия 1 000 000 000 монет, из которых 700kk в первый день были куда-то отправлены с адреса sviatoslav.ton.

Возможно, это ее новый муж и по совместительству трейдер с долгом в 2kk на ФССП. Похоже, с прошлым криптаном (или ментором?) дела не сложились.

🤛 Сайт токена — сборник соцсетей Шурыгиной без токеномики и плана развития.

В народе такие токены называют мемными. Они не несут ценности (как Utility Token) и нужны лишь для скама хайпового трейдинга в надежде поймать памп.

Скорее всего, токен запустили по типу Gas Pump — платформа, где самое сложное это выбрать название и заплатить 0,3 TON за деплой.

При достижении 1000 TON ликвидность автоматически выходит на DEX, а LP сжигаются.

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

Sviatoslav.ton получил 70% всех токенов на старте чего не скажешь о других 57 держателях.

Возможно, эти токены заморожены для их тапалки, где нужно тапать по сиськам Шурыгиной 🤦‍♂️ в надежде на конвертацию тапов в $SHURYGINA.

Некоторые киты уже успели нафармить себе миллионы и ждут анонса от команды.

Технический анализ:

↗️ С фундаменталом разобрались, переходим к графику. Он рисует двойное донышко — бычью разворотную фигуру.

Обычно это сигнал о возможном отскоке и смене тренда на нормальных рынках.

С другой стороны, если смотреть на глобальный таймфрейм, то сейчас капа $20k при цене $0.0000195, но в моменте она достигала $80k при $0.000075 на хаях.

Попахивает схемой «Pump & Dump»: где сначала цена резко взлетает на рекламе, а потом падает после листинга, когда ранние инвесторы (например, муж Шурыгиной) фиксируют прибыль.

😭 Забавно, что 34% ликвидности можно выкупить на StonFi за $1 (около 33к монет).

Если у вас есть 1 TON или 1 USDT, можете отправить их мне, и мы сделаем контрольную закупку $SHURYGINA в надежде на иксы.

UQCxGkMN43Qv9PKYZ4eAEw6w1WaV_F_in4Z2KbQ0Rtufl7gL

🤑 Попробуем поймать волну волатильности Шуригиной в дей-трейдинге, попутно изучив экосистему TON и ее отличие от Ethereum.

Джун на фронте | 📝

12 Feb, 05:36


У меня появился спонсор!

🚑 Не USAID, но тоже неплохо. Механика интересная: звёзды можно вывести только после накопления 1000 штук.

Это примерно 10 долларов (когда покупка 1к = 20$), а выводить их можно через платформу Fragment.

💵 Кроме того, звёзды можно тратить на рекламу канала через Telegram Ads. Увы, но посмотреть на личный кабинет и конвертацию без 1000 звёзд не получится...

Так что, если вам нравится контент, вместо 👍 ставьте ⭐️, а я буду публично их тратить.

Джун на фронте | 📝

11 Feb, 09:07


На рынке довольно мало реальных спецов, которые действительно долго работают в IT и что-то в этом соображают.

Чтобы знать, как они выглядят, почитайте канал Dev Easy Note. Его автор Никита успел поработать как на бэкенде, так и на мобилке. При этом даже пытается что-то писать про фронтенд.

Если вам нравится не душный контент с кринжовыми шутками, то сохраняйте: @dev_easy_notes

Джун на фронте | 📝

11 Feb, 06:34


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

Вечные обсуждения в вастрике, что вот чел, у него 6+ лет в фаанг, не может пройти первые этапы. Скорее всего, у него на лице написаны его мысли и чувства, когда у него спрашивают про Object.

И компании иногда хотят средних, но крайне лояльных сотрудников на ординарные позиции. И лояльность важнее, и вот таким способом тестируется )

Джун на фронте | 📝

10 Feb, 16:47


Рабочий дневник: День 143
Интеграция XMTP

💃 Сегодня удалось сделать первую отправку сообщений по протоколу XMTP между двумя разными браузерами.

Более того, получилось загрузить историю переписки между двумя ETH-адресами с удалённой ноды!

Как кошелёк идентифицирует юзера?

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

По умолчанию подделать подпись невозможно — это гарантирует криптография. Если на файле есть подпись, значит её оставил владелец приватного ключа.

Когда ты подключаешь свой кошелёк (например, MetaMask) к мессенджеру на базе XMTP, система использует твою ECDSA-подпись для верификации.

После того как личность подтверждена с помощью ECDSA-подписи, XMTP генерирует отдельную пару ключей:

1️⃣ Публичный ключ — для идентификации в сети.

2️⃣ Приватный ключ — для дешифровки сообщений, которые нам отправляют.

Вот на такой простой базе, как ECDSA, держится весь мир криптовалют. Ну и ещё на деревьях Меркла, но об этом в следующих постах.

📊 #статистика День 1166 == 2527 час в IT

Джун на фронте | 📝

10 Feb, 07:17


Но есть нюанс, тут в основном закрытые LLM, доступные через API (OpenAI, Gemini, Claude и др.), но DeepSeek можно развернуть на своем оборудовании!

Если у вас есть доступ к мощным GPU, DeepSeek может быть намного эффективнее, чем Gemini.

💸 Кстати, DeepSeek удалось сделать такой дешёвой за счёт того, что её тренировали на синтетических данных от разных LLM.

Именно с этим связан баг, при котором, если попросить DeepSeek назвать себя, она выдаёт ответы то про Yandex GPT, то про Claude, то про GPT...

Если раньше китайцы копировали мобильные телефоны, то теперь они копируют языковые модели.

Джун на фронте

08 Feb, 06:27


https://blog.jetbrains.com/phpstorm/2025/02/state-of-php-2024/

Обычный портрет пхпшника - цисгендерный мужчина натурал 😏😏😏

Лучше бы проверили JS'ников и геймдевелоперов, туда постоянно тянет всяких сомнительных личностей.

Джун на фронте

07 Feb, 11:35


Рабочий дневник: День 142
Обновление Tailwind CSS

🔥 22 января вышла 4 версия Tailwind CSS, которая наконец-то позволяет настраивать фреймворк прямо в CSS, а не в JavaScript файлах.

Кроме того, теперь все дизайн-токены доступны через CSS-переменные, как это принято у нормальных людей.

💊 Лучшее в этом обновлении — миграция с версии 3 на 4 занимает всего 5 минут. Самое сложное — просто запустить команду:

npx @tailwindcss/upgrade@next

Эта команда автоматически выполнит следующие действия:

1. Переименование утилит:

<!-- Было → Стало -->

outline-none → outline-hidden

shadow-sm → shadow-xs

rounded-sm → rounded-xs

ring → ring-3


2. Обновление директив:

/* Старый вид */
@tailwind base;
@tailwind components;
@tailwind utilities;

/* Новый вид */
@import "tailwindcss";


3. Обновление конфигурации:


• Перенос настроек из JavaScript в CSS

• Обновление переменных темы


4. Изменение значений по умолчанию:


• Цвет границ (border-color) теперь currentColor вместо gray-200

• Толщина кольца (ring) теперь 1px вместо 3px

• Цвет плейсхолдера теперь соответствует текущему цвету с 50% прозрачностью


5. Обновление синтаксиса переменных:

<!-- Старый синтаксис -->
<div class="bg-[--brand-color]">

<!-- Новый синтаксис -->
<div class="bg-(--brand-color)">


6. Изменение порядка вариантов:

<!-- Старый порядок (справа налево) -->
<div class="first:*:pt-0">

<!-- Новый порядок (слева направо) -->
<div class="*:first:pt-0">


7. Удаление устаревших утилит:

css 
• bg-opacity-*

• text-opacity-*

• border-opacity-*

и другие


☠️ Честно говоря, рад, что не пришлось делать это вручную. Проект теперь не только быстрее билдится, но и работает заметно шустрее.

Хотел замерить метрики, но и без этого хватает дел. Главное — всё работает!

🥃 Осталось только перенести daisyUI на 5 бета-версию (релиз в марте), которая уже работает на Tailwind v4.

Кстати, заметил, что Vite тоже внезапно обновился с версии 5 до 6. Думаю, проблем с этим не возникнет.

📊 #статистика День 1163 == 2519 час в IT

Джун на фронте

07 Feb, 08:10


Передаю привет из 11 февраля!

Цива 7 — ещё тот огонь, да ещё и на Switch. Ради этого стоило взломать консоль или этичнее было бы поддержать разрабов за 9к по предзаказу?

PS: Я всё же решил ограничить реакции на канале и пойти на поводу у 💩-террориста.

Большое количество эмодзи в постах создаёт информационный шум.

Теперь доступны только два путя: 👍 и 👎. Ну и звёзды — для тех, кто не как все.

Джун на фронте

06 Feb, 09:37


Нашел исполнителя на Kwork, который зарегистрирует и «прогреет» ваш аккаунт за 25к рублей 🤑

На Авито, кстати, регистрация в LinkedIn стоит от 1.5 тысяч без дополнительных услуг.

Если надо оформить профиль, готовь ещё 5к. Плюс 1.5к за последующую «разблокировку»🤦‍♂️

Джун на фронте

06 Feb, 09:08


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

Джун на фронте

04 Feb, 14:22


Рабочий дневник: День 139
Неожиданный инсайт о FSD

🤔 Сегодня на созвоне с Head of R&D выяснилась интересная деталь про наш внутренний фреймворк для Vue (типа InversifyJS).

🎯 Помните пост с критикой FSD? Оказалось, что компания давно использует похожие принципы, но в рамках своей модульной архитектуры для проектов.

⚙️ Фреймворк компании включает:

• DI-контейнер для ленивой загрузки зависимостей.

• Систему событий для связи между модулями.

• Жизненный цикл модулей с этапами установки, настройки и запуска

• Возможность регистрации классов как синглтонов


🏗 Можно сравнить наш подход с FSD, где код так же делится на слои:

• shared – базовые компоненты.

• entities – бизнес-сущности.

• features – интерактивные функции.

• widgets – составные блоки UI.

• pages – страницы.

В нашем случае мы так-же разбиваем код на «модульные фичи». Например, при добавлении чата:

1️⃣ Создаем ChatModule, который включает:

• components – UI-компоненты 
(как widgets в FSD).

• services – бизнес-логику
(как features).

• data – модели данных
(как entities).

• parts – внутренние механизмы.


2️⃣ Используем фреймворк над Vue для:

• Ленивой загрузки модуля.

• Связи с другими модулями через DI.

• Управления жизненным циклом.


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

Можно снова провести аналогию с Scrum и Agile. Как Scrum берет идеи Agile и адаптирует под нужды команды, так и наш фреймворк с соглашениями воплощает в жизнь идеи FSD.

📊 #статистика День 1160 == 2495 час в IT

Джун на фронте

04 Feb, 09:02


Теперь я тоже LeetCode-нутый

🤡 Долго собирался с мыслями, чтобы решить свою первую задачу. Думал, что ничего круче CodeWars уже не придумали. Я даже прокачал там 4 куй без мам, пап и нейронок.

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

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

«Что за философская абстракция?» — подумал я и забил на эти задачи, посчитав их алгоритмически-теоретическими ловушками для собесов.

📕 На деле же оказалось, что все эти графы и деревья — это те же задачи про поезда и столбы, но с Input, Output и Explanation, которые можно решить на любом из 19 языков, от C и Rust до TypeScript и Python.

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

🤢 Не знаю, что будет дальше, но после трёх решённых задач мне это даже понравилось. Если что-то не понятно, можно закинуть ссылку в ChatGPT и вместе разобрать задачу на атомы с объяснениями «почему» и «зачем».

🍿 Теперь осталось понять, где тут рейтинг, чтобы потешить своё ЧСВ и добавить лычку с количеством решённых задач (или баллов) в мой GitHub-репозиторий.

Джун на фронте

03 Feb, 12:37


Как вашим мнением манипулируют

😫 По реакциям на прошлый пост может показаться, что на канал напали сектанты из FSD-чата. Но, увы, связаться с «террористами» мне так и не удалось. Их намерения остаются загадкой.

Не знаю, кто так заморочился и накрутил эмодзи 💩 под постам, но считаю, что следы ведут куда дальше, чем просто идея FSD. Реакции появились еще раньше и впервые проявили себя именно под этим постом про выкатку.

🤔 Можно долго размышлять, кто и зачем профинансировал эту «атаку», но интересно другое. Многие из вас стали жертвой астротурфинга.

В Википедии это объясняется как «маскировка искусственной общественной поддержки под общественную инициативу».

В английской версии звучит немного иначе: «скрытая манипуляция мнением, при которой искусственная поддержка маскируется под спонтанную реакцию людей».

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

Чтобы нейтрализовать этот эффект, я купил за 100 рублей 50 случайных положительных реакций на каждый из 20 будущих постов.

Это создаст на канале атмосферу радости, праздника и супер-лояльной аудитории! Спасибо! 😊

📊 #статистика День 1159 == 2487 час в IT

Джун на фронте

01 Feb, 06:42


А теперь holy war за FSD

🫤 Меня уже очень давно склоняют к этой невероятной и прорывной архитектуре на фронте.

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

👍 Как по мне, самый лучший аналог — это модульный подход. Хочешь добавить в проект чат Waku? Пожалуйста!

В src/ создаёшь директорию WakuModule и пихаешь туда все сервисы, компоненты, интерфейсы, утилиты тп и тд., логически связанные с этой фичей.

Аналогично с IpfsModule или модулем для комментариев или лайков.

🤫 Да, вопросы всё равно остаются, но их в разы меньше, чем с FSD и нам не важно приложение это или библиотека.

На FSD стоит полагаться только в том случае, если он уже присутствует в команде.

Хотя, с другой стороны, FSD даёт тот самый свет во мраке организации кода на фронте — того, чего не хватает на старте, особенно после чисто компонентного подхода.

📊 #статистика День 1157 == 2479 час в IT

Джун на фронте

30 Jan, 06:38


Рабочий дневник: День 136
Готовимся к выкатке!

🔧 Чтобы выкатить наше решение в продакшен, сначала нужно развернуть логику «бэкенда» в блокчейне.

Если кратко, нам необходимо отправить транзакцию с кодом смарт-контрактов и оплатить её. После этого API и код будет доступен всем для изучения и взаимодействия.

Стоимость деплоя зависит не только от курса Ethereum и его внутренней комиссии (Gas), но и от веса самих контрактов. Например, в прошлой итерации мы включили в наш код библиотеки от OpenZeppelin, которые тоже являются контрактами.

Это значительно увеличило не только стоимость деплоя, но и цену операций с нашими контрактами. Так, публикация постов в Mainnet стала в 100 раз дороже.

🔄 После оптимизации, добавления прокси-контрактов и других приблуд Solidity, расходы снизились до более адекватного уровня. Однако в Mainnet всё ещё дорого.

📥 Решение есть! Можно использовать блокчейны второго уровня (Layer-2). Один из таких вариантов — Arbitrum, где комиссии в 10-100 раз ниже, чем в Ethereum.

Важно, что любой смарт-контракт на Solidity можно запустить в Arbitrum без изменений. Все операции, происходящие в L2, защищены основной сетью (L1).

Arbitrum отправляет транзакции в L1 не поштучно, а в сжатом виде — пачками по тысяче транзакций. Это называется Rollup (свёртка транзакций), а сама технология — Optimistic Rollups.

💰Я также заметил, что у проекта практически отсутствуют операционные расходы (OPEX).

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

Нет рисков DDoS-атак и проблем с безопасностью, бэкапы и firewall не требуются, балансировка нагрузки не нужна, как и отряд DevOps-инженеров или #сисадмин-ов

Да, за основные действия платит пользователь, но те, кто просто потребляет контент, делают это бесплатно. Контракт работает сам по себе, как и Waku.

🎮 Осталось решить вопрос с распределённым хостингом фронтенда.

Одно из возможных решений — использование IPFS и ENS, но эти решения придется переодически администрировать.

Быть может есть другие варианты, типо включил и забыл?)

📊 #статистика День 1155 == 2470 час в IT

Джун на фронте

29 Jan, 10:44


Рабочий дневник: День 135
Общий чат готов!

🤩 Удалось добавить в приложение первый прототип общего чата.

На видео три браузера — Brave, Google Chrome и Yandex. Да, у всех них под капотом движок Chromium, но цель была показать обмен сообщениями между разными пользователями без регистрации и Metadata.

📞 Работа с протоколом Waku оказалась довольно простой. Его можно представить как Pub/Sub-систему, где каждый подписавшийся на нужный топик пользователь получает сообщения.

😭 Теперь начинается время экспериментов. Например, можно связать сообщения с профилем юзера, добавляя в них хеш браузера.

Или попросить пользователя подписать сессию через Metamask и привязать кошелек к сообщениям. Ведь только владелец приватного ключа может создать подпись.

📞 Еще надо подумать над первичным каналом связи. Как, например, кошелек A сможет уведомить кошелек B о создании приватного чата?

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

🧪 В общем, есть над чем поразмышлять. Проект исследовательский, и иногда грустно, что нельзя просто взять готовое решение из Web2 или использовать сервер.

Хотя, с другой стороны, именно это делает работу интересной!

📊 #статистика День 1154 == 2462 час в IT

Джун на фронте

29 Jan, 08:19


Открыл свой первый issue!

Проблема в том, что главный метод из документации «createSubscription» для подписки на новые сообщения почему-то оказался без типизации.

Сначала подумал, что дело во мне, и решил задать вопрос в Discord Waku.

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

Команда, похоже, из СНГ. Дмитрий Ряжов — лид Codex, а Waku представляют Александр (Sasha) и Сергей Тихомиров — какой-то Protocol Researcher.

Крч, русский след и тут присутствует:)

Джун на фронте

27 Jan, 13:20


Рабочий дневник: День 133
Прототип P2P чата на коленке.

Сегодня пытался разобраться с Waku и запилить обмена сообщениями между двумя пользователями.

Забавно, что сделать общий чат без шифрования оказалось проще, чем p2p-чат, как в Telegram.

🔗 За сегодня я выяснил, что эта система работает следующим образом:

1. С помощью waku/sdk создается Light Node в браузере, который подключается к основной сети Waku.

2. Мы задаем строку-топик для комнаты (название чата), например:

/chat/1/general.

3. Отправив любое сообщение на этот «адрес», создаем комнату для общения.

Когда пользователь открывает вкладку чата в нашем приложении, оно под капотом отправляет системное сообщение (и создает чат, если он первый):

[System]: Anon вошел в комнату.

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

Теперь он может отправлять и получать сообщения в рамках чата!

🔍 В поисках примеров я наткнулся на рабочую реализацию голосования в Waku. Она использует Vue + Metamask для подтверждения отправителя.

✍️ В этом примере каждый опрос (чат) связан с уникальным топиком, например:

/polls/app/1/vote/<poll-id>.

1. Когда пользователь голосует, его выбор (например, "Да" или "Нет") преобразуется в сообщение.

2. Сообщение отправляется в Waku по соответствующему топику.

3. Когда в топике появляется новое сообщение, интерфейс обновляется в реальном времени.

⚠️ Есть важная проблема: если пользователи заходят в приложение в разное время, они могут видеть разные результаты голосования.

Это происходит из-за того, что Waku передает сообщения только в реальном времени.

Для хранения сообщений на внешних нодах требуется подключить протокол Codex. Без него данные доступны только в момент отправки.

📊 #статистика День 1152 == 2446 час в IT

Джун на фронте

27 Jan, 10:01


Где проще найти работу?

Аналитика по соотношению резюме/вакансии в разных направлениях IT (актуально для HH). Разберем, где меньше конкурентов:

🔍 Главные находки:

• 1С остается лидером — дефицит кадров как среди джунов, так и людей с опытом.

• C++ поднялся на второе место среди мидлов и сеньеров (от $2500). Компании в основном ищут людей с опытом из-за сложности языка.

• Python показал впечатляющий рост. Конкуренция среди опытных разработчиков упала в 4 раза (с 43.5 до 12.3). Правда, у джунов ситуация сложнее.

⚠️ Интересный тренд: разработчики на C стали единственными, у кого конкуренция снижается весь год. Предположительно, это связано с ростом спроса в оборонном секторе.

😭 Аутсайдер года — iOS разработка. Конкуренция практически не изменилась (было 30, стало 27.9), в то время как в других направлениях она снизилась в 1.5-2 раза.

💡 Важный момент про 1С: несмотря на низкую конкуренцию, потолок зарплат существенно ниже. 1С-ник с 10 годами опыта может получать значительно меньше, чем Java-разработчик с тем же стажем.

🔥 А вот на фронте самая высокая конкуренция — 55.2 резюме на вакансию (хуже всех других направлений).

Динамика за год неутешительная: конкуренция выросла с 39.9 до 55.2, что говорит о перенасыщении рынка.

В тоже время для мдилов и выше конкуренция существенно ниже — 30.3 резюме на вакансию.

Хотя все же тренд негативный: рост с 17.9 до 30.3 за год, в то время как количество вакансий снизилось со 165 до 128.

😱 Видимо, пора подумать о расширении навыков. Например, можно перейти к fullstack-разработке. Конкуренция в этой области ниже почти в три раза (16.9).

Или лучше не зацикливаться на цифрах, а просто заниматься тем, что нравится 😊

[источник]

Джун на фронте

26 Jan, 05:29


Вышло новое эссе от Andrew Ng, где он рассуждает, что в эпоху ai будущее за продукт-менеджерами (PM), особенно в сфере AI.

Мол написание кода, особенно прототипов, становится всё дешевле.

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

Какие навыки важны?

• Понимание того, что возможно создать с точки зрения технологий.

• Владение итеративным подходом — модели требуют доработки и тестов на каждом этапе.

• Умение работать с данными и видеть в них ценность для продукта.

• Принятие решений в условиях неопределённости, поскольку AI часто непредсказуем.

• Постоянное обучение — технологии не стоят на месте, и PM должны понимать, как их использовать.

• Умение быстро тестировать гипотезы, создавая функциональные прототипы самостоятельно (с помощью AI).

Может я AI PM 💁‍♀️?

Интересно, что сегодня как раз смотрела отчёт Toptal по рынку за Q3 2024. Это подтверждается: почти во всех направлениях сильное сокращение спроса, особенно в разработке. А вот у PM спрос вырос почти на 40% с начала года, и на 10% с 2023. Эта вертикаль показала самый сильный рост (и зарплат тоже).

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

@wealldesigners

Джун на фронте

20 Jan, 09:52


Невероятные результаты от использования AI в образовании: школьники в Нигерии использовали Microsoft co-pilot тьютора на протяжении 6 недель (2 сессии в неделю) и показали академические результаты эквивалентные дополнительным двум годам обучения. Это на 80% (!) эффективнее, чем любые другие методы педагогических интервенций.

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

Джун на фронте

18 Jan, 11:07


Сердце Ciga Checker-а готово!

Что может быть интереснее в день рождения дочери, чем разбираться с документацией gram.js? За 1.5 часа и 79k токенов (примерно $0.23) удалось создать консольную утилиту.

Она позволяет получать посты из любого Telegram-канала или группы и рассчитывать их примерную стоимость в токенах для API OpenAI.

Чтобы работа с CLI не была скучной, я добавил библиотеку prompts. Она делает ввод в консоль более приятным и интерактивным.

😎 Следующий шаг — реализация консольного «мозга» Ciga Checker-а. В будущей микросервисной архитектуре, он должен получать данные от «сердца» через API и формировать отчеты.

Эти отчеты в telegra.ph/api будут содержать обоснования скрытых смыслов в постах инфлюенсеров с общим процентом инфицыганщины 🤣

📊 #статистика День 1144 == 2407 час в IT

Джун на фронте

18 Jan, 07:30


Одна из причин, почему я забил на свой паблик во ВКонтакте, — это их ужасный UX и алгоритмы "тупой умной ленты", которые режут охваты постов. Но это не единственная проблема.

😡 Контент на платформе выглядит ужасно (если вы не иллюстратор). Вшивать ссылки в текст нельзя, а посты с медиа хаотично обрезаются до пары абзацев.

😐 Если же вам вдруг понадобится вставить видео с YouTube или поделиться линком на доку, будьте готовы к тому, что охваты упадут на 80%. Всё потому, что платформа наказывает за попытки "увести" юзера на други ресурсы.

😰 Хочешь публиковать больше одного поста в день? Готовься делить охваты между ними. Либо один пост получит 100 просмотров при 500 подписчиках, либо по 20 просмотров на пять постов.

У них что, охваты выдаются по талонам? Зато это можно исправить с помощью таргета👌

🥱 И, конечно, нельзя не упомянуть про страйки. ВКонтакте раздаёт баны направо и налево, прикрываясь какими-то правилами "уникального контента".

🤦‍♂️ У меня был случай, когда кто-то взял мой пост из Telegram, опубликовал его в своём паблике во ВКонтакте, а потом кинул страйк на мой пост, который я загрузил позже.

🤦‍♂️ Знаете, что произошло? ВКонтакте приняли этот страйк, так как по словам модератора, их не волнует происхождение контента за пределами их платформы. У меня же нет "галочки" и доказать его уникальность я не могу...

Есть ли здесь успешные инфлюенсеры из ВКонтакте? Поделитесь, пожалуйста, своими пабликами в комментариях. Возможно, я что-то делаю не так...

Джун на фронте

18 Jan, 06:20


Редизайн ВК, это, конечно, кек

Знаете, например, куда они спрятали число просмотров и автора поста?

Правильно, под дату публикации, куда же ещё. Во-первых, это логично, именно там автора и просмотры и ожидаешь увидеть, во-вторых, кому вообще интересны число просмотров и автор поста?

Места для слова «день» на экране не нашлось. Поместилось только «д». Места для хотя бы минимального отступа перед «Показать ещё» тоже найти не удалось

Редакция канала вернётся с новыми наблюдениями про дизайн #ВК

Джун на фронте

17 Jan, 17:18


Сегодня обсуждали развитие проекта. Один из пунктов касался мимикрии аутентификации, чтобы показывать разные уровни данных в UI в зависимости от условий окружающей среды (например, на таможне 👮‍♂️).

🤓 Сейчас мы используем адрес кошелька для проверки условий доступа, где контракт проверяет отправителя (msg.sender в Solidity).

Если адрес совпадает с владельцем канала, то публикация постов разрешена или мы можем получить список каналов которые привязаны к этому адресу.

😎 Есть другой способ. При подключении кошелька можно подписывать приветственное сообщение приватным ключом через MetaMask. Это подтверждает, что адрес действительно ваш.

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

Контракт через функцию Solidity ecrecover восстанавливает адрес владельца из подписи. Если всё совпадает, доступ будет разрешён.

📞 И тут меня заинтересовало: если подключение кошелька можно считать аутентификацией, какие ещё способы проверки авторизации существуют в Web3-парадигме? Вот что я нашел:

1️⃣ Подпись через криптокошелёк.
Самый популярный способ входа в Web3-приложения. Пользователь заходит на сайт (например, OpenSea), подключает MetaMask и подписывает сообщение.

Технически сайт генерирует уникальное сообщение с меткой времени и доменом, MetaMask подписывает его приватным ключом, а сервис проверяет подпись и создаёт сессию.

2️⃣ Decentralized Identifiers.
DID — цифровой паспорт. Например система China RealDID, которая позволяет путешествовать по Китаю без физических документов.

Процесс включает создание DID через MetaMask, верификацию личности госулугами, привязку данных к DID и использование через подпись в MetaMask с проверкой смарт-контрактом.

3️⃣ Soulbound Tokens.
SBT — токены-достижения, которые нельзя передать. Например, разработчик может получить токен «Verified Developer» после обучения, который служит подтверждением квалификации без резюме.

Реализуется через смарт-контракт ERC-5192, который запрещает передачу токена и проверяет владение на адресе кошелька.

4️⃣ Zero-Knowledge Proofs.
ZKP — доказательства с нулевым разглашением. Пример: участие в приватной NFT-продаже, где пользователь доказывает наличие токенов на сумму больше $10,000, не показывая точный баланс.

Реализуется через ZK-библиотеки (SnarkJS), включая создание доказательства на клиенте, подпись в MetaMask и верификацию смарт-контрактом.

5️⃣ Verifiable Credentials.
VC — цифровые документы. Пример: при устройстве на работу кандидат предъявляет VC от предыдущих работодателей (Сбер, Яндекс и др.), где подтвержден его опыт работы.

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

Технически это работает так: каждый работодатель выпускает VC в виде токена (ERC-4973) со своей цифровой подписью. Кандидат хранит эти VC в своем кошельке и при собеседовании подтверждает владение через MetaMask.

Смарт-контракт проверяет подписи компаний-работодателей, гарантируя подлинность опыта работы без раскрытия лишней информации

🔒 Каждый метод обеспечивает безопасность, приватность и контроль данных пользователем!

📊 #статистика День 1143 == 2405 час в IT

Джун на фронте

16 Jan, 14:47


Сначала я воспринял этот материал критически. Даже хотел написать комментарий в духе: "Что вы ожидали от корпорации? Приватности и анонимности?" 🤷‍♀️

Но потом вспомнил, как в 2018 году сам верил словам успешного предпринимателя. Он ловко смог продать идею «анонимности» наркошопам, скамерам, террористам и оппозиции.

Первая часть статьи больше техническая. Зато потом раскрывается очень въедливый уровень аналитики с пруфами.

🕵️‍♂️ Автор пытается деанонить ОПГ @roxman-а — якобы разработчика (и по совместительству друга Дурова или его альтер-эго), который отвечает за 80% хайповых Telegram WebApps на TON.

Что радует, к самому блокчейну вопросов почти нет. Единственные исключение — его валидаторы (так ли децентрализованы?) и то, что сеть можно отключить перегрузкой…

Забавно, что Николай Дуров, автор whitepaper проекта The Open Network (TON) и, по сути, «Стив Возняк» Павла Дурова, всё ещё спокойно живёт в Санкт-Петербурге. А в это время Павла пытаются заставить выдать ключи от квартиры? шифрования в «свободной Европе» 🔐

Именно поэтому мне нравится участие в нашем проекте с Zero Trust Architecture. Если Бог даст, то на неделе сделаю разбор протоколов шифрования: MTProto (Telegram), Signal (WhatsApp) и их WEB3 аналогов.

📊 #статистика День 1142 == 2396 час в IT

Джун на фронте

14 Jan, 10:54


Сижу с ГПТ и Telegram API, анализом данных занимаюсь

Кажется, «Грокаем алгоритмы» все-таки не зря смотрит на меня с полки 📖

Джун на фронте

14 Jan, 06:01


💡 Разница между GPU и CPU на примере пейнтбольных выстрелов

#познавательноеIT

В 2008 году команда "Разрушители мифов" провела интересный эксперимент. Они использовали пейнтбольные пистолеты, чтобы показать разницу между процессором (CPU) и графическим процессором (GPU).

CPU был представлен одним пистолетом, рисующим смайлик шаг за шагом. В то время как GPU был представлен целым кластером из 1100 пистолетов, которые смогли нарисовать картину Моны Лизы всего за 80 миллисекунд. Этот эксперимент демонстрирует, что GPU благодаря своей параллельной обработке данных лучше всего подходит для работы с графикой и сложными вычислениями, в то время как CPU лучше справляется с последовательными задачами☕️

Джун на фронте

13 Jan, 13:10


Product Owner (PO) vs бизнес-аналитик (BA) и Scrum Master (SM). Рабочий дневник: День 123

Зачем вообще я начал этот опрос? В нашу команду добавили Product Owner-а и тестировщика для мобильных приложений.

Теперь мы решаем, когда будем проводить дейлики. Мне удобнее днём, под пельмешки, но, кажется, всё идёт к вечеру…

🚘 Итак, у нас в команде уже три менеджера, а общее число участников выросло до 11 человек!

Честно говоря, я не совсем понимаю задачи PO. Однако он уверенно залетел на дейлик с вопросами про бэклоги какие-то и горизонты планирования.

Как я вижу работу PO в нашем проекте

1. Стейкхолдеры (бизнес) замечают, что лайки могут повысить вовлечённость пользователей.

2. PO формулирует бэклог в виде user story: «Хочу добавить возможность ставить лайки постам, чтобы пользователи чаще взаимодействовали с контентом».

3. BA прорабатывает детали:
— Обсуждает поведение кнопок с фронтом и бэком.
— Описывает API (POST /likes, GET /likes/{post_id}).
— Создаёт мокапы и схему взаимодействия.

4. SM организует планирование:
— Помогает команде оценить задачу (story points).
— Устраняет блокеры, например, если API ещё не готово, то он согласовывает сроки с бэкенд-ом.
— SM контролирует временные рамки (timeboxing) и следит, чтобы спринты завершались вовремя.

5. Начало разработки:
— Фронт читает документацию от BA (Acceptance Criteria).
— Добавляет кнопку лайка в UI.
— Настраивает логику взаимодействия с API.
— Проводит ручное и unit-тестирование…?

6. Демо:
— Команда показывает результат PO.
— PO собирает обратную связь от бизнеса
— Если нужны доработки (например, «Добавить всплывающее уведомление при лайке»), BA и команда возвращаются к обсуждению

Вот такая бюрократия. На самом деле, интересно наблюдать, как формируется кросс-функциональная команда с самого нуля.

🤪 Хотя, согласно исследованиям, в 75% случаев такие команды оказываются неэффективными.

Надеюсь, что мы попадём в оставшиеся 25%, хочу себе такой проект в портфолио добавить.

📊 #статистика День 1139 == 2372 час в IT

Джун на фронте

12 Jan, 11:57


Куда вложить?

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

Самое рискованное вложение - свой бизнес. Самое безрисковое вложение (пусть не денег, но времени и жизни) - наемная работа.

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

Но вот что любопытно. По этой логике, если ты наемный работник, то все что ты смог отложить/скопить надо вкладывать в высоко-рискованные активы: акции роста, немного крипты, даже венчур (хотя это я не советую). Потому что ты уже сделал самую большую ставку на минимальный риск - наемная работа.

Но это же опасно? Да, согласен. Так можно потерять всю т.н. «подушку безопасности». Но кроме денег можно же вложить и время! Если ты наемный работник, то все свободное время надо вкладывать в попытки делать свой бизнес. Если 168 своих часов в мес мы работаем на наемной работе, то часов 80 надо тратить на предпринимательство. Ну или покупать чужие акции на все сбережения.

Джун на фронте

12 Jan, 06:23


🤖 ИИ агент + Web3 — новая meta 2025 года. Чать 1.

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

Что такое ИИ агент?
По сути, ИИ-агент — это интерфейс для работы с языковой моделью (LLM), такой как ChatGPT или Llama, адаптированный под конкретную задачу. Его “обертка” включает:
- Контекст: Задача и "роль" агента (например, доктор, юрист, ассистент).
- Память: История предыдущих сообщений для поддержания последовательного диалога.
- Инструменты взаимодействия с внешним миром: специальные “программы” для интеграций за пределами внутреннего контекста.

📝 Давайте разберем, как сделать в ручную простую имитацию ИИ агента на основе LLM.
Представим, что вы используете ChatGPT:
1. Создаете новый чат, в котором задаете вопросы, а модель отвечает в текстовом формате.
2. Каждый открытый чат — это пространство памяти: все, что вы пишете, остается в контексте для последующих ответов.
3. Придумываете контекст бота. Например: “Ты — доктор, твоя задача — ставить диагнозы. Уточняй анамнез, помогай пользователю решать проблемы, а если разговор уходит в сторону, возвращайся к теме заболеваний.”. Таким образом вы даете понять, какие задачи должен выполнять агент.
4. Когда пользователь отправляет запрос, агент комбинирует свой контекст с этим запросом и передает его LLM для генерации ответа. Пример "Представь, что ты + контекст. Твоя задача ответить на запрос пользователя: + запрос пользователя"
5. В результате чат отвечает исключительно как “доктор”, решая узконаправленную задачу.

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

🔗 Благодаря Web3 ИИ-агент может участвовать в экономической деятельности без традиционной банковской инфраструктуры и KYC. Создав себе кошелек в блокчейне, ИИ-агент получает новые возможности:
- Отправлять и получать криптовалюту.
- Взаимодействовать с децентрализованными приложениями (dApps).
- Выполнять транзакции напрямую через смарт-контракты.
- Платить токенами за услуги другим ИИ-агентам или людям.
- ЗАРАБАТЫВАТЬ деньги в токенах.

👉 Как же ИИ-агент может создать свой кошелек? Для этого ему необходимы специальные инструменты — интеграции с блокчейном. О том, как это делается на практике, я расскажу в следующем посте. (Пост итак получился огромным)
👉 Если тема интересна, ставьте 👍 и ждите продолжения!

Джун на фронте

11 Jan, 15:04


Таблица с актуальным спросом/конкуренцией на вакансии. Из интересного, на ангуляр сейчас легче всего попасть. Так что никакие реакты и вью, только хардкор 😈

P.S. С пхп тоже всё отлично

https://docs.google.com/spreadsheets/d/1bn_z93TaaFsahU1DbL6tsvUTZ8HfCYCRwb_59t69NpQ/edit?usp=sharing

Джун на фронте

10 Jan, 15:28


Лучше всего способствует развитию софтскилс — отсутствие хардскилс. Пока умный делает руками, тупой делегирует и становится эффективным менеджером. Пока инженеру интересно разбираться в параллельном и асинхронном программировании, ему некогда деньги зарабатывать. Вы, наверное, замечали что CTO часто не вникают в суть проблемы, а CEO даже не вполне понимают, чем компания занимается. Почему же ты не CTO и не CEO? Правильно, ты занят понижением зацепления между модулями и проектированием универсальных абстракций. Книжки с кабанчиками и галактиками отвлекает тебя от книжек с голубыми океанами и скомканными бумажками. Запомни — деньги платят не за работу и за экспертизу, а за разговоры и внимание, люди хотят просто поговорить.

Джун на фронте

09 Jan, 13:48


Аудит прогресса

При ревизии «входа в IT» обнаружил погрешность в 46 дней. Видимо, где-то допустил ошибку в расчетах. Часы в целом сходятся.

Как говорит моя жена, во всем виноват СДВГ (она у меня психиатр и судмедэксперт, верить можно). Потому я такой невнимательный.

Так что держу ориентир на 1 декабря 2021 года, когда впервые начал кодить на HTML. Работу работаю с 15 июля 2024 года, что ≈ 121 рабочий день на 9 января 2025 года.

Проекты (MVP)

  Iskra — Основной проект на работе. Это веб-интерфейс на Vue 3 для взаимодействия со смарт-контрактами в блокчейне Ethereum.

Позволяет создавать каналы в цепочке и публиковать в них посты по аналогии с Twitter или Telegram.

💼  job-tapper — Изначально был ботом для автооткликов на hh.ru и career.habr. С его помощью я нашел работу, так как рассылать более 2000 откликов вручную оказалось слишком утомительно. Сейчас он потерял актуальность, ведь на hh появилась функция автооткликов 👏

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

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

Забавный проект, который решил мою проблему и прокачал навыки общения с сервером.

🛒  gift-shop — Создан для хакатона. Это TMA (Telegram mini apps) с оплатой через Crypto Pay API. Оказалось, что его используют другие разработчики, как фундамент для своих шопов.

Мне даже поступил заказ на доработку. Просят добавить аукционы, админку и диспуты для товаров. Но я хз как оценить его по деньгам и срокам.

Исходный функционал оценивают в $650 и две недели вечеров без тестов тк с тестированием я знаком слабо.

📇  pervonah — Проект также оказался чуточку виральным. Он мониторит каналы и оставляет комментарии под постами.

Часто пишут юные «трафик-мейкеры», просят добавить прокси для обхода блокировок и другие фичи. Говорят, что это лучшее решение в паблике, а приватные аналоги стоят дорого.

📆  dtf-scheduler — Инструмент для отложенной публикации постов на DTF.ru. На удивление, такого функционала на сайте нет.

Мне удалось решить эту задачу для себя. Однако основная цель была не в создании инструмента, а в изучении парсинга сайтов с Puppeteer.

Инструмент работает, но, скорее всего, я не буду его поддерживать. Причина проста: DTF не принес нужных охватов для моего Telegram-канала.

📱: SLOC подсчитаны с помощью NPM-пакета cloc. Он устанавливается глобально и одной командой выдает количество строк кода в директории. Показывает даже комментарии и пустые строки в файлах.

📊 #статистика День 1135 == 2378 час в IT

Джун на фронте 🍺

28 Dec, 11:37


Рабочий дневник: День 121
Добавил снежинки на сайт

❄️Сегодня последний рабочий день этого года — самое время добавить снежинки на Staging (тестовая среда перед продакшеном).

Сделал это за 10 минут с помощью magic-snowflakes. Этот пакет позволяет настраивать цвет, скорость, количество, ветер, наклон и размер снежинок.

Не хватает только поддержки WASM, рендеринга на видеокарте через WebGL и трассировки лучей для каждой снежинки.

Финальное демо

Вчера прошло финальное демо. Каждая команда получила по 5 минут, чтобы показать, то что сделала за последние две недели.

Наш основной акцент был на корреспонденции. Как я понял, это включает любой обмен данными. Поэтому демо чата на XMTP и хостинга в IPFS прошли на ура. Правда, код они ещё не видели 😫

Итоги стажировки

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

Ну а после финальных правок и согласований функционал проекта заморозят. Затем начнётся этап выката кода в Prod и постепенный набор пользовательской базы…😱

Так что оставайтесь на связи 🤩
Следующий год будет насыщен запусками интересных продуктов и внезапными решениями!

📊 #статистика День 1121 == 2370 час в IT

Джун на фронте 🍺

25 Dec, 13:18


Рабочий дневник: День 118
Храним данные без БД и сервера

Слово «без сервера» звучит громко, но суть в другом. Мы продолжаем придерживаться распределённой парадигмы Web3-технологий, где каждый владеет своими данными.

👥 Крч, мы решили прикреплять картинки к постам. Но где их хранить, если базы данных нет, а блокчейн — слишком дорогое решение?

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

📊 Например, я загрузил аватарку канала в IPFS с помощью NPM пакета helia, через провайдера Pinata. В ответ получил уникальную ссылку на изображение вида:

bafkreiepl2ilkkah77ehi74pzj3v4zojjyf6uhequ7mrv7bfwclzrpevum

Этот CID (Content Identifier) создаётся с помощью алгоритма хэширования SHA-256. Хэш зависит только от содержимого файла, а не от того, кто и где его загрузил.

Интересный момент: если загрузить тот же файл снова, IPFS не создаст дубликат. Система просто вернёт уже существующий хэш.

🌐 Для доступа к файлам используются HTTPS-шлюзы. Вот несколько популярных вариантов:

— https://ipfs.io/ipfs/{HASH}
— https://ipfs.fleek.co/ipfs/{HASH}
— https://gateway.pinata.cloud/ipfs/{HASH}
— https://dweb.link/ipfs/{HASH}

Важный нюанс!

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

Пиннинг (Pinning) — это процесс закрепления данных на IPFS-ноде. Он гарантирует, что файлы останутся доступными и не будут удалены.

Как запинить файлы?

1. Pinata.cloud предоставляет бесплатно 1 ГБ для хранения файлов на своих нодах.

2. Можно поднять свою ноду IPFS на сервере.

3. Другие пользователи могут запинить ваши файлы на свои серверы или использовать другие провайдеры.

Этакий распределённый бэкап данных. Таким образом, IPFS позволяет хранить изображения надёжно, распределённо и без необходимости содержать централизованную базу данных.

📊 #статистика День 1118 == 2354 час в IT

Джун на фронте 🍺

24 Dec, 12:40


Рабочий дневник: День 117
Делаем чат без WebSocket

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

Мы подумали: сейчас прикрутим end-to-end — и готово. Но вот проблема: все сообщения нашего «мессенджера» будут платными, ведь каждое из них меняет состояние блокчейна.

Как решить эту проблему?

Оказалось, всё проще, чем кажется! Умные ребята из Ephemera Labs взяли старый добрый Jabber – протокол обмена сообщениями XMPP и создали на его основе XMTP с кучей SDK для разных платформ. В том числе для браузера!

XMTP использует приватные ключи Ethereum-кошельков (например, MetaMask) для аутентификации и подписи сообщений.

🔸Сообщения шифруются end-to-end приватными ключами отправителя и получателя. Только участники переписки могут расшифровать и прочитать сообщения.

🔸Узлы XMTP хранят зашифрованные сообщения временно и не имеют доступа к их содержимому.

🔸Это абсолютно бесплатно! Достаточно подключить кошелёк к сети — и вы уже участник глобального чата.

Чем это лучше серверного решения?

Центрального сервера просто нет, а значит нет расходов на его поддержку. Так же возможность запустить собственную ноду защищает от изъятия и компрометации других узлов сети XMTP.

В этом React-примере вы можете сгенерировать кошелёк прямо в браузере, без всяких Chrome Extension и сразу же отправлять анонимные сообщения.

Будущее за P2P-коммуникациями, пусть и не чистыми 😭

📊 #статистика День 1117 == 2346 час в IT

Джун на фронте 🍺

23 Dec, 20:03


ChatGPT — 3.7 млрд посещений в месяц.

Для сравнения, на Земле сейчас около 8.1 млрд человек. То есть каждый второй мог бы зайти хотя бы раз в месяц.

Ближайший конкурент — Claude.ai — еле дотягивает до 84 млн.

Джун на фронте 🍺

22 Dec, 17:18


ZED AI vs Cursor

Сегодня целый день рефакторил проект в ZED AI. Скорость отклика зашкаливает. Еще бы, он написан на Rust, в отличие от VS Code Cursor, который использует JavaScript и Electron. Хотя это не единственный плюс.

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

😎 У ZED напротив, векторная индексация кода на порядок лучше. Он стабильно выдаёт точные результаты, хотя его окно ограничено выбранной моделью (около 200к токенов). Ну а управление контекстом просто мечта.

Для работы достаточно вставить API-ключ любой LLM или юзать фри тариф на $10 от их коллаборации с Claude, который обновляется ежемесячно.

😵 Но, к сожалению, сама экосистема редактора оставляет желать лучшего. Даже кастомных иконок для файлов нет.

Про работу с Git я лучше промолчу. Говорят, команда сосредоточена на интеграции AI, а не на улучшении базового функционала редактора.

В целом, впечатления смешанные: мощная интеграция AI и отличная скорость, но слабый пользовательский опыт.

📊 #статистика День 1115 == 2330 час в IT

Джун на фронте 🍺

22 Dec, 14:04


Какое же говнище эта Sora.
Выглядит, как Midjourney v3 в своё время.

Контент на YouTube снова откладывается на неопределённый срок 😔

Джун на фронте 🍺

22 Dec, 09:35


...и на 13й день сказал Sama: да пусть каждый подписчик ChatGPT, даже за $20, получит возможность генерировать видео (в приоритетной очереди) в Sora без ограничений

да начнётся креатив 💫

Джун на фронте 🍺

21 Dec, 06:37


Почему React — это один большой костыль, а Svelte и Vue с Vapor — молодцы?
___

Джун на фронте 🍺

20 Dec, 07:02


А ещё говорят: «Убирайте свои шейдеры нахрен, делайте возможность добавления любого медиаресурса с ПК юзера с загрузкой в IPFS...»

Сразу бы так. Сколько же я с этими шейдерами попоболи испытал, но зато научился работе с Canvas и чуть-чуть Three.js.

Вообще, говорят, изменения в проекте — это нормально. Код — это текст, а проект — как книга.

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

📊 #статистика День 1113 == 2325 час в IT

Джун на фронте 🍺

19 Dec, 16:41


Ваш этот код никому не нужен

Джун на фронте 🍺

19 Dec, 12:32


Уважаемые знатоки! Внимание, вопрос! 

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

Это как?

Джун на фронте 🍺

19 Dec, 07:31


Пополнение библиотеки

Сто лет не покупал книги. Последней была «Грокаем алгоритмы». И даже её я так и не прочитал за два года, осилил только первую главу…

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

Крч, на работе была акция: можно заказать книг на Озоне на 5 тысяч. Что я в итоге выбрал?

1️⃣ FIGMA. Проектирование и прототипирование интерфейсов в UX/UI

Любовь с первого взгляда! Актуальная информация 2024 года и единственный вариант на русском языке.

Название говорит само за себя. Оформление шикарное. Посмотрим, как там с содержанием

2️⃣ DeFi и будущее финансов.

Некоторая база для понимания финансовой стороны WEB3.

Примеры стратегий DeFi: например, купить DAI, положить в пул Curve, получить LP Curve и закредитовать их в MakerDAO, чтобы купить ещё DAI.

Все с графиками и процентами.

3️⃣ Создание микрофронтендов.

Она попала в заказ бонусом. Обязаловка для всех фронтов.

Не особо люблю читать технические книги на бумаге. Но автор, судя по первому впечатлению, доступно объясняет, как перейти от монолита к микросервисам и микрофронтендам.

4️⃣ Death Stranding. Философия гениальной игры.

Не фанат Кодзимы, но то, что он гений — факт.

Представьте, автор написал книгу о создании игры. От первого твита Кодзимы до релиза, включая его переживания и мысли. Хочется изучить этот опыт.

5️⃣ Пользовательские истории. Искусство гибкой разработки ПО.

Не понял, как эта книга попала в заказ. Хотел что-то про Scrum и Agile, но пришло это. Наверное линк перепутал.

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

6️⃣ Кровь, пот и пиксели. Обратная сторона индустрии видеоигр.

Истории, похожие на книгу про Кодзиму, но с опытом разных разработчиков.

Видел её давно в обзоре у какого-то геймдева. Сказали, что это маст-хэв. Посмотрим, чем она поможет на фронте.

Теперь нужно решить, с чего начать. Стоит выбор между микрофронтендами или чем-то полегче, например, Кодзимой.

📊 #статистика День 1112 == 2320 час в IT