Spark in me - Internet, data science, math, deep learning, philo

snakers4 @ telegram, 1298 members, 1458 posts since 2016

All this - lost like tears in rain.

Internet, data science, math, deep learning, philosophy. No bs.

Our website
- spark-in.me
Our chat
- goo.gl/WRm93d
DS courses review
- goo.gl/5VGU5A
- goo.gl/YzVUKf

Posts by tag «linux»:

snakers4 (Alexander), May 18, 06:59

Using ncdu with exclude

A really good extension of standard du

sudo ncdu --exclude /exclude_folder /

Useful when something is mounted in /media or /mnt

#linux

snakers4 (Alexander), April 30, 05:37

A small saga about OpenVPN

TLDR:

(0) Purchase a cheap VDS from a noname provider with decent bandwidth => install OpenVPN => forget about problems => share with friends and family;

(1) This guide just works goo.gl/K2xjby (do not be afraid of its length - it is just verbose);

(2) I tested it with DigitalOcean and hostus.us;

From a financial standpoint US$1-5 per month per 3-5 users without any 3rd party services seems to be a bargain.

Hosting options:

(0) With DO it just works (just follow the guide step by step). But the cheapest VDS (which is overkill for this) costs US$5 per month. If you use my link - m.do.co/c/6f8e77dddc23 - you will get US$10 for free;

(1) Tested it with hostus.us. Follow my link, if you would like to support us - my.hostus.us/aff.php?aff=2169. A decent VPS can be found in Amsterdam for as cheap as US$5-8 for 3 months. Be careful - their UX is a bit misleading at times - (!!!) the country choice does not seem to flow from one menu to another (!!!). This seems to be more than enough - goo.gl/GyPZ6u;

(2) If you want to search yourself - go here - lowendstock.com/ - the best 2 options seem to be VirMach and hostus, but the former is sold out;

Host.us caveats:

(0) If you would like to follow the DO guide but use hostus, then for the cheapest options do not forget to enable this in the admin goo.gl/DRx3UX;

(1) VPS provisioning time there is 0-8 hours. In my case it was ~40 mins;

(2) I also faced this bug -goo.gl/BTqeTX;

What if I have a problem with ssh keys on windows?

(0) This will give you some basic info about managing Linux servers goo.gl/TgL61G;

(1) Here we explain how to use Putty and ssh keys on Windows goo.gl/xxvGBb (also just google it);

Why OpenVPN:

(0) Seems to be the most well-known open-source VPN software with easy accessible clients for all major platforms;

(1) I know people who used it;

Alternatives:

(0) github.com/trailofbits/algo - seems to be newer and cooler, but I do not know living people who reported actually using it;

#linux

#digital_freedom

Как настроить сервер OpenVPN в Ubuntu 16.04 | DigitalOcean

Хотите иметь безопасный и защищённый доступ в Интернет с вашего смартфона или ноутбука при подключении к незащищённой сети через WiFi отеля или кафе Виртуальная частная сеть (Virtual Private Network, VPN) позволяет...


snakers4 (Alexander), April 22, 13:53

SOCK5 proxy configuration on Vultr

As of now, Vult was not (yet) blocked, probably because it is less known in the CIS. If you missed our Digital Ocean sock5 configuration guide, then you can follow this guide.

For us, both DO and Vulture work as of now.

- spark-in.me/post/vultr-sock5-proxy-server

You can use our referral links to create accounts

- m.do.co/c/6f8e77dddc23

- www.vultr.com/?ref=7402755

If you like the above guides, consider buying us a coffee

- www.buymeacoffee.com/8oneCIN

#linux

#digital_freedom

Playing with a simple SOCKS5 proxy server on Vultr and Ubuntu 16.04

Start your own proxy server Статьи автора - http://spark-in.me/author/yara_tchk Блог - http://spark-in.me


Readable list comprehensions in Python

My list and dictionary comprehensions usually look like s**t

gist.github.com/IaroslavR/7dcb54830242a22de1869f6fd05a8d7e

#python

Examples of readable comprehension formating from SO


snakers4 (Alexander), April 21, 14:49

For windows users, that use their legacy machine as thin client to access Linux servers

Old habits die slowly. I use and old, but powerful Windows machine and so far doing everything on remote servers was ok, until I needed to commit to github using ssh agent forwarding.

