<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Рома Рыбальченко: заметки с тегом js</title>
<link>https://keen.nerevar.com/tags/js/</link>
<description>Аналитик-разработчик в Алисе</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.2 (v4116)</generator>

<itunes:subtitle>Аналитик-разработчик в Алисе</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Радости программиста</title>
<guid isPermaLink="false">24</guid>
<link>https://keen.nerevar.com/all/radosti-programmista/</link>
<pubDate>Mon, 18 Jul 2016 11:30:53 +0300</pubDate>
<author></author>
<comments>https://keen.nerevar.com/all/radosti-programmista/</comments>
<description>
&lt;p&gt;dos, pascal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;смотри, оно выполняет твой алгоритм, который запрограммировал!&lt;/li&gt;
&lt;li&gt;можно работать с тем что ты ввёл, спрашивать любые числа и решать уравнения (в школе)&lt;/li&gt;
&lt;li&gt;а потом даже игрушку сделать, змейку, тетрис 80x25&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;windows, delphi7:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;смотри, формы, можно сделать свой калькулятор или сапёр, настоящее windows приложение!&lt;/li&gt;
&lt;li&gt;если рисовать картинки-спрайты и их передвигать, то получится наколеночная версия героев 3&lt;/li&gt;
&lt;li&gt;а если подключить tcp/ip и udp, то можно сделать сетевой чатик, или даже Radmin&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;web, php:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;смотри, это кроссплатформенно, работает в любом браузере на любой ОС!&lt;/li&gt;
&lt;li&gt;можно верстать полупрозрачности-градиенты, воплотить любой интерфейс, гораздо красивее windows controls&lt;/li&gt;
&lt;li&gt;с помощью кравлеров можно спарсить весь интернет себе&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;web, js:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;смотри, твой код работает на сотне серверов и миллионы пользователей каждый день пользуются твоим UI!&lt;/li&gt;
&lt;li&gt;а js можно писать и на клиенте и на сервере, прикольно. Посмотрим что из этого получится&lt;/li&gt;
&lt;li&gt;ios, android: теперь можно делать приложения, работающие на телефонах и планшетах: свайпы, зумы, доступ к камере, gps&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;mapreduce, python:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;смотри, 15000 машинок обработают десятки терабайт данных за полчаса и выведут тебе результат!&lt;/li&gt;
&lt;/ul&gt;
</description>
</item>

