Привет, Хабр! Недавно я представил вам Vue DnD Kit — библиотеку для создания интерфейсов с перетаскиванием в Vue 3. Сегодня хочу рассказать о новом пакете vue-dnd-kit/components, который значительно упрощает разработку сложных drag & drop интерфейсов.Важно: Эта публикация — краткая новость о выходе пакета компонентов. Для полноценных примеров и подробной документации рекомендую перейти на официальный сайт документации.⚠️ Статус проекта: Пакет находится в активной разработке (бета-версия). A…
Кликджекинг (подделка UI) — известный приём обмана пользователей интернета, когда поверх видимой страницы располагается невидимый слой, куда загружается фальшивка. То есть пользователю кажется, что он вводит пароль на доверенной странице, но на самом деле вводит его в стороннюю форму, которая принадлежит злоумышленнику. В последние годы его риск значительно снизился, потому что все браузеры по умолчанию запретили межсайтовые куки, в то время как самые опасные варианты использования требуют а…
Предыдущая статья с подборкой моделей для русскогоdraw a cat which choosing LLM modelВсе модели из списка были проверены мной лично и ведут себя именно как написано. Мой компьютер оборудован 64ГБ оперативной памяти. По расчетам, для запуска на GPU нужны именно две видеокарты RTX 3090 с 24 ГБ видеопамяти на каждой на одном компе: llama.cpp в cortex.so должна подцепить их автоматически и использовать их память совместно (ссылка).1. Модель для Supervisor агентаЛучше всего для целей оркестрации роя…
История о том, как боль от «телепортов» в GPS‑треках, платных зон и неудобного создания файлов для Garmin привела к рождению pet‑проект а, который немного вышел из-под контроля. Разбор стека, подводных камней и немного партизанского кодинга. Приветственная страницаВсем привет! Меня зовут Александр, я разработчик и, как многие в IT-сообществе, увлеченный велосипедист. Strava для меня — основной инструмент для отслеживания прогресса, но с годами я стал все чаще натыкаться на мелкие «но», которые …
Тут я расскажу о том, как я впервые с нуля поднимал проект на React, используя связку FSD, TanStack Router, TanStack Query и Effector — и как мы всё это далее подружили подружили или нет.Сразу оговорюсь:Проектом занимается команда из 4х разработчиков, но архитектурный старт, выбор технологий и базовая структура — легли на меня. Это был мой первый опыт в такой роли: отвечать не просто за компоненты или страницы, а за фундамент проекта.А так же, это моя первая статья. Не претендую на истину в пос…
В этой статье я планирую исследовать, как можно использовать большие языковые модели (LLM) для миграции проектов между различными фреймворками. Применение LLM в задачах на уровне репозитория — это развивающаяся и всё более популярная область. Миграция кода со старых, устаревших фреймворков на новые является одной из ключевых задач в крупных корпоративных проектах.АктуальностьМиграция проектов на новые фреймворки становится всё более актуальной по мере быстрого развития технологий и изменяющихся…
Инициализация проекта на express и установка требуемых библиотек::npm init -y npm i express body-parser jsonwebtoken nodemon dotenv pg argon2 cookie-parserМеняем в package.json: нужно добавить type и скрипт dev "main": "index.js", "type": "module", "scripts": { "dev": "nodemon app.js" },Создаем app.js в корневой папкеБазовая структура проектаСкачиваем Prisma и инициализируем её через консоль:npm i prisma @prisma/client npx prism…
изображение сгенерировано в ChatGPTВ типографике существует понятие “висячих слов” — это короткие слова (предлоги, союзы, местоимения), которые остаются в конце строки при переносе текста. Такие переносы нарушают удобочитаемость и эстетику текста. В русской типографике принято избегать переносов после коротких слов длиной 1-2 символа.Решение проблемы с помощью JavaScriptДля автоматического предотвращения переносов после коротких слов можно использовать JavaScript, который заменяет обычные пробе…
🧩 ВведениеЕсли вы работаете с Vue 3, вы точно сталкивались с ref() и reactive(). Обе функции из Composition API делают значения реактивными — но делают это по-разному. И хотя документация Vue чётко указывает, что использовать в каком случае, она редко объясняет, почему это важно и что может пойти не так, если использовать не тот инструмент.Вот ссылки на официальную документацию — на всякий случай:🔗 ref() — vuejs.org🔗 reactive() — vuejs.orgВкратце:ref() возвращает обёртку со свойством .value, в …