Обзор изменений в новом мажорном релизе Node 8

30 мая 2017 года в 23:00 по московскому времени вышел новый долгожданный мажорный релиз Node.js 8.0.0. Именно эта линейка версий за номером 8 в октябре 2017 перейдет в Long Term Support — цикл длительной поддержки. Предлагаю вашему вниманию небольшой обзор того огромного количества изменений и дополнений, вошедших в этот релиз.

  • npm 5 (lock-файл!)
  • V8 5.8
  • Node.js API (N-API)
  • async_hooks
  • WHATWG URL парсер
  • повышение безопасности буфера
  • упрощенная промисификация
  • статичные коды ошибок
  • и многое другое!

Новая мажорная версия ознаменует собой начало новой ветки с циклом длительной поддержки. Уточню, что произойдет это в октябре 2017, вместе с присвоением кодового названия Carbon, и эта ветка будет поддерживаться до 31 декабря 2019 года. Также Node.js 6 перейдет в режим поддержки в апреле 2018 и окончит свою жизнь в апреле 2019 года.

npm 5.0.0

Новая версия Node поставляется в комплекте с новой версией менеджера пакетов npm. Очевидно, что значительное влияние на разработчиков npm оказал неожиданный конкурент: Yarn от Facebook’а.

Команда npm проделала большую работу по оптимизации, рефакторингу внутренних механизмов и исправлению ряда старых ошибок, связанных с архитектурой.

Вот неполный список изменений:

  • ускоренная загрузка пакетов;
  • стандартизированный lock-файл (package-lock.json), который в будущем может позволить разработчикам в одной команде использовать разные менеджеры пакетов, но при этом получать идентичные деревья зависимостей;
  • —save больше не требуется! Слышали в различных туториалах «введите в командной строке дэш-дэш-сейв»? Забудьте. При загрузке пакета он автоматически пропишется как зависимость в package.json, при этом опции —save-dev и —save-optional остались;
  • обнаружение и поддержка имеющихся отступов в package.json, package-lock.json и npm-shrinkwrap.json;
  • переписан внутренний механизм кеширования, повышена скорость и надежность.

V8 5.8

Новая версия JavaScript рантайм движка V8 содержит значительные улучшения в производительности и доступном API. Разработчики гарантируют, что эта версия будет содержать ABI (application binary interface) совместимый с грядущими версиями V8 — 5.9 и 6.0.

В 5.8 впервые включат по умолчанию оптимизирующий компилятор TurboFan и интерпретатор Ignition, которые правда были доступны и в предыдущем релизе. Это обещает нам меньшее потребление памяти, и значительную оптимизацию try/catch объявлений, генераторов и async функций. Эти же изменения попадут в следующий релиз Chrome 59.

Эти изменения оказались настолько значительными, что технический комитет Node.js (Core Technical Committee) принял решение перенести релиз 8.0.0, изначально планировавшийся в апреле, на май.

N-API

N-API — это API для разработки нативных аддонов, независимо от нижележащего JavaScript рантайма. Используемый ABI (application binary interface) будет оставаться стабильным на протяжении несколько версий Node. Таким образом, модули скомпилированные для одной версии, будут выполняться и на более поздних версиях Node без перекомпиляции.

async_hooks

Этот экспериментальный модуль (ранее известный как async_wrap) предоставляет разработчикам возможность отслеживать исполнение событийного цикла Node.js. API позволяет зарегистрировать коллбэки, которые уведомляют потребителя о жизненном цикле асинхронных ресурсов внутри приложения, взаимодействующих с нижележащим C++ кодом. Такие асинхронные ресурсы отвечают, например, за TCP-сокеты, чтение из файла и т.д.

WHATWG URL парсер

Экспериментальный URL парсер, соответствующий стандарту WHATWG, был добавлен в 7 версии Node.js, а в 8-ой приставку «экспериментальный» официально отменили. Теперь реализация парсера в Node совпадает с таковой в современных браузерах, что позволяет код, связанный с URL, использовать как в серверном так и клиентском окружении.

Повышение безопасности буфера

До 8 версии Node.js буфер созданный с помощью конструктора Buffer(Number) не инициализировал выделяемую память нулями. В результате, инстансы буфера могли содержать чувствительную информацию. Эту уязвимость в новой версии устранили, при создании, буфер будет заполняться нулями. Поскольку это оказывает негативное влияние на производительность, для случаев где допустимо, разработчики предлагают использовать другой API — Buffer.allocUnsafe(), позволяющий создавать неинициализированный буфер.

