В предыдущей статье мы подробно рассмотрели замыкания в JavaScript, а сейчас изучим как из-за них возникают утечки памяти и как этого избежать.
Замыкание существует пока, есть хоть одна ссылка на функцию создавшую его. Если быть неосторожным, это может привести к утечкам памяти: когда объект уже не используется в программе, но сборщик мусора не может его удалить. Такие ссылки могут быть неочевидными...
Что за неочевидные ссылки?Привет, хабровчане! С вами снова Евгений Иванов, QA-lead в компании Fix Price. В этот раз поделюсь с Вами опытом внедрения автоматизации для гибридного мобильного приложения на Android.
У этого решения есть свои плюсы и минусы, и мы продолжаем работать над его развитием. Но уже сейчас понятно: оно приносит реальную пользу команде во время регрессионных и предрелизных прогонов. Расскажу подробнее, как мы собрали связку Playwright + Appium + WebdriverIO и что из этого вышло.
Читать далееВсе задают этот вопрос, а он некорректен, Основной принцип биометрии опровергает его. Не будет айтишных терминов, всё постараемся объяснить на пальцах, вернее на лицах.
Академические методики непонятны населению, а практическое испытание упирается колом в человеческий фактор.
И вот почему...Привет, Хабр. Меня зовут Глеб Бобыльков. Я ведущий дизайнер команды записи и цифровых продуктов в СберЗдоровье — MedTech-компании №1 в России. В этой статье покажу, как мы переделали финальный экран после записи к врачу на очный приём и превратили его из страницы подтверждения в сценарий «что дальше», набор гибких кросс-офферов и универсальный компонент для дизайн-команды.
Этот кейс про баланс: как добавить бизнес‑ценность и не разрушить доверие на одном из самых чувствительных шагов пользовательского пути — сразу после записи к врачу.
Читать кейсБаг в бинарном поиске Java прожил в стандартной библиотеке почти десять лет — и в 2006 году его разбор опубликовал сам автор кода. Казалось бы, бинарный поиск проходят на первом курсе. Но между «понял идею» и «написал без ошибок» — целая пропасть. В этой статье разберём четыре алгоритма поиска (линейный, бинарный, экспоненциальный и с использованием хеш-таблицам), покажем, когда какой выбирать, и разложим по полочкам пограничные случаи, на которых горят и на собесах, и в проде.
Давайте разбиратьсяКогда Альтман запустил её в конце 2024 года, интернет захлестнула волна 20-секундных видео — технически впечатляющих, но практически бесполезных для чего-либо серьёзного.
Несмотря на очевидные ограничения, энтузиасты технологий заявляли, что этого достаточно, чтобы трансформировать всю индустрию видеопроизводства. Разрыв между реальными возможностями и ожиданиями был колоссальным.
Теперь, чуть больше года спустя, OpenAI закрыла модель Sora и сопутствующее приложение. Более того — Disney отменила запланированную инвестицию в $1 миллиард для лицензирования интеллектуальной собственности под использование Sora.
Многие указывают на судьбу Sora как на знак того, что ИИ-пузырь начинает сдуваться. Так ли это? Ответ: и да, и нет. Позвольте объяснить.
Читать далееОсенью 2025 к нам обратился персональный байер-сервис — помогают заказывать брендовую одежду из Европы и США через Telegram-канал. В канале было почти 6к подписчиков, но рост остановился. Клиент пробовал запускать Яндекс.Директ сам — стоимость подписчика выходила 400 рублей, плюс конверсия в подписку была низкая. Снимал рилсы и шортсы — просмотры набирались, но продаж не давали.
Читать далееПростые, но мощные паттерны для JavaScript: научитесь выбирать подходящий паттерн перед решением задачи и ускорьте своё решение алгоритмических задач.
Читать далееВсем привет! Меня зовут Андрей, я копирайтер и редактор. Сам активно юзаю LLM последний год и хочу поделиться мыслями о возможности замены моей профессии нейросетью. Про это выходит много контента, но ни в одном материале я пока не встречал тезиса, который мне кажется фундаментальным:
ИИ не может заменить человека, потому что не может собрать информацию из реальности
Здесь нужно начать с понимания, кто же такой копирайтер или журналист, и чем он занимается. Часто эту роль понимают так: человек, который берет информацию из того, что уже опубликовано и создаёт на ее основе нечто «новое» и «уникальное». Под уникальностью обычно понимают процент, который выдает какой-нибудь Text.ru. При этом текст имеющий 99% «уникальное» может быть на 100% плагиатом.
Читать далееПривет! Меня зовут Данил, я разрабатываю прикладное ПО для радиочастотных систем YADRO. В этой статье я расскажу об одном из вариантов сбора данных AXI-Stream для обработки на CPU, рассмотрю в этом контексте возможности и требования блока AXI DMA, а напоследок порассуждаю о когерентности кешей и о том, что на самом деле здесь требуется от драйвера ядра.
Читать далееТехнологии Backend-Driven UI уже давно используются во многих компаниях, включая Альфа-Банк. Существует множество реализаций этого подхода, и недавно Google представил собственное решение — Remote Compose.
Remote Compose выглядит очень перспективной технологией. Фреймворк активно развивается и поддерживается командой Google. Однако на момент написания статьи технология всё ещё находится в alpha-версии, поэтому использовать её на проде пока рано.
Но я изучил этот фреймворк и хочу поделиться своим опытом, а когда Remote Compose выйдет в бета-версию вы будете знать, как с ним работать
В статье разберём:
• общую концепцию Remote Compose,
• чем он отличается от классического BDUI,
• какие интересные технические решения используются внутри,
• несколько практических примеров использования.
Минимальный бюджет €2 млн.
ХА!
Знаете, а ведь по факту 99% рекламодателей в России никогда не заходили в официальный кабинет и не собираются. Они работают через реселлеров, и это совсем другая история: другой порог входа, другие инструменты, другая экономика.
Я разобрал шесть ключевых реселлеров.
Реальные цифры переплаты, таблицы по функционалу, подводные камни, которые не написаны на сайтах, и ответ на вопрос почему даже с хорошим реселлером Telegram Ads требует больше внимания чем кажется.
Возможность делать скриншот — это базовый минимум, который есть во всех современных смартфонах. Даже у героев вечных споров, iOS и Android используются похожие комбинации «Громкость + Кнопка питания». Разве что на iOS используется «+», а в Android — «-».
Пятнадцать лет назад все было иначе. На устройствах было больше кнопок, но возможность сделать скриншот была роскошью. Задача осложнялась тем, что бюджетные телефоны на платформе S40 не имели многозадачности, так что написать универсальное приложение-скриншотер на телефон было невозможно.
Тем не менее, решения были. В этой статье я проведу небольшой экскурс в историю программ для скриншотов с телефона, кратко расскажу про протокол Phonet и, возможно, вызову легкие приступы ностальгии.
У меня был Nokia 6303 classic — стильный телефон с металлической крышкой на платформе Nokia Series 40 (S40). Мой путь с этим телефоном разошелся, но спустя почти полтора десятка лет я решил, что хочу разобраться в технологиях, которые использовал, будучи школьником.
Я нашел в продаже б/у Nokia 6303 classic и погрузился в тему.
Читать далееНа прошлой неделе были опубликованы сразу три научные работы, так или иначе предлагающие варианты атаки Rowhammer для видеокарт Nvidia. Подобные атаки часто имеют чисто научный интерес, но не в этом случае: во всех работах показаны методы эксплуатации с реально опасными последствиями вплоть до получения прав суперпользователя на целевой системе. Новые атаки были испытаны на видеокартах с видеопамятью стандарта GDDR6, в частности на GeForce RTX3060 и RTX6000. Именно для RTX6000 и подобных моделей новые атаки наиболее актуальны, так как это промышленный видеоускоритель, часто используемый в облачных решениях с общим доступом к вычислительным ресурсам. Именно там перехват контроля над системой‑хостом со стороны клиента представляет наибольшую опасность.
Самая первая атака Rowhammer была впервые продемонстрирована в 2014 году в отношении модулей памяти DDR3. Возможность изменения данных в ячейках памяти при обращении к соседним рядам ячеек была известна и ранее, но именно 12 лет назад эту особенность применили для целевого изменения данных в оперативной памяти так, чтобы, например, создать условия для выполнения произвольного кода или похитить секретные данные. С тех пор были предложены как методы противодействия подобным атакам, так и способы их обхода. Последним достижением академических исследователей стала демонстрация атаки «класса» Rowhammer на новейшие модули памяти стандарта DDR5.
Читать далееСовременный арсенал средств защиты корпоративных сетей велик и разнообразен: межсетевые экраны нового поколения (NGFW), средства защиты веб-приложений (WAF), системы защиты от DDoS-атак, песочницы (Sandbox) и анализаторы сетевого трафика (NTA). Однако существует целый класс решений, которому, на наш взгляд, уделяется незаслуженно мало внимания, — это системы контроля и управления доступом к сети или NAC (Network Access Control).
Данная статья призвана исправить этот пробел. Мы поговорим не о конкретных продуктах, а о самой идее контроля доступа в сеть: для чего это нужно, как работает и на какие ключевые аспекты стоит обратить внимание при выборе NAC-решения.
Читать далееПривет, Хабр!
Я Денис Тимощук, руководитель направления «Управление командами и задачами» в Диасофт. В этой статье я расскажу, как нам удалось снизить время на выполнение типовых работ в 2 раза за первый год и превратить нормирование из бюрократической обузы в инструмент масштабирования эффективности.
Читать далееКогда я только начинал в ИБ, я часами лазил по сайтам в попытках понять: а что вообще нужно знать новичку? Какими базовыми вещами должен владеть специалист по защите информации — будь то внутри контура организации или за его пределами.
Так я наткнулся на статьи про СЗИ — средства защиты информации. По сути, это тот самый инструментарий, с помощью которого специалист и строит защиту.
Думаю, выпущу несколько материалов, где своими словами разберу разные виды СЗИ. Для тех, кто только вникает в профессию, — чтобы было проще ориентироваться в этих штуках.
СПИСОК СЗИ ПРО КОТОРЫЕ Я РАССКАЗЫВАЮ В ЭТОЙ СТАТЬЕ:
1. Межсетевой экран (МЭ) — он же Firewall (англ.) или Brandmauer (нем.).
2. IDS/IPS — Intrusion Detection System / Intrusion Prevention System
3. DLP — Data Leak Prevention
4. SIEM — Security Information and Event Management
5. Sandbox — «песочница»
Межсетевой экран
Думаю, многие уже слышали о межсетевых экранах. Их называют по-разному: Firewall — с английского «огненная стена», или Brandmauer — с немецкого тоже «огненная стена». В общем как ни назови, он делает одно и то же — не дает нежелательному трафику проникнуть в сеть.
Читать далее
Антифрод — это комплекс мер, технологий и процессов, направленных на предотвращение, выявление и минимизацию ущерба от мошеннических действий. Простыми словами — это система, которая борется со злоумышленниками во всех ипостасях. Коллеги на Хабре недавно делали обзор по теме. Также рекомендуем ещё свежую аналитику за 2025 год.
А наша статья посвящена патентам и свидетельствам на антифрод‑системы в России и мире.
Читать далееКогда логирование попадает в реальную систему, довольно быстро становится понятно, что это не про API и не про удобство вызова. Это про постоянный компромисс.
С одной стороны, хочется, чтобы система работала максимально быстро: любое логирование — это накладные расходы, и в нормальном режиме его стараются минимизировать. С другой стороны, как только возникает проблема, внезапно оказывается, что либо логов недостаточно, либо они есть, но в таком виде, что восстановить картину происходящего невозможно. В этот момент становится очевидно, что задача логгера — не просто «писать строки» максимально быстро, а помогать удерживать баланс между производительностью и диагностируемостью.
Первая проблема, которая всплывает практически сразу, связана не со скоростью, а со структурой. Лог начинает отражать структуру кода, а не структуру происходящего. Есть бизнес‑логика, есть библиотеки, есть множество параллельных операций, и каждая из них пишет что‑то своё. В итоге лог превращается в поток сообщений, где перемешаны разные задачи, и вместо «обработки конкретного запроса» мы видим просто последовательность вызовов. На небольшом проекте это ещё можно терпеть, но в серверной системе такая картина быстро становится непригодной для анализа.
Естественное желание — привязать лог не к месту вызова, а к самой задаче. Самый прямой путь — передавать контекст через параметры (например, инстанс логгера), но довольно быстро это начинает протекать через весь код и превращается в обязательный шум в сигнатурах. Гораздо более устойчивый подход — привязать контекст к потоку выполнения. В библиотеке logme это делается через thread channel:
Читать далееМы рады сообщить о выпуске Jmix 2.8! В этом релизе мы продолжаем улучшать фреймворк и Studio, делая Jmix еще более надежной основой для корпоративной разработки. Jmix 2.8 также является LTS-релизом и будет получать бесплатную поддержку в течение трех лет.
Ниже приведен краткий обзор основных новых возможностей Jmix 2.8. Полный список изменений можно найти в разделе документации Что нового.
Читать далее