Код без тайн
408 subscribers
48 photos
22 videos
1 file
106 links
Пишу о веб-разработке, информатике и технологиях, которые меня вдохновляют

Связаться со мной: @MajorLettuce
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Наступил октябрь, один из моих самых любимых месяцев в году

А ещё это значит, что начался очередной Hacktoberfest — мероприятие, которое проводит хостинг-провайдер DigitalOcean аж с 2013 года

Идея простая — это праздник open-source, который нацелен на то, чтобы познакомить с миром открытых проектов не только программистов, но любого желающего помочь своему любимому проекту с открытым исходным кодом

Суть в том, что за октябрь нужно сделать несколько pull request-ов в публичные репозитории на GitHub

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

А ещё самые активные участники могут получить мерч, у меня даже получилось один раз в 2021 году. Именно таким образом в моем арсенале появилась синяя акула Sammy — их маскот
1🔥2😁1
На днях OpenAI анонсировала Agent Builder — платформу для создания агентов искусственного интеллекта прямо в их экосистеме

Они также выпустили Sora 2 и интеграцию со сторонними приложениями вроде Figma и Canva, но об этом и так уже написали все кому не лень, а я, как вы знаете, не гонюсь за громкими заголовками

Но на Agent Builder стоит приостановиться, потому что это может стать началом новой парадигмы

Дело в том, что из-за того, что OpenAI — лидер в сфере ИИ, то у них большое влияние на то, как формируется инструментарий вокруг этой новой технологии

Например, сейчас многие используют формат API, который придумала OpenAI — это обеспечивает легкость интеграции и взаимозаменяемость

Agent Builder может сыграть такую же роль: другие игроки на рынке могут начать заимствовать инструменты, которые OpenAI придумала для создания агентов

Возможно, платформы наподобие n8n и make впоследствии позаимствуют часть функционала и он также станет взаимозаменяемым

Сейчас такие платформы все же довольно «старомодные»
1👀1
Обещал писать больше про бизнес, так что сегодня расскажу про успехи с 🟠 Multify (trymultify.com)

Я запустил проект в начале лета в очень базовом варианте, буквально MVP:

— перевод текста на статических страницах
— конвертация валют
— отправка форм

Опубликовал простой лендинг и стал смотреть, начнут ли приходить заявки или нет

А они взяли и начали приходить 🧐

Благодаря этому я смог найти product-market fit перед тем как делать новые фичи: заявки приходили и от владельцев одностраничных сайтов и интернет-магазинов

Важно то, что у меня появились реальные данные о потребностях потенциальных клиентов

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

Именно так в 🟠 Multify появилась новые функции:

— поддержка попапов с динамическим контентом
— перевод характеристик и атрибутов товаров
🔥 валидация цен в валюте во время оформления заказа

Скоро можно делать панель управления 🚀
1🔥5🆒2
Про какой аспект работы над Multify вам интереснее всего узнать?
Final Results
57%
Про техническую реализацию
50%
Про маркетинг
21%
Про продажи
🗿1
Что под капотом у Multify?

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

Так вот, в основе проекта лежит AdonisJS, я уже упоминал про него ранее. По факту это фреймворк, который идейно пытается воссоздать Laravel в мире TypeScript

А какая идея у Laravel? Минимум усилий при максимальном результате: в нем из коробки идет обработчик очередей, ORM, инструменты для создания шаблонов и отправки писем, шаблонизатор для страниц, аутентификация и авторизация, шина для отправки событий внутри приложения...

Это примерно 10% того, что есть в Laravel из коробки

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

Вообще, работая более плотно с TypeScript и экосистемой NodeJS я заметил, что в ней считается нормальным переизобретать велосипед: там есть как минимум 7 разных библиотек для логирования, 5 библиотек для работы с базой данных, 8 обработчиков очередей и так далее...

Именно поэтому, честно говоря, мне всегда было трудно понять то, как можно войти новичку в сферу веб-разработки на NodeJS, когда помимо навыков непосредственно самой разработки и программирования, ему нужно буквально ознакомится со всем зоопарком различных библиотек и фреймворков

* * *

Возвращаясь к Multify, AdonisJS позволил очень сильно ускорить процесс разработки по факту благодаря трем вещам:

1. Сервис-контейнеру — мне не нужно думать, куда и в каком виде раскладывать бизнес-логику. Авторы фреймворка решили это за меня