Упрощенная промисификация

Промисификация — это обертка над асинхронным кодом, использующим коллбэки, возвращающая промис. Функция, выполняющая промисификацию, есть, например, у популярной библиотеки bluebird. Теперь в Node.js появился ее аналог для нативных промисов: util.promisify(). Вот пример ее использования:

const fs = require('fs'); const util = require('util');  const readfile = util.promisify(fs.readFile);  readfile('/some/file')   .then((data) => { /** ... **/ })   .catch((err) => { /** ... **/ });

Статичные коды ошибок

Разработчики начали процесс присвоения статичных кодов всем ошибкам, генерируемых Node.js. Пока еще не все ошибки получили свой код. Преимущество кодов в том, что они гарантировано не изменяются даже если у ошибки поменяется тип или сообщение. Получить код ошибки можно двумя способами:

  • используя новое свойство code у инстансов объекта Error
  • при выводе трассировки стека ошибки, код будет в квадратных скобках, например: [ERR_ASSERTION]

Из мелких, но приятных бонусов: за флагом —harmony теперь можно использовать свойство rest у объектов:

let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 } console.log(x) // 1 console.log(y) // 2 console.log(z) // 3

А также нативные методы string.padStart() и string.padEnd(), ведь мы все помним и скорбим

P.S. Ах да, и самое важное нововведение — при упоминании версий Node.js разработчики отказались от префикса «v»: v0.10, v0.12, v4, v6. Чтобы не было путаницы с движком V8, теперь официально звучит так: Node.js 8.


При подготовке статьи были использованы следующие ресурсы:

ссылка на оригинал статьи https://habrahabr.ru/post/329942/

Телекино #2

Начало моей эпопеи по оцифровке семейного архива: https://geektimes.ru/post/289521/.
Перед тем как взять в руки топор и молоток я конечно же пролистал страницы Гугла вдоль и поперек в поисках более опытных товарищей. А таких товарищей оказалось довольно много.

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

Правда стоит это чудо техники до 60 американских долларов и еще доставка. Про качество тут говорить не приходится, пробовал в далеком 2002 снимать на хорошую VHS камеру проецируя на стену. Видео конечно по итогу я получил но с усиленными эффектами ретро кино. Подергивания и помаргивания, царапины и мусор в кадровом окне.
Есть и устройства поинтереснее, и всего около 300 баксов, но с доставкой в нашу страну проблемы, да и разрешение весьма скромное:

Все что по качеству получше, даже сильно по пользованное и весьма устаревшее начинается от 1000$, есть вполне серьезные аппараты и конструкторы для допиливания:
TOBIN TRUE PROGRESSIVE SCAN HD TELECINE FOR SUPER-8 FILM ( TVT-S8PHD Econ )

Но опять не в России и доставка к нам не предлагается.
Да и цена от 50 000 рублей за базу для рукоприкладства — только если потом пытаться на этом аппарате заработать.
Простые смертные, но рукастые парни чаще всего идут примерно таким путем:

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

На сайте с, которого взята картинка много написано про сканирование пленки, и у товарища на фото еще есть канал на ютубе, с рассказами про разные аппараты.
Все чаще бытовую камеру меняют на цифровой фотоаппарат или USB-камеру.

Очень терпеливые приспосабливают планшетные сканеры, сканируют на них всю пленку, потом в графическом редакторе нарезают отдельные кадры и превращают их в видео. Но для такого подвига я очень ленив.
Ну и гораздо реже встречаются созданные с нуля изделия для сканирования пленки.
Проект «Kinograph»

У них на сайте даже список материалов для сборки прилагается с краткими инструкциями.
Есть варианты со сканером

с бытовой видеокамерой

С фотоаппаратом

Вариантов реализации бесконечное множество.

