Как стать автором
Поиск
Написать публикацию
Обновить
525.79

Веб-разработка *

Делаем веб лучше

Сначала показывать
Порог рейтинга

Привет, поклонники Laravel!

Недавно состоялось обновление админ-панели для Laravel MoonShine v2.11.0 с кодовым названием “Minimal Twist”.

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

Инструкции по использованию - в PR.

Также в плейлист с гайдами по применению MoonShine добавлено несколько видео из серии tips&tricks.

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

В последнее время в MoonShine появилось много нововведений. 11 апреля в 19:00(мск) проведу прямой эфир по MoonShine на канале CutCode. Программа:

  • установка компактной темы,

  • обзор новых пакетов для MoonShine,

  • планы на MoonShine 3,

  • демонстрация нового концепта организации шаблонов,

  • еще пара интересных новостей, о которых узнаете на стриме .

Ссылка на эфир - https://www.youtube.com/watch?v=QK_79ct1m1w

Если есть вопросы - можете задать здесь.

Теги:
Всего голосов 4: ↑3 и ↓1+2
Комментарии0

Рецепт создания ИИ-ассистента, который быстро отвечает пользователям по базе знаний

Ребята из компании AGIMA AI недавно сделали для NL International бота Nelly, который умеет моментально находить ответ на любой вопрос пользователя. Работает это так: человек заходит на сайт компании, понимает, что ему нужна консультация, и пишет в чат. Тут же он получает список статей, в которых, скорее всего, найдет ответ на свой вопрос.

Если нужной статьи нет, всегда можно попросить ассистента перевести вас на оператора
Если нужной статьи нет, всегда можно попросить ассистента перевести вас на оператора

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

  • Chatwoot — интерфейс оператора с открытым исходным кодом и база знаний.

  • Rasa — фреймворк с открытым исходным кодом для создания чат-ботов.

  • Botfront — визуальный интерфейс для создания чат-ботов на RASA.

  • Qdrant — векторная база данных для хранения векторных представлений статей из базы знаний.

  • Datapipe — ETL, с помощью которого мы извлекаем статьи из Chatwoot, обрабатываем их и помещаем в Qdrant.

В результате количество запросов в поддержку, обрабатываемых чат-ботом, увеличилось с 30% до 70%. Команда контента продолжает добавлять статьи, чтобы чат-бот мог обрабатывать всё больше и больше запросов. Все подробности — в блоге.

Теги:
Всего голосов 10: ↑7 и ↓3+4
Комментарии1

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/.РФ Андрей Воробьёв.

Первым созданным в зоне .RU сайтом стал www.1-9-9-4.ru.

Теги:
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Проблема с 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.

Страница расширения.

Также поможет в работе с SSH и Joomla статья Joomla 4: мощь CLI приложений.

GitHub плагина

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

На GitHub нашли код необычной капчи. Для доступа к сайту пользователю необходимо за ограниченное время убить четырёх монстров из Doom. В окне появляется рука с пистолетом и прицел, который надо наводить на врагов. Код проекта давно не обновлялся, но он работает и открыт.

Теги:
Всего голосов 15: ↑15 и ↓0+15
Комментарии0

Прекрасный и ужасный Kubernetes

Сегодня на очереди пост по докладу Василия Мермера из Fland о кубернизации приложений. В полной версии Василий в деталях рассказывает о плюсах и минусах Kubernetes, о критериях хорошего приложения и его жизненном цикле.

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

? Помещают внутрь Supervisorctl несколько процессов.

? У каждого свои лог-файлы для разных мест.

? Состояние лежит рядом в виде файла.

Понятно, что такой катавасией невозможно управлять. Kubernetes к тому же и сложный инструмент, который нужно использовать правильно. И при условии, что разработка и эксплуатация работают вместе. Можно сказать, что разработчик и инженер едут в двухместных санях по бобслейной трассе.

Чтобы ехать хорошо и быстро, нужно правильно написать, собрать и доставить код.

