
В этом уроке расскажу как можно использовать n8n (платформу для автоматизации рабочих процессов) в связке с api2app. Создам виджет чата с ИИ для встраивания на сайт. У n8n есть свой виджет для встраивания, но возможностей кастомизации маловато.
Делаем веб лучше
В этом уроке расскажу как можно использовать n8n (платформу для автоматизации рабочих процессов) в связке с api2app. Создам виджет чата с ИИ для встраивания на сайт. У n8n есть свой виджет для встраивания, но возможностей кастомизации маловато.
Привет, Хабр!
Я начинал изучать вёрстку в 2010 году. Я не знал английский, поэтому у меня был ограниченный набор материала. Кто помнит видеоуроки Попова?
Хорошо, что сейчас ситуация уже лучше. В целом можно найти очень классные статьи, видео и бесплатные курсы. Но и мне есть что сказать!
Я собрал несколько советов. По моей задумке, если вы обратите внимание на эти аспекты, то ваш код будет лучше.
Давайте посмотрим, что я вам подготовил.
В двух словах: интернационализация — это не только перевод текста. Она включает в себя форматирование дат, правильное образование множественного числа, сортировку имен и многое другое с учетом конкретных локалей. Вместо тяжелых сторонних библиотек современный JavaScript предлагает Intl API — мощный встроенный инструмент для работы с i18n. Еще одно напоминание о том, что веб действительно глобален.
Существует распространенное заблуждение, что интернационализация (i18n) сводится лишь к переводу интерфейса. Перевод, конечно, важен, но это лишь одна из частей. Настоящая сложность — в адаптации информации под культурные особенности.
Как обрабатывать миллионы строк в PHP и не убить память?
Всё просто: генераторы и итераторы. Покажу, как ленивые вычисления экономят ресурсы, ускоряют код и упрощают работу с большими данными. С примерами, бенчмарками и разбором изнутри.
Всех приветствую! Я Артём Седых, ведущий разработчик команды банковского сопровождения. Нашему cервису уже 8 лет, 16 разработчиков, бэкенд - монолит на PHP. В данном наборе статей расскажу про наш опыт разработки альтернативы pinba и внедрения гибкой системы мониторинга бэкенда в легаси проекте с возможностью увидеть всю систему как на ладони и понять, почему именно проседают определенные экшены. Узнать о замедлении работы не в письмах и звонках от пользователей, а автоматически и прозрачно. На конкретных примерах дашбордов графаны покажу как обнаружить типичные проблемы экшенов, запланировать оптимизацию и даже предсказать снижение производительности.
Просто хочу строить свой DOM из своих кирпичей.
С преферансом и поэтессами...
Что мне это даст:
• мне больше не нужны подписки, могу просто знать, что какое-то свойство изменилось
• могу устраивать коммуникации с нодами на своё усмотрение
• стандартную логику вообще не трогаю и не мешаю ей
Если вы хоть раз работали в стартапе или команде с неопытным менеджером, то знаете этот особый вид утреннего кофе. Ты садишься за рабочий стол, открываешь чат, и ещё до первого глотка узнаёшь: "Всё отменяем! Срочно делаем вот это!"
Привет! Я — Александр Дудукало, автор базового курса по JavaScript. В этой статье мы продолжим изучение работы с данными в JavaScript. Если в прошлом материале мы говорили о массивах, то теперь пришло время познакомиться с объектами. Я расскажу, как они помогают эффективно организовать и обрабатывать связанные данные. Подробности под катом!
WSL2 — удобный инструмент, но, как и любая технология, он не идеален. В этой статье я хочу рассказать о нескольких подводных камнях, с которыми столкнулся сам, и о том, как их можно обойти. Мы не только разберем решения распространенных проблем, но и раскроем потенциал WSL2: запустим Docker с GPU-ускорением для нейросетей и даже Android Studio. Забудьте о конфликтах сред и долгой настройке после переустановки системы — превратите WSL2 из источника проблем в мощный инструмент, который работает на вас
В B2B-системах и корпоративных интерфейсах фильтры — не «приятный бонус», а спасательный круг в работе пользователя. Когда у вас таблица на 10 000 строк и 100+ колонок, обычным поиском или сортировкой не обойтись. Тут уже нужны сложные фильтры: с несколькими условиями, каскадными зависимостями, сохранёнными пресетами и продуманной логикой применения.
В этой статье разберём, как подойти к проектированию таких фильтров с точки зрения дизайнера: что спросить у фронтендера и бэкендера, какие ограничения учесть заранее и как сделать так, чтобы фильтр реально помогал работать, а не превращался в ещё одну головную боль.
Одним из ключевых преимуществ этого пользовательского хука является его простота. Вы можете использовать его для хранения данных любого типа, таких как строки, числа или даже сложные объекты, всего с помощью нескольких строк кода. Кроме того, useStorage выполняет сериализацию и десериализацию данных за вас, поэтому вам не нужно беспокоиться о преобразовании значений в JSON и из него.
В современных приложениях централизованная аутентификация и авторизация играют ключевую роль в обеспечении безопасности и удобства пользователей. Именно с такой задачей мы столкнулись в компании NAUKA при создании "Платформы" — экосистемы, предназначенной для функционирования наших решений и разработки собственных прикладных приложений. В качестве основного компонента системы аутентификации и авторизации был выбран Spring Authorization Server.
Настоящая статья - это небольшой практический обзор реализации SSO-сервера на основе технологии Spring Authorization Server с акцентом на решении типовых проблем, которые возникают при её использовании в реальной системе. Мы рассмотрим как технические детали, так и архитектурные решения, которые помогут создать надежный и масштабируемый сервер авторизации.
Этот вопрос интересовал меня настолько давно, что за прошедшие годы даже стал как-то про него забывать. И не то, чтобы меня это прям как-то сильно интересовало, но всё же лучше понимать назначение было бы приятно.
И, ведь, ну в самом деле, подумаешь, ну может разработчику хочеться вернуть не эземпляр, не instance, а какой-нибудь другой объект, и зачем-то при этом ему нужен именно вызов конструктора. Ну, допустим, он хочет чтобы new.target
был заполнен и т.п., ну, мало ли какие варианты зачем-то иметь возможность в противном случае вернуть объект. Или может он хочет асинхронных конструкторов и вернуть new Promise, где уже в resolve
передать this
как вариант для создания await new MyConstructor
. Или может быть хочет вернуть Proxy
над this
для отслеживания операций с этим экземпляром. В общем есть всякие разные причины когда гуманно было бы иметь этот "сахар", но всё же, может быть есть что-то, что иначе никак не сделать? И, самое важное, что эта функциональность былв всегда, с самой первой версии же. Понятно, что может быть про это вообще не думали, просто делали "как привычно". И, да, функции-конструкторы, в отличие от class-ов
можно вызвать без new
и в те времена никаких классов в JavaScript не было конечно, и return
объективно был нужен, но может быть есть какие-нибудь варианты когда и с new
имеется глубокий практический смысл уже и тогда существовали, то есть может быть назначение операции возврата иного значения конкретно у конструкторов вполне себе приемлемое. И, да, конечно, конструкторы не возвращают примитивы, но может быть и для объектов есть какое-то применение тоже находилось бы, ну, вдруг, внезапно, может быть ...
Я начал пользоваться платформой Linear пару месяцев назад. То, с чем я столкнулся, затянуло меня в кроличью нору деталей local-first-разработки (локально-ориентированной разработки), которые изменили мой взгляд на веб-приложения.
Тренд 2025 года: в некоторых бигтехах кандидату дают сложную задачу и разрешают пользоваться ChatGPT.
Мол, мы же всё равно работаем с ИИ, давайте проверим, как кандидат с ним ладит.
Звучит прогрессивно, на деле - странновато. Если смотреть глубже — это далеко не первый случай, когда компании увлекаются "модными форматами собеседований".
И далеко не всегда это заканчивалось хорошо.
Это продолжение нашей истории. Во второй части показываем, как подружить Portainer и Docker Swarm, чтобы деплоить аккуратно и без docker service update
. Один шаблон пайплайна, dev/prod окружения, и уведомления в Telegram -- всё максимально просто.
В итоге получается рабочий до безобразия простой CI/CD для маленькой команды. Подойдёт, если для Кубера слишком рано и слишком дорого. В конце ждет ссылка на репозиторий со всем шаблоном.
После первой статьи было выявлено несколько недостатков такой инфры, их мы тоже описали
Привет! Хочу поделиться с тобой опытом перехода от Feature-Sliced Design к Clean Architecture во фронтенде. Почему я считаю Clean Architecture более подходящей для сложных приложений, и как она решает проблемы, с которыми ты точно сталкивался.
Если ты используешь FSD и тебе уже больно или до сих пор пишешь всю логику в компонентах React — эта статья точно для тебя.
Свойство CSS corner-shape
— это одно из самых захватывающих нововведений в геометрический инструментарий веб-дизайна за последние годы. Оно расширяет наши возможности по управлению внешним видом углов, выходя за рамки привычных скруглений с помощью border-radius
. Это на первый взгляд небольшое дополнение открывает целый мир новых возможностей, которые раньше требовали сложных реализаций на основе SVG или решений с использованием изображений.
Привет, друзья!
В этой серии статей я делюсь с вами своим опытом решения различных задач из области веб-разработки и не только.
Другие статьи серии:
DevOps Tutorials — Ansible: разворачиваем веб-приложение на виртуальном сервере
DevOps Tutorials — Terraform: создаем виртуальный сервер в облаке
В предыдущих статьях мы рассмотрели настройку сети и создание виртуального сервера Ubuntu Linux в Yandex Cloud с помощью Terraform и деплой Angular+Java веб-приложения на этом сервере с помощью Ansible. В этой статье мы научимся разворачивать JavaScript+Go веб-приложение в кластере Kubernetes.
Интересно? Тогда прошу под кат.
Привет, Хабр!
Сергей Пантелеев и Данил Щуцкий собрали ключевые новости PHP и Laravel за июль. Будьте в тренде — читайте обзор! 🚀