javascript
Всё под контролем: сила useRef и forwardRef в React

Начнем с небольшой истории. Как-то раз я с размахом накинулся на проект — в духе нынешних фреймворков всё было обложено компонентами, декларативный стиль царил, все шло идеально… ну почти. Дошел я, значит, до нужды контролировать DOM-узлы напрямую. И что вы думаете? Прямого доступа нет, React закрыл от меня этот мир, сидит и ухмыляется: мол, мы тут за производительность боремся, зачем тебе что-то трогать руками?Но мы не из тех, кто сдаётся, верно? React предлагает своё решение — рефы, и именно …

  • вторник, 19 ноября 2024 г. в 00:00:04
javascript
Создаём современные npm-пакеты и преодолеваем трудности совместимости ESM и CJS

Привет! Меня зовут Никита, и я тружусь в фронтенд-команде платформы в Ozon. Платформа поставляет инструменты для создания и поддержки JS-проектов. В компании в настоящее время более 500 таких проектов. Мы прилагаем максимум усилий, чтобы разработчикам всех проектов было одинаково приятно работать с нашими инструментами.Также мы предоставляем инструменты для создания JS-библиотек. И в этой статье я расскажу о том, как мы советуем создавать npm-пакеты. Отмечу, что это не касается UIKit-пакетов, —…

  • вторник, 19 ноября 2024 г. в 00:00:03
github
NVIDIA / garak

the LLM vulnerability scannergarak, LLM vulnerability scanner Generative AI Red-teaming & Assessment Kit garak checks if an LLM can be made to fail in a way we don't want. garak probes for hallucination, data leakage, prompt injection, misinformation, toxicity generation, jailbreaks, and many other weaknesses. If you know nmap, it's nmap for LLMs. garak focuses on ways of making an LLM or dialog system fail. It combines static, dyanmic, and adaptive probes to explore this. garak&#39…

  • вторник, 19 ноября 2024 г. в 00:00:02
habrahabr
STM32 — грамотно включаемся от кнопки

Наличие у контроллеров STM32, да и практически любых других, режима энергосбережения STANDBY, который фактически представляет собой полное отключение (работает только RTC и сторожевой таймер, потребление составляет первые микроамперы, а состояние не сохраняется), дает возможность простейшим способом сделать включение и выключение устройства на таком МК нажатием кнопки, в том числе и задействованной под другие функции, без каких-либо дополнительных элементов. Есть, однако, несколько подводных ка…

  • понедельник, 18 ноября 2024 г. в 00:00:10
habrahabr
Мечта юности — чехословацкая Jolana Disco из 1980-х

Привет, Хабр! Эта винтажная электрогитара с одним огромным звукоснимателем, да ещё и в средней позиции, может похвастаться очень интересной схемой темброблока, которую мы сегодня изучим. В наши дни высокоточные станки с ЧПУ и передовые технологии обработки древесины сделали хорошие инструменты доступными всем любителям музыки. Может ли недорогая серийная гитара, произведённая почти полвека назад, конкурировать с аналогичными продуктами современности? — Увидим и услышим. ▍ Гитара Урал по име…

  • понедельник, 18 ноября 2024 г. в 00:00:09
habrahabr
Как я отправился покорять Эльбрус и не дошел до вершины 71 метр

Привет, Хабр! Это Денис Басковский. Я ведущий разработчик в МТС Медиа, в свободное от работы время путешествую. Сегодня расскажу, как решил покорить Эльбрус и что из этого получилось. Спойлер: счастливого финала с установкой флага на вершине не будет, с другой стороны, мы выжили — это тоже ничего!Вижу цель — не вижу препятствийЯ родился в Пятигорске, так что Эльбрус всегда был рядом со мной. В детстве я часто любовался его видами и мечтал подняться на вершину. Но потом переехал учиться в Питер,…

  • понедельник, 18 ноября 2024 г. в 00:00:08
golang
Middleware на уровне сетевого стэка в Go

Привет, любители Go! Сегодня мы рассмотрим, как создать middleware на уровне сетевого стэка в Go. Middleware позволяет добавлять полезные функции к HTTP-запросам и ответам: логирование, аутентификация, обработка ошибок и многое другое. Простой пример MiddlewareНачнем с классики – middleware для логирования запросов:package main import ( "log" "net/http" "time" ) // loggingMiddleware логирует начало и конец обработки запроса. func loggingMiddleware(next http…

  • понедельник, 18 ноября 2024 г. в 00:00:07
javascript
Портируем олдскульную головоломку на web с использованием LLM и Midjourney для бати

С детства я люблю компьютерные игры: хоть сейчас у меня и другие приоритеты, но иногда люблю зайти в старую добрую классику (недавно добил 100% прохождение GTA San Andreas, прошел классическую серию Serious Sam). Мой папа же — не особо любил подобные игры, ему больше нравился минимализм: шашки, тетрис и прочие 2d игры-головоломки. (До Зумы кстати не добрался, надо бы дать ему попробовать! ремарка)Одна из таких игр — была незамысловатая игра жанра маджонг в сеттинге Покемонов: в ней нужно находи…

  • понедельник, 18 ноября 2024 г. в 00:00:06
javascript
Правильные ли у вас микрофронты?

Рассмотрю на примере nx.dev и webpack module federation.nx.dev был выбран для того, чтобы не пришлось самостоятельно придумывать решения, а взять готовые, которые могут пригодиться при работе с микрофронтами. Можно также yarn workspaces использовать, но тогда бы пришлось все необходимые скрипты писать самому.По самом nx.dev, писал когда-то статью, можно почитать тут. Некоторые моменты могли устареть, но сама концепция осталсь та же. Так например package-based проектов уже нет.Однако в мире микр…

  • понедельник, 18 ноября 2024 г. в 00:00:05