Коля. Заметки

коля._заметки.1499521511.txt.gz | Хозяин: nikolay_carbonsoft1 | Изменен: 20.05.2019 15:18 nikolay_carbonsoft1 Черновик Новейший утвержденный

Это старая версия документа.


Курс лекций "Алгоритмы во внешней памяти". Максим Бабенко.

http://www.youtube.com/embed/KsPv6X9ysqI http://www.lektorium.tv/lecture/13929

На курсе рассказывают про алгоритмы, которые работают с данными, которые, по тем или иным причинам, не могут поместиться в оперативную память (когда файлы лежат на HDD/SSD или, например, в хадупе на HDFS). Объясняется сложность таких алгоритмов, относительно количества дисковых операций, теория подана довольно просто и интуитивно, мозг хорошо настраивается на мысль, что не так важна производительность кода, когда доступ к данным такой дорогой.

На 3-4й лекции завтыкал, примеры про алгоритмы на графах мне не очень близки. Может, почитаю про эти алгоритмы в памяти и пересмотрю как все меняется, когда граф окажется очень большим. Но первые лекции очень хороши.

В последней лекции акцент смещают с внешней памяти и оперативной на CPU-кеш и оперативную память. Скорости тут, конечно, будут другие, но порядок, на который отличается скорость доступа к кешу и ОЗУ, и порядок ОЗУ и HDD примерно одинаков, на мой взгляд. 5 лекция будет сама по себе полезна, если тебе нужен быстрый алгоритм, который работает с данными в ОЗУ. Минимизация доступа к ОЗУ сможет дать большой прирост производительности, да и круто это, знать как работает кеш в CPU :)

Вместо пятой лекции, конечно, советую прочитать «What Every Programmer Should Know About Memory» https://www.akkadia.org/drepper/cpumemory.pdf , но там много, и мне плохо зашли части про бечмаркинг скорости, т.к. нет под рукой проекта, на который я могу примерять цифры, чтобы их осознавать.

Курс лекций "Методы и системы обработки больших данных". Иван Пузыревский.


http://www.youtube.com/embed/IHVIFVZeXcA http://www.lektorium.tv/lecture/30079

http://compsciclub.ru/courses/bigdatasystems/2017-spring/

Очень качественный и свежий курс про распределенные системы, про их работу под капотом. Речь идет про системы хранения, очереди и БД: HDFS, HBase, Cassandra, Kafka; про MapReduce и системы потоковой обработки: Hadoop MapReduce, Spark, Storm, Spark Streaming, плюс две лекции про Zookeeper и одна про Hive.

Внешнее API систем и примеры использования приведены в основном для общего понимания, основная часть сосредоточена на внутренней архитектуре систем. Очень полезно для определения применимости этих систем в ваших проектах, поможет самостоятельно прикидывать производительность при применении той или иной технологии.

На лекциях разбирается архитектура, строение и алгоритмы, на которых основываются системы. Начинается все с HDFS из хадуповского стека, который является базовым строительным блоком распределенной системы на базе hadoop, на его примере также разбирается работа и деплой кода в hadoop YARN.

Довольно забавно было, когда после первой лекции про HDFS была полная уверенность в том, что оно точно не подходит для БД, а в 3й лекции рассказывают про быстрый и производительный HBase, который хранит свои данные в HDFS и делает это консистентно.

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

В общем, если вы вечно путаете все эти модные словечки из темы MapReduce, не можете запомнить чем отличается Spark и Storm, Spark/HBase/Riak - после просмотра лекций у вас надолго в голове останутся «крючки», за которые в будущем можно будет легко сориентироваться в этом зоопарке.

P.S. нужно будет пересмотреть Яндекс изнутри: инфраструктура хранения и обработки данных, что на самом деле в тренде. P.P.S. Как устроен поиск Яндекса: о чём невозможно прочитать - тоже прикольный видос, давно смотрел, уже не помню про что там.

Семинар по глубокому обучению или как стать Data Scientist’ом

Несложная,​ поверхностная лекция по теме машинного обучения,​ описние простых нейронных сетей, использования сверток и пулинга. Некоторые темы предполагаются,​ как уже знакомые зрителю,​ но это мешает только в паре мест доклада. В конце показывается пример на python+ TensorFlow по построению и обучению нейросети для определения цифр.

Практическое занятие по обработке текста в gensim с помощью алгоритма word2vec

Слабый докладчик IMHO. Реальные кейсы не знает, на вопросы отвечает не прямо.

