Почему я приостановил работу над Neira?
Спойлер: сейчас проект в замороженном состоянии
Я же обещал делиться и провалами 😎
Долгое время я делал ради того, чтобы делать. Приходила идея — сразу садился писать код
Но с опытом научился разделять цель и путь. Нейра была первой попыткой сначала определить цель, а потом делать
Какая цель? Дать пользу людям
Я попытался сделать все «по уму»: протестировать гипотезу, провести интервью, собрать обратную связь
Результат?
Спустя полгода лендинг показывает трафик хуже чем у сайтов 2-4 месячной давности
К тому же, видение проекта в ходе разработки размылось — его нужно пересобирать
Экономика проекта
В виде чата Нейра имеет смысл только при низком чеке и высоком трафике. Без органики продвигать можно только через рекламу — это дороже и сложнее
Нелогично делать этот проект, когда есть другие, на которые спрос подтвердился
Что дальше?
Такой вот опыт (эм... ну то есть провал 🤷♂️)
Кстати, отличный повод рассказать о других моих проектах, где уже есть результат 😉
Спойлер: сейчас проект в замороженном состоянии
Я же обещал делиться и провалами 😎
Долгое время я делал ради того, чтобы делать. Приходила идея — сразу садился писать код
Но с опытом научился разделять цель и путь. Нейра была первой попыткой сначала определить цель, а потом делать
Какая цель? Дать пользу людям
Я попытался сделать все «по уму»: протестировать гипотезу, провести интервью, собрать обратную связь
Результат?
Спустя полгода лендинг показывает трафик хуже чем у сайтов 2-4 месячной давности
К тому же, видение проекта в ходе разработки размылось — его нужно пересобирать
Экономика проекта
В виде чата Нейра имеет смысл только при низком чеке и высоком трафике. Без органики продвигать можно только через рекламу — это дороже и сложнее
Нелогично делать этот проект, когда есть другие, на которые спрос подтвердился
Что дальше?
Такой вот опыт (эм... ну то есть провал 🤷♂️)
Кстати, отличный повод рассказать о других моих проектах, где уже есть результат 😉
😢7❤4🔥1🙏1🤝1
YouTube
The Untold Story of Databases
🙏 Thank you to CodeRabbit for sponsoring this documentary
Use CodeRabbit FREE for open source → https://www.coderabbit.ai/
🚀 Code smarter. Ship faster. Sleep better.
CodeRabbit is your AI-powered code reviewer that:
– Understands your code
– Improves your…
Use CodeRabbit FREE for open source → https://www.coderabbit.ai/
🚀 Code smarter. Ship faster. Sleep better.
CodeRabbit is your AI-powered code reviewer that:
– Understands your code
– Improves your…
Смотрел я тут видео про историю баз данных
Там рассказывается про историю становления баз данных как отдельного вида софта, от перфокарт до Oracle
Также вскользь упоминаются ограничения реляционной модели (10:20), что навело меня на мысль
Ведь существуют разные виды баз данных:
Есть реляционные — это как такой очень сложный Excel, есть 📄 документные — можно свалить все в одну кучу не парясь о структуре, а есть 💠 графовые — их используют соц. сети
И тут у меня в голове что-то щелкнуло
Не могу удержаться — иду в ChatGPT:
Отвечает:
Дальше иду к Клоду:
И в этот момент внутри возникает чувство такое, как в детстве, когда появляется предвкушение перед тем как собираешься поиграешь с любимой игрушкой 🚐
Я уже не могу остановиться. Гуглю адаптер Neo4j для Laravel, затем ищу Node.js библиотеки для графовых БД, наконец, нахожу документацию Neo4j + JavaScript
Спрашиваю Клода:
Можно!
И вот я уже сижу с открытой документацией, хотя изначально просто смотрел видео про базы данных
Смотрел я тут видео про историю баз данных
Там рассказывается про историю становления баз данных как отдельного вида софта, от перфокарт до Oracle
Также вскользь упоминаются ограничения реляционной модели (10:20), что навело меня на мысль
Ведь существуют разные виды баз данных:
Есть реляционные — это как такой очень сложный Excel, есть 📄 документные — можно свалить все в одну кучу не парясь о структуре, а есть 💠 графовые — их используют соц. сети
И тут у меня в голове что-то щелкнуло
Не могу удержаться — иду в ChatGPT:
А какие есть графовые БД?
Отвечает:
Есть много разных, одна из популярных — Neo4j
Дальше иду к Клоду:
Расскажи, как работают графовые базы данных
И в этот момент внутри возникает чувство такое, как в детстве, когда появляется предвкушение перед тем как собираешься поиграешь с любимой игрушкой 🚐
Я уже не могу остановиться. Гуглю адаптер Neo4j для Laravel, затем ищу Node.js библиотеки для графовых БД, наконец, нахожу документацию Neo4j + JavaScript
Спрашиваю Клода:
А можно ли определить частично жесткую структуру в Neo4j?
Можно!
И вот я уже сижу с открытой документацией, хотя изначально просто смотрел видео про базы данных
🔥6❤2👍2
Код без тайн
Смотрел я тут видео про историю баз данных Там рассказывается про историю становления баз данных как отдельного вида софта, от перфокарт до Oracle Также вскользь упоминаются ограничения реляционной модели (10:20), что навело меня на мысль Ведь существуют…
В прошлом посте я упомянул, что пошел к Клоду после ChatGPT
Спустя долгое время раздумий я все-таки решил купить подписку и попробовать платную версию Claude — основного конкурента ChatGPT
К тому же, там как раз появился аналог Deep Research, поиск в интернете и самое крутое: Model Context Protocol (MCP)
А вы знали, что именно Anthropic (создатели Claude) придумали этот протокол? С его помощью языковая модель может подключатся к абсолютно любым сервисам(если они реализовали MCP сервер)
Да, в ChatGPT тоже недавно добавили MCP
Однако по стилю общения и взаимодействию Клод как языковая модель мне нравится больше. Она меньше похожа на глупого попугая, который повторяет «Да, конечно!» и «Совершенно верно, ты прав 😊»
Клод больше похож на умного, действительно мыслящего друга
А ещё мне нравится его дизайн: по сравнению с черно-белым, минималистичным и стерильным дизайном ChatGPT, дизайн Claude мягкий и дружелюбный
А гарнитура с засечками…!
Спустя долгое время раздумий я все-таки решил купить подписку и попробовать платную версию Claude — основного конкурента ChatGPT
К тому же, там как раз появился аналог Deep Research, поиск в интернете и самое крутое: Model Context Protocol (MCP)
А вы знали, что именно Anthropic (создатели Claude) придумали этот протокол? С его помощью языковая модель может подключатся к абсолютно любым сервисам
Да, в ChatGPT тоже недавно добавили MCP
Однако по стилю общения и взаимодействию Клод как языковая модель мне нравится больше. Она меньше похожа на глупого попугая, который повторяет «Да, конечно!» и «Совершенно верно, ты прав 😊»
Клод больше похож на умного, действительно мыслящего друга
А ещё мне нравится его дизайн: по сравнению с черно-белым, минималистичным и стерильным дизайном ChatGPT, дизайн Claude мягкий и дружелюбный
А гарнитура с засечками…!
Model Context Protocol
What is the Model Context Protocol (MCP)? - Model Context Protocol
👍4
Вспомнил о том что у меня есть Unsplash
Зашел в статистику — а мои фотки каждый месяц нет-нет, да кто-то и использует в каком-нибудь Trello и прочих Wix. Да, там оказывается есть такая статистика
А на картинках выше два фото: самое популярное и самое непопулярное (по количеству просмотров)
У одной из них — 28 тысяч просмотров, а у другой 400
Угадаете, какая популярнее?
Зашел в статистику — а мои фотки каждый месяц нет-нет, да кто-то и использует в каком-нибудь Trello и прочих Wix. Да, там оказывается есть такая статистика
А на картинках выше два фото: самое популярное и самое непопулярное (по количеству просмотров)
У одной из них — 28 тысяч просмотров, а у другой 400
Угадаете, какая популярнее?
Код без тайн
Просмотров больше у…
А правильный ответ: 🏔 зеленые горы без воды 👀
У этого фото 28 тысяч показов, по сравнению с 400 у другого
Неожиданно? Не совсем
Ситуация, на самом деле, знакомая всем, кто когда-либо выкладывал что-то в социальных сетях
Алгоритмам (ну или, может быть, даже людям) могла просто не понравится ваша публикация
Так что каждый раз когда у вас будет мысль о том что ваша гениальная идея зайдет другим, задумайтесь: а зайдет ли она алгоритмам и, что важнее, людям? 🤔
Именно поэтому я сейчас сначала стараюсь тестировать все свои гениальные идеи на органическом трафике, а уже потом начинаю делать. Хотя, не всегда получается удержаться 🤣
P.S. Ссылка на другое фото
У этого фото 28 тысяч показов, по сравнению с 400 у другого
Неожиданно? Не совсем
Ситуация, на самом деле, знакомая всем, кто когда-либо выкладывал что-то в социальных сетях
Алгоритмам (ну или, может быть, даже людям) могла просто не понравится ваша публикация
Так что каждый раз когда у вас будет мысль о том что ваша гениальная идея зайдет другим, задумайтесь: а зайдет ли она алгоритмам и, что важнее, людям? 🤔
Именно поэтому я сейчас сначала стараюсь тестировать все свои гениальные идеи на органическом трафике, а уже потом начинаю делать. Хотя, не всегда получается удержаться 🤣
P.S. Ссылка на другое фото
😁2👌1
«Делай для себя» — совет, который часто можно услышать, особенно в кругах инди-хакеров и предпринимателей
Уж не знаю, я такой неправильный (особенный, что маловероятно) или просто до меня долго доходило, но искреннее удовольствие от создания проектов, которыми мне нравилось бы пользоваться самому, я начал получать совсем недавно
Буквально пару лет назад
До этого я реализовывал свои идеи, но каждый раз мне было сложно относится к своему проекту как если бы я был обычным пользователем
Самый яркий пример — модификации для игр, именно оттуда я начал свою, можно сказать, карьеру
У меня появлялась идея и я загорался идеей реализовать ее. Но когда приходил момент поделиться ей с друзьями и просто насладиться как продуктом — у меня не получалось
«Так, здесь косяк — надо будет починить»
«Вот здесь нужно будет поправить эту штуку»
И так постоянно
То есть даже во время «отдыха» я «работал». Про это кстати есть хорошее выражение у Джима Рона:
И вот на днях я поймал себя на мысли, что у меня иногда уже получается просто пользоваться своими продуктами как пользователем
Я обновлял свой сайт — добавлял к нему переключатель языков. И я просто делал свой сайт, одновременно с этим пользуясь своим же сервисом для автоматического перевода сайтов
Я не думал о том, что вот здесь нужно что-то починить (ну почти)
Я не думал о том, как он работает внутри
Я просто пользовался им. Как пользователь 🤯
А у вас такое было?
Уж не знаю, я такой неправильный (
Буквально пару лет назад
До этого я реализовывал свои идеи, но каждый раз мне было сложно относится к своему проекту как если бы я был обычным пользователем
Самый яркий пример — модификации для игр, именно оттуда я начал свою, можно сказать, карьеру
У меня появлялась идея и я загорался идеей реализовать ее. Но когда приходил момент поделиться ей с друзьями и просто насладиться как продуктом — у меня не получалось
«Так, здесь косяк — надо будет починить»
«Вот здесь нужно будет поправить эту штуку»
И так постоянно
То есть даже во время «отдыха» я «работал». Про это кстати есть хорошее выражение у Джима Рона:
When you work — work,
when you play — play,
don’t mix the two
И вот на днях я поймал себя на мысли, что у меня иногда уже получается просто пользоваться своими продуктами как пользователем
Я обновлял свой сайт — добавлял к нему переключатель языков. И я просто делал свой сайт, одновременно с этим пользуясь своим же сервисом для автоматического перевода сайтов
Я не думал о том, что вот здесь нужно что-то починить (ну почти)
Я не думал о том, как он работает внутри
Я просто пользовался им. Как пользователь 🤯
А у вас такое было?
❤6
Код без тайн
Привет, меня зовут Алексей! За 15+ лет программирования я понял, что меня больше всего вдохновляет не просто создание работающих решений, а желание разобраться и понять, как работают технологии, которые лежат в их основе. Программирование для меня — это…
This media is not supported in your browser
VIEW IN TELEGRAM
Ровно год назад я опубликовал первый пост на канале 👀
1👍4🍾3❤2🤷♂1🔥1
Я — чайник 🫖
Именно такой ответ может получить ваш браузер от веб-сервера, когда тот ответит ему кодом HTTP 418
Наверняка многие из вас знают код 404 «страница не найдена» и среди них действительно есть код 418 «Я — чайник»
Данный код был введен в спецификации RFC 2324 от 1 апреля 1998 года (раздел 2.3.2, страница 5)
Шутки-шутками, но уже более 418 человек подписалось на этот Telegram канал! ⭐️
Для меня важно собрать качественную и вовлеченную аудиторию. Именно поэтому я не гонюсь за количеством подписчиков, а за качеством тех людей, которые находятся за этими цифрами
Спасибо за внимание и за то, что читаете!
Кстати, создал для вас простенькую веб-страницу, которая возвращает код 418, чтобы вы могли проверить сами, что это действительно так, а не верить мне на слово 😎
https://n8n.aleksei.dev/webhook/teapot
Именно такой ответ может получить ваш браузер от веб-сервера, когда тот ответит ему кодом HTTP 418
Наверняка многие из вас знают код 404 «страница не найдена» и среди них действительно есть код 418 «Я — чайник»
Данный код был введен в спецификации RFC 2324 от 1 апреля 1998 года (раздел 2.3.2, страница 5)
Шутки-шутками, но уже более 418 человек подписалось на этот Telegram канал! ⭐️
Для меня важно собрать качественную и вовлеченную аудиторию. Именно поэтому я не гонюсь за количеством подписчиков, а за качеством тех людей, которые находятся за этими цифрами
Спасибо за внимание и за то, что читаете!
Кстати, создал для вас простенькую веб-страницу, которая возвращает код 418, чтобы вы могли проверить сами, что это действительно так, а не верить мне на слово 😎
https://n8n.aleksei.dev/webhook/teapot
👍3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Наступил октябрь, один из моих самых любимых месяцев в году
А ещё это значит, что начался очередной Hacktoberfest — мероприятие, которое проводит хостинг-провайдер DigitalOcean аж с 2013 года
Идея простая — это праздник open-source, который нацелен на то, чтобы познакомить с миром открытых проектов не только программистов, но любого желающего помочь своему любимому проекту с открытым исходным кодом
Суть в том, что за октябрь нужно сделать несколько pull request-ов в публичные репозитории на GitHub
Важно, что вклад может быть любым — от фикса опечаток в документации до добавления новых фич. Не обязательно быть супер программистом, суть мероприятия как раз и заключается в том, чтобы показать важность и ценность open-source сообщества в целом
А ещё самые активные участники могут получить мерч, у меня даже получилось один раз в 2021 году. Именно таким образом в моем арсенале появилась синяя акула Sammy — их маскот
А ещё это значит, что начался очередной 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 впоследствии позаимствуют часть функционала и он также станет взаимозаменяемым
Сейчас такие платформы все же довольно «старомодные»
Они также выпустили Sora 2 и интеграцию со сторонними приложениями вроде Figma и Canva, но об этом и так уже написали все кому не лень, а я, как вы знаете, не гонюсь за громкими заголовками
Но на Agent Builder стоит приостановиться, потому что это может стать началом новой парадигмы
Дело в том, что из-за того, что OpenAI — лидер в сфере ИИ, то у них большое влияние на то, как формируется инструментарий вокруг этой новой технологии
Например, сейчас многие используют формат API, который придумала OpenAI — это обеспечивает легкость интеграции и взаимозаменяемость
Agent Builder может сыграть такую же роль: другие игроки на рынке могут начать заимствовать инструменты, которые OpenAI придумала для создания агентов
Возможно, платформы наподобие n8n и make впоследствии позаимствуют часть функционала и он также станет взаимозаменяемым
Сейчас такие платформы все же довольно «старомодные»
⚡1👀1
Обещал писать больше про бизнес, так что сегодня расскажу про успехи с 🟠 Multify (trymultify.com)
Я запустил проект в начале лета в очень базовом варианте, буквально MVP:
— перевод текста на статических страницах
— конвертация валют
— отправка форм
Опубликовал простой лендинг и стал смотреть, начнут ли приходить заявки или нет
А они взяли и начали приходить 🧐
Благодаря этому я смог найти product-market fit перед тем как делать новые фичи: заявки приходили и от владельцев одностраничных сайтов и интернет-магазинов
Важно то, что у меня появились реальные данные о потребностях потенциальных клиентов
Собственно, этим я и занимался последнее время: добавлял функции, не которые я придумал из головы, а для которых пришел реальный запрос
Именно так в 🟠 Multify появилась новые функции:
— поддержка попапов с динамическим контентом
— перевод характеристик и атрибутов товаров
— 🔥 валидация цен в валюте во время оформления заказа
Скоро можно делать панель управления 🚀
Я запустил проект в начале лета в очень базовом варианте, буквально 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 является универсальным реверс-прокси (по сути, в приложении буквально задан один маршрут:
3. Очень крутой multi-tier кеш Bentocache, с помощью которого Multify может отвечать практически молниеносно. Multi-tier означает то, что кеш сначала пытается прочитать из локальной памяти, а если не получается, то уже идет в хранилище. Которое, кстати, можно подключить с помощью разных драйверов: в виде файлов, redis или базы данных
В голосовании выше победил пункт про техническую реализацию, поэтому начнем с нее. Хотя я планирую рассказать о каждом из аспектов построения продукта, потому что на одной реализации не уедешь — как бы вам ни хотелось 😎
Так вот, в основе проекта лежит 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 или базы данных
Adonisjs
AdonisJS - A fully featured web framework for Node.js
AdonisJS is a TypeScript-first web framework for building web apps and API servers. It comes with support for testing, modern tooling, an ecosystem of official packages, and more.
1👍3
Вайбкодируй, да тестировать не забывай
С ростом 🟠 Multify проект также постепенно обрастает новым функционалом, а вместе с ним появляются и новые краевые случаи (edge cases), которые становится все сложнее учитывать
В таком случае как нельзя кстати на помощь приходит автоматизированное тестирование
Конечно, это не полноценный Test Driven Development, однако имея готовую структуру проекта и фреймворк *кхм* Adonis, в котором тесты идут из коробки, я могу попросить написать тестовые кейсы за меня
Смысл не в том, чтобы писать тесты ради тестов (чем, кстати, славится TDD), а в том, чтобы обезопасить проект от случайных поломок после изменений (их ещё называют регрессиями)
В частности, особенно вайбкодерам на заметку:
Если вы чувствуете, что ваш проект «расплывается», что при изменении одной части проекта ломается другая, посмотрите в сторону автоматических тестов
В Multify я наткнулся на такой момент в части проекта, отвечающей за замену URL на странице
Как можно увидеть на скрине выше, не все так просто 🤔
С ростом 🟠 Multify проект также постепенно обрастает новым функционалом, а вместе с ним появляются и новые краевые случаи (edge cases), которые становится все сложнее учитывать
В таком случае как нельзя кстати на помощь приходит автоматизированное тестирование
Конечно, это не полноценный Test Driven Development, однако имея готовую структуру проекта и фреймворк *кхм* Adonis, в котором тесты идут из коробки, я могу попросить написать тестовые кейсы за меня
Смысл не в том, чтобы писать тесты ради тестов (чем, кстати, славится TDD), а в том, чтобы обезопасить проект от случайных поломок после изменений (их ещё называют регрессиями)
В частности, особенно вайбкодерам на заметку:
Если вы чувствуете, что ваш проект «расплывается», что при изменении одной части проекта ломается другая, посмотрите в сторону автоматических тестов
В Multify я наткнулся на такой момент в части проекта, отвечающей за замену URL на странице
Как можно увидеть на скрине выше, не все так просто 🤔
1❤4
🎃 Хеллоуинская история о воскрешении мертвых (данных)
Ночь с 31 октября на 1 ноября. Все нормальные люди смотрят хорроры или идут на вечеринки. А я? Я занимаюсь настоящим некромантством — восстанавливаю метрики Prometheus
Я веду учет количества токенов, сетевых запросов и заявок в тильду по каждому проекту и недавно я начал замечать, что каким-то мистическим образом старые метрики Multify стали исчезать, хотя у меня и настроен режим сохранения на диск
⚡️ И вот, почему-то именно в эту ночь, меня, как Франкенштейна, молнией озарило:
А что если у Prometheus установлено ограничение на срок хранения? ...
Так и оказалось!
По-умолчанию --storage.tsdb.retention.time равен 15 дней
И вот я пошел, откопал запылившийся бэкап сервера, чтобы вытащить из него старые данные...
Однако, оказалось это не так-то просто:
SSH молчит, как склеп. Пароли не подходят, а ключи игнорируются. Сервер превратился в настоящий заколдованный дом. Видишь его, но попасть внутрь не можешь
На помощь пришла загрузка в rescue mode, т.н. «режиме спасения» сервера — это когда сервер загружается с отдельного образа, а зайдя в него можно смонтировать диски вручную
Я буквально лезу в файловую систему как археолог в древнюю гробницу: ищу данные Prometheus, копирую их и переношу на живой сервер
И вот, момент истины... я запускаю
Ночь с 31 октября на 1 ноября. Все нормальные люди смотрят хорроры или идут на вечеринки. А я? Я занимаюсь настоящим некромантством — восстанавливаю метрики Prometheus
Я веду учет количества токенов, сетевых запросов и заявок в тильду по каждому проекту и недавно я начал замечать, что каким-то мистическим образом старые метрики Multify стали исчезать, хотя у меня и настроен режим сохранения на диск
⚡️ И вот, почему-то именно в эту ночь, меня, как Франкенштейна, молнией озарило:
А что если у Prometheus установлено ограничение на срок хранения? ...
Так и оказалось!
По-умолчанию --storage.tsdb.retention.time равен 15 дней
И вот я пошел, откопал запылившийся бэкап сервера, чтобы вытащить из него старые данные...
Однако, оказалось это не так-то просто:
SSH молчит, как склеп. Пароли не подходят, а ключи игнорируются. Сервер превратился в настоящий заколдованный дом. Видишь его, но попасть внутрь не можешь
На помощь пришла загрузка в rescue mode, т.н. «режиме спасения» сервера — это когда сервер загружается с отдельного образа, а зайдя в него можно смонтировать диски вручную
Я буквально лезу в файловую систему как археолог в древнюю гробницу: ищу данные Prometheus, копирую их и переношу на живой сервер
И вот, момент истины... я запускаю
docker compose start prometheus и вижу...🎃3
Так, а ну признавайтесь, у кого-то был сегодня странный сон?
Я вот, например, во сне защищал диссертацию, но не по презентации, быстро, за 20 минут, а допечатывал на ходу полностью работу из 100+ страниц по очереди в разных принтерах, потому что в них заканчивалась бумага
Одновременно с этим я кое-как на ходу импровизировал и рассказывал в формате «так, эээм, ну здесь в общем это работает вот так, а вот это нужно для того-то…» и по ощущениям длилось вечность 😆
Спрашиваю, потому что это не первый случай, про который слышу сегодня. Вдруг и правда суперлуние влияет 🌝
Я вот, например, во сне защищал диссертацию, но не по презентации, быстро, за 20 минут, а допечатывал на ходу полностью работу из 100+ страниц по очереди в разных принтерах, потому что в них заканчивалась бумага
Одновременно с этим я кое-как на ходу импровизировал и рассказывал в формате «так, эээм, ну здесь в общем это работает вот так, а вот это нужно для того-то…» и по ощущениям длилось вечность 😆
Спрашиваю, потому что это не первый случай, про который слышу сегодня. Вдруг и правда суперлуние влияет 🌝
👍5
В продолжение темы про Луну
А вы задумывались, что если вы были бы на луне, то могли бы увидеть «полную Землю» точно также, как мы видим «полную Луну» с Земли?
Ведь очевидно, что на Луне не видно Луну, однако видно Землю
Майкл (Vsauce) как раз выложил короткое видео, где рассказывает об этом и оказывается, что Земля освещает в 37 раз сильнее Луны. Оно и понятно, ведь на Земле есть пустыни и горы с ледниками, а Луна, вообще-то, на самом деле темно-серая, так как покрыта реголитом 🤔
А вы задумывались, что если вы были бы на луне, то могли бы увидеть «полную Землю» точно также, как мы видим «полную Луну» с Земли?
Ведь очевидно, что на Луне не видно Луну, однако видно Землю
Майкл (Vsauce) как раз выложил короткое видео, где рассказывает об этом и оказывается, что Земля освещает в 37 раз сильнее Луны. Оно и понятно, ведь на Земле есть пустыни и горы с ледниками, а Луна, вообще-то, на самом деле темно-серая, так как покрыта реголитом 🤔
YouTube
How Bright Is Earthshine?
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.