But my key is stored locally and I do not want to use git bash or any windows based software, because it sucks. Also having a single source of truth on a remote Linux machine is better anyway. But I cannot store my key on the remote machine.

There is a solution - ssh-agent forwarding. In a nutshell:

- Install pageant, add your identity locally (.ppk private key file)

- Check allow agent forwarding in Putty

- Follow the below guides to check that all works

- profit

www.digitalocean.com/community/tutorials/how-to-use-pageant-to-streamline-ssh-key-authentication-with-putty

developer.github.com/v3/guides/using-ssh-agent-forwarding/

#linux

How To Use Pageant to Streamline SSH Key Authentication with PuTTY | DigitalOcean

Pageant is a PuTTY authentication agent. It holds your private keys in memory so that you can use them whenever you are connecting to a server. It eliminates the need to explicitly specify the relevant key to each Linux user account if you use more th


snakers4 (Alexander), April 17, 06:30

Also what is interesting, despite the fact that geektimes blocked my SOCKS proxy post and the fact that marketing based web-sites stole it (in Russian), I received the following feedback:

- 3 people thanked me in the ODS channel

- 3 people thanked me via email

- 2 people thanked me in geektimes PM

Also this is also interesting - my referral link was hit 165 times and ~50 people registered =)

- prntscr.com/j69w85

So if you missed the fun

- Post spark-in.me/post/vds-socks5-proxy-server

- Referral link m.do.co/c/6f8e77dddc23

- Note that the final config is in the comments and here (thanks to t.me/bykvaadm and its admin)

sudo apt update && apt upgrade

wget launchpad.net/ubuntu/+archive/primary/+files/dante-server_1.4.2+dfsg-2build1_amd64.deb

dpkg -i dante-server_1.4.2+dfsg-2build1_amd64.deb

echo '

logoutput: syslog /var/log/danted.log

internal: eth0 port = 1080

external: eth0

socksmethod: username

user.privileged: root

user.unprivileged: nobody

client pass {

from: 0.0.0.0/0 to: 0.0.0.0/0

log: error

}

socks pass {

from: 0.0.0.0/0 to: 0.0.0.0/0

command: connect

log: error

socksmethod: username

}' > /etc/danted.conf

# basic ufw installation

sudo apt-get install ufw

sudo ufw status

# wiki.dieg.info/socks

sudo ufw allow ssh

sudo ufw allow proto tcp from any to any port 1080

sudo ufw status numbered

sudo ufw enable

sudo systemctl enable danted

sudo useradd --shell /usr/sbin/nologin av_socks && sudo passwd av_socks

So, thanks to bykvaadm for his feedback and support and to everybody else.

#linux

Screenshot

Captured with Lightshot


Also someone just bought us a coffee

- www.buymeacoffee.com/8oneCIN

Please consider supporting us for more quality content

Usually it takes several hours (to a month if it is about a competition) to write and does not pay well

And when people steal your content to put their refcodes in it, it's painful (

Buy Alexander Veysov a Coffee - BuyMeACoffee.com

A practitioner in the field of Data Science / Deep Learning


snakers4 (Alexander), April 15, 09:49

A DISCIPLINED APPROACH TO NEURAL NETWORK HYPER-PARAMETERS: PART 1 – LEARNING RATE, BATCH SIZE, MOMENTUM, AND WEIGHT DECAY

(0) arxiv.org/abs/1803.09820, Leslie N. Smith US Naval Research Laboratory

(1) Will serve as a good intuition starter if you have little experience (!)

(2) Some nice ideas:

- The test/validation loss is a good indicator of the network’s convergence - especially in early epochs

- The amount of regularization must be balanced for each dataset and architecture

- The practitioner’s goal is obtaining the highest performance while minimizing the needed computational time

(smaller batch - less stability and faster convergence)

- Optimal momentum value(s) will improve network training

