Как стать автором
Обновить
151.81

JavaScript *

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

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

Интеграция Поиска в Strapi: Meilisearch vs. Elasticsearch

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

Всем привет! На связи Геворг, фронтенд техлид Work Solutions. Сегодня расскажу про интеграцию поисковых сервисов Meilisearch и Elasticsearch в Strapi.

Strapi — это популярный open-source фреймворк для разработки серверов, а также создания гибких API. Однако, встроенные средства поиска могут быть ограничены. Разработчики могут искать способы интеграции с внешними поисковыми системами. Две такие системы — Meilisearch и Elasticsearch. Они предоставляют возможность реализации полноценного поиска в проектах.

В статье рассмотрим, как интегрировать эти системы, сравним их особенности, определим, для каких задач подходят. Примеры рассматриваются для strapi v3. Однако информация также актуальна для v4 с некоторыми незначительными различиями в интерфейсах взаимодействия.  

На сайте компании можно посмотреть как работает поиск Meilisearch в Strapi в продакшне. Там же делимся особенностями реализации поиска в нашем блоге. Подробно сравниваем Meilisearch и Elasticsearch, способы их реализации, демонстрируем ограниченность встроенного поиска.

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

11 полезных фичей Chrome DevTools

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

Всем привет!

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

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

Погнали!

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

Обновление #Net chromium

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров2.2K

Добрый день. Меня зовут Тимур и я программист.

В прошлой своей статье я рассказал (довольно сумбурно) про свою сборку хромиума которая претендует на то что бы быть важным кирпичиком в web3.0. Продолжаю серию сумбурных статей, я обновил ветку до 122.0.6248.1 билда и выложил уже собранный бинарник (пока только под macOS, винда на подходе)

Скачать бинарь можно по адресу http://172.86.96.172/downloads/hash-net.dmg

Это все еще обычный хромиум, с ним можно спокойно серфить как по обычному интернету так и по #Net. Но для начала нам его нужно немного поднастроить.

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

Более правильный подход к подключению Yandex AppMetrica в React Native приложении

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.2K

Самостоятельно ставим Yandex AppMetrica в React Native приложение без каких-либо сторонних npm'ных библиотек.

Посмотрим как поставить нативно аппметрику, также напишем два нативных модуля для получения доступа к методам аппметрики.

Гайд ориентирован на React Native разработчиков, которые не могут найти нормальное решение для подключения аппметрики.

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

Стриминговый сервис, чат-бот и стартап — за какие проекты можно получить стипендию Selectel

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


Личные проекты бывают разными: кто-то пишет собственную JS-библиотеку, кто-то создает IT-компанию, а кто-то помогает команде выигрывать гонки (и такое бывает). В этом тексте мы расскажем про пять интересных проектов от студентов, которые выиграли стипендию в Selectel Career Wave.
Читать дальше →
Всего голосов 24: ↑22 и ↓2+27
Комментарии0

Ладья на XSS: как я хакнул chess.com детским эксплойтом

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров29K

Шахматы – это одно из многих моих хобби, за которыми я провожу свободное время, когда не ковыряюсь с какой-нибудь электроникой. При этом играю я так себе, и когда мне изрядно надоело проигрывать, я решил заняться тем, что у меня получается гораздо лучше… хакнуть систему!