Долго выбирал вариант, и остановился на таких основных параметрах:
1 Использовать USB камеру разрешением не меньше 1600*1200. Хотя мнения и расходятся, кто-то кричит что 640*480 для 8мм пленки уже излишне, а кто-то доказывает ценность именно большого разрешения. Но выше чем 1600*1200 никто не делает и не советует.
2 Запись фото на ПК с последующей реставрацией и сборкой в видеоряд. Если со сборокой фотов в видео все просто — куча платных и бесплатных программ, то вот с реставрацией пока не разобрался.
3 Кинематику делать с протяжкой резиновыми роликами — так как перфорация у пленки местами не очень.
4 Позиционирование кадров выполнять по обратной стороне перфорации лазерным или фото-датчиком. Так как прямая сторона перфорации неизбежно повреждается грейферным механизмом — это одна из причин не использовать проектор, так как кадры могут недостаточно четко позиционироваться.
5 Синхронизацию с ПК делать с помощью ардуино. У ардуино уже есть USB порт, начнем с самого простого — имитация нажатия кнопки мышки.
6 Кадровое окно делать шире кадра или вообще отказаться от кадрового окна в классическом понимании. Это позволит избежать длительного висения в кадре волосков и пыли.
7 Делать очистку пленки от пыли липкими роликами.
8 Ну и поэкспериментировать с влажным сканированием, только пока не предполагаю где можно взять спец жидкости.

Для начала заказал и получил вот такую камеру:

Позволяет делать примерно такие фото:
Кнопка на трубке домашнего телефона

10-и рублевая монета

думаю для домашнего телекино вполне сгодится, начал думать над механикой.
ссылка на оригинал статьи https://geektimes.ru/post/289539/

Formlabs интригует, Top 3D Shop дарит подарки

Компания Formlabs выпускает новый продукт и интригует посетителей сайта черным-черным баннером с обратным отсчетом. Top 3D Shop наградит самого проницательного.

Никто, кроме работников самой компании, не знает — что же будет представлено публике 5 июня, на мероприятии The Digital Factory в Кембридже, которое Formlabs проводит совместно с Desktop Metal.

Будет это новый стереолитографический принтер, наследник известного Form 2, или принтер основанный на других принципах работы? Может быть, это будет МФУ, позволяющее и сканировать, и печатать? Или принтер печатающий металлом?

Выдвигайте свои предположения и выигрывайте! Первый, кто верно угадает — что же скрывает Formlabs, что такое Fuse 1 — выберет и получит бесплатно товары Top 3D Shop на сумму 5000 рублей.

Для получения подарков надо залогиниться с профилем социальной сети через Disqus и первым предложить правильный вариант в комментарии к этому посту на нашем сайте (ссылка ниже).

ССЫЛКА

Кстати, Киберпонедельник у нас продолжается до 4 июня включительно, и вы еще можете получить скидку до 60% на оборудование и материалы для 3D-печати.


ссылка на оригинал статьи https://geektimes.ru/post/289685/

В Севастополе случайно заблокировали запрещённые Украиной российские соцсети и сервисы

Утром 31 мая российский провайдер «Телесистемы» (дочка украинского провайдера «Воля») заблокировал на территории Крыма доступ к «Яндексу», Mail.ru, «Вконтакте» и многим другим российским сайтам, которые попали под экономические санкции украинских властей. Об этом пишет севастопольский новостной портал ForPost. Местные жители говорят, что блокировка произошла не только у этого провайдера, а примерно у двух третей абонентов различных провайдеров Крыма.

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

При попытке абонентов провайдера «Телесистемы» зайти на один из сайтов, которые подверглись блокировке, появлялось сообщение на украинском языке: «Уважаемые абонент! Доступ на этот ресурс заблокирован согласно Указу Президента Украины №133/2017. О решении Совета национальной безопасности и обороны Украины от 28 апреля 2017 года „О применении персональных специальных экономических и других ограничительных мер (санкций)”. Компания ВОЛЯ».

Как известно, указ Порошенко о продлении антироссийских санкций вступил в силу 17 мая. В расширенную версию санкционного списка попали 1228 человек и 468 фирм и компаний.

Ситуацию с блокировкой крымчан разъяснил в комментарии для ТАСС и. о. руководителя Главного управления информатизации и связи Севастополя Владимир Георгиу. Он сказал, что блокировка произошла в результате предоставления абонентам трафика, закупаемого на Украине: «Часть трафика шла через украинских провайдеров, поэтому произошла блокировка, но вопрос был решён в течение двух-трёх часов, была перепрописана маршрутизация. У провайдера часть трафика шла через Россию, часть — через Украину, те абоненты, которые получали украинский трафик, и столкнулись с блокировкой. Видимо, первый маршрут был занят, поэтому пользователи были перенаправлены по второму маршруту и получили эти оповещения, а сейчас принудительно прописали, чтобы по этому маршруту трафик не шёл», — сказал Георгиу.