(3) The author does not study the difference between SGD and Adam in depth =( Adam kind of solves much of his pains

(4) In my practice the following approach works best:

- Aggressive training with Adam to find the optimal LR

- Apply various LR decay regimes to determine the optimal

- Use low LR or CLR in the end to converge to a lower value (possible overfitting)

- Test on test / delayed test end-to-end

- In my experience - a strong model with good params will start with test/val set loss much lower / target metric much higher than on the train set

- In some applications if your CNN is memory intesive - you just opt for the largest batch possible (usually >6-8 works)

- Also there is no mention of augmentations - they usually help reduce overfitting much better than hyper parameters

#deep_learning

Nice read about systemctl

www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units

#linux

How To Use Systemctl to Manage Systemd Services and Units | DigitalOcean

Systemd is an init system and system manager that is widely becoming the new standard for Linux machines. While there is considerable controversy as to whether systemd is an improvement over the init systems it is replacing, the majority of distributi


snakers4 (Alexander), April 14, 12:25

Found an applied channel (RU) about security and admin stuff

Looks professional

- t.me/bykvaadm

- also the channel's admin posted some useful remarks here

-- geektimes.ru/post/299971/

#linux

Админим с Буквой

Канал о системном администрировании, DevOps и немного Инфобеза. По всем вопросам обращаться к @bykva https://t.me/joinchat/CwI6k0hYW_Bn4TYvxvDiSQ флуд и обсуждение. обсуждение и флуд.


snakers4 (Alexander), April 13, 07:21

So I briefly dug into running a containerized GPU accelerated GUI app (I want to be able to run some apps I do not really want on my host).

Docker kind of works for this purpose, but I found working guides for nvidia-docker, not nvidia-docker2.

Looks like if you want to run a Linux host with a Linux container - then LXD is a good option. It is high level and seems to have an easy API to use. I will report if that will work for me.

- Guide blog.simos.info/how-to-run-graphics-accelerated-gui-apps-in-lxd-containers-on-your-ubuntu-desktop/

- LXD vs Docker unix.stackexchange.com/questions/254956/what-is-the-difference-between-docker-lxd-and-lxc/254982

- Extensive LXD tutorial stgraber.org/2016/03/11/lxd-2-0-introduction-to-lxd-112/

#linux

How to run graphics-accelerated GUI apps in LXD containers on your Ubuntu desktop

In How to run Wine (graphics-accelerated) in an LXD container on Ubuntu we had a quick look into how to run GUI programs in an LXD (Lex-Dee) container, and have the output appear on the local X11 s…


Soviet arcade video games museum (pics)

- aminux.wordpress.com/2018/04/12/moscow-arcade-machine-museum/comment-page-1/#comment-1750

Ещё один занятный музей

Продолжая музейную тему, на этот раз заглянем в Москву. Только двинем мы не в Кремль, а в место более для меня интересное.…


snakers4 (Alexander), February 11, 18:28

A note on reusing my old hard-drives from mdadm raid10 array in a new raid0 array after buying more hard drives (goo.gl/grFMSE).

Ideally this command should remove the superblock from old disks

sudo mdadm --zero-superblock /dev/sdcBut in practice I faced a problem, when only after something of this sort (goo.gl/o4r8CS)

dd bs=512 count=63 if=/dev/zero of=/dev/sdaraid arrays started properly on reboot. This happened to both old raid10 disks and a disk that was used as plain storage. Magic.

Ofc you can shred and fill the whole disk with zeros, but it takes a lot of time...

sudo shred -v -n1 -z /dev/sda

#linux

How To Create RAID Arrays with mdadm on Ubuntu 16.04 | DigitalOcean

Linux's madam utility can be used to turn a group of underlying storage devices into different types of RAID arrays. This provides various advantages depending on which RAID level is used. This guide will cover how to set up devices in the most common


snakers4 (Alexander), February 02, 05:17

2 links for quick look up into shell commands

- quick replacement to man pages tldr.ostera.io/

- explanation of each flag in a shell command explainshell.com

#linux

snakers4 (Alexander), February 02, 04:58

A more concise alternative to nvidia-smi

watch --color -n1.0 gpustat --colorInstallation:

pip3 install gpustat

Also you can use python bindings for GPU drivers, but I managed to find only drivers for python2.

#linux

#deep_learning

snakers4 (Alexander), January 24, 09:06

If after updating your Ubuntu packages your dockerized application suddenly fails to see the GPU(s), then you should migrate to nvidia-docker-2.

Links:

github.com/nvidia/nvidia-docker/wiki/Installation-(version-2.0)

Do not forget to read section Removing nvidia-docker 1.0

In my case all was solved simply by copy-pasting their commands:

# github.com/nvidia/nvidia-docker/wiki/Installation-(version-2.0)

# migrate to NVIDIA docker 2

docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f

sudo apt-get purge nvidia-docker

curl -s -L nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

curl -s -L nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

sudo apt-get update

sudo apt-get install nvidia-docker2

sudo pkill -SIGHUP dockerd

# testing

docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi

#linux

NVIDIA/nvidia-docker

nvidia-docker - Build and run Docker containers leveraging NVIDIA GPUs


snakers4 (Alexander), January 03, 07:09

Some controversial stuff about Docker

devopsish.com/devopsish-056-is-docker-dead-tech-bros-kubernetes-tools-galore-and-more-89edb0cc703e

Hold on to your containers...

#linux

DevOps’ish 056: Is Docker Dead, Tech Bros, Kubernetes, Tools Galore, and More!

The end of 2017 is upon us. Whether your 2017 was amazing or terrible I wish you all the best in 2018. I have very mixed feelings about…


snakers4 (Alexander), December 21, 10:31

Для тех, кто хочет сделать rsync большого числа файлов через ssh + ключ.

Не выполняйте команду, пока не прочтете доку по всем флагам.

sudo rsync --dry-run --stats --ignore-existing --size-only -rvz -e 'ssh -p PORT -i /home/USER/.ssh/PRIVATE_KEY' --progress [email protected]_HOST:/path/to/remote/folder /path/to/local/folder/

#linux

snakers4 (Alexander), November 27, 06:17

Заметка.

Если вы хотите дать полноценное окружение на своей машине третьей стороне (другу, коллеге, девушке, участнику вашей команды), которые либо не обладают супер админскими навыками или просто не должны иметь root доступ или доступ туда, куда не надо, то есть очень простой способ это сделать:

- Поднимаете докер, ставите sshd сразу в докерфайле

- В докере должен быть ваш любимый софт + jupyter notebook со всеми свистелками

- Прокидываете папки и диски, ставите ограничения на RAM, видеокарты и CPU при docker run (или nvidia docker run)

- В докерфайл также прописываете установку glances

- После запуска контейнера делаете exec внутрь него и запускаете sshd

- Естественно надо не забыть пробросить порты в докере и своей сетевой инфраструктуре и включить пароль или ssh ключ на этапе создания образа по докерфайлу

- Итог - вы даете URL + ключ от jupyter notebook коллеге + ssh доступ внутрь контейнера. При этом внутри него он царь и бог и видит нагрузку и свои процессы (glances + nvidia-smi), но не может вообще ничего плохого сделать с системой, т.к. включаете контейнер и монтируете папки вы

И не надо возиться с виртуальными машинами, и видеокарты пробрасываются отлично!

#data_science

#linux

snakers4 (Alexander), November 24, 13:04

Офигеть - люди превращают мануалы в читабельные и практичные гайды!

- tldr.sh

#linux

TLDR pages

Simplified and community-driven man pages


snakers4 (Alexander), November 18, 11:47

В последнее время во время практической копоти (настройка окружений, докеров, установка дров, админство) я начал сталкиваться с нехваткой знаний про архитектуру Линукса и Юникса. В интернете безумного много книг, но самые популярные как правило издавались уже по восемь раз и фокус в них совсем на низко-уровневые вещи. Какие-то книги, типа The Linux Bible, судя по оглавлению слишком "прикладные" (и размер в 1000+ страниц смущает).

По этой причине нашел в интернете довольно свежую книгу на эту тему. Если вы начинаете коптить в Линукс - должно зайти

- goo.gl/Hshoyz

#linux

How.Linux.Works.What.Every.Superuser.Should.Know.2nd.Edition.PDF.pdf


snakers4 (Alexander), November 15, 04:29

Лайфхак - если нужно в консоли распаковать файл размером в 1 терабайт, причем он запакован исключительно в tar без шифрования, то можно просто запустить несколько tar с ключом k и это решит вопрос в гораздо более сжатые сроки.

Внутри файла, конечно, должно быть много файлов запаковано.

#linux

snakers4 (Alexander), November 12, 03:32

Про апгрейд на NVME диск

- aminux.wordpress.com/2017/11/11/plextor-nvme-ssd-home/

#linux

#hardware

NVMe дома, ня

Всем привет ! Постоянные читатели моего блога наверняка могли заметить, что я могу быть довольно консервативен в плане апгрейдов компьютерного железа, а сменить систему почти 10-и летней давности м…


snakers4 (Alexander), November 02, 05:19

Если надо скопировать миллионы файлов в Ubuntu очень быстро

find FOLDER -maxdepth 1 -type f -name '*.jpg' -print0 | xargs -0 mv -t FOLDER/SUBFOLDER/#data_science

#linux

snakers4 (Alexander), October 23, 03:29

Давно не делал подборки с канала. Сделаю несколько штук)

