Обновить
256K+

JavaScript *

Прототипно-ориентированный язык программирования

257,88
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

JavaScript. Как сделать невероятно быстрый многопоточный Data Grid на 1 000 000 строк. Часть 2/2: работа с потоками

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели12K

Demo | GitHub

Особенности Fast Data Grid:
— Невероятно быстрый
— Многопоточный
— Всего 523 строчки кода
— Нет зависимостей
— Vanilla JavaScript

Попробуйте скролл и поиск по 1 000 000 строк — Fast Data Grid.

В статье расскажу про работу с потоками.

Читать далее

Создание Умной Документации на основе Встраиваний OpenAI (Деление на фрагменты, Индексация и Поиск)

Время на прочтение8 мин
Охват и читатели2.1K

Всем привет! Хочу поделиться своим подходом к созданию чат-бота с функцией «умной документации» для проекта, над которым я работаю. **Я не являюсь экспертом в области ИИ, поэтому любые предложения и улучшения приветствуются!**

Цель этой статьи — **не** создавать очередной туториал по сборке чат-бота с OpenAI. Таких материалов уже достаточно.

Вместо этого я расскажу, как **индексировать документацию**, разделив её на **удобоваримые фрагменты**, создать для них **векторные представления (эмбеддинги)** с помощью OpenAI и выполнять **поиск по схожести**, чтобы находить наиболее релевантную информацию по пользовательскому запросу.

В моем случае документация представлена файлами в формате Markdown, но это может быть любой текст, объект базы данных и т.д.

---

## Зачем?

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

Такой ассистент может использоваться в разных сценариях:

- **Быстрые ответы на частые вопросы**

- **Поиск по документации как в Algolia**

- **Помощь пользователям в навигации по документации**

- **Анализ пользовательских вопросов и хранение их для анализа**

---

## Краткое содержание

Ниже приведены три основные части решения:

1. Чтение файлов документации

2. Индексация документации (разбиение, перекрытие, эмбеддинги)

3. Поиск по документации и интеграция с чат-ботом

---

## 1. Чтение файлов документации

Вместо того чтобы жестко прописывать текст, вы можете просканировать папку и найти все `.md` файлы с помощью `glob`.

Читать далее

Почему JS (и TS) это плохой язык

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели32K

Я знаю, что на эту тему уже было сказано много, но настал мой черед. На JS я пишу больше 10 лет, так что терпел я достаточно. Мы называем это “джаваскрипт”, но под капотом скрываются три разные сущности: EcmaScript, среда исполнения и экосистема. Иногда о них стоит говорить отдельно, но сегодня я хочу обсудить всё сразу и объяснить, почему джаваскрипт — это плохой язык. Не в смысле “не работает”, а в смысле “заставляет страдать”.

Читать далее

Cookie Store API

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели3.8K



До недавнего времени программный доступ к куки в браузере осуществлялся через API document.cookie — простой строковый геттер/сеттер. Для получения одного файла куки приходилось разбирать всю строку вручную и преобразовывать ее в удобный формат. А чтобы записать куки, нужно было сначала сформировать структурированные данные, затем сериализовать их в строку и только после этого присвоить значение document.cookie. Разработчики часто используют популярные библиотеки, например js-cookie, которые делают работу с куки гораздо удобнее.

Читать дальше →

Альтернатива Zod размером 1 КБ

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели7.4K

19 марта 2025 года вышла стабильная версия Valibot — библиотеки для валидации данных в JavaScript/TypeScript. Разработанная как альтернатива популярному Zod, она сочетает минималистичный дизайн с мощными возможностями.

В этой статье мы сравним Valibot и Zod по трём ключевым параметрам: синтаксису API, размеру библиотеки и скорости работы. Вы узнаете, чем эти решения отличаются друг от друга и почему стоит использовать специализированные инструменты валидации входящих данных.

Читать далее

Сигналы, роутинг, реактивность, Fusor приложение

Время на прочтение2 мин
Охват и читатели2K

В этом посте я опишу, как настроить современную маршрутизацию и использовать Signals для реактивного отключения выбранных ссылок.

Читать далее

Как улучшить UX в PWA на React с помощью потокового Backend-Driven UI — личный опыт

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели3.7K

Хочу показать три приёма, как можно ускорить загрузку интерфейсов с Backend-Driven UI и улучшить UX. Решения показали хорошие результаты на демо-версии, но увы, пока ещё не внедрены в реальный проект. Было бы интересно обсудить с вами, как эти приёмы могут помочь в боевых задачах и что ещё можно улучшить.

Читать далее

5 идей для accessibility-тестов, которые можно автоматизировать уже сегодня

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели1.9K

В предыдущей статье рассмотрели, как быстро настроить Cypress и axe-core для запуска автоматических тестов доступности (подробнее здесь).

Теперь время перейти к практике. Какие именно проверки стоит автоматизировать в первую очередь? На каких ошибках доступности можно поймать проблемы ещё до выхода на продакшн?

В этой статье — 5 простых, но эффективных идей для автоматизированных accessibility-тестов, которые помогают системно повышать качество интерфейсов при минимальных затратах.

Читать далее

Как мы перевели аналитику внутренних сервисов Авито на собственное решение

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели8.5K

Привет всем! Меня зовут Антон Галич, я фронтенд-инженер в департаменте разработки Analytics Platform в Авито. В этой статье я рассказываю историю о том, как мы перевели аналитику для внутренних сервисов компании на нашу собственную платформу, отказавшись от стороннего решения Amplitude.

Читать далее

CI/CD для чайников — разберитесь и начните автоматизировать рутину в разработке. Часть 3. Его величество, деплой

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели26K