Специалист объяснил, что это чисто техническая проблема, с которой могут столкнуться жители любой страны, если трафик идёт через соседнюю страну, где заблокирован какой-то ресурс.

Владимир Георгиу также пояснил, что провайдер «Телесистемы» закупил трафик у своей материнской компании «Воля», и это не является нарушением. И сообщение о блокировке поступило именно с территории Украины от материнской компании, которая действовала в соответствии с законодательством своей страны. Здесь тоже никакого нарушения. Логотипы компаний «Телесистемы» и «Воля» полностью совпадают, поэтому многие абоненты могли подумать, что сообщение пришло от их провайдера, а на самом деле оно пришло с Украины. Так что никаких нарушений нет, это чисто технический сбой.
ссылка на оригинал статьи https://geektimes.ru/post/289681/

Анатомия акустических систем: споры о широкой полосе

Так сложилось, что иногда в нашем блоге мы задеваем вопросы, вызывающие достаточно бурное, живое обсуждение на этом и других ресурсах. Полагаю, что так будет и в этот раз, так как речь пойдёт о почти философском (для некоторых людей) вопросе: преимуществах и недостатках широкополосных АС в сравнении с многополосными.

Дискуссии на тему: имеет ли размер значение (зачеркнуть), что лучше – одна широкая или много узких, сотрясает форумы филофонистов и меломанов не один год. Как и прежде я не намерен ставить в спорах точку и лишь подготовлю почву для дискуссии, подробно изложив некоторые факты, и обозначу собственное субъективное мнение о проблеме.

Отмечу, что я являюсь сторонником многополосных АС, и по ряду причин полагаю, что чем больше полос (в разумных, конечно, пределах), тем лучше. В силу изложенного выше, я могу быть несколько необъективным в оценке полярной точки зрения (но буду стараться сохранить нейтральный подход).

Суть споров

Практика применения широкополосных динамических излучателей и АС, созданных на их основе, сформировала устойчивый стереотип о том, что чем шире частотный диапазон электродинамического излучателя, тем ниже его линейность. Соответственно, у подавляющего большинства широкополосных излучателей, как правило, не очень ровная АЧХ, также для многих излучателей этого типа характерен высокий уровень гармоник и интермодуляционных искажений.

Такое мнение подтверждается целым рядом чистых, с точки зрения физики звука и психоакустики, экспериментов, проведенных за последние 40 лет. В экспериментах сравнивались широкополосные и многополосные АС. В связи с наличием серьёзных недостатков (низкая линейность компонентов, оборудованных широкополосными излучателями), подавляющее большинство производителей отказались от широкой полосы и стали выпускать многополосную акустику.

Противники многополосной акустики утверждают, что низкая линейность динамиков подобных систем с лихвой компенсируется отсутствием «ужасных фазовых искажений», «чудовищных проблем» с линейностью кроссоверов, разделяющих звук на полосы.

Иными словами: у многополосников фильтры «безбожно крутят фазу», что «ужасно» отражается на звуке. Кроме того, не редко заявляется о том, что пассивные кроссоверы способны существенно ухудшить динамические характеристики системы, снизить детальность звучания и сделать его «плоским». Перечисленные недостатки относятся в основном к пассивным кроссоверам, а недостатком активных является их стоимость.

Кроме прочего, приверженцы широкополосных АС часто апеллируют к неким магически-метафизическим особенностям влияния, воспроизведённого ими звука. В качестве демонстрации «магического» воздействия звука, издаваемого такой АС, приведу одну цитату (она вполне отражает мнение тех, кто апеллирует к «шаманизму» в этом вопросе):

«Но с другой стороны, сам не заметив, я через какое-то время я перешел от анализа звучания к прослушиванию музыки. Ставил композицию за композицией, слушал час вместо запланированных 10-15 минут. Потом появилось очень интересное ощущение — захотелось подпевать за исполнителем, попытаться сыграть аккорд за инструментом — хотя и то и другое после привычной уху самоделке на СканСпиках разбиралось с трудом =). Выключив аппаратуру, ушел в очень положительном настроении — появилось ощущение, что услышал что-то то, что никогда не слышал раньше — что именно, сказать сложно. Но — получается правы те, кто говорит о какой-то магической стороне широкополосников…»

