javascript
AbortController в JavaScript

Привет, Хабр!Сегодня мы рассмотрим интересный инструмент в JS. AbortController в JS — инструмент, который позволяет отменять асинхронные операции в любой момент. Разберёмся, как он работает, где пригодится и какие у него есть проблемы.AbortController — это инструмент для принудительной остановки асинхронных операций в JavaScript.Например, можно:1. Остановить fetch()‑запрос, если он уже не нужен.2. Прервать таймер (setTimeout(), setInterval()).3. Отменить стриминг данных (ReadableStream).Как раб…

  • понедельник, 10 марта 2025 г. в 00:00:04
javascript
Как уменьшить боль от this в классах javascript

ПроблемаНа службе была поставлена задача подготовить и передать клиенту js-библиотеку, которая состояла из несколько классов. Каких-то особых трудностей не ожидалось, поскольку библиотека использовалась в нашей конторе уже не один год и была тщательно оттестирована. Я «причесал» код, перенёс захардкоженные значения и магические числа, которые неизбежно накапливаются в программе при выполнении «очень срочных и важных заданий», в аргументы методов и переменные классов, отредактировал и дополнил …

  • понедельник, 10 марта 2025 г. в 00:00:03
xaker
Хакеры.RU. Глава 0х12. Разорванные нити

Для подписчиковЭто девятнадцатая глава приключенческо‑фантастической истории «Хакеры.RU». Каждую субботу мы публикуем по одной главе специально для подписчиков «Хакера». Если ты еще не читаешь, начинай с первой!

  • воскресенье, 9 марта 2025 г. в 00:00:12
habrahabr
Несколько самодельных индикаторных ламп из платинового стекла

Первое же, не вполне удачное применение более или менее крупных стеклотрубок молибденовой группы [1] указало на ряд недочётов в имеющемся оснащении: нужна некоторая реорганизация рабочих огней [2], дополнительный инструмент и оснастка. Скрасим же ожидание заказанных материалов работой с применением своих старых заготовок — тонкостенных трубок из стекла группы платиновой, добытых из трубчатых ламп дневного света (ЛДС) нескольких типоразмеров. Заодно и выясним пригодность электродов из нержавеющ…

  • воскресенье, 9 марта 2025 г. в 00:00:10
habrahabr
Ультимативные крестики-нолики и iPXE

Привет, Хабр! Меня зовут Вова, я разработчик в Selectel. На днях меня осенило: загрузка сервера по сети — это прекрасный инструмент, из которого можно сделать что-нибудь необычное. Например, игру. У нас есть минимальный набор: командный интерпретатор, возможность скачивать и выполнять произвольный код. Ранее я уже использовал инструменты не по назначению, когда создавал Морской бой на SQL, тетрис в QR-коде, крестики-нолики в DNS и Gravity Defied на sed. С прошлой «серии» ненормального програм…

  • воскресенье, 9 марта 2025 г. в 00:00:09
habrahabr
Ветераны Intel и Джим Келлер разрабатывают новые RISC-V процессоры. Что это за проект

В мире чипов, возможно, вскоре появится новый претендент на лидерство. Группа ветеранов Intel, покинувших компанию, объединилась с известным разработчиком Джимом Келлером, одним из создателей архитектуры AMD Zen. Зачем? Для разработки новых процессоров на основе открытой архитектуры RISC-V. Стартап, который получил название AheadComputing, может стать серьезным игроком на рынке, бросив вызов доминирующей архитектуре x86. Во всяком случае, так считает команда проекта. Скоро выпустим новый коми…

  • воскресенье, 9 марта 2025 г. в 00:00:08
golang
Кастомные memory pools в Golang

Привет, Хабр!Сегодня рассмотрим, почему стандартный sync.Pool в Go не всегда спасает, когда речь идёт о высоконагруженных сервисах, и как кастомные memory pools позволяют взять под контроль работу с памятью. Что не так с sync.Pool? sync.Pool отлично подходит для переиспользования объектов в простых сценариях. Он работает хорошо, когда нагрузка стабильна и объекты используются короткое время. Но как только запускаем систему с жесткими требованиями к задержкам, возникают две проблемки:Непредсказу…

  • воскресенье, 9 марта 2025 г. в 00:00:07
golang
Fan-Out, Fan-In с динамической балансировкой горутин в Golang

Привет, Хабр!Когда речь заходит о конкурентности в Go, паттерн Fan‑Out, Fan‑In — одна из важных концепций на мой взгляд. Он позволяет распределять задачи между несколькими горутинами и затем собирать результаты обратно в один поток.Что такое Fan-Out, Fan-In?Fan‑Out означает, что одна горутина отправляет задачи нескольким другим. Это позволяет распараллелить вычисления, что полезно при работе с IO‑операциями, загрузкой данных или обработкой запросов.Fan‑In — это обратный процесс. Когда несколько…

  • воскресенье, 9 марта 2025 г. в 00:00:06
javascript
Пишем простое расширение для браузера

Всем привет! В этом туториале я хотел бы описать создание расширения для браузера на основе Chromium (Google Chrome, Brave, Яндекс Браузер и др.). Расширения для браузеров создаются с использованием веб-технологий: HTML, CSS и JavaScript/TypeScript. Можно также применять библиотеки, такие как React или jQuery, а также фреймворки, например Vue. Однако можно обойтись и чистым JavaScript (Vanilla JS).Наше расширение будет управлять куками на сайте. Реализуем следующий функционал:Отображение кукУда…

  • воскресенье, 9 марта 2025 г. в 00:00:05