В этом месяце: Роскомнадзор перешел к активному замедлению Telegram, хакгруппа Lotus Blossom скомпрометировала механизм обновлений Notepad++, владельцам криптокошельков Trezor и Ledger рассылают бумажные фишинговые письма, хакеры пытаются клонировать Gemini через дистилляцию, в прошивках Android-устройств нашли предустановленный бэкдор Keenadu, а также другие важные и интересные события февраля.
Генеральная прокуратура штата Нью-Йорк считает, что лутбоксы в играх Steam — это нелегальные азартные игры, и требует от компании Valve возместить игрокам все полученные средства.
Привет, Хабр! Меня зовут Олег, я работаю в VK Cloud в команде Key Management Service. Есть у меня такая привычка: когда пользуюсь каким-то инструментом изо дня в день, то рано или поздно хочется залезть внутрь и посмотреть, как оно там устроено. С контейнерами так и вышло: docker run, docker build — всё это прекрасно работает, но что именно происходит, когда мы «запускаем контейнер»?В этой статье разберём контейнеры не на уровне «вот вам YAML, отправляйте в прод», а чуть глубже — на уровне сист…
Если посчитать публичный API Ginkgo, получается внушительный список. Describe, Context, When, It, Specify, By, BeforeEach, AfterEach, BeforeAll, AfterAll, JustBeforeEach, JustAfterEach, BeforeSuite, AfterSuite, SynchronizedBeforeSuite, SynchronizedAfterSuite, DeferCleanup. Семнадцать функций, и это без F- и P-вариантов для focus и pending.GoConvey проще, но и у него набирается не меньше: Convey, So, ShouldEqual, SkipConvey, FocusConvey, Reset и собственный DSL для assertion-ов.Я не считаю, что …
Я столкнулся с простой (как мне изначально показалось – даже очень) задачкой. Мне в последнее время потребовалось часто проводить поиск в 4 словарях. Государство мне их дало в виде пяти PDF файлов, выложенных онлайн. Это нормативные словари русского языка, слова из которых можно использовать в публичном пространстве после 1 марта 2026 г. Например, caсhe - можно использовать на русском как кэш, а не переводить как тайник или склад (не путать с cash как наличные), поскольку в Словарь иностранных …
Привет, Хабр!Меня зовут Виктор, и я хочу рассказать, как бытовая рабочая задача привела меня к тому, что я написал полноценный аудиоредактор, который работает целиком в браузере - без единого запроса на сервер. Под капотом - Web Audio API, OfflineAudioContext, порт LAME-энкодера на JavaScript и немного стыдных архитектурных решений, о которых тоже расскажу.Как всё началосьУ нас на работе, как и у многих, регулярные совещания в Zoom. И у Zoom есть прекрасная особенность: если во время звонка хот…
За последние пару лет я провёл сотни технических собеседований — от junior до senior специалистов. И я обнаружил что есть одна тема, с пониманием которой есть проблемы почти у всех кандидатов с кем мне доводилось общаться. Это Virtual DOM. Почти каждый кандидат объясняет его примерно так:“Virtual DOM нужен, чтобы обновлять не всю страницу, а только её часть. Поэтому всё работает быстрее.”Формулировка вроде звучит логично. Но проблема в том, что это неверное понимание в принципе.Браузер и без вс…
В наше время программирование стало очень доступным из-за развития инструментов и языков. Написать «привет, мир» может практически каждый, а количество фреймворков для JavaScript уже воспевается в шутках. Теперь, чтобы выделиться и впечатлить друзей и коллег, нужно спускаться глубже. Придумаем свой язык шуточный программирования! В этой статье кратко рассмотрим базу компиляторов и мемные эзотерические языки программирования. В конце придумаем свой язык и попробуем его реализовать. Это упрощенна…
Всем привет! Кажется, настала пора поделиться изменениями в Азбуке, которые произошли с 2022 года, когда я выпускал прошлую статью. Несмотря на то, что в данный момент я уже не руководитель фронта, интересно рассказать, к чему мы пришли за это время. Я, конечно, рекомендую ознакомиться с прошлой статьей, но в целом буду рассказывать "с нуля". Наш текущий стэк: Vue 3, Nuxt 4, TS. На данный момент, мы практически полностью переехали с jQuery, оставив за собой относительно небольшое количе…