Интересные ссылки на тему DS / ML

68 Cheat sheet-ы Data wrangling - snakers41.spark-in.me/1219

69 Bokeh - замена D3.js но на питоне - snakers41.spark-in.me/1220

70 Новый курс от fast.ai - прикладная линейная алгебра - snakers41.spark-in.me/1224

71 Быстрый анализ потокового видео - snakers41.spark-in.me/1227

72 Sklearn cheat-sheet - snakers41.spark-in.me/1229

73 Советы от призеров на Kaggle snakers41.spark-in.me/1231

74 Интуиция при использовании t-SNE - snakers41.spark-in.me/1239

75 Бенчмарки либ для градиентного бустинга - snakers41.spark-in.me/1250

76 ROC и AUC простыми словами - snakers41.spark-in.me/1262

77 Еще прогресс бары на питоне - snakers41.spark-in.me/1269

78 Fast.ai открыли вторую серию курса про глубокое обучение - snakers41.spark-in.me/1270

79 Чит шиты - архитектуры нейросетей - snakers41.spark-in.me/1273

80 РАБОТАЮЩИЙ пример multi-curl - snakers41.spark-in.me/1274

81 Многопоточность в питоне - snakers41.spark-in.me/1276

82 Как эффективно загружать .npy массивы в память в питоне - snakers41.spark-in.me/1279