2. Обработчику веб-запросов — и хотя Multify является универсальным реверс-прокси (по сути, в приложении буквально задан один маршрут: router.any('*', handle)), но внутри нужно обрабатывать входящие запросы и формировать исходящие: заголовки, парсинг тела запроса, параметры запроса. Для всего этого есть удобные утилиты из коробки

3. Очень крутой multi-tier кеш Bentocache, с помощью которого Multify может отвечать практически молниеносно. Multi-tier означает то, что кеш сначала пытается прочитать из локальной памяти, а если не получается, то уже идет в хранилище. Которое, кстати, можно подключить с помощью разных драйверов: в виде файлов, redis или базы данных
1👍3
Вайбкодируй, да тестировать не забывай

С ростом 🟠 Multify проект также постепенно обрастает новым функционалом, а вместе с ним появляются и новые краевые случаи (edge cases), которые становится все сложнее учитывать

В таком случае как нельзя кстати на помощь приходит автоматизированное тестирование

Конечно, это не полноценный Test Driven Development, однако имея готовую структуру проекта и фреймворк *кхм* Adonis, в котором тесты идут из коробки, я могу попросить написать тестовые кейсы за меня

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

В частности, особенно вайбкодерам на заметку:

Если вы чувствуете, что ваш проект «расплывается», что при изменении одной части проекта ломается другая, посмотрите в сторону автоматических тестов

В Multify я наткнулся на такой момент в части проекта, отвечающей за замену URL на странице

Как можно увидеть на скрине выше, не все так просто 🤔
14
🎃 Хеллоуинская история о воскрешении мертвых (данных)

Ночь с 31 октября на 1 ноября. Все нормальные люди смотрят хорроры или идут на вечеринки. А я? Я занимаюсь настоящим некромантством — восстанавливаю метрики Prometheus

Я веду учет количества токенов, сетевых запросов и заявок в тильду по каждому проекту и недавно я начал замечать, что каким-то мистическим образом старые метрики Multify стали исчезать, хотя у меня и настроен режим сохранения на диск

⚡️ И вот, почему-то именно в эту ночь, меня, как Франкенштейна, молнией озарило:

А что если у Prometheus установлено ограничение на срок хранения? ...

Так и оказалось!

По-умолчанию --storage.tsdb.retention.time равен 15 дней

И вот я пошел, откопал запылившийся бэкап сервера, чтобы вытащить из него старые данные...

Однако, оказалось это не так-то просто:

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

На помощь пришла загрузка в rescue mode, т.н. «режиме спасения» сервера — это когда сервер загружается с отдельного образа, а зайдя в него можно смонтировать диски вручную

Я буквально лезу в файловую систему как археолог в древнюю гробницу: ищу данные Prometheus, копирую их и переношу на живой сервер

И вот, момент истины... я запускаю docker compose start prometheus и вижу...
🎃3
Вот мои данные, воскресшие из мертвых! 👻
😁1
Так, а ну признавайтесь, у кого-то был сегодня странный сон?

Я вот, например, во сне защищал диссертацию, но не по презентации, быстро, за 20 минут, а допечатывал на ходу полностью работу из 100+ страниц по очереди в разных принтерах, потому что в них заканчивалась бумага

Одновременно с этим я кое-как на ходу импровизировал и рассказывал в формате «так, эээм, ну здесь в общем это работает вот так, а вот это нужно для того-то…» и по ощущениям длилось вечность 😆

Спрашиваю, потому что это не первый случай, про который слышу сегодня. Вдруг и правда суперлуние влияет 🌝
👍5
В продолжение темы про Луну

А вы задумывались, что если вы были бы на луне, то могли бы увидеть «полную Землю» точно также, как мы видим «полную Луну» с Земли?

Ведь очевидно, что на Луне не видно Луну, однако видно Землю

Майкл (Vsauce) как раз выложил короткое видео, где рассказывает об этом и оказывается, что Земля освещает в 37 раз сильнее Луны. Оно и понятно, ведь на Земле есть пустыни и горы с ледниками, а Луна, вообще-то, на самом деле темно-серая, так как покрыта реголитом 🤔
👍2
Media is too big
VIEW IN TELEGRAM
Сегодня пятница

По этому поводу вот вам лучшее ИИ видео, которое я встречал за последнее (довольно долгое) время
1🔥6😁4
Настал декабрь — пора Адвент календарей. Это такая штука, когда каждый каждый день до какой-то даты (например, Нового Года) открывается новое «окошко» с подарком или выполняется одно задание

Например, художники и иллюстраторы — рисуют что-то небольшое, но каждый день; писатели и копирайтеры — пишут; веб-разработчики — устанавливают очередной npm пакет