Пишу про полезные материалы про IT, и собираю свой ламповый нетворкинг тут - https://t.me/+434aQiGpZtAyNTU6. Присоединяйтесь!

Оглавление.

Читать далее

Пробуем Junie от JetBrains на реальной задаче (или как я попал в рассказ Азимова)

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели35K

JetBrains зарелизил новую версию своего AI-ассистента и вместе с ним Junie - автономного нейросетевого агента-программиста, которому можно поручать небольшие рабочие задачи.

Буквально вчера я получил к нему доступ и не смог не воспользоваться возможностью. Я даже не представлял...

насколько это весело.

О странностях Javascript

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели21K

"JavaScript отстой, потому что '0' == 0!"

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

Вместо этого я хочу поговорить о более странных особенностях JavaScript — о таких, которые гораздо более коварные, чем эта ☝️ - о вещах, которые вы не найдете ни на r/ProgrammerHumor, ни в обычном учебнике по JavaScript.

Все эти странности могут возникнуть в любом окружении JavaScript/ECMAScript (будь то браузер, Node.js и т.д.), с режимом use strict или без него. (А если вы работаете над легаси-проектами без строгого режима, вам следует срочно подумать о смене работодателя).

Читать далее

Паттерны проектирования Composable в Vue

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели9.6K

Если вы уже освоили основы написания Composable в Vue, то следующий шаг — собрать коллекцию лучших и самых полезных паттернов, расширив свой инструментарий для решения задач. В этой статье мы рассмотрим семь различных паттернов для написания более эффективных Composable.

Читать далее

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

React vs Vue – подробное сравнение и перспективы

Уровень сложностиСредний
Время на прочтение46 мин
Охват и читатели55K

В этой статье мы проведём подробный анализ современных практик frontend-разработки, сравним состояние React и Vue 5 лет назад и на текущий момент, а также попробуем спрогнозировать их перспективность в обозримом будущем с учётом развития LLM моделей и AI агентов. Посмотрим их экосистемы (Next.js и Nuxt, Redux и Pinia), использование в бэкенде, популярность решений в энтерпрайзе, а так же понимание разработчиками и LLM моделями.

Читать далее

Приемы, шаблоны, утилиты Typescript: Циклы, счетчики, шаблоны строк разной длины

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели2.2K

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

Старался сделать доступным для широкой аудитории.

Хотите знать больше?

«Danil OS» или локальные веб интерфейсы

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели2.9K

Эта статья расскажет о моём эксперименте по оптимизации моего рабочего пространства в macOS.

Примерно 10 лет назад я придумал одну идею — канбан-рабочий стол. Я понял, что иконки на рабочем столе были крутыми… в 1984 году. и втом числе поэтому 1984 не был как 1984) Но камон, за 40 лет кроме виджетов почти ничего не изменилось. Марк…

10 лет назад, узнав о системе канбан, я начал пользоваться Illustrator’ом и рисовал себе 4 колонки прямо на рабочем столе. Поверх них размещал стандартные стикеры, полностью отключив иконки рабочего стола.

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

Во-первых, Plash — программулька, которая ставит Chrome вместо бэкграунда.
Я также сделал на Python с FastAPI и Jinja и запустил себе уже настроенный канбан-рабочий стол.

Но как вы понимаете, на этом дело не кончилось.

Гуляя по интернету, я нашёл несколько исходников с открытыми лицензиями, которые я использовал в своём проекте.

Читать далее

Определение bpm (beats per minute) в браузере

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели2.5K

Когда-то я занимался спортивными парными танцами. Часто на тренировках была необходимость узнать темп (или скорость, если немного подушнить насчёт терминов) играющего трека, который измеряется в «ударах в минуту» (beats per minute, bpm)

Спортсмены используют для этого разные сайты/приложения, где нужно пальцем «протапать» ритм. Я и сам таким пользовался, но однажды я задался вопросом — смогу ли я сделать браузерный сервис, который сможет определять bpm из записанного через микрофон аудио

Эта статья как раз о том, как я его сделал

Я не буду вдаваться в тонкости реализации непосредственно UI: у меня уже был на момент начала разработки пет-проект на React, и сервис я решил делать на базе него.

Читать далее

Тень уязвимости: fake exploit как зеркало реальных техник

Уровень сложностиСложный
Время на прочтение6 мин
Охват и читатели2.1K

Я пишу о том, как создала fake exploit за 7k $ - фейковая уязвимость, которая не наносит вреда, но выглядит как реальный эксплойт. Это не просто пранк, а образовательный инструмент, позволяющий понять структуру эксплойтов, изучить уязвимости и их демонстрацию. Рассматриваются out-of-bounds write, JIT spray, а также показывается, как можно создавать видимость опасных действий, не причиняя реального ущерба. 

Читать далее O_0 ...

Full-stack в аналитике: почему это будущее Data Science?

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели14K

Привет.

Представьте: вы запилили нейросеть, которая определяет котиков на фото с точностью 99.9% (оставшиеся 0.1% — это когда хомяк притворяется котом). Воодушевлённый результатом, бежите к руководству — а там оказывается, что:

Читать далее

Честная цена за кг/литр

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели23K

Всем привет! Меня зовут Паша и возможно вы уже пользуетесь моим расширением Ave blacklist для блокировки продавцов спамеров на авито. Но сегодня не об этом.

Больше года назад Кабинет министров не поддержал законопроект с ценой за килограмм или литр, новость была на Пикабу в том числе

Что ж, Кабинет министров не поддержал, а я поддерживаю двумя руками!

И написал расширение для браузеров для расчета цена за единицу измерения на сайтах доставок еды - заКило (chrome, firefox)

Мог бы научить и в офлайн магазинах цену за единицу измерения считать, но кто бы меня спрашивал :D

Читать далее