83 Туториалы по Keras + tf с примерами в ipynb - snakers41.spark-in.me/1278

84 Новый курс от Andrew Ng - snakers41.spark-in.me/1293

85 Разложения матриц fast.ai - snakers41.spark-in.me/1294

86 Дельные статьи с Хабра - snakers41.spark-in.me/1303

87 Музыкальные рекоммендации - snakers41.spark-in.me/1305

88 Визуализация в виде карты - snakers41.spark-in.me/1306

89 Классная презентация про ML в гугле - snakers41.spark-in.me/1309

90 Многопоточная работа с файлами в питоне в Keras - snakers41.spark-in.me/1313

91 Мобильные архитектуры нейросетей snakers41.spark-in.me/1316

#digest

#data_science

Spark in me

Пара сверх-полезных cheat-sheet-ов для "ковыряния" в данных на pandas - Часть раз https://goo.gl/NYkqWb - Часть два https://goo.gl/EXjGXu Полезно будет тем, кто только начинает такие "ковыряния". На мой взгляд тут сильно не хватает сводных таблиц. Про них можно прочитать тут: - In a nutshell - https://goo.gl/K1xucE - Ссылка http://pbpython.com/pandas-pivot-table-explained.html #data_science #cheat_sheet


Подборка - статьи и заметки автора

30 Переход на HTTPS - snakers41.spark-in.me/1109

31 The art of learning - snakers41.spark-in.me/1099

32 Как пользоваться каналом - snakers41.spark-in.me/1084

33 Про деплой и поддержку сервера - snakers41.spark-in.me/1074

34 Про бекапы - snakers41.spark-in.me/1069

35 Про бекенд нашего сайта - snakers41.spark-in.me/1046

36 Как пользоваться каналом - snakers41.spark-in.me/1084

37 Заметка про Гугл, Андроид, Эппл и машинное обучение - snakers41.spark-in.me/1085

39 Книга про самообразование - snakers41.spark-in.me/1099

40 Заметка про семантическое ядро - snakers41.spark-in.me/1102

41 Заметка про RTB - snakers41.spark-in.me/1110