? Если конвейер CI/CD построен правильно, мы успешно доедем до финиша.

? Чтобы было куда доставить код, нужен правильно приготовленный Kubernetes.

? Приложение должно быть написано в соответствии с 12 факторами:

Источник тут


? И еще 7 факторами:

  • наблюдаемость (observable);

  • прогнозируемость (schedulable);

  • обновляемость (upgradable);

  • минимальные привилегии (least privilege);

  • контролируемость (auditable);

  • защищенность (securable);

  • измеримость (measurable).

Теги:
Всего голосов 14: ↑14 и ↓0+14
Комментарии0

Вышла библиотека WT JMoodle library v.1.1.0

LMS Moodle является, пожалуй, самой известной и популярной бесплатной Learning Management System — движком для создания онлайн‑курсов. Для того, чтобы было удобно работать с данными Moodle внутри Joomla через встроенное REST API Moodle создана нативная библиотека для Joomla 4 / Joomla 5

v.1.1.0 Что нового?

  • Helper\Course. В REST API более 700 методов. Библиотека поддерживает хелперы для методов, которые позволяют проверять структуру отправляемых данных до отправки собственно запроса и тем самым не нагружать лишний раз API Moodle. Добавлены правила проверки структуры данных для методов core_course_

  • Поле списка курсов Courselist Joomla Form. Добавлено Joomla Form поле, отображающее в Joomla список курсов Moodle. Для работы поля требуется разрешённый метод core_course_get_courses и настроенные в Moodle права доступа. Поля Joomla Form позволяют легко использовать в интерфейсе своих расширений (в модулях, плагинах и т. д.) данные, получаемые из Moodle по API.

Страница расширения

Помощь в развитии библиотеки приветствуется на GitHub расширения

Расширение в Joomla Extensions Directory

Теги:
Всего голосов 4: ↑3 и ↓1+2
Комментарии0

Financial Times запустила собственного чат-бота с генеративным ИИ под названием Ask FT, который обучен отвечать на различные вопросы подписчиков издания.

Для тренировки чат-бота разработчики из FT использовали только собственные материалы, полученные из базы данных сайта издания.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

В «Яндексе» появился амбассадор интернет‑площадок в «Поиске». Его миссия — строить доверительный диалог между командой «Поиска» и представителями сайтов.

Амбассадор будет анализировать их потребности и запросы, обсуждать с ними нововведения и изменения в «Поиске», а также передавать важные мнения разработчикам для того, чтобы они могли учесть их при развитии продукта.

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

Амбассадором интернет‑площадок в «Поиске» стал Михаил Сливинский. Он занимается поисковой оптимизацией с 2008 года, а с 2017 года руководил сервисом «Вебмастер», где вместе с командой помогал веб‑ресурсам и онлайн‑магазинам следить за техническим состоянием сайтов и продвигать их в поиске «Яндекса».

Сливинский будет регулярно выступать на собственных мероприятиях «Яндекса» и на внешних конференциях, затрагивающих тематику работы с «Поиском». Также роль амбассадора предполагает личные встречи с владельцами интернет‑площадок и SEO‑специалистами. Кроме того, он будет рассматривать все нововведения в «Поиске» с точки зрения создателей контента.

Диалог с амбассадором станет для интернет-площадок удобной и действенной возможностью внести свой вклад в развитие продукта. Написать ему можно в Telegram.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Google вернула доступ к домену AI.com и перенаправляет всех посетителей на сайт ИИ-чат-бота Gemini.

Google выкупила этот домен, ранее перенаправлявший к ChatGPT. Теперь он зарегистрирован в Squarespace Domains и оплачен до 2031 года, а в контактах указан адрес электронной почты contact-registrant[@]google.com.

