IT Kniga
Интернет-магазин компьютерной литературы

JavaScript - habr.ru

RSS-материал Хабр
JavaScript – прототипно-ориентированный язык программирования
Обновлено: 3 часа 49 минуты назад

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

Пт, 25/04/2025 - 12:15

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

Читать далее O_0 ...
Категории: HTML, CSS, Javascript

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

Пт, 25/04/2025 - 09:16

Привет.

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

Читать далее
Категории: HTML, CSS, Javascript

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

Пт, 25/04/2025 - 06:37

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

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

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

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

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

Читать далее
Категории: HTML, CSS, Javascript

Как Canvas украсил QIC

Пт, 25/04/2025 - 06:16

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

Материал основан на моём докладе с QIC Tech Meetup, полную запись вы можете найти на YouTube.

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

*В текущей версии отсутствует кнопка «Назад» — для возврата в предыдущий раздел воспользуйтесь стандартной кнопкой браузера. 

Итак, начнём погружение в удивительный мир возможностей Canvas.

Читать далее
Категории: HTML, CSS, Javascript

[Перевод] Markdown презентации по-новому: контроллер Nintendo, интерактивный блокнот и немного магии

Чт, 24/04/2025 - 18:21

Как превратить скучные слайды в интерактивную демонстрацию, где код можно запускать прямо на месте? В этой статье попробуем перенести презентацию в браузер, а затем — в «блокнот». Интерактивные среды, такие как Jupyter Notebook, Observable, Mathematica, WLJS Notebook, позволяют создавать живые презентации, лекции и наглядные материалы для коллег или студентов. Они незаменимы и для визуализации моделей, симуляций и любых данных.

Под катом — примеры, пошаговый разбор и демо вживую.

Читать далее
Категории: HTML, CSS, Javascript

WASM — магическая шляпа или как не обрести безумие

Чт, 24/04/2025 - 13:44

Всем доброго времени суток. Сегодня с вами я хотел бы обсудить, как можно расширить возможности JavaScript. Первый вопрос, с чего вдруг такие мысли. Я давно работаю front-end разработчиком и последнее время все чаще и чаще я стал сталкиваться с нетривиальными задачами. Пример, получить электронную подпись для документа в браузере или рендеринг 3д моделей для презентации функциональности станков.

Так как я человек любопытный для меня это звучит как вызов - а действительно такое нельзя провернуть в браузере? Как все мы знаем данный функционал просто так не реализуем в браузере, вот и первый спойлер .

Давайте начнем разбираться, если способов с рендерингом много, то вот с подписью  их совсем мало. Поэтому сегодня будем говорить про универсальный способ - WASM.

WebAssembly (WASM) — это современная низкоуровневая технология, позволяющая выполнять код с высокой производительностью в веб-браузерах. Она не заменяет JavaScript, а дополняет его, предоставляя возможности для запуска предварительно скомпилированных программ на различных языках (C, C++, Rust и др.) прямо в браузере.

Читать далее
Категории: HTML, CSS, Javascript

От клика до железа: хроника одного запроса. Часть 1

Чт, 24/04/2025 - 10:59

Увлекались ли вы когда-нибудь задачей так сильно, что полностью выпадали из жизни? Я — да. Писал код, разбирался с нюансами, тестировал, переделывал, снова тестировал… В какой-то момент мой друг, давно не слышавший обо мне, решил узнать, куда я пропал. Мы созвонились, и я рассказал, чем занимаюсь. Он послушал, усмехнулся: «Как же хорошо, что я выбрал бэкенд-разработку».

На самом деле ничего сверхъестественного в этой задаче не было. Но и простой её тоже не назовёшь — архитектура сложилась под влиянием множества ограничений: браузер не может напрямую запускать exe-файл, бэкенд не имеет доступа к локальному оборудованию, а взаимодействие между всеми этими частями нужно было выстроить чётко и последовательно.

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

В этой статье я расскажу, как построить такую связку с помощью механизма Native Messaging: от интерфейса в браузере до запуска локального exe. Разберём архитектуру, покажу, какие задачи решает этот подход, и напишем рабочий пример — расширение, которое сможет общаться с программой на C.

Так что устраивайтесь поудобнее и давайте разбираться.

Читать далее
Категории: HTML, CSS, Javascript

Я знаю, что ты думал в прошлый дейлик

Ср, 23/04/2025 - 21:31

На входе — обычный push. На выходе — коммит, улучшенный с помощью LLM, сохранённый в векторной базе, доступный для поиска и семантического анализа. Пишем простой MCP-сервер для трекинга изменений ваших проектов.

Читать далее
Категории: HTML, CSS, Javascript

Chotto UI — набор компонентов для чатов на Vue3

Ср, 23/04/2025 - 09:43

Пытаясь подражать слогу классика, можно сказать, что "все чаты в целом одинаковы, но каждый реализует что-то свое".

так ли это? посмотрим.

TL, DR: далее рассказываю, что мы делаем свой UI набор компонентов для чата, даю ссылки и приглашаю присоединяться к проекту.

Читать далее
Категории: HTML, CSS, Javascript

Масштабируемая архитектура дёшево и сердито

Втр, 22/04/2025 - 11:28

????️ Микросервисы дёшево и сердито

В стате разобран кейс масштабирования websocket сервера между произвольным количеством реплик. Реплики обрабатывают один порт (SO_REUSEPORT), а значит, продолжение обслуживания клиента при неполадках осуществляется бесшовно. Для взаимодействия между репликами используется шина событий IPC как наиболее оптимальный вариант в условиях ограниченного бюджета