<item>
<title>Подборка докладов и видеолекций про БЭМ и фронтенд в Яндексе</title>
<guid isPermaLink="false">16</guid>
<link>https://keen.nerevar.com/all/yandex-frontend-video-lectures/</link>
<pubDate>Sat, 04 Jun 2016 16:01:50 +0300</pubDate>
<author></author>
<comments>https://keen.nerevar.com/all/yandex-frontend-video-lectures/</comments>
<description>
&lt;p&gt;В Яндексе есть огромное количество докладов про технологии, инструментов и фреймворков фронтенда. Большая часть из которых содержит NDA информацию и доступна только сотрудникам. Но много людей выступают на открытых конференциях и рассказывают про внутренние технологии.&lt;/p&gt;
&lt;p&gt;Этот список докладов и выступлений, доступных извне, я подбирал для новых разработчиков интерфейсов в Яндекс.Картинках, чтобы у них появилось представление о том, как всё внутри устроено. Он не претендует на полноту, но затрагивает большие ключевые аспекты работы разработчика интерфейсов.&lt;/p&gt;
&lt;p&gt;Про БЭМ:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://events.yandex.ru/lib/talks/686/"&gt;БЭМ: от методологии до платформы&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://events.yandex.ru/lib/talks/1441/"&gt;Методология БЭМ и обзор БЭМ платформы&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://events.yandex.ru/lib/talks/544/"&gt;БЭМ: история появления, принципы методологии, базовые понятия&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://events.yandex.ru/lib/talks/2185/"&gt;Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Прикладное, про разработку:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://events.yandex.ru/lib/talks/1581/"&gt;i-bem.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://events.yandex.ru/lib/talks/1321/"&gt;Cистемы контроля версий&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://events.yandex.ru/lib/talks/1289/"&gt;Общий цикл разработки (dev-cycle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://events.yandex.ru/lib/talks/97/"&gt;AJAX в поиске по вебу, history API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://events.yandex.ru/lib/talks/1327/"&gt;Развертывание верстки&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Общее:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://events.yandex.ru/lib/talks/1437/"&gt;Шаблонизаторы (templates&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://events.yandex.ru/lib/talks/1329/"&gt;Механизм работы браузера&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://events.yandex.ru/lib/talks/1330/"&gt;Кеширование на клиенте и сервере&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://events.yandex.ru/lib/talks/1579/"&gt;JavaScript. События&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://events.yandex.ru/lib/talks/1433/"&gt;Транспорт, ajax (js-ajax&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://events.yandex.ru/lib/talks/677/"&gt;Безопасность веб-приложений&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://academy.yandex.ru/events/shri/"&gt;Доклады с Школы Разработки Интерфейсов&lt;/a&gt;&lt;br /&gt;
Ну и главное, официальный сайт БЭМ: &lt;a href="http://ru.bem.info/"&gt;http://ru.bem.info/&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Что нового я узнал, делая задачи или как выходить из рутины на работе</title>
<guid isPermaLink="false">15</guid>
<link>https://keen.nerevar.com/all/chto-novogo-ya-uznal-delaya-zadachi/</link>
<pubDate>Sat, 04 Jun 2016 15:28:20 +0300</pubDate>
<author></author>
<comments>https://keen.nerevar.com/all/chto-novogo-ya-uznal-delaya-zadachi/</comments>
<description>
&lt;p&gt;Под таким названием я начал вести заметку в Evernote, которой хочу поделиться в бложеке.&lt;/p&gt;
&lt;p&gt;Как-то взяв очередную задачу из трекера в работу, я вдруг заметил, что знаю как делать эту задачу. Знаю какие блоки создам. Знаю какой код будет формировать html на сервере. Знаю, какой блок за основу на клиенте, в котором есть все методы, которые мне нужны. Знаю, какие тесты буду писать на блоки. Когда код попадёт на ревью, когда вольётся в основную ветку, выкатится в прод. В задаче не осталось неизвестностей: я ясно и чётко представлял все свои действия на автомате мог это сделать не задумываясь.&lt;br /&gt;
И когда таких задач — подавляющее количество, то пропадает интерес к ним.&lt;/p&gt;
&lt;p&gt;Чтобы двигаться вперёд и развиваться, я решил фиксировать новый приобретённый опыт в заметке в Evernote. Одновременно с этим пробовать новые инструменты для работы, технологии, интересные находки в сети.&lt;/p&gt;
&lt;p&gt;Сразу скажу, что мне это не сильно помогло, но получилось очень интересно.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;23 ноября 2015 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;git ll —merges — показывает только мёрдж коммиты в ветке. Полезно для dev, чтобы не видеть миллион коммитов в фиче-бранчах&lt;/li&gt;
&lt;li&gt;grd — git rebase origin/dev, предварительно нужно сделать git fetch&lt;/li&gt;
&lt;li&gt;vh, vw, vmin, vmax — css vertical height в процентах, т. е. 100vh — 100% по высоте экрана&lt;/li&gt;
&lt;li&gt;sublime multiple selection, cursors:
&lt;ul&gt;
  &lt;li&gt;выделить что-то&lt;/li&gt;
  &lt;li&gt;нажать Cmd+D чтобы выделить следующее&lt;/li&gt;
  &lt;li&gt;нажать вправо-влево, чтобы работать с курсором&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;awk:
&lt;ul&gt;
  &lt;li&gt;вырезать вторую колонку: awk ’{print $1 $3 substr($0, index($0,$4))}’;&lt;/li&gt;
  &lt;li&gt;разделитель = ’много пробелов’: awk -vOFS=’    ’ ’{print $1,$2,$3}’;&lt;/li&gt;
  &lt;li&gt;format printf: awk ’{ printf «%-15s %-20s %s\n», $1, $3, substr($0, index($0,$4)) }’&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;написал команду, которая показывала когда кто последний раз заходил на бету — lastloguser