(орфография и пунктуация сохранены)

Многополосные АС

Объективно, подавляющее большинство многополосных АС обладают рядом преимуществ.
Для большинства многополосных систем с пассивными кроссоверами характерны:

  • Более равномерная АЧХ, в сравнении с широкополосными системами;
  • Частотный спектр, достаточный для воспроизведения всех слышимых частот (20 Гц – 20кГц против 60 – 18 000 Гц у большинства широкополосных);
  • Меньшая чувствительность, но за счет этого большая линейность компонента;
  • У систем высокого класса, как правило, решена проблема фазолинейности фильтров (фазовые задержки находятся за порогом человеческого восприятия).

АС с активными кроссоверами обладают теми же достоинствами, при этом имеют значительно меньшее количество проблем с ФЧХ и большую крутизну среза (порядка 10-25 Дб). Основной недостаток систем с активным кроссовером является стоимость, они, как правило, в 2-3 раза дороже своих пассивных собратьев.

АЧХ качественной трехполосной акустики

Как я уже отмечал, помимо сложности конструкции и цены для многополосных систем характерно наличие фазочастотных искажений. При этом следует учитывать, что этот тип искажений может быть заметен только в случае, если превышаются пороги слышимости ГВЗ (которые в области 2 кГц составляют около 1 мс). Подавляющее большинство производителей акустических систем ориентируются на этот критерий с середины 90-х по нынешнее время.

«За» и «против» широкой полосы

Несмотря на «засилье» многополосной акустики на современном рынке, не все компании отказались от разработок в области «широкой полосы». Так, например, компании В&С, BHL, P.audio, Edge и Beyma считают исследования в этой области оправданными и продолжают выпускать широкополосные динамические громкоговорители высокой чувствительности. В частности, этими компаниями были предложены технические решения, позволяющие увеличить диапазон ВЧ подобных динамиков. Это было сделано за счет использования коаксиальной конструкции излучателей и других оригинальных решений (размещение специальных диффузорных «надстроек», присоединяющихся к центральному керну динамика и пр.). Такие системы особенно популярны в автозвуке и встраиваемой акустике.

Сравнение АЧХ 2-х шмирокополосных динамиков

АС на основе таких динамиков близки к многополосным по графику АЧХ. Однако, в силу использованного принципа, все равно склонны к образованию горба в области средних и «урезанию» остальных частот, особенно в области НЧ-диапазона. Следует также отметить, что расширение спектра широкополосных динамиков в сторону НЧ неизбежно связано с увеличением площади излучателя, что, как правило, приводит инженеров в тупик.

Кроме того необходимо учитывать, что среди приверженцев подобной акустики «true-вариантом» считается применение закрытого акустического оформления. Это, в свою очередь, не даёт производителям использовать фазоинверторный тип «ящиков», который смог бы усилить низкие в общей «картине». По той же причине в таких АС используются динамики с высокой чувствительностью, что отнюдь не добавляет линейности таким системам.
Известно, что наиболее серьёзные проблемы с линейностью широкополосных излучателей отмечаются в границах частотного раздела, что и объясняет большую распространённость многополосников.

Итог

Как я ни старался быть нейтральным – не получилось. В заключение могу отметить, что мои личные впечатления от прослушивания широкополосной акустики вполне совпадают с тем, что мне доводилось читать о проблемах этих систем. Звучание изобилует средними частотами и не создаёт ожидаемой объёмной картины, низов – нет. Иными словами, несмотря на отсутствие фазовых проблем, присущих многополосным системам, широкополосники удовлетворительными считать не могу. Нелинейность, особенно выраженная в спектрах частотного раздела, убивает все достоинства «широкой полосы».

Пока писал пост, в гости зашел знакомый звурежиссер, резюмировал: «Все утверждения, что линейный звук добывается из одного излучателя — глупость полная».

Искренне надеюсь, что среди читателей найдутся люди, которые знают, по какой ещё причине среди аудиофилов пользуется популярностью широкополосная акустика. Как я уже написал, мне удалось быть объективным. Жду комментариев, опровергающих мою точку зрения.
ссылка на оригинал статьи https://geektimes.ru/post/289679/