Обновления и эффекты

14 ноября 2022
Обновления и эффекты

От обновления Node.js до эффекта Зейгарник. Мы в Evrone стараемся не просто давать полезную информацию, но и заботиться о том, чтобы наши дайджесты были интересными. Приятного чтения!

Управление жестами

Если вы смотрели фильм Стивена Спилберга «Minority Report» («Особое мнение»), то наверняка помните фантастический интерфейс управления жестами, которую использовал главный герой.

Напоминаем, что это 2002 год, а до выхода первого iPhone остаётся ещё 5 лет. Джон Андеркоффлер (John Underkoffler) создал для фильма абсолютно новый интерфейс G-Speak (spatial operating interface). Удивительно, но именно этот прототип в конечном итоге стал основой для современных смартфонов.

Мотаем вперёд, в 2010 году создаётся технология Leap Motion, позволяющая отслеживать движение рук и сразу множество компаний видят в этом серьезный потенциал. Уже спустя 4 года HP выпускает ноутбук ENVY17 Leap Motion Special Edition со встроенным контроллером LEAP, отслеживающим движения рук, карандашей и так далее. Да, особой точностью этот контроллер не мог похвастаться, но определённый футуризм присутствовал.

Спустя ещё 4 года управление жестами выходит на новый уровень и предлагается к использованию совместно с шлемами виртуальной реальности, такими как CV1. В настоящее время технология приобретена компанией UltraLeap и активно развивается.

Но есть ли вариант попробовать управление жестами без специального оборудования? Да, на любом компьютере с веб-камерой.

Отрисованные координаты точек на руке. Источник изображения
Отрисованные координаты точек на руке.  Источник изображения

Автор статьи Motion Controls In The Browser, Yaphi Berhanu проделал большую работу и показал, как создавать всевозможные приложения с управлением при помощи движений рук. Его пример вдохновил некоторых фронтенд-разработчиков попробовать эту библиотеку в действии и рассказать о своём опыте, в том числе и на Хабре. Так что если вам захочется попробовать что-то новое, управление жестами может дать вам весьма увлекательный опыт.

В качестве языка используется JavaScript, а для распознавания жестов open source библиотека Mediapipe, созданная Google. У неё есть JavaScript API, что значительно облегчает взаимодействие. Mediapipe получает доступ к видеопотоку и возвращает координаты точек (landmarks) на руках. Далее ими можно оперировать для программирования жестов.

Вышла Node.js 19

Очередной релиз Node.js. TL;DR — кардинальных изменений нет, но подвезли много приятных мелочей.

Начнем с экспериментальной фичи --watch. Запуск приложения с этой опцией заставляет Node следить за изменениями в файле и перезапускать процесс автоматически. Цель — экономия времени и отсутствие необходимости в таких утилитах, как nodemon. Использовать очень просто:

node --watch index.js

Переходим к следующему изменению. Keep-Alive для HTTP 1.1 теперь по-умолчанию включен и равен 5 секундам. Всё потому, что разработчики хотят увеличить переиспользование соединений, а следовательно и общую пропускную способность.

Очередная рекомендация W3C выполнена (спустя 5 лет после предложения). API WebCrypto перешел в разряд Stable (исключая алгоритмы Ed25519, Ed448, X25519 и X448). Доступ к модулю можно получить через globalThis.crypto или require('node:crypto').webcrypto.

Вот простой пример шифрования:

async function aesEncrypt(plaintext) {
  const ec = new TextEncoder();
  const key = await generateAesKey();
  const iv = crypto.getRandomValues(new Uint8Array(16));

  const ciphertext = await crypto.subtle.encrypt({
    name: 'AES-CBC',
    iv,
  }, key, ec.encode(plaintext));

  return {
    key,
    iv,
    ciphertext
  };
}

И дешифровки:

async function aesDecrypt(ciphertext, key, iv) {
  const dec = new TextDecoder();
  const plaintext = await crypto.subtle.decrypt({
    name: 'AES-CBC',
    iv,
  }, key, ciphertext);

  return dec.decode(plaintext);
}

