<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.8.5">Jekyll</generator><link href="http://sudodoki.name/feed.xml" rel="self" type="application/atom+xml" /><link href="http://sudodoki.name/" rel="alternate" type="text/html" /><updated>2020-05-11T07:52:03+00:00</updated><id>http://sudodoki.name/feed.xml</id><title type="html">sudodoki’s personal blog</title><subtitle>Here be dragons</subtitle><entry><title type="html">5-минутка википедии: Синестезия</title><link href="http://sudodoki.name/2020/05/11/synesthesia.html" rel="alternate" type="text/html" title="5-минутка википедии: Синестезия" /><published>2020-05-11T00:00:00+00:00</published><updated>2020-05-11T00:00:00+00:00</updated><id>http://sudodoki.name/2020/05/11/synesthesia</id><content type="html" xml:base="http://sudodoki.name/2020/05/11/synesthesia.html">&lt;p&gt;Задался я вопросом&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;а есть ли каноничное цветовое представление для высоты звука?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;в контексте каких-то своих начинаний для визуализации музыки.
	И, в общем, логическая цепочка ( и якорь в памяти из &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Right_Stuff_(House)&quot;&gt;house m.d.&lt;/a&gt; ) привел меня к &lt;a href=&quot;https://ru.wikipedia.org/wiki/Синестезия&quot;&gt;Синестезии&lt;/a&gt;.
	Вообще, это такой режим/нейробиологическое состояние работы мозга, когда раздражение одних органов чувств приводит к активации других. Буквы/слова обретают для вас цвет, вы слышите звуки смотря на беззвучные вспышки света, этс.
	Есть разные варианты, как того, как это ощущается людьми с этим состоянием, так и самих пар стимулов воспринимаемых/ощущаемых.
	Визуальное ощущение цвета при прослушивании звуков называется &lt;a href=&quot;https://ru.wikipedia.org/wiki/Хроместезия&quot;&gt;Хроместезия&lt;/a&gt;.
	В попытках узнать, смог ли кто-то обобщить и найти закономерности, нашел парочку статей, которые и хотел бы здесь оставить.&lt;/p&gt;

&lt;h4 id=&quot;a-statistical-study-of-pseudo-chromesthesia-and-of-mental-forms&quot;&gt;&lt;a href=&quot;https://www.jstor.org/stable/1411912&quot;&gt;A Statistical Study of Pseudo-Chromesthesia and of Mental-Forms&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;Статья 1893 года (!) которую можно найти в интернете в открытом виде. Сам факт наличия такого заставляет в очередной раз радоваться существованию интернета. Из интересных замечаний было про то, что кто-то воспринимал звуки пианино как квадраты, а звуки скрипки – как линии.&lt;/p&gt;

&lt;h4 id=&quot;musical-pitch-classes-have-rainbow-hues-in-pitch-class-color-synesthesia&quot;&gt;&lt;a href=&quot;https://www.nature.com/articles/s41598-017-18150-y&quot;&gt;Musical pitch classes have rainbow hues in pitch class-color synesthesia&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;Небольшой опрос-исследование на 15 японоговорящих студентах, имеющих хроместезию. 
Вот усредненные цвета
&lt;img src=&quot;https://i.vas3k.club/1fw.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Across-subject averaging of reported colors revealed that pitch classes have rainbow hues, beginning with do-red, re-yellow, and so forth, ending with si-violet, accompanied by a decrease in saturation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Тут также высказывалось мнение, что с учетом того, что до-диез вызывал ощущения “красноватости”, а ре-бэмоль – “желтоватости” (для людей вне музыкального контекста, это один и тот же звук), и эти цвета напрямую связаны с цветами основных нот (до – красный, ре – желтый), то связь цвета и звука происходила именно из-за названия ноты.&lt;/p&gt;

&lt;p&gt;То есть, в среднем, тон цвета будет зависеть от ноты, и яркость цвета - от высоты октавы, как-то так. Но однозначно правильных ответов не может быть, у всех все индивидуально.&lt;/p&gt;

&lt;h4 id=&quot;из-другого-средне-связанного&quot;&gt;Из другого, средне связанного&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;некоторые люди видят “числовую линию”, мысли о числах мапятся в некоторое геометрическое пространство. В первой статье был описан следующий пример,
&lt;img src=&quot;https://i.vas3k.club/1fx.jpg&quot; alt=&quot;&quot; /&gt;
Человек не мог объяснить, почему так, но у него была гипотеза, что часть с числами по кругу была связана с тем, что он научился определять время по часам до того, как он научился считать и в дальнейшем при учебе он всегда возвращался к ментальному представлению циферблата.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;У &lt;a href=&quot;https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%81%D1%82,_%D0%A4%D0%B5%D1%80%D0%B5%D0%BD%D1%86&quot;&gt;Франца Листа&lt;/a&gt; была синестезия и ходит анекдот, что он просил оркестры играть “чуть поголубее” и “в более розовых тонах”. Многие долго думали, что он просто троллил и выражался образно. Где-то еще видел другой анекдот, что он пересекался с другим композитором с хроместезией и они до хрипоты спорили о том, какой цвет связан с той или иной нотой.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;по ключевым словам синестезия и хроместезия можно найти &lt;a href=&quot;https://github.com/kinetechcloudCEO/Synesthesia&quot;&gt;отдельные&lt;/a&gt; &lt;a href=&quot;https://github.com/AdrienTecher/Synesthesia&quot;&gt;проекты&lt;/a&gt; связанные с визуализациями музыки и прочего.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Вообще, про занимательные вещи по поводу работы мозга, есть пару книжек от &lt;a href=&quot;https://ru.wikipedia.org/wiki/%D0%A1%D0%B0%D0%BA%D1%81,_%D0%9E%D0%BB%D0%B8%D0%B2%D0%B5%D1%80&quot;&gt;Оливер Сакса&lt;/a&gt;, самая на слуху у меня обычно &lt;a href=&quot;https://ru.wikipedia.org/wiki/%D0%A7%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA,_%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9_%D0%BF%D1%80%D0%B8%D0%BD%D1%8F%D0%BB_%D0%B6%D0%B5%D0%BD%D1%83_%D0%B7%D0%B0_%D1%88%D0%BB%D1%8F%D0%BF%D1%83&quot;&gt;Человек, который принял жену за шляпу&lt;/a&gt;. Из недостатков подобной литературы – после прочтения можно получить фобию поехать кукухой.&lt;/p&gt;</content><author><name></name></author><summary type="html">Задался я вопросом</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://sudodoki.name/None" /><media:content medium="image" url="http://sudodoki.name/None" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">2019. Мои итоги</title><link href="http://sudodoki.name/2019/12/31/2019-itogy.html" rel="alternate" type="text/html" title="2019. Мои итоги" /><published>2019-12-31T00:00:00+00:00</published><updated>2019-12-31T00:00:00+00:00</updated><id>http://sudodoki.name/2019/12/31/2019-itogy</id><content type="html" xml:base="http://sudodoki.name/2019/12/31/2019-itogy.html">&lt;p&gt;С одной стороны, в этом году произошло кучу всего, что-то хорошее, что-то неизбежно плохое.
Хочется записать, в первую очередь, для себя будущего, свои мысли и ощущения от сделанного, как в &lt;a href=&quot;https://en.wikipedia.org/wiki/Time_capsule&quot;&gt;капсулу времени&lt;/a&gt;, чтобы потом читать и говорить “о, пффф, наивный молодняк” или “ооо, круто, это значит с 2019 уже было со мной”. Времени не так уж и много до того момента, как надо начинать кромсать оливьеху, поэтому будем тезисно.&lt;/p&gt;

&lt;h2 id=&quot;джедайские-техники&quot;&gt;&lt;a href=&quot;https://www.mann-ivanov-ferber.ru/books/dzhedajskie-texniki/&quot;&gt;Джедайские техники&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;Первая книга, прочитанная в этом году. 10/10, и доклады у Макса есть интересные, рекомендую, если у вас возникают ситуации, когда голова гудит из-за тысячи несделанных дел и вы не справляетесь с нагрузкой. И хоть по итогам за год я перестал делать некоторые упражнения оттуда, мой &lt;a href=&quot;https://todoist.com&quot;&gt;todoist&lt;/a&gt; до сих пор со мной как и &lt;a href=&quot;https://whatis.techtarget.com/definition/inbox-zero&quot;&gt;инбокс зеро&lt;/a&gt;. Но я точно стал спокойнее относится к рабочей нагрузке и ощущаю себя более продуктивным.&lt;/p&gt;

&lt;h2 id=&quot;записывать-интересноеполезное-из-прочитанных-статей&quot;&gt;Записывать интересное/полезное из прочитанных статей&lt;/h2&gt;

&lt;p&gt;Не помню, зачем изначально я начал это делать, но по итогам имею следующее: 169 записей прочитанных статей/блогпостов и особо выдающейся документации, из которых захотелось что-то сохранить в свой скрапбук полезных референсов/инструментов/подходов/информации. Судя по EDA, чаще всего читал вещи по воскресеньям, вторникам и средам 🤔. Удобно было при повторном попадании на какую-то статью читать её краткое содержание или опираться на записи для пересказа. Смотря на график, можно понять, когда у меня голова была занята чем-то более важным.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/posts/2019_summary_articles.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;визуализация с помощью &lt;a href=&quot;https://altair-viz.github.io/&quot;&gt;altair&lt;/a&gt; который точно может стать отличным дополнением вашего EDA toolbox’а.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;летняя-школа&quot;&gt;Летняя школа&lt;/h2&gt;

&lt;p&gt;По-прежнему считаю это очень эффективным форматом. В этом году смог поучаствовать как слушатель в &lt;a href=&quot;http://deephack.me/ciss2&quot;&gt;Conversational Intelligence Summer School&lt;/a&gt;, было забавно из-за локации и общего покрытия тем. Также под вывеской летней школы сделали &lt;a href=&quot;https://dou.ua/forums/topic/28551/&quot;&gt;курс в RR&lt;/a&gt;. Надеюсь не в последний раз :)&lt;/p&gt;

&lt;h2 id=&quot;конференции&quot;&gt;Конференции&lt;/h2&gt;

&lt;p&gt;Поучаствовал как спикер в &lt;a href=&quot;https://inputconf.org/&quot;&gt;input conf&lt;/a&gt;. Было очень тепло и лампово. Котаны очень круты, как всегда, а каждый новый человек вдыхает все больше жизни и взращивает комьюнити в новом направлении. Никогда не учитесь в одиночку 😉
Также вписался в комитет data science fwdays. Получилось неплохо, спасибо оргам и всем спикерам, кто предлагал свои темы или отозвался на приглашения. Уже вовсю работаем над тем, чтобы в следующем году сделать все еще круче и сформировать такой лайнап и такие доклады, что и сам бы с удовольствием все послушал. Билеты уже можно &lt;a href=&quot;https://fwdays.com/en/event/data-science-fwdays-2020&quot;&gt;купить&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;проект-феникс&quot;&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/B078Y98RG8/&quot;&gt;Проект “Феникс”&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;Последняя прочитанная книга года, которую буквально “проглотил” за выходные. И хоть это реклама девопс подхода, она референсит неплохие источники, указывает на многие организационные моменты айти отделов и все это присыпает огромным количеством жизы.&lt;/p&gt;

&lt;h2 id=&quot;за-кадром&quot;&gt;За кадром&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Был участником и других ивентов, как хороших так и таких, которые очень не понравились. Плохие мероприятия, как ни странно, дали больше мотивации сделать что-то хорошо и правильно.&lt;/li&gt;
  &lt;li&gt;Одни несделанные пет-проекты сменялись другими, но я ведь после каждого из них узнавал что-то полезное (так ведь? 😝). Так что, надеюсь закончить текущий и хоть что-то показать миру, а потом сразу делать тот воркшоп про МЛ, который я публично обещал.&lt;/li&gt;
  &lt;li&gt;Послушал лучший концерт so far от Royal Blood и побывал в самых красивых горах (спасибо, Артем :)).&lt;/li&gt;
  &lt;li&gt;Полезные привычки: спальня без экранов, читать бумажные книги перед сном, и здоровое питание (хотя бы на завтрак).&lt;/li&gt;
  &lt;li&gt;Наконец-то попробовал боулдеринг (всего-то 4 года после первого желания сходить до осуществления задуманного).&lt;/li&gt;
  &lt;li&gt;На работе начали делать продукт, в связи с чем получилось тоже поделать много чего разного нового и интересного.&lt;/li&gt;
  &lt;li&gt;Кстати, забавно, закрыл самую большую тудушку из 2018 года лишь в сентябре этого.&lt;/li&gt;
  &lt;li&gt;Ну и экзистенциальные ужасы глобального потепления, которые заново заставили переживать флешбеки из детства, когда я опасался сокращения пригодной для употребления воды из-за фосфатов в стиральных порошках.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;ps&quot;&gt;PS&lt;/h1&gt;

&lt;p&gt;Возможно, это не так насыщенно, как чьи-то еще итоги, но 🤷this is me and this is my story. Есть уже и какие-то условные резолюции и планы на 2020, посмотрим, что из этого выйдет, не хочу загадывать наперед.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h2 id=&quot;хорошего-нового-года-и-пускай-он-будет-таким-каким-вы-захотите&quot;&gt;Хорошего нового года, и пускай он будет таким, каким вы захотите.&lt;/h2&gt;
&lt;/blockquote&gt;</content><author><name></name></author><summary type="html">С одной стороны, в этом году произошло кучу всего, что-то хорошее, что-то неизбежно плохое. Хочется записать, в первую очередь, для себя будущего, свои мысли и ощущения от сделанного, как в капсулу времени, чтобы потом читать и говорить “о, пффф, наивный молодняк” или “ооо, круто, это значит с 2019 уже было со мной”. Времени не так уж и много до того момента, как надо начинать кромсать оливьеху, поэтому будем тезисно.</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://sudodoki.name/None" /><media:content medium="image" url="http://sudodoki.name/None" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Итоги 2017: садите людей в комнату и наваливайте</title><link href="http://sudodoki.name/2017-paru-slov-pro-formaty/" rel="alternate" type="text/html" title="Итоги 2017: садите людей в комнату и наваливайте" /><published>2017-12-26T00:00:00+00:00</published><updated>2017-12-26T00:00:00+00:00</updated><id>http://sudodoki.name/2017-paru-slov-pro-formaty</id><content type="html" xml:base="http://sudodoki.name/2017-paru-slov-pro-formaty/">&lt;p&gt;tl;dr: пробовал больше одного формата, лучше всего зашло сидеть в закрытой комнате с лектором, ну или на крайняк читать что-то глазами. Если наши интересы имеют точки пересечения, вам может быть полезен данный пост. Если захотите что-то обсудить, да и вообще, – пишите в &lt;a href=&quot;https://twitter.com/sudodoki&quot;&gt;тви&lt;/a&gt; / &lt;a href=&quot;https://gitter.im/sudodoki&quot;&gt;гиттер&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;субъективный-топчик&quot;&gt;Субъективный топчик&lt;/h1&gt;