&lt;ul&gt;
  &lt;li&gt;for u in nerevar root needed_user; do lastloguser $u; done&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;end&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;25 ноября 2015 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;nodejs benchmark:
&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://github.com/sbmaxx/bem-priv#benchmarks-results"&gt;https://github.com/sbmaxx/bem-priv#benchmarks-results&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://www.npmjs.com/package/benchmark"&gt;https://www.npmjs.com/package/benchmark&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://www.npmjs.com/package/benchtable"&gt;https://www.npmjs.com/package/benchtable&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;end&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;26 ноября 2015 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mocha: describe.only — прогоняет тесты только из этого describe&lt;/li&gt;
&lt;li&gt;sinon stub: правильно делать так:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;methodStub = sinon.stub(window, 'method', function(params) {
    return params;
});&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;в текущем es6 Map polyfill для nodejs не работает keys(), values(), entries()&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;3 декабря 2015 г.&lt;/b&gt;&lt;br /&gt;
Установка на чистой машинке:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;sudo apt-get install nodejs npm&lt;/li&gt;
&lt;li&gt;sudo ln -s /usr/bin/nodejs /usr/bin/node&lt;/li&gt;
&lt;li&gt;sudo npm install npm -g&lt;/li&gt;
&lt;li&gt;node update:
&lt;ul&gt;
  &lt;li&gt;curl -sL &lt;a href="https://deb.nodesource.com/setup"&gt;https://deb.nodesource.com/setup&lt;/a&gt; | sudo bash —&lt;/li&gt;
  &lt;li&gt;curl -sL &lt;a href="https://deb.nodesource.com/setup_4.x"&gt;https://deb.nodesource.com/setup_4.x&lt;/a&gt; | sudo -E bash —&lt;/li&gt;
  &lt;li&gt;sudo apt-get install -y nodejs&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;для expressjs нужен &lt;a href="https://github.com/expressjs/cookie-parser"&gt;https://github.com/expressjs/cookie-parser&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;а есть ещё body-parser для тела post-запросов&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;4 декабря 2015 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Установить субмодули гита: git submodule update &lt;s&gt;init &lt;/s&gt;recursive&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;5 декабря 2015 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Есть разные версии JDK. Их можно установить все и переключать в dotfiles через JAVA_HOME: &lt;a href="http://stackoverflow.com/a/6588410/3186155"&gt;http://stackoverflow.com/a/6588410/3186155&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;iTerm2 переход по словам Alt+left, Alt+right &lt;a href="https://coderwall.com/p/h6yfda/use-and-to-jump-forwards-backwards-words-in-iterm-2-on-os-x"&gt;https://coderwall.com/p/h6yfda/use-and-to-jump-forwards-backwards-words-in-iterm-2-on-os-x&lt;/a&gt;
&lt;ul&gt;
  &lt;li&gt;Esc + b → слово назад&lt;/li&gt;
  &lt;li&gt;Esc + f → слово вперёд&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Evernote bullet hotkey Cmd+Shift+U&lt;/li&gt;
