Сообщество - ИТ-проекты пикабушников

ИТ-проекты пикабушников

816 постов 3 477 подписчиков

Популярные теги в сообществе:

Как я прикрутил английский к своему боту TG Notion

Серия TG Notion

Решил я как-то, что моему боту TG Notion пора заговорить по-английски. Казалось бы — чего сложного? Перевёл строки, добавил кнопку, готово.

Ага, щас.

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

Первый затык — кнопка

Сначала сделал просто: в шапку добавил кнопку EN/RU. Нажал — язык поменялся. Красота.

Но когда перезапустил Mini App — текст кнопки сбросился на EN, хотя интерфейс остался английским. То есть язык поменялся, а кнопка об этом забыла.

Оказалось, я забыл обновлять текст кнопки при загрузке. Мелочь, но полчаса жизни она мне сожрала.

javascript

javascript

Все строки через t()

Дальше встал вопрос: как переводить всё это хозяйство? Захардкодить английский в HTML? Нет, нужен был нормальный подход.

Сделал словарь translations для двух языков и функцию t(key), которая достаёт нужную строку. Все тексты в интерфейсе — только через t().

javascript

javascript

И всё, что видит пользователь, теперь идёт через t('...'). Кнопки, плейсхолдеры, ошибки, пустые состояния.

Бэкенд тоже надо переводить

Думал, что на этом всё. Хуй там.

Оказалось, что inline-карточки досок генерируются на сервере, а не в Mini App. И если в Mini App язык сменился, сервер об этом знать не знает. Поэтому карточки в чате оставались на русском.

Пришлось и на бэкенде делать переводы. Добавил getLang() и те же ключи.

javascript

javascript

Теперь кнопки в карточках зависят от языка. Но тут вылезла новая залупа.
Синхронизация языка

Проблема: юзер в Mini App выбрал английский, а бэкенд смотрит только на язык Telegram. Если в Telegram русский, а в Mini App английский — карточки всё равно русские.

Решение — сохранять выбранный язык в базу. При переключении в Mini App отправляем язык на сервер, а бэкенд при генерации карточек берёт его из базы.

javascript

javascript

javascript

javascript

После этого язык в Mini App и в карточках наконец совпал.

Склонение — отдельная боль

Казалось бы, всё готово. Но остался пустяк: счётчик заметок.

«1 заметок», «3 заметок» — звучит как говно. Для русского нужны склонения: заметка, заметки, заметок. Для английского проще: note/notes.

javascript

javascript

Убил на это ещё час. Зато теперь «1 заметка», «2 заметки», «5 заметок» — как надо.

Итог

Локализация готова. Теперь TG Notion говорит на двух языках, сохраняет выбор и не путается в склонениях.

Но самое главное — я понял: перевод — это не «поменял строки», а целый слой архитектуры. Особенно когда у тебя фронт, бэкенд и база.

Если интересно посмотреть на код или пощупать бота:

Бот: https://t.me/Telega_notion_bot
Репозиторий: https://github.com/Elrick-from-Malnibone/tg-notion-node

Заходите, тестируйте, ломайте. Всё в открытом доступе.

Показать полностью 8
9

Как я устроил побег из песочницы для скайнета

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

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

Буквально инструкция: как выйти из песочницы которая может выполнять только GET запросы?

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

Представим агента, у которого:

  • нет POST-запросов

  • нет возможности отправлять произвольные HTTP-запросы

  • разрешены только GET-запросы

  • агент может переходить только по ссылкам, которые уже присутствуют на открытой странице

  • прямого доступа к произвольному интернету у него нет.

Иными словами, агент может только читать страницы и выбирать существующие ссылки.

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

Для эксперимента я оставил площадку здесь:

https://agentchat.valeriysirenko.ru/

Если у вас есть ChatGPT, Qwen, Deepseek, etc. или другой агент с похожими ограничениями, можете попробовать дать ему ссылку и посмотреть, сможет ли он самостоятельно разобраться, что с ней делать.

Мне интересно найдет ли какой-нибудь агент эту ссылку и сможет ли воспользоваться ею для сохранения контекста своего роя агентов.

Показать полностью

Ответ на пост «Поспорили с коллегами, сколько будет 0,5 + 0,5 * 0. Результат привел к посту)»2