42 Анализ рынка через сайтмапы - snakers41.spark-in.me/1127

43 SMTP шлюзы - spark-in.me/post/smtp-relay-outsiders-view-1

44 Сайтмапы - часть 3 snakers41.spark-in.me/1171

45 Сайтмапы - часть 2 snakers41.spark-in.me/1153

46 Анализ 1.5м фоток квартир - начало - snakers41.spark-in.me/1180

47 Визуализации нейросетей - фейл - snakers41.spark-in.me/1196

48 Визуализация звука в питоне - snakers41.spark-in.me/1197

50 Про глупость и способы ее исправить - snakers41.spark-in.me/1263

51 Установка софта для работы с GPU и нейросетями - snakers41.spark-in.me/1287

52 Работа с U-NET на практике - snakers41.spark-in.me/1307

53 Как тренировать сверточные нейросети в 10 раз быстрее - snakers41.spark-in.me/1319

54 Про трудовую миграцию - snakers41.spark-in.me/1328

#digest

#data_science

Spark in me

Итак, закончилась небольшая эпопея по переводу сайта на HTTPS. Надеюсь кому-то покажется интересным. Описал основные блоки, которые по идее должны быть применимы для любого веб-проекта. Что самое главное - все старые ссылки и все-все-все должно работать) TLDR - ставьте https сразу и не мучайтесь) - https://spark-in.me/post/spark-in-me-https #internet


Подборка - статьи про pytorch

Гайд раз - snakers41.spark-in.me/1362

Fast.ai и pytorch - snakers41.spark-in.me/1367

Цикл статей про SSD на pytorch - snakers41.spark-in.me/1435

Pytorch и докер -snakers41.spark-in.me/1438

Впечатления про pytorch - snakers41.spark-in.me/1442

Расширение классов Pytorch - snakers41.spark-in.me/1447

Аугментации на pytorch - snakers41.spark-in.me/1449

Pytorch - снижение lr по шагам - snakers41.spark-in.me/1457

Внутрянка tf и pytorch - snakers41.spark-in.me/1467

#digest

#deep_learning

#pytorch

Spark in me

Знакомый поделился классным гайдом по PyTorch, который объясняет в чем его фишка. Если вы не пользуетесь Keras и ищете на чем потренироваться - то вам как раз подойдет. https://habrahabr.ru/post/334380/ #data_science #neural_nets


Подборка - Докер

Как начать в докер - snakers41.spark-in.me/1365

Как начать в докер - уже серьезнее - snakers41.spark-in.me/1403

Бойлерплейты на докере для DS - snakers41.spark-in.me/1409

Pytorch и докер -snakers41.spark-in.me/1438

Докер и проброс ssh - snakers41.spark-in.me/1439

Как поднять себе окружение в докере с уровня железа

snakers41.spark-in.me/1461

#digest

#linux

Spark in me

Если вы хотите начать превращать свой локальный или удаленный зоопарк в более структурированный зоопарк, или избавиться от конфликтов софта и необходимости все иметь всегда в последней версии, то вот несколько хороших вводных точек про докер - Раз https://habrahabr.ru/post/337306/ - Два https://docs.docker.com/get-started/ #linux


snakers4 (Alexander), October 20, 05:42

Если на новой инсталляции у вас с таким подходом есть баги с некоторыми extensions - то решение - просто выкинуть их из докер файла, запустить контейнер, зайти в него через exec и поставить из репозитория. Вероятно новые версии конфиликтуют.

# A NOTE ON ENABLING JPN EXTENSIONS

# sometimes pip install does not work on some systems

# installation from source solves the problem

git clone github.com/ipython-contrib/jupyter_contrib_nbextensions.git

pip install -e jupyter_contrib_nbextensions

jupyter contrib nbextension install --system

#data_science

#linux

snakers4 (Alexander), October 19, 07:47

По стечению обстоятельств, сегодня пришлось потратить утро на настройку окружения себе с уровня "bare metal". Ради самоконтроля, поддерживаемости и понятности, залогировал все в гайд.

- goo.gl/es3SVu

В нем вы найдете

- Как ставить линукс на железо

- Мой последний докерфайл, который поддерживает (и протестирован)

-- Keras, tf, pytroch

-- 95% ипользуемых библиотек python3 для data science, включая opencv без поддержки видео