&lt;li&gt;Плагины для cordova, связывающие нативную функциональность и js: &lt;a href="https://cordova.apache.org/docs/en/latest/guide/hybrid/plugins/index.html"&gt;https://cordova.apache.org/docs/en/latest/guide/hybrid/plugins/index.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Консоль js на android: adb shell «logcat | grep ’Web Console’»&lt;/li&gt;
&lt;li&gt;ionic запустить на android девайсе: ionic run android —target=AU5LCINNAQLV4L6T&lt;/li&gt;
&lt;li&gt;ionic запустить на android эмуляторе: ionic run android —target=192.168.56.101:5555&lt;br /&gt;
8 декабря 2015 г.&lt;/li&gt;
&lt;li&gt;Проверить media query: window.matchMedia( ’@media screen and (max-width: 786px)’ ).matches&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;11 декабря 2015 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;google spreadsheets: полосатая заливка =ISEVEN(ROW())&lt;/li&gt;
&lt;li&gt;terminal zsh: Ctrl+Z —&gt; свернуть, развернуть&lt;/li&gt;
&lt;li&gt;Yandex Maps Print &lt;a href="https://github.com/nerevar/yamaprint"&gt;https://github.com/nerevar/yamaprint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Q.all, Q.defer — промисы, многопоточность&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;21 декабря 2015 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;shelljs не работает под самой последней нодой&lt;/li&gt;
&lt;li&gt;для gzip лучше не использовать параметр -c, а запускать просто без параметра output’а, чтобы gzip сам создал архив с нужным именем&lt;/li&gt;
&lt;li&gt;если selenium-grip не запускает окно браузера — то возможно запускает, просто его нет в Cmd+Tab и нужно посмотреть все открытые окна 4fingers-swipe-down&lt;/li&gt;
&lt;li&gt;vim toggle fold block — za&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;22 декабря 2015 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Метрика Первый названный бренд (Top-of-mind) — потребитель без подсказки называет определенный бренд первым&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;25 декабря 2015 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;window.URL.createObjectURL() — создаёт картинку из файла. Формат blob:&lt;hash&gt;, типа base64&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;30 декабря 2015 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;R studio:
&lt;ul&gt;
  &lt;li&gt;считать файл metroflow &lt;- read.table('metroflow.txt')&lt;/li&gt;
  &lt;li&gt;построить boxplot: boxplot(metroflow, las=1)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;end&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;2 января 2016 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;в js альтернативой php preg_match_all является str.replace(/…/g, callback)&lt;/li&gt;
&lt;li&gt;sketch векторный, нет даже eraser brush&lt;/li&gt;
&lt;li&gt;seashore basic image editor ничего так&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;7 января 2016 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;esprima, AST дерево, esprima-walk&lt;/li&gt;
&lt;li&gt;Сортировка по убыванию _.sortByOrder(array, ’rank’, ’desc’)&lt;/li&gt;
&lt;li&gt;npm i omit-deep для удаления свойств глубоко в объекте&lt;/li&gt;
&lt;li&gt;require(’glob’).sync(’images/blocks-*/**/*.js’) — возвращает массив файлов по маске&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;10 января 2016 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;gitter.im&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;12 января 2016 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;sinon fakeServer, fakeXMLHttpRequest, stub(jQuery, ’ajax’)&lt;/li&gt;
&lt;li&gt;sinon spy &amp; stub&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;14 января 2016 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;sinon.assert.calledOnce(callbackStub);&lt;/li&gt;
&lt;li&gt;AssertionError может триггерить как chai, так и sinon, а mocha ловит их&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;22 января 2016 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;npm 3 устанавливает все зависимости плоско в node_modules. Если разные версии — то в локальные node_modules&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;23 января 2016 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;чтобы добавить закоммиченный файл в .gitignore, нужно его сначала удалить git rm -rf —cached &lt;file&gt;&lt;/li&gt;
&lt;li&gt;windows bat file: переменные объявляются через SET release=jmc%1, используются через 7z.exe %release%.zip&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;25 января 2016 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;API facebook посчитать количество лайков-шеров &lt;a href="https://api.facebook.com/method/links.getStats?format=json&amp;urls=http://d3name.ru"&gt;https://api.facebook.com/method/links.getStats?format=json&amp;urls=http://d3name.ru&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;26 января 2016 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;установить npm 2: sudo npm i -g npm@2&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;29 января 2016 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;python NumPy — для работы с массивами и матрицами, статистические функции
&lt;ul&gt;
  &lt;li&gt;np.nanmedian — медиана без nan&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;python matplotlib — для построения графиков&lt;/li&gt;