&lt;h2 id=&quot;летние-воркшопы-уку&quot;&gt;Летние воркшопы УКУ&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;что:&lt;/strong&gt; Летние воркшопы &lt;a href=&quot;https://cs.ucu.edu.ua/en/&quot;&gt;УКУ&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;формат:&lt;/strong&gt; а-ля летняя школа (хотя у них это еще отдельное мероприятие). Собираем группу людей, каждый день садим их в класс, приводим преподавателей, полдня лекций, полдня практики.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;плюсы&lt;/strong&gt;:
    &lt;ol&gt;
      &lt;li&gt;за неделю закачали огромное количество знаний, что самостоятельно осваивал бы на порядок дольше.
        &lt;ul&gt;
          &lt;li&gt;роадмап/пайпалайн с кучей статей / слайдов / воркбуков, что стоит еще изучить&lt;/li&gt;
          &lt;li&gt;знакомства с замечательными людьми и буст вашей мотивации.&lt;/li&gt;
          &lt;li&gt;отличный современный кампус&lt;/li&gt;
          &lt;li&gt;замечательные приглашенные преподаватели&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;минусы&lt;/strong&gt;
    &lt;ol&gt;
      &lt;li&gt;туда непросто попасть, я не в первый раз подавался, наконец-то взяли, и то я был не их первым выбором
        &lt;ul&gt;
          &lt;li&gt;при озвучивании идей изучать CS/DS в УКУ готовьтесь услышать очень тупые шуточки / непонимающие взгляды и прочая&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Если есть возможность (а она будет не у всех, там таки 💰), подумайте поучаствовать в летних/зимних воркшопах, школах, или даже махнуть на полтора года магистратуры – программа выглядит 🔥.&lt;/p&gt;

&lt;h2 id=&quot;practical-common-lisp&quot;&gt;Practical Common Lisp&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;что&lt;/strong&gt;: &lt;a href=&quot;http://www.gigamonkeys.com/book/&quot;&gt;Practical Common Lisp&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;формат&lt;/strong&gt;: одна из лучших книг о языках и околотого, что я дочитал от начала до конца. [Кажется, следующим постом будет что-то в духе “мои полгода с Common Lisp”.]&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;плюсы&lt;/strong&gt;: не тухлое изложение, с полезными сниппетами, начиная почти с первой страницы, не особо заостряется внимание на каких-то исторических и не сильно полезных вещах, даются алгоритмы решения типичных проблем, зачатки философии использования инструментом&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;минусы&lt;/strong&gt;: мало речи о настройке окружения (можно посмотреть на &lt;a href=&quot;https://portacle.github.io&quot;&gt;portacle&lt;/a&gt;, например), чуточку в стороне осталась экосистема &lt;a href=&quot;https://www.quicklisp.org/beta/&quot;&gt;quicklisp&lt;/a&gt;‘a, по ощущениям&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;В лиспе, в общем-то, можно увидеть, если смотреть, динамический язык, который одним из первых начал (и продолжает!) использовать кучу фич, к которым мы привыкли (optional/keyword аргументы, GC, работа с неймспейсами), при этом имеет пару своих особенностей (особая объектная модель, работа с рестартами / исключениями) и все равно поможет создавать код как close to the metal так и используя высокоуровневые абстракции.&lt;/p&gt;

&lt;h2 id=&quot;курс-от-ods&quot;&gt;Курс от ODS&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;что&lt;/strong&gt;: &lt;a href=&quot;https://habrahabr.ru/company/ods/blog/322626/&quot;&gt;Открытый курс машинного обучения&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;формат&lt;/strong&gt;: набор лекций в письменном виде (хотя были еще и видеозаписи лекций) + набор jupyter воркбуков с исполняемыми примерами из лекций / домашними заданиями + централизованая проверка домашек (с дедлайнйами) через гугл формы + чатик участников и коучей.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;плюсы&lt;/strong&gt;: стоит $0. Хороший баланс между “навалим формул, ничего не ясно” ↔ “вот, импортим либу, все работает”. Обсуждения в чате заставляли глубже осознавать материал (“а и правда, об этом я не думал 🤔”), или добавляли еще более понятных объяснений / подсказки по коду. Также индивудальные проекты и соревнования каггл инкласс добавляли элемент азарта и “все как у взрослых”.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;минусы&lt;/strong&gt;: довольно высокий темп, под конец так и вообще, все дедлайны наступают примерно в один и тот же момент; было некоторое количество вопросов к домашкам и их проверке, какие-то оргмоменты, но это все мелочи&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Скоро будет &lt;a href=&quot;https://habrahabr.ru/company/mailru/blog/344044/&quot;&gt;новый запуск&lt;/a&gt;. И да, если что, в курсе нет нейроночек и дип-лернинга. Показательно с точки зрения мотивации/статистики: первую домашку сдало 1300 людей, последнюю – 136. 🤔&lt;/p&gt;

&lt;h3 id=&quot;все-остальное&quot;&gt;Все остальное&lt;/h3&gt;

&lt;p&gt;В общем-то, субъективный топ на этом можно заканчивать. &lt;strong&gt;За кадром остались&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;ридинг клабы, что мы проводили &lt;a href=&quot;https://github.com/kottans/kottans-ongoing-projects/issues/5&quot;&gt;один&lt;/a&gt; и &lt;a href=&quot;https://github.com/kottans/kottans-ongoing-projects/issues/12&quot;&gt;второй&lt;/a&gt; раз (и я надеюсь, соберемся проводить &lt;a href=&quot;https://github.com/kottans/kottans-ongoing-projects/issues/17&quot;&gt;еще&lt;/a&gt;). Главной проблемой тут является низкий % дошедших до конца. Книги, что выбирали, были очень фундаментальны и мне сложно передать warm fuzzy feeling от понимания отдельных важных концепций / кусков материала из книг. Курсы по этим же книгам, субъективно, чем-то схожи с другими адаптациями: или разбавляют повторениями, чтобы было понятно всем, или вырезают отдельные арки сюжетов, что не вписываются по времени
    &lt;ul&gt;
      &lt;li&gt;замечательная книга, которая первая выскочила у меня при идеях подводить итоги – &lt;a href=&quot;https://www.mann-ivanov-ferber.ru/books/govori_i_pokazyvaj/&quot;&gt;говори и показывай&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;оффлайн курсы &lt;a href=&quot;https://dou.ua/forums/topic/22622/&quot;&gt;котанов по жсу&lt;/a&gt;, я помогал ^_^&lt;/li&gt;
      &lt;li&gt;комьюнити и его жизнь, там тоже были интересные встречи, доклады, завтраки, афтепати и сопутствующая движуха&lt;/li&gt;
      &lt;li&gt;курсера, которая иногда, кажется, не стоит тех денег, что просят за специализацию, но добавляет кучу эндорфинов при успешном вписании той одной / двух строчек когда, что необходимых для выполнения задания&lt;/li&gt;
      &lt;li&gt;полусистематическое выделение 5-15 минут в день на то, чтобы поднять скиллы владения инструментом – очень полезная инвестиция (отдельные схожие мысли на тему не так давно видел &lt;a href=&quot;https://tonsky.livejournal.com/314598.html&quot;&gt;тут&lt;/a&gt;)&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://pydata.org/&quot;&gt;pydata&lt;/a&gt; – кажется, сейчас это мой уровень, не сильно академичен, не сильно казуальный, есть интересные проекты и инсайты, больше полудюжины докладов оттуда посмотрел. Другой конфой из недавних откуда я так смотрел доклады был &lt;a href=&quot;https://www.youtube.com/watch?v=snO_fDxy3cY&amp;amp;list=PLnkLrCUX4Qh4O4Zng1XsnO7WkPqK-jKeH&quot;&gt;KharkivJS 2017&lt;/a&gt; – тоже рекомендую.&lt;/li&gt;
      &lt;li&gt;статьи на &lt;a href=&quot;https://arxiv.org&quot;&gt;arxiv&lt;/a&gt;. Вообще следить за тем, что там на almost bleeding edge (да, не все понятно, но хотя бы создается ощущение, что что-то куда-то двигается + какие-то границы неизведанного / представление о возможном меняется)&lt;/li&gt;
      &lt;li&gt;про питон, но лень&lt;/li&gt;
      &lt;li&gt;про воркшопы, как человек, что проводил и ходил на некоторые: самое сложное, это помнить, что к ним нужно готовиться заранее дома. А еще хорошо бы фиксировать версии зависимостей или иметь понимание, как их обновить по-быстрому&lt;/li&gt;
      &lt;li&gt;ивенты от &lt;a href=&quot;https://twitter.com/meetup_tonight&quot;&gt;Meetup Tonight&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://www.facebook.com/groups/1081438678569043&quot;&gt;UDS&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;активити связанные не с CS/DS/AI, но про это тут не будем, хотя всегда можете спросить меня напрямую&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;что-дальше&quot;&gt;Что дальше?&lt;/h3&gt;

&lt;p&gt;Применять скиллы на практике для чего-то полезного, ну или для фана, строить вещи, делиться опытом, пытаться вдохновлять людей. Очень уж понравился формат летней школы и курсов без присмотра, может, получится что-то похожее запустить и на базе котанов по какой-то новой теме.&lt;/p&gt;

&lt;p&gt;C’ya 😸&lt;/p&gt;</content><author><name></name></author><summary type="html">tl;dr: пробовал больше одного формата, лучше всего зашло сидеть в закрытой комнате с лектором, ну или на крайняк читать что-то глазами. Если наши интересы имеют точки пересечения, вам может быть полезен данный пост. Если захотите что-то обсудить, да и вообще, – пишите в тви / гиттер.</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://sudodoki.name/None" /><media:content medium="image" url="http://sudodoki.name/None" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Programming as analogy, part III</title><link href="http://sudodoki.name/programming-as-analogy-part-iii/" rel="alternate" type="text/html" title="Programming as analogy, part III" /><published>2016-11-07T00:00:00+00:00</published><updated>2016-11-07T00:00:00+00:00</updated><id>http://sudodoki.name/programming-as-analogy-part-iii</id><content type="html" xml:base="http://sudodoki.name/programming-as-analogy-part-iii/">&lt;p&gt;One other field software development is similar to would be &lt;strong&gt;dentistry&lt;/strong&gt; (okay, actually, there are a lot of different things, but this one would make it easier and funnier to relate to).&lt;/p&gt;

&lt;p&gt;Imagine one day a &lt;strong&gt;patient&lt;/strong&gt; coming in and asking to treat his &lt;strong&gt;tooth&lt;/strong&gt;.
Or
Imagine one day a &lt;strong&gt;customer&lt;/strong&gt; coming in and asking to do support/consulting stuff on his &lt;strong&gt;project&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;There are different ways it can go on. You can know this person for years and all the services were bought from your company, so you know pretty damn well what’s going on there.&lt;/p&gt;

&lt;p&gt;But usually, it would happen that customer is just trying to get a better price, or their previous goto man left the field, or something just didn’t work.&lt;/p&gt;

&lt;p&gt;And then starts the fun part.&lt;/p&gt;

&lt;p&gt;It might be that customer doesn’t have any complaints and then you could just let them off with advice of flossing and hoping everything’s gonna be okay. Or you just need to do some whitening, and that’s it and everybody is happy.&lt;/p&gt;

&lt;p&gt;In case there are complaints you would try to ask some questions for the medical history. Rule of thumb is customer knows some stuff s/he was exposed to, but they might
1) confuse difficult (lamost foreign sounding) terms
2) not being fully aware of all the previous decisions made while being treated&lt;/p&gt;

&lt;p&gt;And with every question customer might be getting angrier and more impatient, because the problem at hand seems soooo easy and it always took just 15 minutes, but not this time for some reason. It really depends on how thorough you can afford to be and what type of customer you are dealing with. Good professional won’t be easily withhold by someone just being angry, as they are doing their best in order to acquire fullest picture so that everyone is on the same page and noone gets to stumble in darkness with hidden surprises everywhere.&lt;/p&gt;

&lt;p&gt;You could get a &lt;strong&gt;medical history&lt;/strong&gt; (aka &lt;strong&gt;docs&lt;/strong&gt;).
But there might be a case it wasn’t maintained properly (‘yeah, this is my card from years ago, but then I had like 4 teeth pulled out while on vacation in Cambodia’). It might be conceived before laser printers were in every clinic, so it’s hand written or uses foreign language, uses some cryptic abbreviations you have never heard of and on top of it, few pages are missing and one has a huge coffee stain on it.&lt;/p&gt;

&lt;p&gt;You might try to get more info but running some test or taking x-ray and trying to get an idea of what’s going on. But there are always hard cases when you cannot easily tell what’s going on. People afraid of x-rays, tongue piercing coming up on shots, people overthinking the sensations they get from dentist explorer – all that might lead to a certain degree of false positives.&lt;/p&gt;

&lt;p&gt;Worst part of the story is understanding someone messed up years ago but it’s only now that patient/customer needs to take drastic measures to prevent even bigger issues that can even pose threat to someone and just redo everything done before.&lt;/p&gt;

&lt;p&gt;If you liked this tiny one, take a look at &lt;a href=&quot;http://sudodoki.name/programming-as-analogy-part-ii/&quot;&gt;part II&lt;/a&gt;.&lt;/p&gt;</content><author><name></name></author><summary type="html">One other field software development is similar to would be dentistry (okay, actually, there are a lot of different things, but this one would make it easier and funnier to relate to).</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://sudodoki.name/None" /><media:content medium="image" url="http://sudodoki.name/None" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Programming as analogy, Part II</title><link href="http://sudodoki.name/programming-as-analogy-part-ii/" rel="alternate" type="text/html" title="Programming as analogy, Part II" /><published>2016-05-13T00:00:00+00:00</published><updated>2016-05-13T00:00:00+00:00</updated><id>http://sudodoki.name/programming-as-analogy-part-ii</id><content type="html" xml:base="http://sudodoki.name/programming-as-analogy-part-ii/">&lt;p&gt;This is a stand-still capture of &lt;a href=&quot;http://sudodoki.github.io/slides/rubymeditation-april-16/&quot;&gt;lightning talk&lt;/a&gt; I presented at &lt;a href=&quot;https://twitter.com/rubymeditation&quot;&gt;Ruby Meditation&lt;/a&gt; this spring.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;This is just an analogy. And any analogy is inaccurate&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, the basis for this analogy would be that we can &lt;strong&gt;compare web development&lt;/strong&gt; to &lt;strong&gt;music&lt;/strong&gt; (previously, it used to say ‘software development’ but I slightly adjusted this as to what’s going next and because of the fact webdev is just a small subset of software development overall).
Yes, there’s always a good amount of discussion whether writing code is craft or art, and on this one, let’s just all agree we can compare webdev and music. Both can serve different purpose (or no purpose at all), involve blend of inspiration, taking someone’s problem off their shoulders, making a living and cashing out big in the end (not everyone, sure) and genuinely having fun while it’s on.&lt;/p&gt;

&lt;p&gt;Extending this analogy, we could say that &lt;strong&gt;backend&lt;/strong&gt; is a &lt;strong&gt;rhythm section&lt;/strong&gt;
&lt;img src=&quot;https://sudodoki.github.io/slides/rubymeditation-april-16/images/rhytm-section.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Bringing in strong base and steady rhythm, beating heart of the system.
And &lt;strong&gt;frontend&lt;/strong&gt; would be &lt;strong&gt;melody &amp;amp; other stuff™&lt;/strong&gt;
&lt;img src=&quot;https://sudodoki.github.io/slides/rubymeditation-april-16/images/solo-guitar.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Important tool for conveying general mood and idea, but makes so much more sense when there’s a solid rhythm section backing it up.&lt;/p&gt;

&lt;p&gt;Now, I would exercise my sense of humor and tire you up with some silly one pic + caption translations of things between webdev &amp;amp; music.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://nobackend.org/&quot;&gt;BaaS&lt;/a&gt;&lt;/strong&gt; would be &lt;strong&gt;drum machine&lt;/strong&gt;,
aka &lt;em&gt;‘Look ma, no Backend’&lt;/em&gt;
&lt;img src=&quot;https://sudodoki.github.io/slides/rubymeditation-april-16/images/drum_machine.jpg&quot; alt=&quot;Drum machine&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Autotune&lt;/strong&gt; would be &lt;strong&gt;linters&lt;/strong&gt;, making it so much simpler to have unified sound and not having everyone argue whether that was A or A♭.
&lt;img src=&quot;https://sudodoki.github.io/slides/rubymeditation-april-16/images/autotuner.gif&quot; alt=&quot;Autotune guitar&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Backender doing Frontend
&lt;img src=&quot;https://sudodoki.github.io/slides/rubymeditation-april-16/images/drummer_playing_guitar.jpg&quot; alt=&quot;Drummer playing guitar with the sticks&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And, possibly, full-stack engineer would be a one man band.&lt;/p&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/9n1GqIPVCt8&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Scaffolded/generated backend
&amp;lt;img src=”https://sudodoki.github.io/slides/rubymeditation-april-16/images/automated_backend.gif” height=600&amp;gt;&lt;/p&gt;

&lt;p&gt;Backend not keeping up with the spec
&amp;lt;img src=”https://sudodoki.github.io/slides/rubymeditation-april-16/images/spec_handling.gif” height=600&amp;gt;&lt;/p&gt;

&lt;p&gt;Burnout aka too much work&lt;/p&gt;

&lt;p&gt;&amp;lt;img src=”https://sudodoki.github.io/slides/rubymeditation-april-16/images/handling_too_much_pressure.gif” height=600&amp;gt;&lt;/p&gt;

&lt;p&gt;Creating fancy frontend demo for customer&lt;/p&gt;

&lt;p&gt;&amp;lt;img src=”https://sudodoki.github.io/slides/rubymeditation-april-16/images/demo_for_customer.gif” height=550&amp;gt;&lt;/p&gt;

&lt;p&gt;(↑Note that there’s no backend present.)&lt;/p&gt;

&lt;p&gt;Orchestration&lt;/p&gt;

&lt;p&gt;&amp;lt;img src=”https://sudodoki.github.io/slides/rubymeditation-april-16/images/orchestration.gif” height=550&amp;gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Whenever there are breaking changes in backend&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&amp;lt;img src=”https://sudodoki.github.io/slides/rubymeditation-april-16/images/breaking_changes.gif” height=550&amp;gt;&lt;/p&gt;

&lt;p&gt;Backender seems to be really proud, but some other team members seems to be slightly not as excited about this.&lt;/p&gt;

&lt;p&gt;And the most important part here would be that
&lt;strong&gt;Different languages&lt;/strong&gt; would represent &lt;strong&gt;different instruments 🎹🎷🎺🎸🎻&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Different music styles&lt;/strong&gt;, which could correlate to &lt;strong&gt;different type of projects&lt;/strong&gt;, would require different instruments to bring out the best of the style and the team/band behind it.&lt;/p&gt;

&lt;p&gt;You could also compare &lt;strong&gt;Computer Science&lt;/strong&gt; to &lt;strong&gt;Music theory ♩♪♫♬♭♮♯&lt;/strong&gt;. There’re too many people being self-taught in both fields, and, IMO, there are always a chance prodigy would be able to come up with innovative idea and solution, but there’s also a high probability of running into too many unsuccessful experiments because one is not able to ‘stand on the shoulders of giants’ and reuse that knowledge that field has accumulated throughout its existence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Patterns&lt;/strong&gt; might translate into &lt;strong&gt;scales, chords, …&lt;/strong&gt;, things lesser than whole solution, but a building block you might not need, but that is there in case you need it.&lt;/p&gt;

&lt;p&gt;And finally,&lt;/p&gt;
&lt;h1 id=&quot;go-on-and-create-nice-music&quot;&gt;Go on and create nice music!&lt;/h1&gt;
&lt;h2&gt;🎹🎤🎧🎼🎷🎺🎸🎻&lt;/h2&gt;

&lt;p&gt;Closing remark: topic of comparison music and software development was covered in great book by Chad Fowler that I had great pleasure reading called &lt;a href=&quot;https://pragprog.com/book/cfcar2/the-passionate-programmer&quot;&gt;The Passionate Programmer&lt;/a&gt;. And yeah, this was slightly based on tons of related tumblrs, like &lt;a href=&quot;http://devopsreactions.tumblr.com&quot;&gt;devopsreactions&lt;/a&gt; and others.&lt;/p&gt;

&lt;p&gt;Hope you liked it – just wanted this off my draft tab as it was there for good half a year and I really enjoyed this small brain exercise and had feeling this might amuse and/or inspire someone.♥️&lt;/p&gt;</content><author><name></name></author><summary type="html">This is a stand-still capture of lightning talk I presented at Ruby Meditation this spring.</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://sudodoki.name/None" /><media:content medium="image" url="http://sudodoki.name/None" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Bash scripts to automate usage of starters/boilerplates</title><link href="http://sudodoki.name/bash-scripts-to-automate-usage-of-starters/" rel="alternate" type="text/html" title="Bash scripts to automate usage of starters/boilerplates" /><published>2015-05-19T00:00:00+00:00</published><updated>2015-05-19T00:00:00+00:00</updated><id>http://sudodoki.name/bash-scripts-to-automate-usage-of-starters</id><content type="html" xml:base="http://sudodoki.name/bash-scripts-to-automate-usage-of-starters/">&lt;h1&gt;&lt;img src=&quot;/content/images/2015/05/scaffolding.jpg&quot; alt=&quot;&quot; /&gt;&lt;/h1&gt;