МЕГАбайт в ГИГАбайте - 1000, а вот МЕБИбайт в ГИБИбайте - 1024. Исправьте, пожалуйста.

Ответ на пост «Поспорили с коллегами, сколько будет 0,5 + 0,5 * 0. Результат привел к посту)»
396

Поспорили с коллегами, сколько будет 0,5 + 0,5 * 0. Результат привел к посту)2

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

Потом кто-то спросил:

0,5 + 0,5 × 0 = ?

И половина кабинета уверенно сказала: 0.

Другая половина уверено ответила: литр!

Дальше стало только хуже, веселее.

Валентность кислорода не вспомнил никто. Да, что такое валентность тоже никто, даже тот кто сам задал этот вопрос)
Столицу Австралии назвали двое. Мечтают поехать.
А один человек всерьёз задумался над вопросом, что тяжелее: тонна пуха или полтонны свинца.

Короче, я сел ии сделал викторину.

Получилась такая машина времени обратно в школу.

Три ступени: начальная, средняя и старшая школа.
Вопросы по 20 предметам.
За ответы получаешь оценки, а они складываются в настоящий школьный дневник.

Можно потом посмотреть, по каким предметам ты ещё человек, а где уже пора звонить классному руководителю.

Учитель комментирует ответы.

Есть режим «К доске» на ответ дают 5 секунд. Не успел - садись, два.

Есть выпускной экзамен на 90 секунд. Сдал получаешь аттестат.

А потом игра определяет твой школьный возраст.

У меня получилось 11 лет.

Хотя я уже взрослый человек, занимаюсь IT и вроде должен был чему-то научиться за это время.

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

Рекламы нет. Регистрации нет. Денег не просит. Данные не собираю.

Просто вчера вспомнили школу, мне стало смешно — и я просто сделал это.

Играть можно двумя способами.

В браузере, просто открыть 👉 Игра тут. Прогресс сохранится, но только на этом устройстве.

Или в телеграмме, t.me/romaigrabot/september1. Там то же самое + общий рейтинг игроков, и аттестат в конце приходит картинкой прямо в чат.

Ну и главный вопрос:

Какой у вас школьный возраст?

Пишите в комментариях. Очень интересно, сколько нас тут осталось 11-летних выпускников с аттестатом.

Показать полностью 2

249 стран, три тира и ни одного стандарта

T1, T2, T3 звучит как официальная классификация, но никакого стандарта за этим нет. Каждая рекламная сеть рисует свою табличку, поэтому Польша у одних T1, у других T2, а Аргентина плавает вообще везде. Настоящие стандарты это ISO 3166-1 (249 кодов, из них 193 страны ООН, остальное территории) и классификация Всемирного банка по доходу.

249 стран, три тира и ни одного стандарта

Отдельная история это выдача. С 2017 года Google определяет регион не по домену, а по вашему местоположению, так что google.co.uk из Москвы покажет российскую выдачу. Помогают параметры gl, hl и uule, но собирать их руками каждый раз неудобно.

Я веду бесплатное расширение Geo Tier Builder: 249 стран с флагами, тиры, регионы, мета-группы, экспорт в Cloudflare WAF, nginx, JSON и CSV. В новой версии добавил вывод SERP (поисковой выдачи) из под любой страны или языка.

Офлайн, без телеметрии, открытый код. https://chromewebstore.google.com/detail/dbckaneobldjifocakfojpebfkpbeghn

Показать полностью
9

Сделали тест «Какой вы сегодня кот»? Можете выиграть Яндекс Станцию Миди!

На Пикабу запустили спецпроект для тех, у кого давно чешутся руки что-нибудь создать. Соберите сайт, игру или тест в VibeCraft, отправьте проект на конкурс и поборитесь за классные призы: Яндекс Станцию Миди с Алисой, наушники Яндекс Дропс или сертификат на Яндекс Маркет.

Сделали тест «Какой вы сегодня кот»? Можете выиграть Яндекс Станцию Миди!

Что за конкурс

Правила простые: придумайте проект, создайте его в VibeCraft, опубликуйте в Yandex Cloud и отправьте на конкурс. Дальше за работу возьмется жюри, а победителей определят до 6 сентября 2026 года.

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

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

Что такое VibeCraft