&lt;li&gt;python scipy.stats — для статистических функций распределения случайных величин&lt;/li&gt;
&lt;li&gt;python pandas — DataFrame, read/write from popular formats
&lt;ul&gt;
  &lt;li&gt;понять, чо там: data.describe()&lt;/li&gt;
  &lt;li&gt;итератор: for index, row in data.iterrows():&lt;/li&gt;
  &lt;li&gt;pandas DataFrame to array: data[’Age’].tolist()&lt;/li&gt;
  &lt;li&gt;удалить NaN: data1[5:10][np.isfinite(data1[5:10][’Age’])]&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;модифицировать data frame в цикле:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;for index, row in data1.iterrows():
    data1.set_value(index, 'Sex', 1 if row['Sex'] == 'male' else 0)&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Возвратить массив фич, прогнав текст по массиву регулярок:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;def feature_vector(text):
    return map(lambda x: 1 if x.search(text) else 0, reg_arr)&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;&lt;end&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;30 января 2016 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Сделать pycharm output шире: pandas.set_option(’display.width’, 150)&lt;/li&gt;
&lt;li&gt;Деление float без округления: c = a / float(b)&lt;/li&gt;
&lt;li&gt;Считать list из файла:
&lt;ul&gt;
  &lt;li&gt;samples = (line.decode(’utf-8’).split() for line in open(’names.txt’))&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Тернарный оператор:
&lt;ul&gt;
  &lt;li&gt;1 if row[’Sex’] == ’male’ else 0&lt;/li&gt;
  &lt;li&gt;(0, 1)[row[’Sex’] == ’male’]&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Проверка подстроки в строке: if ’Mrs.’ in full_name:&lt;/li&gt;
&lt;li&gt;boxplot &lt;a href="http://blog.bharatbhole.com/creating-boxplots-with-matplotlib/"&gt;http://blog.bharatbhole.com/creating-boxplots-with-matplotlib/&lt;/a&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://gist.github.com/nerevar/7ef3a840844d22ba2be5"&gt;https://gist.github.com/nerevar/7ef3a840844d22ba2be5&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Сортировка в массиве по количеству вхождений элементов:
&lt;ul&gt;
  &lt;li&gt;from collections import Counter&lt;/li&gt;
  &lt;li&gt;print Counter(names).most_common()&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;end&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;7 февраля 2016 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;np.linspace — сгенерировать массив чисел по оси OX: x = np.linspace(0,4,100)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;10 февраля 2016 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;python Counter: print({k: v/100.0 for k, v in c.items()})&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;5 марта 2016 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;TeX
&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.personal.ceu.hu/tex/cookbook.html"&gt;http://www.personal.ceu.hu/tex/cookbook.html&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="ftp://ftp.ams.org/pub/tex/doc/amsmath/short-math-guide.pdf"&gt;ftp://ftp.ams.org/pub/tex/doc/amsmath/short-math-guide.pdf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://www.andy-roberts.net/writing/latex/mathematics_1"&gt;http://www.andy-roberts.net/writing/latex/mathematics_1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;end&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;14 марта 2016 г.&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;nvm: добавить exports в dotfiles; nvm install 4.3.0&lt;/li&gt;
&lt;li&gt;bem-xjst online demo &lt;a href="https://clck.ru/9wcz4"&gt;https://clck.ru/9wcz4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;6 May 2016&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python read file to string&lt;br /&gt;
return open(’static/paintings/stub.txt’, ’r’).read()&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;24 May 2016&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python print json utf-8:&lt;/li&gt;
&lt;li&gt;json_dumps(data, ensure_ascii=False)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;25 May 2016&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python Virtualenv:
&lt;ul&gt;
  &lt;li&gt;virtualenv mstand_venv — создать&lt;/li&gt;
  &lt;li&gt;source mstand_venv/bin/activate — активировать&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;end&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;$ virtualenv develop              # Create virtual environment
$ source develop/bin/activate     # Change default python to virtual one
(develop)$ pip install -U bottle  # Install bottle to virtual environment&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;27 May 2016&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;replace:
&lt;ul&gt;
  &lt;li&gt;trim_dash_regex = re.compile(r’^-’, re.IGNORECASE)&lt;/li&gt;
  &lt;li&gt;trim_dash_regex.sub(’’, ‘mystring’)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;end&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;29 May 2016&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;nginx убить процесс на 80 порту:
&lt;ul&gt;
  &lt;li&gt;sudo fuser -k 80/tcp&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;end&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
</item>


</channel>
</rss>