WT Telegram bot - отправка данных из Joomla в Telegram-бота
Вышел комплект плагинов WT Telegram bot, состоящий из 2-х плагинов:
WT Telegram bot - основной плагин
WT Telegram bot - Content - плагин для материалов Joomla
Плагин WT Telegram bot. Служит для отправки данных в Telegram. В его параметрах указываются токен Telegram API и основной chat id / channel id, куда бот будет отправлять сообщения. Данный плагин сам по себе бесполезен, если вы не Joomla-разработчик. Разработчики могут создавать плагины-провайдеры, которые будут отправлять сообщения с нужными данными. Также разработчики могут отправлять другие chat id в коде, кроме основного. В базе данных хранится таблица связей отправленных сущностей Joomla и id сообщений для каждого чата, что может оказаться полезно при разработке собственных расширений.
WT Telegram bot - Content. Плагин позволяет отправлять в Telegram чат или канал материалы из интерфейса Joomla. На данный момент вручную с помощью кнопки на тулбаре в списке статей или при редактировании статьи. Для его работы необходим первый плагин
Сегодня мы зарелизили важный патч. Давайте поговорим о том что изменилось
HasMany оптимизирован и теперь страницы где он присутствуют будут работать на 200% быстрее (к сожалению был не очень приятный артефакт из-за которого мы хранили в памяти все формы элементов)
Важно мы добавили экранирование для поля Text и всех его дочерних полей, поэтому теперь все значения при сохранении и выводе будут экранироваться, но логику можно отключить методом unescaped
Важно Number больше не наследует Text но его поведение не поменялось, тоже самое касается Date и Range
Привет, на связи Spectr! Опубликовали запись круглого стола «Стоит ли становиться тимлидом?» с митапа DevTalks.
Получится отличный круглый стол и очень полезная и конструктивная дискуссия. И вот почему:
очень крутая модерация круглого стола Виктором Корейша;
очень классный состав участников в разрезе ролей, который позволил рассмотреть вопрос с разных сторон: CTO, ТимЛид, руководитель отдела и рядовой разработчик;
очень вовлеченный в дискуссию зал: было очень много полезных комментариев и взглядов;
благодаря вовлеченности зала смогли посмотреть не вопрос еще и в разрезе разных компаний и отраслей: мнения людей из ИТ-гигантов и от представителей аутсорс-разработки.
Какими качествами должен обладать тимлид? Как проходят собеседования на должность руководителя? Как все успеть и не растерять навыки разработчика? На эти и многие другие вопросы ответили: — Виктор Корейша (Ozon, руководитель отдела MessageBus и Storage; ведущий подкаста о жизни в IT «Кода кода») — Максим Харитонов (Ozon, руководитель группы разработки Storage) — Никита Ильин (Spectr, backend-разработчик) — Олег Казаков (Spectr, CTO)
Во Vue 3 есть важная и нередко используемая конструкция, у которой нет имени. Это то, что обычно называют "композабл с глобальными рефами".
Но:
Это не композабл по определению
Там не обязательно рефы
Они не "глобальны"
В общем случае структура данного объекта - экспортируемые из ES модуля реактивные данные и функции для работы с ними.
Функционально они заменяют "сторы" Pinia. Называть их тоже stores - двусмысленно и нелогично. Вообще, молиться на "глобальный стейт" после появления идеи JavaScript signals и их всевозможных реализаций, включая Vue Reactivity API, архаично.
Мне кажется, самое подходящее название для данной конструкции - [реактивный] бизнес объект (РБО) или Vue Business Object (VBO). В них инкапсулируется логика предметной области и приложения, они не привязаны к конкретным компонентам, и по аналогии с другими языками и фреймворками, этот паттерн - Business Object, - выглядит вполне подходящим.
Техническая реализация может быть через ES классы, ES модули, closures, Pinia stores, с использованием singleton или DI.
Кроме того, позиционирование именно как "бизнес объект" будет требовать явного отделения от него презентационного и инфраструктурного слоев - работы с Backend API, например. То есть, стимулировать использование лучших практик и наработок из других сфер разработки ПО, еще более переводя Vue.js из фреймворка для небольших проектов в разряд enterprise level решений.
--------------
Telegram-канал о Vue и фронтенд-разработке: @vuefaq и вебсайт: Vue‑FAQ.org.
Данный генератор для Joomla-разработчиков помогает создать болванку плагина по структуре файлов и классов Joomla 4 и Joomla 5. Создаётся сервис-провайдер, основной класс плагина, языковые файлы для русского языка.
Созданный плагин будет не совместим с Joomla 3. Также автор генератора предупреждает, что версия Joomla 4 должна быть не ниже 4.4.4, хотя судя по генерируемому коду всё должно быть ОК. В любом случае разработчик разберется что с этим делать и может сэкономить время.
Google Firebase сдался и добавил в свои сервисы SQL базу данных (облачную PostgreSQL) в форме Firebase Data Connect.
Пока в виде preview сервис можно попробовать бесплатно. Потом собираются брать плату и за саму базу, и за API доступа к ней.
Вряд ли Google с такими политиками сможет конкурировать с Supabase.На данный момент это две основные площадки, с которыми фронтендер или мобильный разработчик может без излишних усилий сделать удобный облачный бэкенд, как без логики (просто CRUD доступ), так и с ней (Functions), и оставаясь в рамках стандартов (не сильно привязываясь к проприетарным решениям сервисов).
Сегодня в 19:00 (мск) у нас запланирован стрим по Moonshine. Обсудим обновления и изменения за последний месяц, а также покажу как проходит работа по MoonShine v3.
Если у вас есть какие-либо вопросы или комментарии по MoonShine, можете задать их сейчас.
10 мая 2024 года Cloudflare представила второй публичный релиз открытого проекта Pingora v0.2.0. Это асинхронный многопоточный фреймворк на Rust, который помогает создавать прокси-сервисы HTTP. Проект используется для создания сервисов, обеспечивающих значительную часть трафика в Cloudflare (вместо применения Nginx). Исходный код Pingora опубликован на GitHub под лицензией Apache 2.0.
Pingora предоставляет библиотеки и API для создания сервисов поверх HTTP/1 и HTTP/2, TLS или просто TCP/UDP. В качестве прокси-сервера он поддерживает сквозное проксирование HTTP/1 и HTTP/2, gRPC и WebSocket. (Поддержка HTTP/3 — в планах). Pingora также включает в себя настраиваемые стратегии балансировки нагрузки и аварийного переключения. Чтобы соответствовать требованиям и безопасности он поддерживает как широко используемые библиотеки OpenSSL, так и BoringSSL, которые соответствуют требованиям FIPS (федеральных стандартов обработки информации США) и пост-квантового шифрования.
Изменения в новой версии:
добавлена поддержка установки фильтров для дополнительных заголовков HTTP/2;
добавлена возможность изменения размера буфера входящих пакетов для TCP;
добавлена функция body_bytes_read();
добавлен фильтр cache_not_modified_filter;
добавлена возможность ведения лога TLS-ключей;
добавлена callback-функция purge_response.
В рабочем режиме Pingora обеспечивает плавный перезапуск без простоев для самостоятельного обновления, не теряя ни одного входящего запроса.
Профессиональный плагин формы обратной связи Radical Form совместим с Joomla 5
Профессиональный плагин-обработчик форм обратной связи Radical Form получил совместимость с Joomla 5 с релизом 3.1.5. Особенность плагина в том, что он позволяет отправлять абсолютно любые формы: стандартные callback формы, квизы, опросы и т.д., но не предоставляет готового фронтенда.
Такой подход предоставляет разработчикам практически неограниченную гибкость в разработке, но при этом требует от них определенного уровня знаний и умений. Radical Form даёт возможность сторонним разработчикам обрабатывать данные форм в момент отправки с помощью плагинов, что позволяет очень удобно и быстро интегрировать его со сторонними сервисами. Для плагина существуют сторонние плагины для интеграции Radical Form с Битрикс 24 и AmoCRM.
Получение значений для BelongsTo/BelongsToMany полей приведено к единому виду и теперь для них всегда доступен valuesQuery и при большом запросе вы сможете самостоятельно его оптимизировать
Логотип на 404 странице теперь выводится из конфига и если есть желание вывести на 404 логотип отличающийся от дефолтного, то воспользуйтесь ключом logo404
Apple подготовила свой сайт к предстоящему «специальному мероприятию» под названием Let loose, которое состоится 7 мая и сопровождается рисунком Apple Pencil, что позволяет предположить, что в центре внимания будет обновлённые iPad Air, iPad Pro и аксессуары для планшетов, включая Magic Keyboard и стилус Apple Pencil с новым жестом сжатия с тактильной обратной связью.
В рамках этого ивента на сайте Apple курсор мышки — это ластик, которым пользователь может стирать разноцветные вариации фигур, вписанных в логотип Apple.
Модуль позволяет создавать быстрые наборы элементов: ссылки на различные сущности на сайте Joomla: категории материалов, Virtuemart, JoomShopping, пункт меню или пользовательскую ссылку. Есть условия для исключений показа элементов списка.
Вы можете создавать собственные макеты вывода модуля, создавая таким образом почти всё, что угодно: от простого списка ссылок до стены фотографий на главную страницу или ссылки-теги для перелинковки категорий интернет-магазина. Модуль позволяет выводить изображения, адаптивные изображения, видео, адаптивные видео. Также это могут быть не только ссылки, но и список вопросов FAQ, элементы Bootstrap Tabs, Accordion и т.д.
v.2.2.0 Что нового?
Атрибут Onclick. Добавлена возможность указания атрибута onclick. Его можно использовать для указания целей систем аналитики или же для собственного js-кода.
Wrapped Editor. Поле редактора для дополнительного текста занимало большую часть экрана, что доставляло неудобство при работе с большим количеством элементов. Теперь поле редактора спрятано за Bootstrap Accordion.
Поддержка тёмной темы Joomla 5. Исправлены случаи неверного отображения при использовании тёмной темы в Joomla 5.
Рефакторинг кода. Проведена небольшая чистка кода.
Команда react.js во всю готовится к предстоящей конференции и видимо, несмотря на большие сомнения, именно на ней они представят React 19. На сайте уже была опубликована страница релиза.
В релизе всё то, о чём рассказывала команда next.js - action для формы, новые хуки, серверные компоненты и серверные действия, метаданные страницы и предзагрузка ресурсов из коробки. Из нового (или упущенного мной) - для передачи ref больше не нужно использовать forwardRef, обновлённое API контекстов и продвинутая поддержка таблиц стилей.
Вместе с релизом был опубликован и гайд на обновление до 19 версии для библиотек. В гайде можно отметить значительные удаления функционала помеченного в последние годы как устаревший.
Также вчера вышел React 18.3.0, а уже сегодня вышла минорка - React 18.3.1. Это промежуточные релизы, в которых добавили предупреждения о том, что будет помечено как устаревшее или удалено. Так можно подготовить проекты к предстоящему обновлению.
Alfa Frontend Meetup #3 — только технические доклады
Программа.
Статический анализ зависимостей
Спикер: Алексей Охрименко, техлид в Yandex Cloud Tracker
Рассмотрим статический анализ кода и попробуем применить этот подход к статическому анализу зависимостей с помощью программирования в ограничениях, Parser Combinators, Jora и Discovery.
Как жить с монорепой
Спикер: Алексей Николаев, тeamlead в Sendsay.ru
Поговорим про плюсы и минусы монорепозиториев. Когда их применение оправдано, а когда больше подойдет микросервисная архитектура, какие инструменты можно использовать для настройки и сборки монорепы, как автоматизировать задачи и CI/CD.
Как перевести 45 приложений на webpack module federation и ничего не сломать
Спикер:Степан Иваньков, главный frontend-разработчик в Альфа-Банке
Подробно поговорим про webpack module federation и на примере большого приложения покажем, с какими трудностями столкнулись, как получилось ускорить проект, как поддерживали обратную совместимость и как выглядел кастомный подход микрофронтов до переезда.
Где пройдет митап: Москва, просп. Андропова, 18 к3, Альфа-Банк, минута от станции метро Технопарк.
Когда: 25 апреля, в 19:00 первый доклад, в 18.30 начинается регистрация на входе, закончим в 22 часа.
Недавно состоялось обновление админ-панели для Laravel MoonShine v2.11.0 с кодовым названием “Minimal Twist”.
Основа релиза - минималистичный дизайн админки. Часто просили сделать альтернативный вариант дизайна, и как только появилась возможность - реализовали. Выглядит стильно, сам попробовал и, видимо, буду использовать эту тему.
Рецепт создания ИИ-ассистента, который быстро отвечает пользователям по базе знаний
Ребята из компании AGIMA AI недавно сделали для NL International бота Nelly, который умеет моментально находить ответ на любой вопрос пользователя. Работает это так: человек заходит на сайт компании, понимает, что ему нужна консультация, и пишет в чат. Тут же он получает список статей, в которых, скорее всего, найдет ответ на свой вопрос.
Если нужной статьи нет, всегда можно попросить ассистента перевести вас на оператора
Chatwoot — интерфейс оператора с открытым исходным кодом и база знаний.
Rasa — фреймворк с открытым исходным кодом для создания чат-ботов.
Botfront — визуальный интерфейс для создания чат-ботов на RASA.
Qdrant — векторная база данных для хранения векторных представлений статей из базы знаний.
Datapipe — ETL, с помощью которого мы извлекаем статьи из Chatwoot, обрабатываем их и помещаем в Qdrant.
В результате количество запросов в поддержку, обрабатываемых чат-ботом, увеличилось с 30% до 70%. Команда контента продолжает добавлять статьи, чтобы чат-бот мог обрабатывать всё больше и больше запросов. Все подробности — в блоге.
7 апреля 2024 года российский национальный домен .RU отмечает день рождения и юбилей. Сегодня ему исполняется 30 лет. Эта дата официально считается Днём рождения Рунета. 30 лет назад в базу данных IANA была внесена запись о российском домене, и с этого момента началось его активное развитие.
Немного фактов:
.RU – один из крупнейших доменов мира, в нем зарегистрировано более 5,5 млн имен. Каждый день регистрируется около 5000 новых доменов;
.RU занимает 5 место среди национальных доменов и входит в топ-10 доменов верхнего уровня;
с доменами в зоне .RU работает 131 аккредитованный регистратор и почти 2 млн администраторов;
85% доменов в зоне .RU зарегистрированы гражданами РФ. Лидеры по числу регистраций: Москва (26,2%), Московская область (9,5%), Санкт-Петербург (7,3%), Краснодарский край (3,1%) и Свердловская область (2,1%);
96,5% доменов в зоне .RU делегированы и 96% активно используются. 74% доменов зарегистрированы физическими лицами, а 26% – юрлицами.
«30-летие домен .RU встречает в фазе активного роста: много проектов возвращаются в национальные домены, направляя вектор развития на внутренний российский рынок, а также многие компании малого и среднего бизнеса запускают новые проекты. Мы справляемся с вызовами, связанными с кибербезопасностью и необходимостью импортозамещения и обеспечение безопасности российского доменного пространства», — рассказал директор Координационного центра доменов .RU/.РФ Андрей Воробьёв.
Проблема с id в URL материалов Joomla при обновлении большого старого сайта до Joomla 5
В старых версиях Joomla URL адрес формировался по схеме [id материала + алиас материала]. Например, 145-my-article-alias. Однако, старый роутер Joomla был не идеален и плодил дубли страниц, с чем усиленно боролись СЕО специалисты с помощью различных плагинов и хаков ядра CMS.
Начиная с версии Joomla 3.8 в ядро был включён новый роутер, лишенный этих недостатков. Так же его отличало то, что он убирал id статьи из URL адреса. А это в свою очередь приводило к проблемам на больших сайтах, так как у них уже много страниц было в индексе поисковых систем. Поэтому, даже при обновлении сайта на Joomla 4 и Joomla 5 многие старые сайты вынуждены были оставлять включённым старый роутер.
Решение проблемы довольно простое: нужно сохранить id материалов Joomla в алиасы и после этого отключить старый роутер Joomla. В базе данных к каждому алиасу спереди добавляется id статьи, что приводит его к виду, который формировал старый роутер Joomla и таким образом URL страницы будет сохранён, но под капотом Joomla будет работать уже новый роутер.
Для этой задачи был написан плагин Console - Save old articles aliases.