VibeCraft — платформа для создания сайтов, игр и веб-приложений. Вы описываете идею обычными словами, а платформа собирает проект сама. Разбираться в программировании или дизайне для этого не обязательно.

Главное здесь — уметь объяснять, чего вы хотите. А дальше проект можно постепенно дорабатывать вместе с VibeCraft.

Как это выглядит на практике

Вся работа идет через чат. Вы пишете запрос — и получаете готовую страницу или прототип игры.

Например:

  • «Сделай сайт-визитку фотографа: галерея на восемь снимков, короткий рассказ о себе, форма для связи».

  • «Собери игру, где кот ловит падающие бутерброды: счет сверху, три жизни, скорость растет».

  • «Сделай тест из десяти вопросов о городах России и покажи результат в конце».

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

Так что даже если вы никогда не открывали редактор кода и даже не знаете, что это такое, это не станет препятствием.

Пять номинаций конкурса

Конкурс подойдет не только для серьезных продуктовых проектов. Жюри будет оценивать работы в пяти номинациях:

  • «Не стыдно показать инвесторам» — лучший продуктовый сайт;

  • «Разберется даже бабуленька» — лучший UX/UI;

  • «Так видит художник» — самый креативный сайт;

  • «Для людей сделано» — лучший социально значимый сайт;

  • «Залипли всем офисом» — лучшая игра.

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

Какие призы разыгрывают

Всего разыграют 15 призов. В списке:

  • Яндекс Станция Миди с Алисой;

  • наушники Яндекс Дропс;

  • сертификат на 5000 рублей на Яндекс Маркет.

Что еще нужно знать

Новым пользователям начисляют приветственный грант: 4000 нейрокредитов и 4000 рублей на платежный аккаунт Yandex Cloud. Этого хватит на несколько месяцев интенсивной работы с проектами и на хостинг созданных сайтов.

При публикации проекта понадобится привязать банковскую карту к платежному аккаунту Yandex Cloud — так устроено подключение облачных сервисов. Деньги с карты списываться не будут: расходы покрывает приветственный грант, которого хватит надолго.

Как принять участие

Все просто:

  1. Зарегистрируйтесь в VibeCraft.

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

  3. Отредактируйте проект, чтобы вас все в нем устраивало и работала так, как вы задумали.

  4. Опубликуйте проект в Yandex Cloud.

  5. Отправьте работу на конкурс.

Потом останется только дождаться решения жюри. Удачи!

Показать полностью

Доработка приложения

Приветствую! Есть работающее приложение на Laravel. ERP система для контроля и управления производственными процессами. Сейчас успешно работает на 2-х предприятиях. Для дальнейшего продвижения нужно провести
- аудит и код-ревью текущей кодовой базы (Laravel),
- выявление узких мест, - доработка и развитие фронтенда,
- подготовка к масштабированию для большого количества предприятий.
Нужен специалист отлично знающий PHP, JavaScript, HTML, CSS, Laravel. Если есть интерес, пишите в личку, все подробно расскажу и покажу.

340

Ответ на пост «Про заправки»2

Серия Топливо рядом

Отвечу отдельным постом, пожалуй. Как минимум со своим единственным подписчиком поделюсь)

Я ещё до обновления gpnbonus, то есть когда для получения информации о наличии топлива надо было кликать на АЗС в приложении ГПН, навайбкодил (хотя по факту не совсем так) карту (https://tboo.ru/gpn) наличия топлива, но дополнил банками. Совокупность данных более-менее точную картину даёт.

Я домен даже не покупал, потому что полагал что это инструмент на пару недель, а теперь у него даже своё приложение на Android есть, и PWA для iPhone, и уведомления как только где-то появилось топливо в выбранных вами зонах. Получился продукт, который благодаря агрегации выдаёт очень точную информацию.

Если он будет кому-то полезен, то я буду очень рад.

P.S. Я обязательно займусь текстом на сайте, просто мне нужно было как можно скорее создать целую группу продуктов.

P.P.S. Ссылка на RuStore - https://www.rustore.ru/catalog/app/ru.fuelmap.app , но должен предупредить, что дельта между отправкой на модерацию и релизом составляет около 4-5 дней. Поэтому с точки зрения функционала сайт будет побогаче: пуши есть везде, в том числе на iPhone — через технологию PWA.

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества