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

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
Следующая версия Следующая версия справа и слева
черновики:коля._заметки [11.05.2017 10:40]
127.0.0.1 внешнее изменение
черновики:коля._заметки [08.07.2017 09:46]
nikolay_carbonsoft1
Строка 1: Строка 1:
-====== Почитать/​посмотреть. ​======+===== Почитать/​посмотреть. =====
  
 ==== Курс лекций "​Алгоритмы во внешней памяти"​. Максим Бабенко. ==== ==== Курс лекций "​Алгоритмы во внешней памяти"​. Максим Бабенко. ====
  
-[[http://​www.youtube.com/​embed/​KsPv6X9ysqI]] +[[http://​www.youtube.com/​embed/​KsPv6X9ysqI|http://​www.youtube.com/​embed/​KsPv6X9ysqI]] [[http://​www.lektorium.tv/​lecture/​13929|http://​www.lektorium.tv/​lecture/​13929]]
-[[http://​www.lektorium.tv/​lecture/​13929]] ​+
  
-На курсе рассказывают про алгоритмы,​ которые работают с данными,​ которые,​ по тем или иным причинам,​ не могут поместиться в оперативную память (когда файлы лежат на HDD/SSD или, например,​ в хадупе на HDFS). Объясняется сложность таких алгоритмов,​ относительно количества дисковых операций,​ теория подана довольно просто и интуитивно,​ мозг хорошо настраивается на мысль, что не так важна производительность кода, когда доступ к данным такой дорогой. На 3-4й лекции завтыкал,​ примеры про алгоритмы на графах мне не очень близки. Может, почитаю про эти алгоритмы в памяти и пересмотрю как все меняется,​ когда граф окажется очень большим. Но первые лекции очень хороши.+На курсе рассказывают про алгоритмы,​ которые работают с данными,​ которые,​ по тем или иным причинам,​ не могут поместиться в оперативную память (когда файлы лежат на HDD/SSD или, например,​ в хадупе на HDFS). Объясняется сложность таких алгоритмов,​ относительно количества дисковых операций,​ теория подана довольно просто и интуитивно,​ мозг хорошо настраивается на мысль, что не так важна производительность кода, когда доступ к данным такой дорогой.
  
-[[http://​www.youtube.com/​embed/​uCfgk1sx_Pg]]+На 3-4й лекции завтыкал,​ примеры про алгоритмы на графах мне не очень близкиМожет, почитаю про эти алгоритмы в памяти и пересмотрю как все меняется,​ когда граф окажется очень большим. Но первые лекции очень хороши.
  
-\\ +В последней ​[[http://​www.youtube.com/​embed/​uCfgk1sx_Pg|лекции]] акцент смещают с внешней памяти и оперативной на CPU-кеш и оперативную память. Скорости тут, конечно,​ будут другие,​ но порядок,​ на который отличается скорость доступа к кешу и ОЗУ, и порядок ОЗУ и HDD примерно одинаков,​ на мой взгляд. 5 лекция будет сама по себе полезна,​ если тебе нужен быстрый алгоритм,​ который работает с данными в ОЗУ. Минимизация доступа к ОЗУ сможет дать большой прирост производительности,​ да и круто это, знать как работает кеш в CPU :)
-В последней лекции акцент смещают с внешней памяти и оперативной на CPU-кеш и оперативную память. Скорости тут, конечно,​ будут другие,​ но порядок,​ на который отличается скорость доступа к кешу и ОЗУ, и порядок ОЗУ и HDD примерно одинаков,​ на мой взгляд. 5 лекция будет сама по себе полезна,​ если тебе нужен быстрый алгоритм,​ который работает с данными в ОЗУ. Минимизация доступа к ОЗУ сможет дать большой прирост производительности,​ да и круто это, знать как работает кеш в CPU :)+
  
 Вместо пятой лекции,​ конечно,​ советую прочитать "What Every Programmer Should Know About Memory"​ [[https://​www.akkadia.org/​drepper/​cpumemory.pdf|https://​www.akkadia.org/​drepper/​cpumemory.pdf]] , но там много, и мне плохо зашли части про бечмаркинг скорости,​ т.к. нет под рукой проекта,​ на который я могу примерять цифры, чтобы их осознавать. Вместо пятой лекции,​ конечно,​ советую прочитать "What Every Programmer Should Know About Memory"​ [[https://​www.akkadia.org/​drepper/​cpumemory.pdf|https://​www.akkadia.org/​drepper/​cpumemory.pdf]] , но там много, и мне плохо зашли части про бечмаркинг скорости,​ т.к. нет под рукой проекта,​ на который я могу примерять цифры, чтобы их осознавать.
Строка 18: Строка 16:
  
 \\ \\
-[[http://​www.youtube.com/​embed/​IHVIFVZeXcA]] +[[http://​www.youtube.com/​embed/​IHVIFVZeXcA|http://​www.youtube.com/​embed/​IHVIFVZeXcA]] [[http://​www.lektorium.tv/​lecture/​30079|http://​www.lektorium.tv/​lecture/​30079]] 
-[[http://​www.lektorium.tv/​lecture/​30079]]+ 
 +[[http://​compsciclub.ru/​courses/​bigdatasystems/​2017-spring/​|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 и применимости также рассматривается в хорошей книге [[http://​dmkpress.com/​catalog/​computer/​databases/​978-5-94074-866-3/​|Семь баз данных за семь недель]],​ основной плюс которой в ее компактности,​ так что материал там изложен довольно сумбурно. 
 + 
 +В общем, если вы вечно путаете все эти модные словечки из темы MapReduce, не можете запомнить чем отличается Spark и Storm, Spark/​HBase/​Riak - после просмотра лекций у вас надолго в голове останутся "​крючки",​ за которые в будущем можно будет легко сориентироваться в этом зоопарке. 
 + 
 +P.S. нужно будет пересмотреть [[https://​www.youtube.com/​watch?​v=9ANuWEZqCUg|Яндекс изнутри:​ инфраструктура хранения и обработки данных]],​ что на самом деле в тренде. P.P.S. [[https://​www.youtube.com/​watch?​v=BCVsgup8hUQ|Как устроен поиск Яндекса:​ о чём невозможно прочитать]] - тоже прикольный видос, давно смотрел,​ уже не помню про что там. 
 + 
 +===== Машинное обучение. ===== 
 + 
 +[[https://​​www.youtube.com/​​watch?​​v=mk6CCruAxHg|Семинар по глубокому обучению или как стать Data Scientist’ом ]] 
 + 
 +Несложная,​​ поверхностная лекция по теме машинного обучения,​​ описние простых нейронных сетей, использования сверток и пулинга. Некоторые темы предполагаются,​​ как уже знакомые зрителю,​​ но это мешает только в паре мест доклада. В конце показывается пример на python+ TensorFlow по построению и обучению нейросети для определения цифр. 
 + 
 +[[https://​www.youtube.com/​watch?​v=U0LOSHY7U5Q|Практическое занятие по обработке текста в gensim с помощью алгоритма word2vec]] 
 + 
 +Слабый докладчик IMHO. Реальные кейсы не знает, на вопросы отвечает не прямо. 
 + 
 +Полу-лекция,​ полу-доклад про алгоритмы категоризации для слов. Из плюсов,​ что в комплекте идет IPython notebook с кодом и можно вместе с лектором ручками по-запускать все самому. Но из-за практической составляющей в видео очень много пауз, плюс многое оставлено вне доклада (вы можете что-то запустить,​ но как оно работает,​ может остаться для вас непонятным). Так себе, в общем, не советую без параллельной практики. 
 + 
 +Если у вас 500млн слов текста,​ word2vec - ок, doc2vec лучше от 1млн (будет гуд). 
 + 
 +===== Бизнес. ===== 
 + 
 +Ларри Боссиди и Рэм Чаран [[https://​www.ozon.ru/​context/​detail/​id/​5943887/​|Исполнение]] 
 + 
 +В книге рассказывается про построение так называемой «культуры исполнения»:​\\ 
 +- мотивация руководства работать на результат\\ 
 +- выстраивание контроля над выполнением планов на всей иерархии сотрудников\\ 
 +- взаимопомощь,​ наставничество,​ выращивание кадров,​ правильная расстановка кадров\\ 
 +- ответственность за взятые на себя обязательства,​ бесконечная работа над совершенствованием себя и бизнеса\\ 
 +- открытый диалог между всеми сотрудниками,​ особый упор на высказывание всех своих мыслей и откровенный разговор,​ обнажение всех проблем на совещаниях для построения реалистичных планов и прогнозов;​ но не забывать про общение с рядовыми сотрудниками тоже, часто они могут о многом сказать,​ а ваша открытость и прозрачность политики предприятия снизит накал волнения у них\\ 
 +- движение в сторону больше мобильности:​ сокращение запасов,​ большая открытость перед продавцами и поставщиками,​ быстрая корректировка планов и направления развития при внешних изменениях и разработка планов с учетом непредвиденных обстоятельств и невыполнения некоторых его пунктов\\ 
 +- выставление крайне оптимистичных,​ но выполнимых планов;​ поддержание всего бизнеса в тонусе и нацеливание на постоянный рост показателей\\ 
 +- повторюсь,​ но на это делается большой акцент:​ планы ставятся крупные,​ но они разрабатываются и потом согласовываются с непосредственными исполнителями,​ выясняются стратегии в случае невыполнения планов и оглашается список методов,​ с помощью которых эти планы планируется выполнить\\ 
 +- методы выполнения планов,​ вкупе с контролем выполнения приводит к разбиению большого плана компании на более мелкие контрольные точки/​задачи,​ которые проще контролировать,​ которые ведут к результату постепенно,​ что позволяет,​ в свою очередь,​ быстро подстраиваться под ситуацию и разворачивать курс на 180 градусов\\ 
 +- поддержание производственного плана (цели в показателях,​ задачи) и стратегического плана (новые перспективы,​ планирование на будущее,​ вектор компании) в синхронизированном состоянии,​ ориентация на завтрашний день; задачи решаются более «позитивно»,​ если исполнитель видит причины возникновения этой задачи и ее более глобальные результаты в стратегическом плане\\ 
 +- перемена оценки работы отделов от сравнения с прошлыми показателями к соответствию будущим,​ запланированным показателям,​ показателям конкурентов\\ 
 +- планы и действия обязательно сверяются с положением конкурентов,​ рынка и собственных кадров и возможностей фирмы; не стоит развивать новую технологию из смежной области,​ если у вас нет подходящих кадров,​ кому это под силу; не стоит открывать завод в азии, если нет человека,​ понимающего тамошнюю обстановку,​ тех людей, их законы и особенности,​ ну и политическую обстановку,​ конечно 
 + 
 +В общем, компания должна быть мобильна,​ контролируема,​ прозрачна,​ желающая совершенствоваться в каждом конкретном сотруднике,​ с выстроенной и справедливой системой мотивации. 
 + 
 +Книга все же рассчитана,​ как и сказано на обложке книги, больше рассчитана на руководящий состав,​ чем на обычного читателя,​ из-за этого книга читается не очень приятно,​ хотя все разжевано и понятно,​ наблюдается какая-то затянутость и нудность особенно в раскрытии всяких известных (для людей, на которых нацелена книга) топ-менеджеров. 
 + 
 +Но и далекому от этого человеку книга позволит взглянуть на постоянно меняющуюся бюрократию фирмы, в которой он работает,​ по-новому. Более лояльно,​ как минимум,​ а то и принять в этом более активное участие. 
 + 
 +Обсуждая некоторые моменты из этой книги (а многое в ней актуализировано на 2001 год), высказываются мнения,​ что очень многое в ней уже устарело. А мое впечатление о том, что книга призывает руководящих лиц «спускаться на ступень ниже», узнавать как можно больше о людях в своем подчинении,​ в их подчинении,​ о нюансах своего продукта,​ его производства,​ продаж,​ маркетинга,​ найма и воспитания кадров и прочего - это миф, и признак плохого руководителя. В книге делается большой упор на помощь высших директоров своим подчиненным в их непосредственной деятельности советами,​ давать которые,​ без глубокого погружения,​ бессмысленно,​ на мой взгляд. Но будем разбираться дальше,​ время покажет. 
 + 
 + 
 + 
 +===== PostgreSQL =====
  
-[[http://compsciclub.ru/​courses/​bigdatasystems/2017-spring/]] +Курс "​Hacking PostgreSQL"​ 
 +Анастасия Лубенникова 
 +[[https://postgrespro.ru/education/courses/hacking|Postgres Professional]] 
 +[[https://www.youtube.com/​playlist?​list=PLaFqU3KCWw6Jfb8IBNk3hZ07dxMxjfGtv|YouTube]]
  
-Очень качественный и свежий курс про распределенные системы, про их работу под капотом. Речь идет про системы хранения, очереди и БД: 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 лекций на каждую ​систему, вместо однойда и цель ​курса немного не про это. В общем, если вы вечно путаете все эти модные словечки из темы MapReduce, не можете ​запомнить чем отличается Spark и Storm, Spark/​HBase/​Riak - после просмотра лекций у вас надолго в голове останутся "​крючки", за которые в будущем ​можно ​будет легко сориентироваться в этом зоопарке.+Курс от Postgres Professional по особенностям архитектуры и внутреннего устройства PostgreSQL. 
 +Курс (на данный момент из 8 лекций) был встречен мной амбициозно, ждал его с нетерпением. Но он мне «не зашел». Не сказать,​ что разочаровал, но я не смог придумать ​аудиторию, на кого это было ​рассчитано.  
 +В лекциях (примерно с 4й по 7) рассказывают про внутренние исходники бекенда, какие функции ​где и как ​используются. Не дается ​ни исторической справки о причинах данного подхода, о его плюсах/минусах. Озвучиваются ​известные, ​в сообществе разработчиков Postgresql, узкие ​места и проблемы в отдельных местах ​кода. 
 +Для ​меня, как для интересующегося, но напрямую не имеющего отношения ​к разработке Postgresql человека, это оказалось слишком нудно и сильно бесполезно. Знание ​о внутренней архитектуре залито большой кучей названий ​функций и структур. 
 +Думаю, этот ​курс подойдет для людей, кто ​уже провел ​достаточно времени за разработкой модулей ​для Postgresql, для того, чтобы сверить свои догадки с реальностью ​и использовать ​все возможности, которые доступны внутри кодовой базы отя есть вероятностьчто из само кодадокументации ​и комментариев это ​можно ​сделать ​гораздо продуктивнее). Остальным не советую.
  
 +8ю лекцию я еще не осилил,​ но выглядит интересно,​ со стороны обзора реализации работы с планами и запросами на языке си. TODO
  
 +Конечно,​ стоит отметить,​ что из лекций можно подчерпнуть много полезной информации:​ об архитектуре всей системы (из 1й лекции),​ об сообществе (как сделать патч, чтобы его приняли в первой(?​) части 2й лекции),​ в 3й и, кажется,​ 4й лекции были примеры разработки готового модуля расширения для БД и расширения запроса CREATE TABLE с добавлением нового ключевого слова. ​
 +Было много кишков с описанием,​ как это влияет на тюнинг системы. Но меня не покидало чувство,​ что всю эту информацию и уже слышал из статей по тюнингу и обзора кишков там было не меньше,​ но по объему и качеству там было намного лучше.