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

snakers4 @ telegram, 1166 members, 1154 posts since 2016

All this - lost like tears in rain.

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

На чай
- goo.gl/zveIOr
- Договор ТКС 5011673505

Сайт spark-in.me
Файл goo.gl/5VGU5A
Чат goo.gl/IS6Kzz

Posts by tag «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

snakers4 (Alexander), July 28, 10:35

Подписчик прислал книгу про основные команды в Linux. Читать можно онлайн:

- conqueringthecommandline.com/book/basics

Я обычно умудряюсь нагуглить ответ в гугле / документации / Stack overflow (и его аналогах), но кому-то может зайдет в виде книги =)

#linux

Conquering the Command Line

Learn to master and conquer the most valuable and useful command line tools for Unix and Linux based systems. In this book you will find not only the most useful command line tools you need to know, but also the most helpful options and flags for those tools. Conquering the Command Line isn't just a rehash of the MAN page for these tools, but rather a human-readable walk-through of these tools to make you instantly more productive in your daily development life.


snakers4 (Alexander), June 16, 05:27

Внезапно немного админства - знакомый разработчик посоветовал 2 ресурса, если вы хотите поставить https вообще не парясь на свой мини-проект

- letsencrypt.org

- certbot.eff.org/#ubuntuxenial-nginx

Не могу гарантировать 100% уверенность, анализируйте на свой страх и риск.

#linux

Let's Encrypt - Free SSL/TLS Certificates

Let’s Encrypt is a free, automated, and open certificate authority brought to you by the non-profit Internet Security Research Group (ISRG).


snakers4 (Alexander), June 16, 05:03

Классная статья про то, как использовать ssh ключи с putty

www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-putty-on-digitalocean-droplets-windows-users

#linux

How To Use SSH Keys with PuTTY on DigitalOcean Droplets (Windows users) | DigitalOcean

PuTTY is a Windows program used to establish SSH sessions with Linux servers. In this guide, we'll demonstrate how to use PuTTY to create SSH key pairs to use within the DigitalOcean interface. You can then easily create servers that you can log into


snakers4 (Alexander), June 11, 18:07

Немного размышлений про бекапы

- spark-in.me/post/lets-backup-your-life

#linux

Spark-in.me - Часть 4 - Базовое админство для обычных человеков (postgres и не только)

Небольшой рассказ о бекапах и логировании для любителей Статьи автора - http://spark-in.me/author/yara_tchk Блог - http://spark-in.me


snakers4 (Alexander), May 13, 17:16

Если вы не знали - то эта софтинка - лучшая в мире для создания загрузочных флешек. Она создала уже 34м таких флешек.

prntscr.com/f7fj40

www.linuxliveusb.com/en/download

#linux

Screenshot

Captured with Lightshot