# Понедельник 83 твита
На этой неделе с вами @flackus. Петербуржец, разработчик интерфейсов в Яндексе. Делаем рантайм на node.js и бухаем винчик.
9:23Про БЭМ, йогу и аджайл ничего не будет, но могу подсказать хорошие бары в Питере. Ну или про машины спрашивайте.
9:24Буду активно использовать местоимение “мы”. Я-то сам вообще туповат, просто вокруг собрались умные люди.
9:24Сегодня будет немного технических подробностей, про клиентскую часть рассказа не будет (я же обещал без бэма).
9:24Кстати! Пользуясь случаем, хочу передать привет парням и девчонкам из Пытошной, а также барменам Терминала.
9:24@jsunderhood а че так на бэм все взъелись?9:29
@jsunderhood алкоголь или наркотики?9:30
Ну ладно, давайте серьезно. Хочу услышать всех, у кого node.js в продакшене в рантайме. Пишите свой опыт и ссылки на сайты.
9:36@jsunderhood Я щитаю, что притащить JS в серверсайд было самой дерьмовой идеей всех времен. Но времена были дикие, крутились как могли.9:43
Довольно иронично, что именно @twilightfeel является главной движущей силой по node.js в Яндексе. <s>И пьёт как конь.</s>
10:05Про бары в Питере. Терминал всё еще хорош, ББН кончился, на Думскую не ходите. Приличным в Зинг, пьяным в Пойзон-3, другим на Некрасова.
10:07Но в целом всё плохо. Купите портвейн и на набережную (любую).
10:08Главное выбрать набережную с нужной стороны от мостов.
10:14Про серверный JS. Вообще, складывается ощущение, что все мечтают не программировать, а получить чудо-DSL, которые всё сделает за вас.
10:17Только вот любой DSL имеет свои ограничения. По достижению оных придется люто программировать, используя минимум таланты проктолога.
10:18Поясняю для непитерцев про набережные. Мосты разведут и будете куковать. Как в песне Кирпичей pleer.com/tracks/1001489… @gxoptg_
10:23@jsunderhood задача dsl’я чтоб 90% задач делалась совсем просто. А для оставшихся 10% не мешать переключаться в ручной режим.10:35
Серега, тебе ли не знать, что эти 10% окажутся из говна и палок, причем палки тоже будут из говна. @knopsh
10:35Про серверный JS слабо бомбануло. ЦА пока слишком мала. Такой же наброс в курилке Яндекса уже привел бы к драке и примирительной пьянке.
10:47@jsunderhood, а какие есть проекты размеров Авто и Недвижимости на Node.js вне Яндекса? Ладно, любых размеров, кроме как «для кота».10:51
Я вот и интересовался про такие проекты на территории СНГ чуть раньше, но пока только "мертвые стартапы". @pepelsbey
10:52Про западные понятно. Linkedin, Walmart, кто-то еще наверняка.
10:54Тогда я немного расскажу. Из сервисов нашей команды на node.js (0.10) работают Яндекс.Авто, Работа, Недвижимость и Путешествия.
11:47Наш опыт разработки рантайма на node.js частично перетёк сюда github.com/nodules Напоминаю про 0.10, но к этому мы еще вернемся.
11:48А еще хипстеры подсказывают, что есть видео: events.yandex.ru/lib/talks/937/ events.yandex.ru/lib/talks/936/
11:48Тут говорили про DSL, так вот у нас до ноды был DSL на XML-синтаксисе, а встроенным в него скриптовым языком был lua. Пхп казался прекрасным
11:50Кстати, если работодатель интересуется опытом XSLT, бегите и уходите в запой.
11:51@jsunderhood извините тупого, что имеется в виду под рантаймом здесь?11:54
Тут речь о том, что node.js используется не как вспомогательные скрипты, а как живой веб-сервер, обрабатывающий запросы в реальном времени.
11:56Академическая формулировка тут вряд ли нужна.
11:56@jsunderhood С другой стороны, если вы действительно умеете XSLT, то это полезный опыт функциональщины, immutability, паттерн матчинга, ..11:57
Раз уж вспомнили XSLT, держите немного ада stackoverflow.com/questions/4651… Больше лайков, чем у Майкла Кея, ахаха.
12:41Ладно, вернемся к нашим баранам.
13:30В продакшене в пределах одной машины у нас двухуровневая балансировка: round-robin в nginx и дефолтная в node.js clck.ru/9aakp
13:31Поднимать группы воркеров на разных портах/сокетах позволяет github.com/nodules/luster На уровне nginx всё просто wiki.nginx.org/LoadBalanceExa…
13:31В 0.12 по-умолчанию уже round-robin, но в 0.10 и раньше cluster неравномерно распределяет нагрузку по воркерам. clck.ru/9aakx
13:32И если не заморачиваться, то получится примерно такая картинка. Я воркер, я не хочу ничего делать, я хочу фыр-фыр-фыр pic.twitter.com/wRaPB7WKFK
13:33Тут вы спросите, почему мы до сих пор используем 0.10. "Обстоятельства непреодолимой силы", "кровавый энтерпрайз", вот это всё.
13:34Но, как говорится, смотря в будущее, не наступите в старое дерьмецо. Помните про балансировку, а то засмеют.
13:34По-моему, пяток предыдущих записей были для большинства бесовской тарабарщиной. А смешных картинок я не заготовил. Давайте коварные вопросы.
14:00А я пока пойду порисую смешные надписи на котиках.
14:02@jsunderhood Что ты думаешь о семантике в HTML? (хахаха)14:04
@jsunderhood я всегда хотел спросить у парней с Яндекса: кто же эти люди, которые написали Яндекс-Бар?14:08
Я как-то глушил ёрш в Цинике и даже там меня спросили, чё за тема с Яндекс.Баром. Парни, я до сих пор не в курсе, честно. @denysdovhan
14:10@jsunderhood куда если не яндекс? А бармены пойдешь? Чувствуешь профдеформацию?14:10
Профдеформации не ощущаю. После вебдева? Открою бар или пойду воровать нефть. P.S. Урик, ты зайка. @yuritkachenko
14:11Прочитал в ответах слово "микроформаты", нервно закурил. И Макс Россомахин сразу вспомнился.
14:14@jsunderhood стоит ли волноваться, если всю неделю хлестал вино, а на пятый пришла утка?14:54
Если утка пришла, то это не страшно, главное чтоб по взаимному согласию. А вот если селезень, то я бы напрягся. @twilightfeel
14:55@jsunderhood Ощущаешь ли физические последствия алкоголизма?14:59
Физические последствия алкоголизма ощущаются и еще как. Но надо держаться и идти к поставленной цели! @toivonens
15:00Не сочтите меня превратно, я просто стараюсь отвечать по порядку. Но это явно никуда не годится, будем фильтровать.
15:37@jsunderhood как насчет микросервисов? Используете их?15:37
Не вполне уверен, что правильно понял вопрос про микросервисы, но самой архитектуре сервисов что-то похожее (по духу) есть.
15:39Возьмем трехступенчатую архитектуру: клиент - фронтенд - бекенд.
Присущая микросервисам атомарность есть прежде всего в бекендах.
Фронтенд собирает нужные для шаблонизации данные из нескольких (иногда более десятка) бекендов-источников. Протокол обычно просто HTTP.
15:41Каждый бекенд как раз и создан атомарным, заменяемым и ускоспециализированным. Это не микросервисы как таковые, но лучшее из их духа берется
15:43Плюс такого подхода в том, что падение одного бекенда (не основного вроде поиска) может быть несущественным для приложения.
15:45Даже потеря авторизации пользователя (если это не user-specific страница) является допустимой. Идет деградация ответа до опр-й степени.
15:46Грань этого допуска, конечно, определятся из бизнес-специфики приложения и настраивается руками, а не божественным проведением.
15:47Да, надо пояснить, что в трехуровневой архитектуре фронтенд это nodejs-слой как раз.
15:49@jsunderhood задвинь ещё что-нибудь про ноду. например, как лучше кэш готовить.15:51
Кеша результатов шаблонизации у нас нет, он нам особо ничего не даёт. Очевидно есть версионированный кеш статики (js/css/картинки).
15:52Также мы кешируем (в мемкеш) те данные, которые мы достаем с бекенда. Естественно, далеко не все и не всегда.
15:53Это не столь обязательно, потому что на бекендах есть свои кеши, но всё же ликвидируются затраты на общение по сети.
15:53В дополнение к предыдущим потокам сознания я наконец приложу картинку для наглядности. pic.twitter.com/K8GBFHgVi0
16:07@jsunderhood а можно еще про тонкую грень между фронтенд и бекенд? Актуально16:12
Грань между фронтом и бекендами довольно тонкая. Но вкратце:
16:142. Нет прямой записи данных (например, на диск или в БД)
16:16Как пример, данные об украинских ценах на авто живут в бекендах, а перевод интерфейса на украинский -- полностью дело фронта.
16:19@jsunderhood а на чем у вас бэк обычно. Бывает ли node на бэке?16:20
Конкретно у нас в основном Java/Scala. Встречаются плюсы, питон, перл. Бекендов прям бекендов на ноде я не встречал @zilm
16:21@jsunderhood урл у апишки поменялся, в json-е приходящем поле добавилось, которое надо модифицировать и т.д.16:35
Нет, обработки таких изменений без выкладок не происходит. Единственно, что я видел -- правила кеширования могут получаться на лету. @zilm
16:36@jsunderhood видел у пацанов при старте ноды тянут с бека редко измен-мые данные и хранят прямо в памяти. Отсюда вопрос что с shared memory?16:55
Для этой цели проще использовать memcached (redis, whatever) на локальном порту, там все продумано и проверено до нас @MaximSukharev
16:57@jsunderhood промисы, генераторы или прочий async?
Промисы. Vow github.com/dfilatov/vow Надо бы, конечно, ковырять блидинг эдж уже.
@jsunderhood промисы, генераторы или прочий async?
17:24
@jsunderhood только это не трёхуровневая структура, а четырёх — за бекендом ещё БД
Теоретически она там бесконечноуровневая, но зачем пугать всех и самого себя.
@jsunderhood только это не трёхуровневая структура, а четырёх — за бекендом ещё БД
17:40
Прежде чем что-то делать на ноде, очень рекомендую нанять человека, который умеет полный стек. Чтоб научил 200 от 400 отличать хотя бы.
18:02@jsunderhood Давай лучше, как руководитель, в студию мануал «Как рулить группой фронтендеров и не сойти с ума». С бухлом все понятно, а еще?
Нанимать людей умнее себя и не мешать им работать.
@jsunderhood Давай лучше, как руководитель, в студию мануал «Как рулить группой фронтендеров и не сойти с ума». С бухлом все понятно, а еще?
18:30
@jsunderhood чтобы аргументировать переезд с 0.10 на 4.0?
Нечего там аргументировать. Там проблема в миграции окружения, а не кода. Это не объяснишь на пальцах, к сожалению.
@jsunderhood чтобы аргументировать переезд с 0.10 на 4.0?
18:35
На сегодня всё, на посошок NSFW-история про добавление “малюсенькой задачки” в стабильную ветку за день до релиза youtube.com/watch?v=2oRwQ5…
18:42# Вторник 48 твитов
@jsunderhood посоветуй хороший портвейн, кстати?)
Мне хватает простого Красного Крымского от Массандры. А так еще Сандеман люблю.
@jsunderhood посоветуй хороший портвейн, кстати?)
9:09
@jsunderhood, расскажи завтра про путь к успеху: от первой строчки кода до <del>меня узнают в барах</del> нынешней работы и команды.
Более чем уверен, что это никому не интересно.
@jsunderhood, расскажи завтра про путь к успеху: от первой строчки кода до <del>меня узнают в барах</del> нынешней работы и команды.
9:10
@jsunderhood когда-то @flackus меня собеседовал, и это было круто, меня не взяли, но дали хороший пендаль в нужном направлении, спасибо)
Приятно слышать. Справедливости ради, недовольных тоже оставалось :)
@jsunderhood когда-то @flackus меня собеседовал, и это было круто, меня не взяли, но дали хороший пендаль в нужном направлении, спасибо)
9:11
@jsunderhood полный HTTP стек? Или о чем речь?
Не. Чтобы мог объяснять бывшим верстальщикам про линукс, баш, кеширование, греп логов и т.д. Чуточку от админства.
@jsunderhood полный HTTP стек? Или о чем речь?
9:14
@jsunderhood @twilightfeel а как со стажерами? Есть рецепт, как за минимальный срок вырастить разработчика которому не страшно «не мешать»?
Для меня это больная тема. Я не умею, терпения не хватает. Мне проще с кандидатами, которые сами тебя собеседуют.
@jsunderhood @twilightfeel а как со стажерами? Есть рецепт, как за минимальный срок вырастить разработчика которому не страшно «не мешать»?
9:17
@jsunderhood ой, а давно стали пользователей (клиент) в архитектурные схемы вносить? Или у вас клиент что-то иное обозначает?
Это чтобы не путать клиентский js и серверный. Слово "фронтенд" слишком гибко толкуемо.
@jsunderhood ой, а давно стали пользователей (клиент) в архитектурные схемы вносить? Или у вас клиент что-то иное обозначает?
9:18
@jsunderhood и если мы проектирует микросервисы, то атомарность должна быть обеспечена как-либо и во фронте
Например? Про это часто говорят, но я так и не придумал ничего путного да с понятной реализацией.
@jsunderhood и если мы проектирует микросервисы, то атомарность должна быть обеспечена как-либо и во фронте
9:19
@jsunderhood ноду дебажите console.log'ами?
Логи, таймеры, стресс-тесты, мониторинги (включая проц-диск-память). Прям так чтоб console.log только в разработке.
@jsunderhood ноду дебажите console.log'ами?
9:21
@jsunderhood Я думал, речь шла о Node-гуру, а тут совсем другое. Тут вообще не про Node)
Сам node для наших целей вполне понятен. Ошибиться вот в деплое куда проще. bash этот с его кавычками, вот это всё.
@jsunderhood Я думал, речь шла о Node-гуру, а тут совсем другое. Тут вообще не про Node)
9:26
@jsunderhood нативные аддоны для ноды не приходилось писать?
Ох. Там вот ниже выясняли, почему сидим на 0.10. Как раз поэтому. Есть плюсовые биндинги, переводить тяжело.
@jsunderhood нативные аддоны для ноды не приходилось писать?
9:28
@jsunderhood т.е. локально реп не разворачиваете и какой-нибудь node-inspector не используете? Только логи, только хардкор
Платформа у нас устоялась, так что редко в кишки лезть приходится. А для дебага бизнес-логики это не нужно.
@jsunderhood т.е. локально реп не разворачиваете и какой-нибудь node-inspector не используете? Только логи, только хардкор
9:32
@jsunderhood это вот зря вот так вот. Интересные истории всегда интересно почитать.
Я бы согласился, будь история интересной ;)
@jsunderhood это вот зря вот так вот. Интересные истории всегда интересно почитать.
9:33
@jsunderhood coffeescript и meteor (два отдельных вопроса) — что скажешь?
Coffeescript ненавижу, про meteor ничего не скажу.
@jsunderhood coffeescript и meteor (два отдельных вопроса) — что скажешь?
9:37
@jsunderhood ты гонишь. Это крымское дерьмо с портвейном объединяет только… А нет, вообще ничего не объединяет.
Не согласен. Да и все равно ты после четвертого стакана Сандеман от Агдама не отличишь.
@jsunderhood ты гонишь. Это крымское дерьмо с портвейном объединяет только… А нет, вообще ничего не объединяет.
9:39
Ладно, история из жизни, первая и последняя. В Яндекс меня взяли благодаря тому, что человек, собеседоваваший по JS, болел. Шёл дикий 2007г.
9:56@jsunderhood кстати, обкладывание метриками радикально уменьшает время грепа логов, а то и вовсе избавляет от него.9:56
@jsunderhood Для метрик: node.js -> statsd -> graphite. Grafana в качестве морды к graphite. Еще события от сервисов в graphite events.9:56
@jsunderhood Извини если уже было. Какие проекты в Я на ноде, только кинопоиск?
Первым крупным был Авто. Сейчас уже почитай половина всех живых, если не больше.
@jsunderhood Извини если уже было. Какие проекты в Я на ноде, только кинопоиск?
10:14
@jsunderhood а почему на Авто в характеристиках тачек не указан вес?
Указан, когда известен. Пруф: auto.yandex.ru/bmw/3er/368932…
@jsunderhood а почему на Авто в характеристиках тачек не указан вес?
11:47
@jsunderhood полагаю что кусков на coffee в Я исчезающе мало?
Я не видел вообще. Увижу в районе себя -- сожгу. (тире ставить не буду)
@jsunderhood полагаю что кусков на coffee в Я исчезающе мало?
11:48
Удивлен, что никто не спросил, зачем нам nginx перед node.js. Неужели никто из интереса не посмотрел заголовки упомянутых проектов?
11:52@jsunderhood Просто все так делают :)
Ну у некоторых лайти еще :)
@jsunderhood Просто все так делают :)
12:08
Ненавижу, когда @pepelsbey узнают на Думской и прерывают наш алкогольный угар вопросами про работу. Вадик, привет!
12:14Злободневный вопрос. Если вы из Питера и переехали в Москву, что вами двигало? По мне это так же разумно, как мешать водку с шампанским.
12:31@jsunderhood Есть такая фраза: петербуржцы, петереезжающие в Москву, повышают IQ обоих столиц :D12:54
@jsunderhood встречный вопрос: москвичи, не переехавшие в Санкт-Петебург, а что двигает вами?
Ой не надо. Пусть сидят себе, а то еще пробки привезут.
@jsunderhood встречный вопрос: москвичи, не переехавшие в Санкт-Петебург, а что двигает вами?
13:37
@jsunderhood Вы используете ImmutableJS?
Нет. Но боль про extend({}, ...) у нас присутствует. Ребята молодцы.
@jsunderhood Вы используете ImmutableJS?
14:24
Друзья, посоветуйте, про что рассказать. Кажется, что технические подробности про нашу специфику заходят тяжело :) Хотя кое-что я еще покажу
15:44. @Devgru Внутренний npm есть, но лично я его не использую. Непубличные модули в проект попадают через git-теги. pic.twitter.com/GPZxizb7Pt
16:17@jsunderhood разумный вопрос: почему не Redis? :)
Админы любят мемкеш, мы любим админов и не хотим, чтобы админы "любили" нас. Опять же зачем менять проверенное?
@jsunderhood разумный вопрос: почему не Redis? :)
16:20
@jsunderhood Как происходит micro service orchestration? Есть ли какой-то высокоуровневый DSL для описания и сбора финального response'а?
Есть специфичная схема, вкратце описанная в докладе clck.ru/9b6XC Понять сложнее, чем любой DSL, не спорю.
@jsunderhood Как происходит micro service orchestration? Есть ли какой-то высокоуровневый DSL для описания и сбора финального response'а?
16:33
@jsunderhood Имеется ли какой-то инструментария для отладки и нахождения блокирующих запросов? Что-то вроде Zipkin blog.twitter.com/2012/distribut… ?
Нет. Если общее ответа стало выше SLA, то виновника сразу видно на графиках, там есть тайминги отдельных операций.
@jsunderhood Имеется ли какой-то инструментария для отладки и нахождения блокирующих запросов? Что-то вроде Zipkin blog.twitter.com/2012/distribut… ?
16:41
. @jsunderhood @a_kovalev это для обязательных операций. Необязательные проложены таймаутами.
16:43@jsunderhood расскажи про инструменты ... Что используешь повседневно? :)
Использую iTerm, WebStorm, Developer Tools, Photoshop, VirtualBox. Ну и конечно grep и штопор :)
@jsunderhood расскажи про инструменты ... Что используешь повседневно? :)
16:45
@jsunderhood Давайте обсудим кто использует async/await из ES7 на клиенте и сервере. Кажется волшебной фичей и работает из коробки с babel
Я бы тоже с удовольствием послушал :) Особенно, есть ли penalty по производительности по сравнению с.
@jsunderhood Давайте обсудим кто использует async/await из ES7 на клиенте и сервере. Кажется волшебной фичей и работает из коробки с babel
16:49
. @innin Говорю за себя. Например, IE8-9. Доля в проекте, допустим, 3%. Стоимость поддержки, грубо, день с недели.
16:53. @innin включаем финансовые соображения. Можно ли отбить 3% денег за счет экономии 20% ресурсов? Ответ на этот вопрос всё и решит.
16:55. @RReverser @gxoptg_ там вообще много ништяков. X-Accel-Redirect полезная вещь, домены-алиасы проще там разруливать. Тысячи их.
17:52@jsunderhood а задавались ли вы таким вопросом - правильно считать что 3% некрофилов приносят 3% прибыли?
Так считать, разумеется, неправильно. Но точно можно предположить, что _больше_ 3% они не приносят. Такая логика.
@jsunderhood а задавались ли вы таким вопросом - правильно считать что 3% некрофилов приносят 3% прибыли?
18:00
@jsunderhood Избавление от какой версии IE принесло наибольшее моральное облегчение?
IE 5.2 for Mac
@jsunderhood Избавление от какой версии IE принесло наибольшее моральное облегчение?
18:20
"Дебажим в продакшене". Моя любимая грабля с http.Agent github.com/nodules/asker#… В 0.12 то же самое, но хоть maxSockets уже Infinity, а не 5.
18:27@jsunderhood grep можно заменить на Silver Searcher (ag) github.com/ggreer/the_sil…
!!! Я, правда, по старой памяти использую ack beyondgrep.com Но голый grep и правда прошлый день.
@jsunderhood grep можно заменить на Silver Searcher (ag) github.com/ggreer/the_sil…
18:41
Погодите немного, сейчас наброшу напоследок и по домам.
18:50Лучшие книги по общению с менеджерами: Понедельник начинается в субботу и Сказка о Тройке.
18:50Это единственные книги про работу (помимо технических), которые стоит читать. Учебник английского еще не помешает.
18:51А аджайлы ваши одна хренота, всё лишь бы не работать. Стендапы у них, блин, камедиклаб прямо.
18:51@jsunderhood самое поганое - это скрамы. Вроде начинают по правилам, а заканчивается обсуждением хрен знает чего
проект я выкатил в продакшн
там палки из говна и мрак
методология простая
х**к
@jsunderhood самое поганое - это скрамы. Вроде начинают по правилам, а заканчивается обсуждением хрен знает чего
23:31
# Среда 10 твитов
Единственный разумный способ бороться с тайперрорами — нагрузочное тестирование настоящими запросами.
11:45. @jsunderhood Без дураков, берешь лог, достаешь запросы и фигак ими в тестинг. Помогает. Заодно можно выпить, пока тупишь в tail -f.
11:46Про нагрузку и стресс-тесты. Первое, что мы делаем -- совместно с эксплуатацией устанавливаем SLA по времени ответа и точке разладки в RPS.
15:48.@jsunderhood Пример. Сервис N должен отвечать в пределах 300мс на 90м квантиле (в 90% случаев). Точка разладки не менее 100 RPS на 1 машину
15:51.@jsunderhood заблаговременные договоренности позволяют не допускать преждевременной оптимизации и оставляют больше времени на сам продукт.
15:52.@jsunderhood нет смысла угорать по оптимизации, если у вас и так запас прочности превышает разумные границы.
15:54Для стресс-теста нам нужны т.н. патроны. Они представляют собой дампы реальных запросов к сервису, взятые из соответствующего лога.
16:24.@jsunderhood если сервис новый, то патроны собираются после того, как прошло ручное функциональное тестирование. Иначе им неоткуда взяться.
16:25.@jsunderhood бонусом проверяются не только нижеупомянутые тайперроры, но и, например, отсутствие 404х, если изменилась схема урлов.
16:40@jsunderhood Яндекс.Авто написан на Node.js, PayPal тоже его используют, у ВК IM раньше был на ноде, сейчас не знаю.
Не знал, что Яндекс.Авто на ноде. Спасибо!
@jsunderhood Яндекс.Авто написан на Node.js, PayPal тоже его используют, у ВК IM раньше был на ноде, сейчас не знаю.
22:07
# Четверг 35 твитов
@jsunderhood когда собираетесь начать использовать реакт?
Сейчас, только смузи с маффином допью.
@jsunderhood когда собираетесь начать использовать реакт?
9:26
@jsunderhood Привет. Расскажи, какой code style используете, как организован code reviw, какие тесты пишите? Git?
Упрощенный github-flow, ревью в Github Enterprise. Юнит-тесты в основном в библиотеках, mocha/chai/istanbul.
@jsunderhood Привет. Расскажи, какой code style используете, как организован code reviw, какие тесты пишите? Git?
9:28
Хорошая подборка дотфайлов, до сих пор не могу оторваться dotfiles.github.io
10:4928.08 менеджер (такое бывает) делает пулреквест во фронтенд. 9.09 он же ставит таск "Заканчиваем поддержку IE8". Совпадение? Не думаю.
13:02@jsunderhood @pepelsbey мое лицо когда я узнал что мы не поддерживаем IE ниже 10 pic.twitter.com/shVzk9X5AO13:23
@jsunderhood эээ, профильные специалисты, а можете прокомментировать?_.isNumber(NaN)
true
Это не прикол JS как такового. NaN это валидное значение в вычислениях с плавающей запятой en.wikipedia.org/wiki/NaN
@jsunderhood эээ, профильные специалисты, а можете прокомментировать?
_.isNumber(NaN)
13:44
true
На волне асинхронности для загрузки всего Джейк увлечённо рассказывает про akdubya.github.io/dustjs/ Стоит смотреть туда? +@jsunderhood
Не думаю, что миру мало императивных шаблонизаторов. Бенчмарк на github pages валится с ошибкой :)
На волне асинхронности для загрузки всего Джейк увлечённо рассказывает про akdubya.github.io/dustjs/ Стоит смотреть туда? +@jsunderhood
15:36
. @jsunderhood @webstandards_up ну и вот забавный штрих github.com/akdubya/dustjs…
15:38. @webstandards_up ну там есть форк от Linkedin. Там уже интереснее.
15:50Назадавайте каких-нибудь вопросов, а то я опущусь до смешных картинок или, не дай б-г, "историй из жизни". Отвечу на каждый конкретный.
17:34@jsunderhood Высыпаешься?
Последнее время да. Хотя покупка нового иксбокса чуть не стала фатальной.
@jsunderhood Высыпаешься?
17:37
@jsunderhood опиши факап недели? danluu.com/postmortem-les…
Я сразу вспомнил случай, как в названии метода counter кто-то оставил русскую букву "c". Но это давно было.
@jsunderhood опиши факап недели? danluu.com/postmortem-les…
17:46
@jsunderhood про аутентификацию клиентов на #rest #api уже говорили? Что лучше использовать #jwt или что-то ещё?
Вот про это почти ничего не знаю. На фронтенде мы такой аутентификации самостоятельно не делаем.
@jsunderhood про аутентификацию клиентов на #rest #api уже говорили? Что лучше использовать #jwt или что-то ещё?
17:55
@jsunderhood сколько _книг_ связанных с работой ты прочитал за последние 3-6-12 месяцев? Или только "каттинг едже ака твиттер читаю"
Сейчас понял, что ни одной. Пора делать профессиональное харакири.
@jsunderhood сколько _книг_ связанных с работой ты прочитал за последние 3-6-12 месяцев? Или только "каттинг едже ака твиттер читаю"
17:58
Про жизнь не буду. Можно задавать конкретные вопросы про:
* работу
* машины
* музыку
* Питер
* алкоголь
@jsunderhood перевешивает ли удобство гитхаба его стоимость для приватных реп?
Однозначно. Я с ужасом вспоминаю Crucible и иже с ними.
@jsunderhood перевешивает ли удобство гитхаба его стоимость для приватных реп?
18:10
@jsunderhood что может быть лучше чем смешать стаут и егерь?
Никогда не мешать стаут и егерь. Я не помню точной причины, но четко помню свои выводы.
@jsunderhood что может быть лучше чем смешать стаут и егерь?
18:18
@jsunderhood куда и как расти?
У меня нет серебряной пули на этот вопрос. Я сам им задаюсь.
@jsunderhood куда и как расти?
18:20
@jsunderhood сколько живет js либа? 3-6-12 месяцев? помнишь jquery? Есть ли реюз кода или от старого только строчка copyright остается?
jQuery живее всех. С перехода на Vow (а это было давно) я и не помню, чтобы мы меняли библиотеки. Но писали свои, да
@jsunderhood сколько живет js либа? 3-6-12 месяцев? помнишь jquery? Есть ли реюз кода или от старого только строчка copyright остается?
18:23
. @jsunderhood @ya_pulser Кода почти никогда не остается. Фронтенд штука такая: есть редизайн -- есть рефакторинг, нет редизайна...
18:25@jsunderhood а ты пишешь код как тимлид?
Стараюсь yadi.sk/i/M6ZtQioUjcPSs
@jsunderhood а ты пишешь код как тимлид?
18:39
@jsunderhood ром, водка или егерь?
Ничего из этого. Вино, портвейн, пиво, джин. Ну ладно, пусть будет водка, наливай!
@jsunderhood ром, водка или егерь?
18:40
@jsunderhood уже какую неделю всех вокруг мучаю про i18n без коитуса с кодом. Есть что?
Бэм :) Сама система для переводчиков и ко -- проприетарная и самописная. Говорят, что внутри git, но не проверял.
@jsunderhood уже какую неделю всех вокруг мучаю про i18n без коитуса с кодом. Есть что?
19:47
@jsunderhood Можно на машину установить другое кресло? Это очень дорого? Мне в моем кресле неудобно.
Думаю, что на крыше сидеть будет неудобно. Внутрь можно, но у разных машин разные варианты и бюджет.
@jsunderhood Можно на машину установить другое кресло? Это очень дорого? Мне в моем кресле неудобно.
19:49
@jsunderhood увидел) а сколько человек в команде?
Сейчас 11 разработчиков. Еще пара бы не помешала.
@jsunderhood увидел) а сколько человек в команде?
19:53
@jsunderhood бывало такое, что надо обновить библиотеку(и), а там уже обратная совместимость сломана, либа по всему проекту? Что делать?
Не обновлять. Забрать нужный дифф руками.
@jsunderhood бывало такое, что надо обновить библиотеку(и), а там уже обратная совместимость сломана, либа по всему проекту? Что делать?
19:54
@jsunderhood Приезжай к нам, в Екат, нальём водки Екатеринбург. Наш виншампанкомбинат делает. pic.twitter.com/jz7Grym0Uk
Обязательно. Закусим майонезом ;)
@jsunderhood Приезжай к нам, в Екат, нальём водки Екатеринбург. Наш виншампанкомбинат делает. pic.twitter.com/jz7Grym0Uk
19:56
@jsunderhood вопрос не по теме, забугорные андерхуды в природе существуют?
Не знаю. Давайте попросим помощи зала, интересно.
@jsunderhood вопрос не по теме, забугорные андерхуды в природе существуют?
19:59
@jsunderhood твоя машина сейчас, твоя машина в будущем
BMW E90 325i. Дальше пока не знаю, возможно купер или E92.
@jsunderhood твоя машина сейчас, твоя машина в будущем
20:03
.@jsunderhood Вопрос про Питер и алкоголь: го бухать?
Ждём, когда @pepelsbey взашей погонят из Европы.
.@jsunderhood Вопрос про Питер и алкоголь: го бухать?
20:06
@jsunderhood а если надо на мажорную версию? Не обновлять?
Планировать, втыкать рефакторинг между релизами, терпеть как дед терпел, паниковать, снова паниковать, выпить.
@jsunderhood а если надо на мажорную версию? Не обновлять?
20:07
@jsunderhood ревью в гитхабе больше чем на 5 строк тот еще ад. Crucible хоть и убог, но хоть что-то может.
Сатану он вызвать может, это да. Гитхаб как швейцарский нож, не надо бурить им скважины.
@jsunderhood ревью в гитхабе больше чем на 5 строк тот еще ад. Crucible хоть и убог, но хоть что-то может.
20:10
@jsunderhood давай про телок и бухло
music.yandex.ru/album/1893037/…
music.yandex.ru/album/1893037/…
@jsunderhood давай про телок и бухло
20:12
@jsunderhood Ну что, когда уже на Марс полетим?
<del>Чо, вдвоём?</del> Думаю, что Илон Маск наша последняя надежда. Марс уже кажется научной фантастикой.
@jsunderhood Ну что, когда уже на Марс полетим?
20:21
@jsunderhood Давай про машины. С какой мощности ты начинаешь считать транспортное средство машиной, а не жоповозкой?
Да пофиг, у меня был акцент 1.5 и я был не менее счастлив, чем сейчас. Хотя, блин, как же поёт рядная шестерка...
@jsunderhood Давай про машины. С какой мощности ты начинаешь считать транспортное средство машиной, а не жоповозкой?
20:31
# Пятница 14 твитов
@jsunderhood будущее за js?
Пока да. Рано или поздно останется только один браузерный движок, куда засунут всё, что захотят.
@jsunderhood будущее за js?
10:30
Худшее, что вы можете делать на собеседовании, — просить нарисовать табличку вроде такой dorey.github.io/JavaScript-Equ…
12:31. @serhey_shmyg если просят написать псевдокод (а не каждую скобочку), то почему бы и не на листе бумаги? Это как раз полезно.
12:36@jsunderhood я спрашиваю только про сравнение null и undefined с false. Для особо упоротых про NaN. Ответ: юзай === и не люби мне моск ОК.
Последняя фраза очень правильная. Если человек внятно объясняет, почему не надо что-то делать, это всегда подкупает.
@jsunderhood я спрашиваю только про сравнение null и undefined с false. Для особо упоротых про NaN. Ответ: юзай === и не люби мне моск ОК.
12:49
@jsunderhood как тебе новый кинопоиск?
Буду вести @marketingunderhood, с удовольствем отвечу. Давайте в пределах темы.
@jsunderhood как тебе новый кинопоиск?
12:51
Глава VW, шоб ему здоровья, смело свалил вину по скандалу с выбросами на инженеров arstechnica.com/tech-policy/20… Не работайте на мудаков, друзья.
13:10@jsunderhood
– как жить в Питере и не болеть простудой >2 р в год? (отпуск на юг раз в Q?)
– йога/бег/плавание как жить при сидячей работе?
Я опытный гайморитчик и веду крайне нездоровый образ жизни. Плачу, колюсь, жру кактус, плавать не умею.
@jsunderhood
15:26
– как жить в Питере и не болеть простудой >2 р в год? (отпуск на юг раз в Q?)
– йога/бег/плавание как жить при сидячей работе?
@jsunderhood
– Шляпа, Дом 7. Где еще хороший джаз/и подобное играют? Джаггер?
– клубы с хорошим звуком (на СПЛИНчика там сходить)?
спасибо!
В Шляпу в последнее время тупо не войти, но там хорошо. Пару раз был в Джазофрении, но давно. Про клубы не скажу.
@jsunderhood
16:17
– Шляпа, Дом 7. Где еще хороший джаз/и подобное играют? Джаггер?
– клубы с хорошим звуком (на СПЛИНчика там сходить)?
спасибо!
Мы иногда отдаём HTTP 418, чтобы сообщить nginx об ошибке в приложении. Естественно, статус затем заменяется на более корректный.
17:05. @jsunderhood Но ирония в том, что I'm a teapot это семантически вполне себе ошибка :) Такая вот шутка в себе. pic.twitter.com/Gb9ksyWZvf
17:06Вообще там очень забавное чтиво tools.ietf.org/html/rfc2324 Люблю, когда серьезные дядьки шутят, очень изящно получается.
17:09@jsunderhood, предпочитаю отдавать HTTP 418 ботам-брутфорсерам. Зачем им чайник в ботнете?17:18
. @silentroach нет. Я даже картинку приложу, что бывает. pic.twitter.com/vZNlffTcAw
17:31@jsunderhood недавно нашёл такую штуку: rfcreader.com интересная читалка rfc∗ доков. С оглавлением, можно пометки делать.19:56
# Воскресенье 6 твитов
@jsunderhood
Посоветуйте курсы/книги/др. мат. для устр-ния пробелов знаний по ИТ:
архитектура ком-па, алгоритмы, БД итд.
Для гуманитариев :)
Спроси чего полегче, у меня были тройки по всем точным наукам, а закончил я психфак. Мне б свои пробелы устранить.
@jsunderhood
0:46
Посоветуйте курсы/книги/др. мат. для устр-ния пробелов знаний по ИТ:
архитектура ком-па, алгоритмы, БД итд.
Для гуманитариев :)
.@jsunderhood ну вот читал я Банду Четырех, а что толку, если я smalltalk только там и видел. А прочел Стоянова и почти понятно стало.
0:50.@jsunderhood это я к тому, что нечего комплексовать. У нас гуманитариев свои сильные стороны, нужно их развивать. Даже в нашей профессии.
0:52.@alexbaumgertner Про Unix я осилил только Торчинского ozon.ru/context/detail… У него хоть как-то живой язык.
0:57@jsunderhood у гуманитариев сильные стороны))) ну насмешил :D
Хаха. Тем не менее, единицы хардкорных технарей способны "попасть" даже в простейший макет.
@jsunderhood у гуманитариев сильные стороны))) ну насмешил :D
11:38
На этом, в общем, и всё. С вами был @flackus, надеюсь было неплохо. На следующей неделе вас ждёт йога и зож, а я в логаут. Берегите себя.
17:32# Ссылки
github.com
- https://github.com/nodules
- https://github.com/nodules/luster
- https://github.com/dfilatov/vow
- https://github.com/nodules/asker#the-problem
- https://github.com/akdubya/dustjs/issues/71
other
- http://pleer.com/tracks/10014896cbRM
- https://yadi.sk/i/1YSh05tIjXDdR
- https://yadi.sk/i/M6ZtQioUjcPSs
- https://events.yandex.ru/lib/talks/937/
- https://events.yandex.ru/lib/talks/936/
- http://stackoverflow.com/questions/4651257/xsl-to-create-nested-list-from-flat-tree-problem/4653642#4653642
- https://clck.ru/9aakp
- https://clck.ru/9aakx
- https://clck.ru/9b6XC
- http://wiki.nginx.org/LoadBalanceExample
- https://www.youtube.com/watch?v=2oRwQ5WdZZ0
- https://auto.yandex.ru/bmw/3er/3689324/specs/3689324_3691097_3690804
- http://beyondgrep.com/
- https://dotfiles.github.io/
- https://en.wikipedia.org/wiki/NaN
- https://music.yandex.ru/album/1893037/track/17198913
- https://music.yandex.ru/album/1893037/track/17198909
- http://dorey.github.io/JavaScript-Equality-Table/
- http://arstechnica.com/tech-policy/2015/10/volkswagen-pulls-2016-diesel-lineup-from-us-market/
- http://tools.ietf.org/html/rfc2324
- http://www.rfcreader.com/
- http://www.ozon.ru/context/detail/id/1404972/