Детальная информация по API WebСrypto есть в официальной документации.

Не обошлось в новом релизе без удаления части некоторых функций. Флаг --experimental-specifier-resolution в новой версии отключён. Всё, что он делал, теперь достигается штатным способом, через пользовательские загрузчики. И финально удалена поддержка DTrace/SystemTap/ETW. Кому надо ящик водки и всех обратно вернуть DTrace — можно стучаться сюда.

Capture The Flag

Скучные и однообразные задачи — прямой путь к тому, чтобы отчаяться и впасть в депрессию. Психологи утверждают, что этот эффект может быть нивелирован решением интересных задач и головоломок. Конечно, думать над чем-либо очень энергозатратный процесс и мозг не будет делать это «за просто так». Здесь, словно в компьютерной системе, действуют свои законы. Некоторые из них можно обойти, используя «особенности архитектуры»‎.

Так, в прошлом веке было открыто два интересных психологических эффекта. Первый — эффект незавершённого действия, получивший название «эффект Зейгарник»‎. Он заключается в том, что люди лучше запоминают незавершённые действия. Второй — тенденция возобновлять прерванное действие, когда его результат ещё не достигнут, так называемый «эффект Овсянкиной».

Говоря простым языком — мозг бесят незавершённые задачи и это заставляет его вернуться к работе над ними. Это как раз можно использовать, чтобы принудительно решать загадки или нестандартные задачи. Но какие головоломки были бы интересны фронтенд-разработчикам?

У специалистов по ИБ есть такой жанр развлечений, как CTF (Capture The Flag). Это специальным образом созданные задания, которые могут включать в себя самые разные дисциплины — от стеганографии до декодирования шифров. Несколько особняком держится игра curiositY. Её мы и рекомендуем попробовать в качестве средства немного отдохнуть от рутинных задач.

Цель игры — решить задачу и пройти на следующий уровень. Для этого вам потребуется браузер без включенных расширений и DevTools в Desktop-режиме. Надеемся, что игра вам придётся по вкусу и настроит мозг в режим креативного мышления. А «эффект Овсянкиной» позволит пройти её полностью, благо первые уровни не слишком сложны. Удачи!

Интересно посмотреть

Пропустили наш предыдущий Frontend-митап? Не страшно — записи докладов в кинематографическом качестве выложены в сеть. В частности, наш коллега из Evrone Фёдор Кирпичёв поднял злободневную тему создания сложных форм без использования плохих кодовых практик:

Спикер Софья Гусева из Яндекса поделилась опытом существенного улучшения стиля программирования в больших командах разработки:

А что если надо обойтись вообще без backend-разработчика. Сможет ли отдел разработки выжить только силами фронтенда? Об этом рассказал Владислав Худяков из Pragmatica:

Митапы

Онлайн

Frontend Meetup

30 ноября 2022

Рады сообщить, что мы запланировали проведение Frontend Meetup. Его программа формируется, но регистрация уже открыта. Детальная информация о мероприятии будет опубликована позже.

Теперь следить за митапами Evrone стало удобнее. В Telegram-канале Evrone meetups мы выкладываем анонсы с подробными описаниями докладов, а также студийные записи после мероприятий. А ещё, у нас можно выступить, мы поможем оформить вашу экспертизу в яркое выступление. Подписывайтесь и пишите @andrew_aquariuss, чтобы узнать подробности.

 

Регистрация

Вакансии

Удаленка / Офис

Evrone 

Мы открыты для новых Frontend-разработчиков. В Evrone можно работать удалённо с первого дня, мы поддерживаем и оплачиваем участие в Open-source проектах, а расти в грейдах можно с помощью честной системы проверки навыков и менторства.

Подробнее

Подписаться
на Digest →
Важные новости и мероприятия без спама
Технологии которыми вы владеете и которые вам интересны
Ваш адрес электронной почты в безопасности - вот наша политика конфиденциальности.