&lt;p&gt;There are a lot of different starters &amp;amp; boilerplate projects out there, especially for the frameworks/systems that are not tied up by conventions. From those quite widespread right now I would name angular (see &lt;a href=&quot;https://docs.google.com/spreadsheets/d/1r8rJy2Q5p5QORYKcye93UECwOlSgFL24c5fyF7dqhaM/pubhtml#&quot;&gt;angular seeds&lt;/a&gt;) and &lt;a href=&quot;https://github.com/enaqx/awesome-react#boilerplates&quot;&gt;react&lt;/a&gt; to have quite a bit of those, each of which might bring some interesting ideas/tools/paradigms to the table.&lt;/p&gt;

&lt;p&gt;There’re some minor things I would love to see less when people are providing instructions on using their seed/starter for starting project
1) Forgetting to specify &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--depth 1&lt;/code&gt; as argument to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git clone&lt;/code&gt;. Omitting that argument will mean cloning whole tree with history, which gets you extra overhead on space &amp;amp; waste more time to start the project (especially on slow bandwidth or for projects that have gone a loooong way and have hundreds/thousands of commits under the belt).
2) Suggesting using same git - not hinting on how to specify new remote url, or get rid of previous history, which caused the folder size to bloat (especially with conjunction with #1), etc.&lt;/p&gt;

&lt;p&gt;To simplify this flow in case you’re quite frequent user, you might want to have some handy aliases. For some time I occasionally ran
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git clone https://github.com/%some-boilerplate-project%.git my-bp-project &amp;amp;&amp;amp; cd $_ &amp;amp;&amp;amp; rm -rf .git&lt;/code&gt; to get me a plain folder from which I could start building up, which ended up living in my alias section of .zshrc file.&lt;/p&gt;

&lt;p&gt;So following are the examples of zshrc aliases (which should work on bash/sh with minor modifications (at some point I put it into separate template.sh file with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;#!env sh&lt;/code&gt; shebang and code did work although there were some changes regarding &lt;a href=&quot;http://stackoverflow.com/a/22539067/1976857&quot;&gt;regex matching&lt;/a&gt;). Here, we have &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;template&lt;/code&gt; alias which will use provided git URL (be it ssh/https ones you would copy from github/bitbucket or github username/reponame pair) &amp;amp; name of the folder (with fallback to boilerplate name itself as folder name) that it will proceed to clone to specified folder, remove original &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.git&lt;/code&gt; folder and init empty git repo. It will also save the git url to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~/.last_template&lt;/code&gt; file (plain text file), which can be leveraged by &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;last-template&lt;/code&gt; alias, which reuses last provided template and basically is template with default value of last used boilerplate provided via &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~/.last_template&lt;/code&gt; file.&lt;/p&gt;
&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;cloneCleanup&lt;span class=&quot;o&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;# $1 - $GITREMOTE&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;# $2 - $FOLDER_NAME&lt;/span&gt;
  &lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Will be setting up &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$GITREMOTE&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; in &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$FOLDER_NAME&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;# Clone last commit, remove git folder, init empty git repo, save the last used template&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if &lt;/span&gt;git clone &lt;span class=&quot;nt&quot;&gt;--depth&lt;/span&gt; 1 &lt;span class=&quot;nv&quot;&gt;$1&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$_&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-rf&lt;/span&gt; .git &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; git init &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; ~/.last_template &lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then
    &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Ready to work.&quot;&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;else
    &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Something went wrong.&quot;&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;fi&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
scaffoldGithub&lt;span class=&quot;o&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;# Script to scaffold project based on github repo&lt;/span&gt;
  &lt;span class=&quot;nv&quot;&gt;GITREMOTE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$1&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;# Handle username/reponame case&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[[&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$1&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;~ ^[A-Za-z0-9_-]+&lt;span class=&quot;se&quot;&gt;\/&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;A-Za-z0-9_-]+&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]]&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;then
    &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;GITREMOTE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;https://github.com/&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$1&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;.git&quot;&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;fi&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;# capture PROJECT_NAME part of git link (right before .git)&lt;/span&gt;
  &lt;span class=&quot;nv&quot;&gt;REGEX&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;([A-Za-z0-9_-]+).git$&quot;&lt;/span&gt;
  &lt;span class=&quot;o&quot;&gt;[[&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$GITREMOTE&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;~ &lt;span class=&quot;nv&quot;&gt;$REGEX&lt;/span&gt;  &lt;span class=&quot;o&quot;&gt;]]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;nv&quot;&gt;PROJECT_NAME&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;match&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;# use provided folder name with fallback to project name&lt;/span&gt;
  &lt;span class=&quot;nv&quot;&gt;FOLDER_NAME&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;:-&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$PROJECT_NAME&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;
  cloneCleanup &lt;span class=&quot;nv&quot;&gt;$GITREMOTE&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$FOLDER_NAME&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
simplifiedScaffoldGithub&lt;span class=&quot;o&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;# Script to reuse last used template saved in ~/.last_commit&lt;/span&gt;
  &lt;span class=&quot;nv&quot;&gt;GITREMOTE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cat&lt;/span&gt; ~/.last_template&lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;# Throw in case user forgets to put in folder&lt;/span&gt;
  : &lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Usage: last-template foldername&quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;nv&quot;&gt;FOLDER_NAME&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$1&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;
  cloneCleanup &lt;span class=&quot;nv&quot;&gt;$GITREMOTE&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$FOLDER_NAME&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;nb&quot;&gt;alias &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;template&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;scaffoldGithub
&lt;span class=&quot;nb&quot;&gt;alias &lt;/span&gt;last-template&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;simplifiedScaffoldGithub
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;To add alias you will need to add them to one of your environment config files. I usually have put them into &lt;a href=&quot;https://gist.github.com/sudodoki/b0d9e9320969aad65011&quot;&gt;.(ba|z)shrc&lt;/a&gt; files.
After adding aliases &amp;amp; reloading the environment (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;source ~/.zshrc&lt;/code&gt; in my case) you can use them.
Sample usages:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;template https://github.com/kriasoft/react-starter-kit.git my-killer-startup-secret-product
template roman01la/f-react-kit
last-template glorious-app
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;At some point I almost had published this as a separate tool (just a set of executable shell scripts &amp;amp; installation script to link those to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;usr/bin&lt;/code&gt;) on github, because only thing I’ve seen doing something similar was &lt;a href=&quot;https://github.com/hex7c0/scaffoldinpy&quot;&gt;scaffoldinpy&lt;/a&gt;. Although it might be I just didn’t look hard enough for this.
Will appreciate feedback on this.&lt;/p&gt;</content><author><name></name></author><summary type="html"></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://sudodoki.name/None" /><media:content medium="image" url="http://sudodoki.name/None" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Readme.md as lazy persons html page</title><link href="http://sudodoki.name/readme-md-as-lazy-persons-html-page/" rel="alternate" type="text/html" title="Readme.md as lazy persons html page" /><published>2015-05-14T00:00:00+00:00</published><updated>2015-05-14T00:00:00+00:00</updated><id>http://sudodoki.name/readme-md-as-lazy-persons-html-page</id><content type="html" xml:base="http://sudodoki.name/readme-md-as-lazy-persons-html-page/">&lt;p&gt;Occasionally, working on some projects hosted on github, we put much time into creating useful &amp;amp; comprehensive README.md file for our project and I think you can benefit from using it to create html pages hosted on github that will be always in sync with the content.&lt;/p&gt;

&lt;h2 id=&quot;issue&quot;&gt;Issue&lt;/h2&gt;
&lt;p&gt;When you might benefit from thing I’m talking about?
For example, your README.md is magnificent &amp;amp; &lt;a href=&quot;http://www.slideshare.net/michaelklishin/scalable-open-source&quot;&gt;useful&lt;/a&gt;, you have some static examples hosted on github page but there’s no landing page and no connection between two. Whenever someone lands on your examples, if he knows how &lt;a href=&quot;https://pages.github.com/&quot;&gt;github pages&lt;/a&gt; work, he might edit the URL in his address bar &amp;amp; land on your repo (not everyone does &amp;amp; that’s quite normal).
And on top of that, you don’t have time/skillset to do a cool static page and will be happy with something minimal for lack of better alternative.
I turned to do this after I’ve seen I have different content in README.md &amp;amp; static page used for the folder (hosted on github pages) for statically hosted &lt;a href=&quot;https://github.com/sudodoki/slides&quot;&gt;slides project&lt;/a&gt; of mine.&lt;/p&gt;

&lt;h2 id=&quot;how-to-solve-it&quot;&gt;How to solve it?&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Turn your README.md into static page!&lt;/strong&gt;
Your repo is already on github, and whenever you push something to branch name &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gh-pages&lt;/code&gt; it’s being build &amp;amp; published to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;%username%.github.io/%reponame%&lt;/code&gt; (given it’s enabled in the repo’s &lt;a href=&quot;https://github.com/%username%/%reponame%/settings&quot;&gt;settings&lt;/a&gt;). Only exception is your very own github space that resides in repo called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;%username%.github.io&lt;/code&gt; and will be using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;master&lt;/code&gt; branch to build stuff out. [UPD 2020: you actually can now &lt;a href=&quot;https://pages.github.com/&quot;&gt;customize&lt;/a&gt; the branch &amp;amp; even tweak subfolder github pages are built from].
Github pages use &lt;a href=&quot;jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt; - static site generator written in Ruby. There’re some catches to it - you cannot run &lt;a href=&quot;http://jekyllrb.com/docs/plugins/&quot;&gt;plugins on Github pages&lt;/a&gt;, Github is using some custom markdown parser, but those are minor considering how useful this feature is, providing static site hosting &amp;amp; ability to use markdown to create content (you can run your very own blog using Jekyll or &lt;a href=&quot;http://octopress.org/&quot;&gt;Octopress&lt;/a&gt; built on top of it and pay noone for that). [UPD 2020: this blog is now using jekyll]&lt;/p&gt;

&lt;h2 id=&quot;code-to-do-that&quot;&gt;‘Code’ to do that&lt;/h2&gt;
&lt;p&gt;To signal Jekyll that some markdown needs processing, you add YAML syntax &lt;a href=&quot;http://jekyllrb.com/docs/frontmatter/&quot;&gt;FrontMatter&lt;/a&gt; in the very beginning, which can be as brief as two sets of triple dashes, separated by newline.&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;---
---
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Learned this some time ago when was battling with Jekyll for &lt;a href=&quot;http://kottans.org&quot;&gt;kottans.org&lt;/a&gt; site, which now seems to be a common knowledge, marked as ProTip in the corresponding section of documentation.
But after README.md will be processed it will be output as ‘README.html’, which poses a minor issue. We don’t want to change the name of the file (README.md will rendered by default when looking at repo page using github), but we want to be able to navigate to root path of our project and still be able to see something instead of four-oh-four page, which means we want to have &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;index.html&lt;/code&gt; page probably.
I used something simple as static page that would be redirecting to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;README.html&lt;/code&gt;. There’re at least 2 different ways to redirect using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;meta&amp;gt;&lt;/code&gt; tag and couple of ways to navigate to another page using JS, so it shouldn’t be of too much of a trouble. I ended with following code:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;title&amp;gt;Redirecting to main site&amp;lt;/title&amp;gt;
  &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
  &amp;lt;meta http-equiv=&quot;refresh&quot; content=&quot;0;url=README.html&quot;&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  Redirecting&amp;lt;i&amp;gt;↻&amp;lt;/i&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And that would be pretty much everything that needed to be made in order for your README.md get 2 horizontal rulers on top (those tripple dashes added for jekyll’s sake) &amp;amp; it’s very own html representation on your github pages.&lt;/p&gt;

&lt;h2 id=&quot;caveats&quot;&gt;Caveats&lt;/h2&gt;

&lt;h4 id=&quot;broken-charset-on-localhost--_layouts&quot;&gt;Broken Charset on Localhost &amp;amp; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_layouts&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;If you use &lt;a href=&quot;https://github.com/github/pages-gem&quot;&gt;github-pages&lt;/a&gt; gem to bootstrap jekyll locally and directly going to ‘localhost:4000’ URL, you might see some issues with encoding because of lack of specification of proper character encoding. This won’t be a problem when pages are on Github, because Github sets &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;charset=utf-8&lt;/code&gt; encoding using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Content-Type&lt;/code&gt; header. In any case, if that might be a problem for you, you might want to add layout with proper charset. For this, you will need to create &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_layouts&lt;/code&gt; folder and put &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;default.html&lt;/code&gt; with following markup:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;title&amp;gt;These are my precious slides!&amp;lt;/title&amp;gt;
  &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  {{ content }}
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;and in your README.md you will have to put&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;---
layout: default
---
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;which will render not that pretty when looking at your github project page, but as soon as you do that step you can add all sorts of &lt;a href=&quot;http://jekyllthemes.org/&quot;&gt;customization and styling&lt;/a&gt; to the page.&lt;/p&gt;

&lt;h4 id=&quot;default-markdown-parser-might-work-differently-from-githubs&quot;&gt;Default markdown parser might work differently from Github’s&lt;/h4&gt;
&lt;p&gt;In process of creating html version page for one of &lt;a href=&quot;http://sudodoki.github.io/slides/react-102/&quot;&gt;my slides&lt;/a&gt; it turned out that markup of&lt;/p&gt;
&lt;h6 id=&quot;strike-through-heading&quot;&gt;&lt;del&gt;Strike through heading&lt;/del&gt;&lt;/h6&gt;
&lt;p&gt;isn’t working in markup used in jekyll by default.
Thanks to &lt;a href=&quot;https://github.com/jekyll/jekyll/issues/1752&quot;&gt;issue#1752&lt;/a&gt;  in jekyll repo I was able to go over bunch of different possible engines to render markdown to find the one that worked correctly for page that used &lt;a href=&quot;https://help.github.com/articles/github-flavored-markdown/&quot;&gt;github flavored markdown&lt;/a&gt; (spoiler: it was &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rdiscount&lt;/code&gt;).
To set an engine used on your gh-pages, you will need to create  &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_config.yml&lt;/code&gt; file in root of your project and put&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;markdown: rdiscount
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;into it.
That did solve the issue of. 😼&lt;/p&gt;

&lt;h4 id=&quot;nested-folders--readmemd&quot;&gt;Nested folders &amp;amp; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;README.md&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;Every folder, especially when it’s a separate entity/project, should have its own README.md to explain how/what/why of the contents. That will mean, that you will have to apply the same changes to the README’s content as to the one in you project root (and add redirecting page).&lt;/p&gt;

&lt;h2 id=&quot;write-readmes&quot;&gt;Write READMEs&lt;/h2&gt;
&lt;p&gt;Be a good person and don’t just throw your stuff over the fence in the world of open source. Share your work, show you care about it &amp;amp; people using it, and you will get tenfold in return. Hope this small note will help you have this while spending less time. Hope it was somewhat useful. 😇&lt;/p&gt;</content><author><name></name></author><summary type="html">Occasionally, working on some projects hosted on github, we put much time into creating useful &amp;amp; comprehensive README.md file for our project and I think you can benefit from using it to create html pages hosted on github that will be always in sync with the content.</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://sudodoki.name/None" /><media:content medium="image" url="http://sudodoki.name/None" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Concurrency in JS</title><link href="http://sudodoki.name/concurrency-in-js/" rel="alternate" type="text/html" title="Concurrency in JS" /><published>2015-05-04T00:00:00+00:00</published><updated>2015-05-04T00:00:00+00:00</updated><id>http://sudodoki.name/concurrency-in-js</id><content type="html" xml:base="http://sudodoki.name/concurrency-in-js/">&lt;p&gt;Recently I’ve been to &lt;a href=&quot;http://bostonjs.com/&quot;&gt;BostonJS&lt;/a&gt; at Bocoup, where &lt;a href=&quot;https://twitter.com/naveedi&quot;&gt;Naveed Ihsanullah&lt;/a&gt; from Mozilla shared some of the upcoming concurrency features that will come to live supposedly in about a year (and this talk took place on 30th of April 2015).&lt;/p&gt;

&lt;p&gt;Previously, closest we had to concurrency was usage of &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/Worker&quot;&gt;Web Workers&lt;/a&gt;, which solved some of the problems. It provided us with ability to offload heavy computations from our single threaded javascript. It was safe in terms of playing well with single threaded execution model, but involved some overhead for communication between main thread and workers, as well as imposing restrictions to what kind of code could run in those.&lt;/p&gt;

&lt;p&gt;Looks like things are going to change. There’s a &lt;a href=&quot;https://docs.google.com/document/d/1NDGA_gZJ7M7w1Bh8S0AoDyEqwDdRh4uSoTPSNn77PFk/edit#heading=h.a6o4dubw5qla&quot;&gt;draft spec&lt;/a&gt; “Spec: JavaScript Shared Memory, Atomics, and Locks”, and &lt;a href=&quot;https://gist.github.com/dherman/5463054&quot;&gt;this gist&lt;/a&gt; that talks about &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SharedArrayBuffer&lt;/code&gt; primitive that would be concurrently accessible. You could read about motivation and roadmap in February &lt;a href=&quot;https://blog.mozilla.org/javascript/2015/02/26/the-path-to-parallel-javascript/&quot;&gt;entry in Mozilla blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Naveed joked about bringing &lt;a href=&quot;http://en.wikipedia.org/wiki/Deadlock&quot;&gt;deadlocks&lt;/a&gt; &amp;amp; &lt;a href=&quot;http://en.wikipedia.org/wiki/Race_condition&quot;&gt;race conditions&lt;/a&gt; to previously safe js (which is great pun and will help make future interviews ‘funnier’: ‘- do you want to create static pages for us &amp;amp; validate some forms? - Yeah! - Great, tell us about concurrency &amp;amp; deadlocks in javascript’).
I might have got previous paragraph distorted, so here’s an actual comment by Naveed:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Deadlocks are actually possible now in JavaScript. Shared memory and the associated locks, however, would potentially allow data races and new deadlocks because of synchronization. A bit different. What I meant is shared memory can be complex and JavaScript was spared that complexity in the past. Depending on how we finally choose to surface this functionality that may not be the case in the future.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It seems that API will be going through some dramatic changes over the course of next months. Naveed mentioned that on the day of the talk there was an interesting idea of looking into the way C++ handles threads &amp;amp; modifying the API slightly. For more details, you might want to take a look at &lt;a href=&quot;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4195.pdf&quot;&gt;this draft&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Closing up was the demo of visualizing &lt;a href=&quot;http://en.wikipedia.org/wiki/Mandelbrot_set&quot;&gt;Mandelbrot fractal&lt;/a&gt;, which used all 8 cores. Notably, it was also using &lt;a href=&quot;http://en.wikipedia.org/wiki/SIMD&quot;&gt;SIMD&lt;/a&gt;, which made code run several times faster. The fractal demo itself was about 6x faster (using 8 cores instead of 1), than normal JS because of shared memory &amp;amp; threading. SIMD brought another 2.5-3.5x pefromance boost.&lt;/p&gt;

&lt;p&gt;Such an API might be used to enable some great things in the web, as well as bring us another way to shoot ourselves in the foot.&lt;/p&gt;

&lt;p&gt;Naveed did mention necessity of future involvement of library authors to wrap this powerful low-level primitives to bring end-users handy tools that would enable easier work, especially when it will involve VR, image processing and other heavy-computational activities that will get only more widespread as we go forward.
Oh, Naveed did mention that there was a &lt;a href=&quot;https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/d-0ibJwCS24&quot;&gt;public indication&lt;/a&gt; that V8 team had intention of implementing this, so let’s just hope we will have this generally available in around a year.&lt;/p&gt;

&lt;p&gt;All in all, this looks like interesting space to follow &amp;amp; I would definetely be looking forward to Naveed’s talk on &lt;a href=&quot;http://2015.jsconf.us/speakers.html#ihsanullah&quot;&gt;JSCONF US 2015&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I want to thank Naveed for taking time to review this post &amp;amp; provide additional details I didn’t get right the first time 😼&lt;/p&gt;</content><author><name></name></author><summary type="html">Recently I’ve been to BostonJS at Bocoup, where Naveed Ihsanullah from Mozilla shared some of the upcoming concurrency features that will come to live supposedly in about a year (and this talk took place on 30th of April 2015).</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://sudodoki.name/None" /><media:content medium="image" url="http://sudodoki.name/None" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">ui.router: absolutely@nothing</title><link href="http://sudodoki.name/ui-router-absolutelynothing/" rel="alternate" type="text/html" title="ui.router: absolutely@nothing" /><published>2014-07-18T00:00:00+00:00</published><updated>2014-07-18T00:00:00+00:00</updated><id>http://sudodoki.name/ui-router-absolutelynothing</id><content type="html" xml:base="http://sudodoki.name/ui-router-absolutelynothing/">&lt;p&gt;###Absolutely adressing views in angular-ui-router.&lt;/p&gt;

&lt;p&gt;Something not many people had to leverage while working with &lt;a href=&quot;http://angular-ui.github.io/ui-router/site/&quot;&gt;ui-router&lt;/a&gt; is its ability to use &lt;a href=&quot;https://github.com/angular-ui/ui-router/wiki/Multiple-Named-Views#view-names---relative-vs-absolute-names&quot;&gt;absolute/relative addressing&lt;/a&gt;.
Behind the scenes every ui-view gets assigned absolute path. You can easily find &lt;a href=&quot;https://github.com/angular-ui/ui-router/blob/3e06565f5d5e1973c168116e905bd2fb569abcc6/src/viewDirective.js#L299&quot;&gt;source for figuring out ‘@’-name for view&lt;/a&gt; by randomly poking around code or stepping over debugger (that happened in my case).
This minor thing might come off handy some day when you’re dealing with irregular outlet structure or different view hierarhies, that are supposed to be sharing same views. 
In my case it was a task of having sidebar, which could have 2 different possible configurations &amp;amp; hierarchies – depending on different parts of the app – with state specific widget embedded into it. Naming my ui-view &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;plug@sidebar&lt;/code&gt; in different outlets &amp;amp; addressing those in my state definition object worked like a charm.
It might be a bit risky relying on internal API, so don’t forget to have tests for that &amp;amp; have proper dependency management. 😸&lt;/p&gt;</content><author><name></name></author><summary type="html">###Absolutely adressing views in angular-ui-router.</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://sudodoki.name/None" /><media:content medium="image" url="http://sudodoki.name/None" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">TIL: pre/post are for everybody!</title><link href="http://sudodoki.name/til-prepost-are-for-everybody/" rel="alternate" type="text/html" title="TIL: pre/post are for everybody!" /><published>2014-07-16T00:00:00+00:00</published><updated>2014-07-16T00:00:00+00:00</updated><id>http://sudodoki.name/til-prepost-are-for-everybody</id><content type="html" xml:base="http://sudodoki.name/til-prepost-are-for-everybody/">&lt;p&gt;Just a short note on discovery (which is not too much of a discovery actually): you can use &lt;em&gt;pre-&lt;/em&gt; &amp;amp; &lt;em&gt;post-&lt;/em&gt; hooks in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;npm-scripts&lt;/code&gt; for your own custom tasks.
So, next time you would need to run several things as part of one task, you could leverage those.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;{
  &quot;scripts&quot;: {
    &quot;premyscript&quot;: &quot;echo \&quot;Pre stuff\&quot;&quot;,
    &quot;myscript&quot;: &quot;echo \&quot;LOL MY SCRIPT\&quot; &quot;,
    &quot;postmyscript&quot;:&quot;echo \&quot;Post stuff\&quot;&quot;
  }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;So, if we run &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;npm run myscript&lt;/code&gt; in the folder where package.json would hold abovementioned lines, we would see something like:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ npm run myscript

&amp;gt; npm-test@0.0.0 premyscript /home/sudodoki/Projects/npm-test
&amp;gt; echo &quot;Pre stuff&quot;

Pre stuff

&amp;gt; npm-test@0.0.0 myscript /home/sudodoki/Projects/npm-test
&amp;gt; echo &quot;LOL MY SCRIPT&quot;

LOL MY SCRIPT

&amp;gt; npm-test@0.0.0 postmyscript /home/sudodoki/Projects/npm-test
&amp;gt; echo &quot;Post stuff&quot;

Post stuff
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;UPD (21/7/14):&lt;/strong&gt; Note on this &lt;a href=&quot;https://github.com/npm/npm/commit/f9f58dd0f5b715d4efa6619f13901916d8f99c47&quot;&gt;became part&lt;/a&gt; of oficial documentation. &lt;strong&gt;OSS FTW&lt;/strong&gt;&lt;/p&gt;</content><author><name></name></author><summary type="html">Just a short note on discovery (which is not too much of a discovery actually): you can use pre- &amp;amp; post- hooks in npm-scripts for your own custom tasks. So, next time you would need to run several things as part of one task, you could leverage those.</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://sudodoki.name/None" /><media:content medium="image" url="http://sudodoki.name/None" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>