Вот и Google решил на фоне волны хайпа вокруг ИИ-агентов устроить свой адвент календарь по разработке агентов на базе их большой языковой модели Gemini

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

И вот как раз вчера наткнулся на серию видео — Адвент календарь оптимизаций компиляторов 🙃

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

Заехали мы в Ленту и увидели там акцию «исполни мечту ребенка на Новый год». Программа, помогающая детям сиротам.

Мы взяли три открытки и я чуть не расплакалась: все дети просят предметы базовой необходимости (шампуни и полотенца).


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

Готова все это организовать, договориться с фондом/детским домом и отвезти подарки.

Если вам откликается идея, отпишитесь пожалуйста в комментариях, скоординирую нас всех.

В конце следующей недели закончу организацию и как раз к Новому Году отвезем подарки.
👀2
Ульяна Майорова: полезное для предпринимателей
Внезапный пост в субботу вечером, который я очень прошу репостнуть. Заехали мы в Ленту и увидели там акцию «исполни мечту ребенка на Новый год». Программа, помогающая детям сиротам. Мы взяли три открытки и я чуть не расплакалась: все дети просят предметы…
Я взял за традицию каждый год пересматривать A Christmas Carol, чтобы напоминать себе о том, чтобы не стать таким же, как Скрудж в начале фильма 👀

В этом году посмотрел адаптацию 1984 года с Джорджем К. Скоттом в роли Скруджа. На мой взгляд это один из самых аутентичных, по-истинне английских фильмов

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

Особенно учитывая, что Multify медленно, но верно растет и я надеюсь только продолжит в новом году 🚀
🔥21
Claude Code превратился в снежинку ❄️
Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

... или рождественский фильм?


Решил я тут посмотреть фильм на Рождество, но есть нюанс — у него нет субтитров на русском. Ну вот не сложилось с этим

Ищу их на opensubtitles.com: английские, китайские и даже бразильские — есть, а русских нет. А мне нужны именно они

Open Subtitles ещё предложил автоматически перевести существующие английские. Я попробовал и получил на выходе все те же субтитры на английском 🎅 бета-версия как-никак

На следующий день меня осенило: а что если создать страницу на сайте, вставить туда содержимое *.srt файла и пропустить это через Multify 🤣

Забавно, но это сработало практически идеально — система разбила текст на несколько частей и перевела с сохранением таймингов... за исключением места с криком "Aaaaah!"

Под капотом я использую Gemini 2.5 Flash и это второй раз, когда модель пошла в "разнос" из-за повторяющегося текста. Вообще, Gemini уже прославилась своей ранимостью. Может быть, пора переходить на Gemini 3 🤔
🔥4😁1
Код без тайн
Про какой аспект работы над Multify вам интереснее всего узнать?
Ранее (два с половиной месяца назад 🙄) я делал опрос и второй вариант по количеству голосов был "рассказать про маркетинг". И хотя в этом году я не успел рассказать подробно о том, как я делаю маркетинг для Multify, но эта картинка довольно хорошо и коротко описывает основные шаги

Ну а в новом году постараюсь исправится и больше рассказывать про бизнес сторону проекта

Основная причина, по которой я не делаю это сейчас простая: я активно занимаюсь технической частью и у меня явно не получается совмещать бизнесовую и техническую сторону проекта вместе

В один момент получается делать только что-то одно, ну и, очевидно, сейчас в приоритете сделать так, чтобы сервис работал стабильно и уже подключенные пользователи не испытывали проблем 😎
1🔥21
И кстати! С наступающими вас праздниками! 🎄

Уверен, многие из вас в этом году значительно выросли как минимум личностно, скорее всего и профессионально, а у некоторых из вас даже свои проекты отлично выстрелили

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

За годы, единственная истина, которую я нашел — это то, что можно делать очень маленькие и медленные шаги, но если их делать постоянно и оно резонирует с вами, то со временем, благодаря инерции, успех неизбежен 🎉
3❤‍🔥3
Конец прошлого года прошел для меня в атмосфере чего-то нового и ещё неизведанного, на грани современной науки и того, что сейчас находится за пределами нашего понимания

А если конкретно, то меня довольно сильно вдохновила лекция Майкла Левина, который в подкасте у Лекса рассказывал про свои опыты

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

Больше всего мне понравилась идея о том, что любые сущности являются проявлением чего-то большего. Он называет это проекцией «платонического пространства»

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

В одном посте сложно рассказать обо всей ширине его идей, поэтому лучше просто послушать разговор
🔥21