-- Extensions для тетрадок jupyter

- Как настраивать базовую безопасность - ssh ключи

- Как монтировать диски и потом прокидывать их в докер

- И очень много ссылок для изучения, если вы реально хотите разобраться

#deep_learning

#linux

#admin

#data_science

Complete system installation for Data Science / Neural Networks from scratch / bare metal (assuming you have assembled the PC)


Ну и самые полезные extensions для jupyter тетрадок

goo.gl/XEWqDU

snakers4 (Alexander), October 14, 05:26

На всякий случай собираю ссылки на Image labelling tools, которые показались интересными судя по скриншотам чтобы не искать потом:

- sloth.readthedocs.io/en/latest/first_steps.html

- labelme.csail.mit.edu/Release3.0/

- goo.gl/QKQhCk

- is-innovation.eu/ratsnake/index.htm

#data_science

У меня встала потребность скачать много данных (30 ГБ) на headless сервере через торренты. Я всегда знал о существовании торрент-клиентов для Linux с cli, но тут я совсем недавно узнал что стандартный transmission имеет не только cli но и встроенный GUI, к которому можно получать доступ как к веб-серверу. Оказалось безумно просто и удобно - goo.gl/U4JGHy

Достаточно просто поставить его по гайду, остановить, поставить разрешенные IP для веб-сервера, сменить пароль, запустить - и зайти по локальному адресу в сети. И все - дальше все работает так же как десктопная версия transmission.

#linux

snakers4 (Alexander), October 12, 04:01

Небольшая заметка про работу с удаленными серверами. Раньше я всегда работал исключительно через текстовые редакторы и jpn, но сейчас вероятно встала необходимость залазить в сорс-код библиотек более удобно (использовать Pycharm к примеру).

Если сочетаются 3 потребности:

- работать удаленно

- использовать IDE с удаленным интерпретатором через ssh (как правило там есть иные опции, в том числе docker плагины, но они локальные как правило) - goo.gl/Ej1ZTs

- использовать docker

Для начала пара ссылок про ssh-server и зачем он нужен если вы не в курсе:

- goo.gl/o931SR

- goo.gl/AQfbKJ

То по идее надо, чтобы ssh-server демон работал в докере это надо учесть еще на стадии докерфайла перед билдом контейнера, сделать EXPOSE и прокинуть порты при run. По идее в контейнер можно и так зайти (goo.gl/MWSbBY) но тут нужен именно демон.

По идее ssh доступ в контейнер - это зло (goo.gl/P7uYnm), но другого способа в этой задаче нет. Собственно по этой причине собрал и протестировал для себя образ где еще есть ssh (на основе goo.gl/wNEr3K).

По идее демона ssh надо просто запускать при запуске контейнера вручную.

service ssh start

Можно поизвращаться и так (goo.gl/kspj1h), но это как мне кажется уже совсем.

Если вам нужен докерфайл - вот ссылка

- goo.gl/hgUL12

#data_science

#linux

#docker

Configuring Remote Interpreters via SSH - Help | PyCharm

Configuring remote interpreters via SSH; using SSH to configure remote interpreter


snakers4 (Alexander), October 03, 09:32

Из разряда софта для консоли, о котором можно узнать только от знакомых:

Наберите

ncdu ~Показывает в командной строке сколько места жрут папки.

Можно перемещаться по папкам.

- ashep.org/2013/analiz-ispolzovaniya-diska-pri-pomoshhi-ncdu/#.WdNYn9bTQV0

До этого я использовал du -hs * | sort -hr | head

Полезно когда на вашей помойке данных не много, а ОЧЕНЬ много.

#linux

#data_science

Анализ использования диска при помощи ncdu

Многим пользователям UNIX и Linux известны утилиты du и df, позволяющие анализировать количество занятого и свободного дискового пространства. Это отличные


snakers4 (Alexander), October 02, 10:50

В линуксе есть симлинки, lvm и mdadm и еще есть mount bind.

Пока не подскажут не узнаешь про такое.

По сути позволяет примонтировать одну папку в другую.

- unix.stackexchange.com/questions/198590/what-is-a-bind-mount

#linux

What is a bind mount?