Ранее OpenAI некоторое время владела доменным именем ai.com, чтобы популяризировать веб-интерфейс ChatGPT. Потом там работало перенаправление на ИИ-стартап x.ai (чат-бот Grok) на правах аренды ресурса.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Фразу «Сомнительно, но окэй» от Олега Тинькова (признан в РФ иностранным агентом) в английском варианте предложили увековечить в HTTP-статусе: HTTP 267 Doubtful But Okay.

Эта идея пришла разработчику MaximAL. Публикация на GitHub.

Такой статус ответа веб-сервера или приложения означает, что параметры (URL или данные) запроса имеют сомнительную семантику (возможно, клиентом переданы противоречивые данные), но, тем не менее, запрос принят и обработан.

Теги:
Всего голосов 28: ↑16 и ↓12+4
Комментарии7

Как работать с новым сервисом для контейнерной разработки — узнайте на IT-конференции GoCloud про облака📝

Всем привет!

На прошлой неделе приглашали вас на конференцию GoCloud про облака, а сегодня расскажем про один из докладов программы.

💭Тема: Как разработать и запустить приложения с помощью сервиса Cloud.ru Evolution Container Apps

📅 Когда: 21 марта в 12:35 мск

Вы узнаете, как разрабатывать и разворачивать cloud native приложения и микросервисы с помощью serverless-технологии. А еще покажем сценарии использования сервиса Cloud.ru Evolution Container Apps при разработке full-stack и веб-приложений.

👉 Зарегистрироваться на GoCloud

Полезное в блоге:

Теги:
Всего голосов 4: ↑3 и ↓1+2
Комментарии1

5 полезных расширений VScode для работы с документацией

  1. Draw.io Integration

    Хорошо подходит для работы со сложными диаграммами: сперва можно создать диаграмму в десктопной версии Draw.io, а потом доработать ее в VScode с помощью расширения Draw.io Integration.

Создание диаграммы Draw.io с помощью расширения Draw.io Integration (иллюстрация: Rami Krispin)
Создание диаграммы Draw.io с помощью расширения Draw.io Integration (иллюстрация: Rami Krispin)
  1. Quarto

    Quarto — крутая штука для работы с документацией под R, Python, Julia и Observable. Расширение Quarto для VScode поможет редактировать и рендерить QMD-файлы. В нем есть режим предварительного просмотра, который позволяет менять код документа и одновременно просматривать результат.

  2. Jupyter

    Jupyter — один из самых популярных фреймворков для создания заметок, особенно в Python. Кстати, Jupyter классно работает вместе с документацией Quarto для Python. Расширение VScode Jupyter интегрирует заметки Jupyter в редактор VScode и поддерживает ipynb-файлы.

  3. Markdown All in One

    С расширением Markdown All in One удобно редактировать документацию в формате Markdown. Оно располагает два окна рядом: редактор кода и тут же результат.

  4. Mermaid

    Mermaid особенно полезен, если вам нужно создать структуру кодовой базы или динамическую диаграмму. В VScode есть два расширения для работы с файлами Mermaid — Mermaid Preview и Markdown Preview Mermaid Support.

Этот топ расширений составил автор этой статьи, а ее перевод читайте у нас в блоге.

Теги:
Всего голосов 15: ↑14 и ↓1+13
Комментарии2

Ближайшие события

Состоялся релиз системы для создания отказоустойчивых рабочих процессов Restate 0.8. Код проекта опубликован на GitHub под лицензией Put Restate under Business Source License от Restate Software.

Согласно пояснению разработчиков проекта, Restate отлично подходит для создания:

  • рабочих процессов типа Lambda как код (Lambda Workflows as Code);

  • транзакционных обработчиков RPC;

  • обработки событий с помощью Kafka.

В версии Restate 0.8 разработчики уделили большое внимание доработке API, учтя отзывы пользователей, чтобы уменьшить трудности при создании сервисов Restate. Также там добавлены комбинаторы промисов (Promise combinators), которые позволяют детерминированно комбинировать промисы. Например, если вы хотите дождаться вызова службы A или вызова службы B, то Restate позаботится о записи того, какой из промисов был выполнен первым, и в конечном итоге воспроизведёт этот выбор, когда это необходимо. В новой версии проекта доступны все комбинаторы стандартной библиотеки JavaScript.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Весна, TypeScript, A?.Frontend Community #6 ?