Полу-лекция, полу-доклад про алгоритмы категоризации для слов. Из плюсов, что в комплекте идет IPython notebook с кодом и можно вместе с лектором ручками по-запускать все самому. Но из-за практической составляющей в видео очень много пауз, плюс многое оставлено вне доклада (вы можете что-то запустить, но как оно работает, может остаться для вас непонятным). Так себе, в общем, не советую без параллельной практики.

Если у вас 500млн слов текста, word2vec - ок, doc2vec лучше от 1млн (будет гуд).

Ларри Боссиди и Рэм Чаран Исполнение

В книге рассказывается про построение так называемой «культуры исполнения»:
- мотивация руководства работать на результат
- выстраивание контроля над выполнением планов на всей иерархии сотрудников
- взаимопомощь, наставничество, выращивание кадров, правильная расстановка кадров
- ответственность за взятые на себя обязательства, бесконечная работа над совершенствованием себя и бизнеса
- открытый диалог между всеми сотрудниками, особый упор на высказывание всех своих мыслей и откровенный разговор, обнажение всех проблем на совещаниях для построения реалистичных планов и прогнозов; но не забывать про общение с рядовыми сотрудниками тоже, часто они могут о многом сказать, а ваша открытость и прозрачность политики предприятия снизит накал волнения у них
- движение в сторону больше мобильности: сокращение запасов, большая открытость перед продавцами и поставщиками, быстрая корректировка планов и направления развития при внешних изменениях и разработка планов с учетом непредвиденных обстоятельств и невыполнения некоторых его пунктов
- выставление крайне оптимистичных, но выполнимых планов; поддержание всего бизнеса в тонусе и нацеливание на постоянный рост показателей
- повторюсь, но на это делается большой акцент: планы ставятся крупные, но они разрабатываются и потом согласовываются с непосредственными исполнителями, выясняются стратегии в случае невыполнения планов и оглашается список методов, с помощью которых эти планы планируется выполнить
- методы выполнения планов, вкупе с контролем выполнения приводит к разбиению большого плана компании на более мелкие контрольные точки/задачи, которые проще контролировать, которые ведут к результату постепенно, что позволяет, в свою очередь, быстро подстраиваться под ситуацию и разворачивать курс на 180 градусов
- поддержание производственного плана (цели в показателях, задачи) и стратегического плана (новые перспективы, планирование на будущее, вектор компании) в синхронизированном состоянии, ориентация на завтрашний день; задачи решаются более «позитивно», если исполнитель видит причины возникновения этой задачи и ее более глобальные результаты в стратегическом плане
- перемена оценки работы отделов от сравнения с прошлыми показателями к соответствию будущим, запланированным показателям, показателям конкурентов
- планы и действия обязательно сверяются с положением конкурентов, рынка и собственных кадров и возможностей фирмы; не стоит развивать новую технологию из смежной области, если у вас нет подходящих кадров, кому это под силу; не стоит открывать завод в азии, если нет человека, понимающего тамошнюю обстановку, тех людей, их законы и особенности, ну и политическую обстановку, конечно

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

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

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

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

Hacking PostgreSQL Анастасия Лубенникова Postgres Professional YouTube

Курс от Postgres Professional по особенностям архитектуры и внутреннего устройства PostgreSQL.

Курс (на данный момент из 8 лекций) был встречен мной амбициозно, ждал его с нетерпением. Но он мне «не зашел». Не сказать, что разочаровал, но я не смог придумать аудиторию, на кого это было рассчитано.

В лекциях (примерно с 4й по 7) рассказывают про внутренние исходники бекенда, какие функции где и как используются. Не дается ни исторической справки о причинах данного подхода, о его плюсах/минусах. Озвучиваются известные, в сообществе разработчиков Postgresql, узкие места и проблемы в отдельных местах кода.

Для меня, как для интересующегося, но напрямую не имеющего отношения к разработке Postgresql человека, это оказалось слишком нудно и сильно бесполезно. Знание о внутренней архитектуре залито большой кучей названий функций и структур.

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

8ю лекцию я еще не осилил, но выглядит интересно, со стороны обзора реализации работы с планами и запросами на языке си. TODO

Конечно, стоит отметить, что из лекций можно подчерпнуть много полезной информации: об архитектуре всей системы (из 1й лекции), об сообществе (как сделать патч, чтобы его приняли в первой(?) части 2й лекции), в 3й и, кажется, 4й лекции были примеры разработки готового модуля расширения для БД и расширения запроса CREATE TABLE с добавлением нового ключевого слова.

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