Если вы ранее работали с мобильным приложением DogPlanner, то вы, наверное, уже знакомы с робопёсом Роби. Но в любом случае, позвольте рассказать вам его историю. Роби живёт на Марсе... ходит молва, что он был собран кем-то из деталей первого в истории марсохода Sojourner. Он изучает красную планету, да и, по возможности, всю вселенную через сигналы, приходящие из космоса. Ему многое интересно, так как на Марсе не так уж много вариантов для развлечений и общения, только несколько марсоходов и с…
Я не OpenSource разработчик, но за пару десятков лет написал под сотню enterprise-level библиотек, которые остаются в рабочем контуре, дорабатываются под каждый проект и адаптируются к новым технологиям. Большого смысла выходить в OSS не было, кроме как для упрощения обучения коллег и единого места хранения документации.Но и желание помогать другим и делиться выстраданными подходами, экспертизой и конкретным кодом мне не чуждо - сегодня поможешь ты, завтра - тебе. Через полгода подготовки и ада…
Проблема Часто использую ChatGPT и другие нейросети для работы: обсуждаю идеи, пишу код, прошу объяснить сложные темы. В итоге в чате накапливаются сотни сообщений. И тут начинается хаос:Нужно найти функцию, которую обсуждали утром? 5 минут скролла вверх в поисках нужного места — и я уже потерял нить разговора. Приходится начинать заново.Отдельная боль — потеря контекста моделью. Пишешь код, а модель внезапно «забывает» техническое задание из начала диалога. ChatGPT просто обрезает контекст, а …
Сделали расширение, которое вытаскивает координаты из НСПД, конвертирует EPSG:3857 → WGS84 и открывает точку в Яндекс/2ГИС/Google одним кликом. Под капотом — калибровка проекции и перехват SPA-навигации. Работаем с НСПД ежедневно. Наш типичный сценарий:Нашли объект в кадастреНужно посмотреть его на Яндекс.Картах (спутник, панорамы)Копируем координаты из URL — x=4366832.14&y=6748857.58Открываем конвертер EPSG:3857 → WGS84Копируем результат, вставляем в поиск картПовторить 20-30 раз за деньЕж…
Привет, Хабр!Меня зовут Алекс, и я мейнтейнер Symbiote.js - библиотеки для создания UI-компонентов и изоморфных приложений на самых современных веб-стандартах. Сегодня я расскажу про наше важное мажорное обновление - версию 3.x.Идея в двух словахSymbiote.js - это легкая (~6.4 kb brotli) обертка над Custom Elements, которая добавляет реактивность, шаблоны и механизмы работы со слоями данных. Без Virtual DOM, без специального компилятора, без обязательного этапа сборки - компоненты можно подключа…
Привет! Давно хотел поиграть с GigaChat от Сбера и наконец дошли руки. Решил не ограничиваться скучной перепиской, а сделать полноценного голосового ассистента. Чтобы можно было просто говорить с ним, как с Алисой или Siri, и получать озвученный ответ.В итоге собрал веб-приложение, где фронт ловит голос, отправляет его в текст (через распознавание речи), я гоняю этот текст через GigaChat, а ответ озвучиваю с помощью SaluteSpeech.В этом посте расскажу, с какими граблями пришлось столкнуться: как…
Когда в октябре 2024-го заблокировали Дискорд, я сидел в голосовом канале с друзьями. Связь оборвалась, все полезли за впн-ками, кто-то ушёл в Телеграм, кто-то просто пропал. Серверы, которые мы строили годами, с каналами, ролями, ботами, в один момент стали недоступны.Я фрилансер, пишу на React и Node.js. В тот вечер подумал: а насколько сложно вообще сделать свой мессенджер с серверной структурой? Не чат на вебсокетах из туториала, а нормальный. С серверами, каналами, ролями, голосовыми комна…
Это большая статья про дешевую локальную автоматизацию на основе VRack2. Будет очень много тем разной направленности. Работа с железом, мелкие сервисы, организация инфраструктуры.По сути это компиляция моей работы за последние несколько лет. Важно подметить - моей и только моей.Если какая-то тема не привлекает - просто переходите к следующей, скорее всего на что-нибудь интересное наткнетесь.Вначале я приведу немного вводной информации, потом будут практические реализации.Зачем это нужно?У вас п…
Почти каждый фронтенд-разработчик однажды задаётся вопросом: что на самом деле происходит внутри современных фреймворков. Почему изменение переменной автоматически обновляет интерфейс? Как библиотека понимает, что именно нужно перерисовать?Можно бесконечно читать документацию, но лучший способ понять — написать минимальную реактивную систему самостоятельно. Не игрушечный пример из десяти строк, а маленький, но рабочий движок.В процессе мы реализуем:систему реактивных данныхотслеживание зависимо…