typescript vs flow

За что я люблю typescript и не люблю flow.

По количеству фич Тайпскрипт и флоу практически одинаковы и на самом деле холивар тут разводить не стоит. Хотя отличия все же есть, например,
у тайпскипта есть дополнительные примитивы для классов реализующие полноценное ООП, числовые и строковые enum‘ы, а флоу умеет проходится по коду и предугадывать типы значений.

Первая вещь которая мне не нравится во флоу, то что он приучает писать невалидный код в .js файлах. Если однажды ваш коллега по отрасли вдруг захочет скопировать, например, ваш компонент в себе в проект не заглянув в исходный код, то у него ничего не получится, его сборщик сломается и ему придется задуматься о дополнительном слое сборки или даже о выносе кода в отдельный модуль, скорее всего, после того как он уже назвал примерные сроки, что может привести к проблемам с дедлайном. Так же джуниоры которые вместо ванильного js увидят вот это вот все с типами, могут сильно испугаться. В тайпскрипте, аналогично jsx и другим препроцессорам, файлы имеют явно расширения .ts или .tsx. Про поддержку в IDE я ничего говорить не стану, хотя интуиция подсказывает что тут проблемы тоже скорее всего всплывут.

PS: если мы используем flow comment types то все ок.

Второй минус flow в том, что он написан на мало известном для javascript сообщества языке — ocaml. Это замедлит его развитие, и если однажды фейсбук откажется от него, то умрет он в ту же секунду!

Напоследок наброшу субъективного:
Для flow мало тайпингов у внешних библиотек, большенство из них частичны.
По flow гораздо меньше обучающих материалов, в то время как по тайпскрипту даже есть курс на coursera.

У typescript почти в 2 раза больше звездочек на github, несмотря на то что оба проекта начались в 2014 году.

Сочетания клавиш windows 10

windows + l — сменить пользователя
ctrl + shft + esc — диспетчер задач
windows + e — новое окно проводника
windows + (s, q) — поиск
windows + D — свернуть/развернуть все окна
windows + Tab — показать все запущенные приложения
alt + пробел — открыть меню приложения (можно будет, например, свернуть или развернуть приложение без мышки)
alt + printScr — снимок текущего приложения
windows + e — открыть проводник

Как удалить все аудиозаписи в вк без vkopt

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

Сделать это можно при помощи простого скрипта, выполняемого из консоли разработчика.


document.querySelectorAll('.audio_act._audio_act_delete').forEach(audioDeleteButton => audioDeleteButton.click())

Аналогично можно поступить и с видео-записями

document.querySelectorAll('#delete').forEach(videoDeleteButton => {videoDeleteButton.click()});

Отслеживание выполнения команд и системных вызовов

lsof — выводит все открытые файлы в системе.
strace — выводит все системные вызовы. Пример — strace echo ‘hello world’

Хоткеи для top:
M — обновить экран
T — сортировка по используемой рнзидентной памяти
P — использование цпу
u — отобразить процесс только для одного пользователя
f — выбрать другие параметры для отображения
? — статистика использования всех команд top

Как написать Virtual Dom

Есть 2 вещи, которые необходимо знать. Вам не нужно погружаться в исходный код React’а или других библиотек, они довольно большие и сложные, на самом деле Virtual DOM может быть написан в меньше чем 50 строк кода.

  1. Virtual DOM это аналог настоящего DOM
  2. Когда мы меняем что-то в дереве Virtual DOM , мы создаем новый Virtual DOM. Алгоритм сравнения двух деревьев вычисляет разницу и вносит только необходимые, минимальные правки в  настоящий DOM.

Читать далее Как написать Virtual Dom

html5 notification VS web push api

В чем разница между html5 notification и web push API?

html5 notification используется для отображения уведомлений с веб-страницы, в то время как Push API, используется для отправки уведомлений удаленно, даже если веб-страница неактивна.

Koa vs Express

Философия koa направлена на «исправление и замену узлов», в то время как express — «расширяет узел». Koa использует co, чтобы избавить приложение от callback-hell’а и упростить обработку ошибок. Он выставляет собственные this.request и this.response вместо аргументов функции, объектов req и res.

С другой стороны, express расширяет объекты req и res дополнительными методами и свойствами, включает в себя много других «фишек» таких как: маршрутизация и шаблонизация. В koa этого нет.

Таким образом, koa можно рассматривать как абстрактный http модуль для node.js, а express это полноценный фреймворк.

Как распаковать ахрив в linux

Для сжатия файла есть GNU zip.
Для запуска команды выполните — gzip, для декомпрессии gunzip

Для того, чтобы сложить несколько файлов в архив нужно использовать tar.


#c - режим создания.
#v - отобразит размер файла, права доступа.
#f - файл параметр.
tar cvf archive.tar file1 file2

Для того, чтобы распаковать файл:

# - режим распаковки.
tar xvf archive.tar