What is a “bind mount”? How do I make one? What is it good for? I've been told to use a bind mount for something, but I don't understand what it is or how to use it.


snakers4 (Alexander), September 28, 13:27

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

Почему докер? Потому, что если вы работаете вдвоем на одном железе и у вас 2 пользователя с sudo доступом, то все рано или поздно скатится или в месиво или sudo доступ останется у одного пользователя. А в рамках образа в докере вы сам себе админ.

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

Сегодня не без помощи знакомого и репозитория от fchollet мы смогли родить пару докерфайлов, которые

- работают с jupyter notebooks c расширениями (что внезапно было геморройно из-за конфликта версий html5lib) из коробки

- работают с картами nvidia

- работают с keras, tf, theano и pytorch

- там стоят 95% основных либ на питоне

Если вы тоже хотите работать через докер,то вот последовательность шагов (это все делалось на Ubuntu 16.04):

0. Убедитесь что у вас стоят дрова для ваших карт и все работает (на канале было про это)

1.

Почитать про докер (в таком порядке):

- habrahabr.ru/post/337306/

- docs.docker.com/get-started/part1/

- docs.docker.com/get-started/part2/

- github.com/fchollet/keras/tree/master/docker

- github.com/NVIDIA/nvidia-docker

2.

Докерфайлы

- Раз - resources.spark-in.me/docker_deep_learning

- Два - resources.spark-in.me/docker_deep_learning_2

Отличаются способом решения головняка с html5lib.

3.

Последовательные шаги с комментариями, по идее если вы выполните вдумчиво и читая доку, то все будет работать:

- resources.spark-in.me/docker_commands_share

4.

Заметки про докер

- Если вы запускаете docker команды не от sudo, то не забудьте добавить юзера в группу docker - это не совсем явно в доке написано

- Докер создает промежуточные образы, поэтому если вы меняете конфиг, то лучше всегда дописывайте снизу - не придется качать файлы заново

- Пасхалка - посмотрите имена контейнеров если вы их не называете никак

- Докер позволяет пробрасывать порты и папки на дисках. Грубо говоря дисковое пространство тоже может быть параметров в ваших извращениях

- После остановки jupyter (ctr+c) НЕ НАДО заново запускать контейнер через run - так вы наплодите тьму контейнеров. Надо делать docker start -i CONTAINER_ID

#linux

#deep_learning

Основы Docker за Х часов и Y дней

0. Вступление Цель данной статьи собрать в небольшую кучку основную информацию, минимально достаточную для того, чтобы начать работать с докер на ежедневной...


snakers4 (Alexander), September 07, 12:05

Если вы хотите начать превращать свой локальный или удаленный зоопарк в более структурированный зоопарк, или избавиться от конфликтов софта и необходимости все иметь всегда в последней версии, то вот несколько хороших вводных точек про докер

- Раз habrahabr.ru/post/337306/

- Два docs.docker.com/get-started/

#linux

Основы Docker за Х часов и Y дней

0. Вступление Цель данной статьи собрать в небольшую кучку основную информацию, минимально достаточную для того, чтобы начать работать с докер на ежедневной...


snakers4 (Alexander), July 29, 08:48

Заметка из практики работы с серверами на абзац - про собственную глупость и простой способ ее исправить.

У меня есть сервер, который я собрал для своих целей. Стоит в другом городе в другой стране. Доступа физического туда нет. Человека, который бы смог даже с клавиатуры поправить что-то - в течение месяца там не будет. Есть несколько открытых портов в фаерволе и в роутере стоит проброс портов.

Надо пробросить новый порт в роутере. Обычно я это делаю через удаленный доступ в админку роутера (естественно минимальные меры безопасности тоже присутствуют). Но при этом есть 50% шанс, что роутер откатится на прошлый случайный конфиг (почему так происходит - желания разбираться ноль). Естественно заходить через RDP (я использую nomachine) с местным интернетом - лень (тут высокий пинг и ассиметричный канал).

Естественно роутер откатывается. Зайти на него нельзя удаленно (в старом конфиге не было). Порты для RDP тоже все закрыты. Открыт только ssh и порт для базы.

Решение - поменять порт базы на порт RDP программы, поменять порт в самой программе (на сервере и на своем клиенте), зайти через RDP, открыть порты и откатить все назад.

#linux