21 марта состоится уже 6-я встреча сообщества A?.Frontend, на которой мы подробно поговорим о TypeScript, сравним его с JS, определим плюсы и минусы использования. Кратко о программе.

? TypeScript: Введение в мир надежного программирования

Александр Чернов, Frontend-разработчик в Альфа-Банке, расскажет, как при помощи TypeScript сделать код надёжнее. 

? Переход на TypeScript: плавные перемены и непредвиденные сложности

Рустам Султанбеков, Middle Frontend-разработчик в Авито, поделится опытом перевода существующего приложения на TypeScript и поможет понять, стоит ли это делать. 

? Генерируй – типизируй

Александр Серов, Senior Frontend-разработчик в UULA, объяснит, как пользоваться продвинутыми возможностями TypeScript. 

? Generics – Что? Где? Когда?

Тёма Сенюков, старший разработчик интерфейсов в Яндексе, расскажет, как пользоваться Generics, чтобы избежать дублирования кода и ошибок. 

Митап пройдёт 21 марта (четверг) в 18:30 онлайн. Регистрируйтесь на митап по ссылке. Также ссылку на трансляцию мы опубликуем в нашей группе в Телеграмм, присоединяйтесь.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

7 марта 2024 года состоялся релиз Boa v0.18 — экспериментального лексера, парсера и компилятора Javascript, а также движка ECMAScript, написанного на языке программирования Rust.

Исходный код проекта выложен на GitHub под лицензией MIT License.

Новая версия Boa позволяет легко встраивать JS-движок в различные проекты, и а также использовать его из WebAssembly и командной строки.

Разработчики пояснили, что этот выпуск Boa также знаменует собой серьёзное обновление дизайна сайта проекта и появление нового логотипа.

«Поскольку Boa используется всё большим количеством проектов, важно, чтобы мы могли предоставить стабильный и надёжный API. Нам кажется, что мы ещё не достигли этого результата, но после обсуждения с командой мы решили нацелиться на выпуск версии 1.0 в ближайшем будущем. Это станет для нас важной вехой, и мы надеемся, что к тому времени у нас будет много новых функций и улучшений», — пояснили разработчики проекта.

Впервые проект Boa был представлен на конференции JSConf EU 2019 разработчиком Джейсоном Уильямсом.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Selectel UX & Research Meetup#3

14 марта, 18:30 

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

? Регистрируйтесь и подключайтесь онлайн или приходите в наш офис.

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Фишки Google Apps Script

Недавно мы выпустили большую статью про полезные фишки Google Apps Script. Делимся одним из примеров, как с помощью API-запроса можно тянуть данные из таск-трекера и CMS (у нас Bitrix) и интегрировать их в любые таблички. Пример в формате JS:

/** Функция обращения к таск трекеру по API */
function taskTrackerAuth() {


 const sourceUrl = 'https://your_taskTracker_url/rest/tempo-timesheets/4/worklogs/search';
 const options = {
   'headers': { 'Authorization': 'Basic *******************' },
   'method': 'post',
   'contentType': 'application/json',
   'Accept': 'application/json',
   /** Полезная нагрузка настраивается индивидуально, то что указано тут можно очистить */
   'payload': JSON.stringify({'from': [],'to': [], 'worker': [], 'projectKey': [], 'taskKey': [], 'filterId': [] }),
 }


 const taskTrackerResponse = UrlFetchApp.fetch(sourceUrl, options);
 const data = JSON.parse(taskTrackerResponse.getContentText());


 //Вывод сообщения о получении данных
 if (data.length > 0) {
   SpreadsheetApp.getActiveSpreadsheet().toast('Данные Timesheets получены', '(V)_O_o_(V)', 2);
 } else {
   SpreadsheetApp.getActiveSpreadsheet().toast('Данные Timesheets не получены', '(V)_O_o_(V)', 2);
 }
}