Читать далее
Категории: HTML, CSS, Javascript

[Перевод] React Reconciliation: скрытый механизм, управляющий компонентами

Втр, 22/04/2025 - 08:05



❯ Механизм согласования

В моих предыдущих статьях (1, 2) я подробно рассматривал, как работает React.memo, а также делился более эффективными подходами к оптимизации производительности с помощью компоновки. Однако для глубокого понимания работы React необходимо разобраться в основном механизме, лежащем в основе всех этих оптимизаций – алгоритме согласования (reconciliation).


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

Читать дальше →
Категории: HTML, CSS, Javascript

Создаем с помощью LLM игру Super Mario, нет, лучше Super Habrio

Пнд, 21/04/2025 - 10:29

В предыдущей статье мы за 2 шага создали с помощью LLM игру для браузера «Шарики», Lenes (Color Lines).

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

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

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

В результате визуальное оформление, качество кода, его логичность и структура — всё на высоком уровне.

Читать далее
Категории: HTML, CSS, Javascript

Почему запрет на переключение вкладок не спасает онлайн-тесты от списывания

Пнд, 21/04/2025 - 07:15

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

Читать далее
Категории: HTML, CSS, Javascript

Создаем картотеку людей в Obsidian максимально лениво или «Тронул мышку — проиграл»

Пнд, 21/04/2025 - 06:53

Я уже писал на Хабре статью, что такое СДВГ и как он влияет на жизнь. Жизнь с СДВГ создаёт свои трудности и я (как имеющий этот синдром) ненавижу и максимально стараюсь избегать любую рутину.

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

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

Читать далее
Категории: HTML, CSS, Javascript

Бумер, джуниор и нейросеть

Пт, 18/04/2025 - 15:18

Настало время... интересных историй. Про то, как я заказал сайт и что из этого вышло. Спойлер — человек не справился, а нейросетка — да

Читать далее
Категории: HTML, CSS, Javascript

Как я попала во фронтенд, не имея айтишного образования: честный рассказ Насти Егоровой

Пт, 18/04/2025 - 11:33

Можно ли стать фронтендером, если выучился на экономиста, не сломаться на скучных задачах и не соврать в резюме — и при этом ещё кайфовать от работы? Разбираемся, как выглядит реальный путь в IT: с неопределённости в 11 классе, через SEO и маркетинг — к конференциям, курсам и YouTube‑каналу. Без глянца и мотивационных штампов — только честная история, как оно бывает на самом деле.

Эта статья — текстовый вариант выпуска подкаста Girls&Code с DevRel Skillbox Машей Даровской. Гостья — Анастасия Егорова, эксперт Skillbox по фронтенду, спикер конференции Holy JS, автор телеграм‑канала «Код и кофе» и youtube‑канала @cosyfrontendnastia с полезным контентом для джунов.

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

Читать далее
Категории: HTML, CSS, Javascript

Знакомство с Web Locks API

Пт, 18/04/2025 - 07:56

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

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

Долгое время разработчики обходились кустарными решениями — флагами в localStorage, хитрыми setInterval и т.д. Но с появлением Web Locks API у нас наконец появился стандартный способ расставить приоритеты в этом хаосе.

Web Lock API — это механизм, позволяющий скриптам, находящимся в рамках одного orign, блокировать доступ к ресурсу, удерживать блокировку пока выполняется необходимый код, а затем разблокировать ресурс, чтобы другие части программы могли получить к нему доступ.

Читать далее
Категории: HTML, CSS, Javascript

WebAssembly голыми руками

Пт, 18/04/2025 - 06:23

WebAssembly являясь (относительно) молодой технологией уже довольно распространён в индустрии.

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

Информации же по работе с самим WebAssembly и написанию кода непосредственно на нем в сети крайне мало, а в рунете и подавно, что я и попробую исправить под катом.

Читать далее
Категории: HTML, CSS, Javascript

Как создать Telegram bot для проверки электронной подписи

Чт, 17/04/2025 - 18:20

Электронная подпись (ЭП) — неотъемлемая часть современного цифрового документооборота. Мы сталкиваемся с ней ежедневно: при отправке отчетности в налоговую, подписании договоров, участии в тендерах или просто обмениваясь юридически значимыми документами. Но как устроен процесс проверки электронной подписи изнутри? Как убедиться, что электронная подпись действительна, и какие критерии делают ее юридически значимой?

На практике часто возникает задача: проверить ЭП быстро, удобно и без запуска сложного backend-сервиса. И здесь на помощь приходят no-code и low-code инструменты.

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

Читать далее
Категории: HTML, CSS, Javascript

Разрабатываем PWA. Полная инструкция по работе с Web App Manifest и Service Worker

Чт, 17/04/2025 - 14:11

Привет! Меня зовут Сергей Васильев, я фронтенд-разработчик в AGIMA. Наша команда часто работает с PWA — прогрессивными веб-приложениями. Они стали особо популярны в последние три года, когда из-за санкций некоторым корпорациям пришлось отказаться от мобильных приложений. Но и раньше многие компании с интересом смотрели на это решение.

Ниже расскажу, как сделать из обычного веб-приложения прогрессивное: вместе настроим Web App Manifest и Service Worker. Если вам еще не доводилось работать с PWA — текст точно для вас.

Читать далее
Категории: HTML, CSS, Javascript

Большая распродажа компьютерной литературы

Полный список здесь