JavaScript prototype

В JavaScript есть ряд разительных отличий от других языков программирования. Одним из них является такая вещь как прототип. Часто можно услышать фразы “прототипное наследование”, так вот я постараюсь объяснить что это, так как тема простая, но новичкам с этим не везёт.

Есть ряд “нормальных” ООП языков, в них есть наследования, инкапсуляция, иногда интерфейсы, иногда абстрактные классы, в жс нет ничего из этого, те кто знают как работает ООП в других язык, могут порадоваться что в жс есть хотябы оператор new и instanceof, и нет ничего вышесказанного (в обычном смысле). Те, кто не знают других ООП языков, имейте ввиду, то, что ниже, редко где кроме жс увидишь, это особенность жс.

Read More

с чего начать программировать

почему JS? - можно писать сервер, можно сайты, можно обработку видео, десктопные приложения, мобильные и т.д. Язык не самый лучший, его много критикуют, он сложнее PHP, в нём совсем другой ООП, но у него есть миллионы фанатов, много библиотек на все случаи жизни, он очень гибкий.

С чего начать изучать современный JavaScript?

Read More

 node-shell-commandor

раннее я писал о tmux и о screen это нативные терминальные мультиплексоры, они гибкие, тмукс имеет командный апи (кроме хоткеев).

Но если нужно совсем немного, запустить 4 команды параллельно и легко скопировать текст одной из них?

Есть масса вариантов на JS есть shelljs он делает абстракцию над командами, есть vorpal он для построения интерактивных консольных приложений.

презентация по теме (KharkovJS)

Есть масса минусов у JS для таких целей, но есть и огромный ряд задач, которые они удачно решают.

Сегодня хочу прорекламировать свою тулзу node-shell-commandor для запуска команд, она очень удачно вписывается как дев тулза для проекта на ноде, через неё удобней и проще запустить окружение для разработчика, смотрите скрины, ставьте лайки

docker clear

Combo:

1
2
3
4
5
6
# Most popular modern way to clean
docker system prune
# same but all images and volumes
docker system prune --volumes --all
# say "yes" automatically
echo 'y' | docker system prune

I encountered btrfs problems: docker says it has no volumes, but in fact
they exists. I want delete all btrfs volumes with word docker in path
limited by 400 pcs for run:

1
sudo btrfs subvolume delete --commit-each --verbose $(sudo btrfs subvolume list / | grep docker | awk '{ print "/"$9 }' | head -n 400)

Old fashion way:

1
2
3
4
5
6
7
8
9
10
# Delete all containers with volumes; Usefull for gitlab-ci
docker rm -v $(docker ps -a -q)
# Delete all exited containers with volumes
docker rm -v $(docker ps -a -q --filter status='exited')
# Delete all images
docker rmi $(docker images -q)
# Clear images without tags or names..
docker rmi $(docker images | grep '^<none>' | awk '{print $3}')
# Remove old volumes
docker volume rm $(docker volume ls -qf dangling=true)

docker ++

докер позволяет сделать пару полезных вещей

всем рекомендую читать мануал, но вот пример, на многие случаи жизни

docker run -p 3000:3000 -it –rm –name shatel-node-dev -v “$PWD”:/usr/src/myapp -w /usr/src/myapp –user=33:$(id -g) -e HOME=/usr/src/myapp node-full-shatel env

разберём эту прекрасную строчку детальней

Read More

tmux

раньше я описывал screen - консольный враппер над терминалами, очень полезный, гибкий, но не достаточно. там же я описал как работать с хоткеями.

обязательно учим хоткеи - это таже самая замечательная статья, очень рекомендую читать man tmux там описано всё. внизу есть самое необходимое - примеры.

Read More