Этот запрос обращен на получение данных из таск-трекера. Если его немного переделать, можно получить запрос и в другие системы и выудить данные через API откуда угодно.

Больше примеров — найдете в статье. А еще мы много пишем про разработку в нашем телеграм-канале.

Теги:
Всего голосов 9: ↑8 и ↓1+7
Комментарии0

Состоялся выпуск Tcl/Tk 8.6.14, динамического языка программирования, распространяемого совместно с кроссплатформенной библиотекой базовых элементов графического интерфейса. Основное распространение Tcl получил как платформа для создания интерфейсов пользователя и как встраиваемый язык, при этом Tcl также подходит для быстрого прототипирования, веб-разработки, создания сетевых приложений, администрирования систем и тестирования.

Исходный код проекта распространяется под лицензией BSD.

Основные изменения в Tcl/Tk:

  • приведена к кроссплатформенному виду нормализация файловых путей и обработка символа "~" в путях;

  • имя пути, начинающееся с '//' не замещается через '/' в том числе в Cygwin и в QNX;

  • разрешён пустой режим в [chan create] ("[chan create {} $cmd]") для разрешения refchan версии [socket -server];

  • повышена производительность fork при использовании многопоточности с помощью vfork/spawn;

  • обеспечен вызов getsockname(2) в Tcl_MakeFileChannel(3) только тогда, когда это необходимо;

  • защита Tcl/tclsh усилена с помощью функции pledge(2) в OpenBSD или похожих механизмов;

  • tcltest адаптирован для поддержки Tcl 9 (>= tcltest 2.5.7);

  • обеспечено применение замещающего символа при декодировании неполных последовательностей Unicode;

  • из win/makefile.vc убрана опция utf16;

  • zlib обновлён до версии 1.3.1;

  • libtommath обновлён до версии 1.2.1;

  • install-sh обновлён до версии 2020-11-14.01;

  • добавлена поддержка Unicode 15.1;

  • в "[interp limit time -seconds]" решена проблема 2038 года.

Источник: OpenNET.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Вышел JoomGallery JUI 3.7.0-rc1 и JoomGallery 4.0.0-alpha2

JoomGallery - один из старейших и популярнейших компонентов галереи изображений для Joomla. В 2016 году основная команда разработчиков перестала его поддерживать. Компонент подхватили 2 энтузиаста и стали выпускать небольшие обновления, а затем начали подготовку перевода компонента на архитектуру Joomla 4. Работа длится долго, но не останавливается.

Версия 3.7.0 - промежуточный релиз, подготовка к переходу на JoomGallery 4.0. Добавлены проверка и исправление алиасов и структуры папок. JoomGallery 4.0.0-alpha2 - предназначен для Joomla 4 и Joomla 5, находится в активной разработке.

По словам тех, кто знакомился с новым кодом подробнее - по сути это новый компонент, который весьма сильно отличается от старого JoomGallery, так как изменилась структура базы данных. Поэтому это будет не обновление, а миграция. На странице с инструкцией по миграции представлены видео, описывающие 2 сценария: новую установку на Joomla 5 и обновление с предыдущей версии. Минимально необходимая версия JoomGallery для обновления до 3.7.0 - 3.6.2.

Как и любому Open Source проекту, JoomGallery нужна помощь: отладка, поиск ошибок, внятное их описание, тестирование разных пользовательских сценариев. Ну и конечно помощь в написании кода. Присоединиться можно на GitHub.

Сайт проекта JoomGallery firends Инструкция по миграции Репозиторий GitHub JoomGallery для Joomla 4+

Также добро пожаловать в Telegram-чат Joomla-сообщества

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Вклад авторов