В этой статье я расскажу о том, как использовал свои знания по кибербезопасности для обнаружения XSS-уязвимости (Cross-Site Scripting, межсайтовый скриптинг) на крупнейшем шахматном сайте интернета со 100 миллионами участников – Chess.com. Но для начала небольшое вступление (в котором будет затронута немного менее серьёзная, но достаточно занятная, уязвимость OSRF (On-site Request Forgery, подделка запросов на сайте).
Читать дальше →
Всего голосов 78: ↑76 и ↓2+99
Комментарии14

Утечки памяти, которые не утечки

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров20K

Что случилось? Авария, ужас-ужас

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

В один прекрасный день боевое сопровождение приходит с ужасной проблемой — память в контейнерах Node.js течёт, сервисы падают с OOM каждый день, все пропало!

Да, картинка действительно удручающая. Всё время, когда есть нагрузка, память в контейнере прирастает и почти не очищается при снятии нагрузки. Все остальные метрики, которые мы собирали были в норме: event loop lag, использование CPU, active request, open handles. Прирастала только используемая память и незначительно увеличивалось время отклика сервиса.

Что-ж, выглядит как классическая утечка, надо искать источник.

Читать далее
Всего голосов 95: ↑94 и ↓1+106
Комментарии15

Как подключить Google Analytics к Telegram боту?

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

Существует множество способов отслеживать активность пользователей Telegram бота. Многие разработчики предпочитают создавать собственные решения. В данной статье я попытаюсь по пунктам объяснить, как можно использовать всем известный сервис Google Analytics для отслеживания действий пользователей вашего Telegram бота.

Для примера я буду использовать свой бот для автоматической проверки и исправления текста на английском языке. Бот представляет собой ни что иное, кроме как обертку для одного из GPT сервисов. Поскольку база данных при этом не используется, использование Google Analytics для учета пользователей выглядит оптимальным вариантом. Поехали: 

Читать далее
Всего голосов 4: ↑2 и ↓20
Комментарии1

Добавление оффлайн карт с open street map (osm) на web страницу

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров3.9K

Задался я как-то вопросом собрать GPS-ошейник для шерстяного спутника моей жизни, дабы этот кракен сухопутный мог бороздить лесные просторы без особого ущерба для моей нервной системы. Собрать саму “шайтан-машинку” планирую на двух ESP32, двух GPS-модулях NEO-6M и Lora-модулях E22 для дальней связи, чтобы работало везде, всегда и безотказно.

Пока имею тестовый стенд без Lora, но так как они занимают не самую основную роль, можно и протестировать. Однако, чтобы отображать карту в веб-интерфейсе, нужны глубокие познания и магические способности властелинов кода, которых у меня нет. Поиски в глобальной сети дали смутное и не особо понятное представление о том, как я могу это сделать, так как написаны сложными буквами и страшными словами.

И вот, я решил поделиться тем, что нашёл, вразумил и применил.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии19

Event Loop. Мифы и реальность

Время на прочтение19 мин
Количество просмотров16K

В сети есть довольно большое количество публикаций про Event loop и как он работает. Новые статьи появляются на популярных ресурсах и по сей день, в том числе на Хабре. Однако, к сожалению, далеко не вся информация, представленная в этих материалах является проверенной или достоверной. В связи с чем, само понятие обросло рядом мифов и догадок. Порой, даже опытному разработчику требуется немало внимания и опыта, чтобы понять, где истина, а где, чистой воды, вымысел.

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

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

Переход с Vue-CLI и Webpack на Vite: ускоряем разработку Vue 3

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров8.3K

Одним из новых инструментов в арсенале Vue 3 является Vite - быстрый и легковесный бандлер, который значительно упрощает процесс разработки и ускоряет сборку проекта. В этой статье мы рассмотрим, как перейти от стандартного подхода с использованием Vue-CLI и Webpack к более продвинутому и эффективному методу работы с помощью Vite.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии12

Визуализация алгоритмов поиска пути на Svelte: Практические заметки

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров2.8K

Привет, Хабр! В этом посте делюсь опытом разработки на Svelte, демонстрируя это на моем пет-проекте.

Код проекта: GitHub
Лайв демо: ivan-sem.com

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

Zod умер. Да здравствует ajv-ts

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

TLRD: zod не подходил в проекте и решили сделать свой builder с помощью ajv в zod-like API. Поскольку гугление не показало никаких вменяемых результатов - было решено сделать свои костыли решения.

Если стало интересно - прошу под кат!

стало интересно, посмотрим что там!
Всего голосов 7: ↑5 и ↓2+5
Комментарии12

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

React-lens — эффективное управление состоянием в приложениях в ReactJs

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

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

Читать далее
Всего голосов 4: ↑2 и ↓2+2
Комментарии13

Next.js App Router. Опыт использования. Путь в будущее или поворот не туда

Время на прочтение8 мин
Количество просмотров7.2K

Два года назад команда Next.js представила новый подход к роутингу, который должен был стать заменой так называемому Pages Router, вместе с тем добавив ряд принципиально нового функционала.

Практически в каждом релизе я находил множество полезного и нужного как для личных проектов, так и для коммерческих. Тем не менее, 13-ю версию я обошёл стороной для коммерческих проектов, так как функционал показывал себя крайне нестабильным и недостаточным. Однако, сейчас этот функционал перенесён в категорию стабильных, App Router считается основным, а Pages Router скорее поддерживаемым для обратной совместимости и постепенного перехода.

Next.js сделал крупный шаг, взяв на себя ответственность за кеширование и работу с запросами, добавив серверные компоненты, введя параллельные и перехватываемые роуты, а также ряд других абстракций. В этой статье речь пойдёт о причинах этого шага, возможностях, проблемах и личном мнении - был ли этот шаг в будущее или же это шаг прямиком в яму.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии31

Symbiote.js VS LitElement

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

Мотивация разработчиков библиотек и фреймворков для фронтенда может быть разной. И если вы, являясь таким разработчиком, хотите работать не “в стол” а с расчетом на какое-то признание и пользу для индустрии, вы должны четко понимать, что именно и зачем вы делаете. Если вы хотите сэкономить пользователям пару килобайт трафика или пару миллисекунд отклика - вам будет очень тяжело доказать миру, что ради этого стоит выбрать именно ваше решение. Люди выберут размер комьюнити, богатую экосистему и крупного вендора. Ваш набор аргументов должен быть достаточно веским, чтобы обратить на себя внимание. Сейчас я попытаюсь доказать, что при наличии такого решения как LitElement от гиганта индустрии Google, имеет смысл посмотреть в сторону Symbiote.js.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии16

Cache API — кэшируем данные на стороне клиента

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

Cache API - сравнительно старый API для управления хранилищем кэша, доступный уже во всех современных браузерах и являющийся частью ServiceWorker.

Разберемся, как мы можем его использовать, сравним с другими методами организации кэша на стороне клиента, а также реализуем новостную ленту с применением Cache API.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии13

ECMAScript 6+ vs TypeScript

Время на прочтение19 мин
Количество просмотров6.6K

Минули те времена, когда разработчики писали Frontend на «чистом» JavaScript (вплоть до ECMAScript 5). Все изменилось с выходом в свет версии ECMAScript 6 в 2015-м году. Это событие стало, по истине значимым в мировой Frontend разработке. Предыдущие 6 лет до этого, язык практически не менялся. Годом ранее, в 2014-м, компания Microsoft опубликовала TypeScript 1.0 и предоставила встроенную поддержку языка в своей IDE VisualStudio 2013. На самом деле, официально, TypeScript был выпущен еще в 2012 (версия 0.8), однако, популярностью он не пользовался в виду практически полного отсутствия поддержки со стороны существующих, на тот момент, IDE.

С тех прошло много времени. Оба языка развивались параллельно. В чем‑то они схожи, в чем‑то кардинально различаются. Каждый разработчик и каждая команда вольна самостоятельно решать, какой из них использовать. В это статье попробуем найти точки, как пересечения, так и расхождения этих двух языков и сравним их подходы.

Типизацию TypeScript рассматривать в этой статье не будем, т.к. очевидно, что в ECMAScript её нет, и сравнивать тут нечего.

Для чистоты эксперимента код будем транспилировать в старый добрый ECMAScript 5. TypeScript, для удобства, возьмем версии 4.8.4 (этой версии, для целей статьи достаточно) и будем компилировать его родным tsc компилятором. Для ECMAScript воспользуемся инструментарием Babel.

Читать далее
Всего голосов 10: ↑3 и ↓7-4
Комментарии15

Где учить Frontend бесплатно в 2024 году

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

В 2024 году изучать frontend по-прежнему актуально. Вот несколько причин, почему это может быть полезным:

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

2. Рост спроса на разработчиков: Веб-разработка остается одной из самых востребованных отраслей IT. Спрос на frontend-разработчиков будет продолжать расти, так как все больше компаний стремятся создавать привлекательные и функциональные веб-приложения.

3. Возможность карьерного роста: Уверенное владение frontend-навыками может открыть двери к различным возможностям карьерного роста. Вы сможете работать над различными проектами, включая веб-сайты, веб-приложения, мобильные приложения и другие интерактивные решения.

4. Комбинированные навыки: Знание frontend-разработки может быть полезным дополнением к другим IT-навыкам. Например, если вы уже знаете backend-разработку, изучение frontend поможет вам создавать полноценные веб-приложения самостоятельно.

5. Творческий потенциал: Frontend-разработка предоставляет возможность реализовать свои творческие идеи и создавать уникальные пользовательские интерфейсы. Вы сможете воплотить свою визуальную концепцию и улучшить пользовательский опыт.

В целом, учить frontend в 2024 году будет полезно для тех, кто хочет развиваться в сфере веб-разработки, создавать современные и инновационные веб-приложения и иметь перспективы для карьерного роста.

Читать далее
Всего голосов 11: ↑10 и ↓1+11
Комментарии14

Важные аспекты Unicode, о которых должен знать каждый разработчик JavaScript

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров8.1K


Должен признаться: на протяжении очень долгого времени я испытывал страх перед Unicode. Когда была необходимость в работе с Unicode, я предпочитал искать альтернативные пути решения, поскольку не совсем понимал, что делаю.


Я старался избегать работы с Unicode до тех пор, пока не столкнулся с проблемой, требующей глубокого понимания этого стандарта, а других вариантов решения просто не было.


Приложив определенные усилия, прочитав кучу статей — я постепенно начал понимать что к чему, и это оказалось не так уж трудно. Хотя, некоторые статьи приходилось перечитывать раза по 3.


Как оказалось, Unicode — это универсальный и удобный стандарт, но работать с ним может быть непросто из-за множества абстрактных терминов.


Если у вас есть пробелы в понимании Unicode, то сейчас самое подходящее время их заполнить! Заварите себе вкусный чай или кофе ☕. И давайте погрузимся в удивительный мир абстракций, символов, астралов (astrals) и суррогатов (surrogates).


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


Вы также узнаете, как JavaScript взаимодействует с Unicode и какие трудности могут возникнуть на этом пути.


А также, каким образом новые функции из ECMAScript 2015 могут помочь в решении этих проблем.


Готовы? Давайте начнем!

Читать дальше →
Всего голосов 43: ↑43 и ↓0+43
Комментарии6

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

Работа