twilightfeel

30 мая 2016, Россия

# Понедельник 74 твита

Астрологи объявили неделю @twilightfeel. Популяция фигурных скобочек увеличилась вдвое.

9:01

Это последний твит про JavaScript на этой неделе. Управленческих теорий, историй иммиграции и ЗОЖ тоже не будет. Только здоровое задротство.

9:18

Давайте посчитаемся! Вы используете в работе языки отличные от JS? Верстку (HTML, CSS) и запросы (SQL) не считаем.

9:23

Тенденция ясна. Помните, что язык — это инструмент? Использовать только один — это как мяско на борщ болгаркой резать.

9:49

Доходит до смешного. ТотКогоНельзяНазывать врывается в разработку встраиваемых систем! espruino.com

9:56

Если вы занимаетесь разработкой под Node попробуйте Go или современный C++. Чудный мир статической типизации и анализа вас приятно удивит.

10:13

Осваивать другие языки полезно, даже если на практике вы не будете их использовать. Можно почерпнуть полезную теорию и практические приемы.

10:17

Я C++ использую на работе крайне редко. Тем не менее «Effective C++» — самое полезное для меня техническое чтиво за последние пару лет.

10:21

И достаточно быть знакомым со свойствами классов языков, чтобы выбрать.

10:24
@jsunderhood осваивать новое нет смысла, если нет практики.

Стоит поискать задачу, где ошибка в выборе языка не станет критичной. Полетит — вот и поле для экспериментов.

@jsunderhood осваивать новое нет смысла, если нет практики.

10:34
@jsunderhood С++ даже современный несет в себе все наследие прошлого. Лучше Rust

Еще не успел :( Хочу попробовать в домашней embedded разработке вместо плюсов.

@jsunderhood С++ даже современный несет в себе все наследие прошлого. Лучше Rust

10:36

Так, например, мы с @tvii освоили Go. До сих пор летит :) Кстати, на освоение и написание сервиса потребовалось около пары недель.

10:38
@jsunderhood тут смею не согласиться. Язык определяет мысль. - какой выберешь так и будешь мыслить. Косноязычно или певуче. 👻

«Косноязычие» и «певучесть» субъективны и определяются окружением. Так выразительность языка для задач будет разной.

@jsunderhood тут смею не согласиться. Язык определяет мысль. - какой выберешь так и будешь мыслить. Косноязычно или певуче. 👻

10:52
@jsunderhood pic.twitter.com/46hqEhkD5K

Это про меня, да. Ну, еще напиваюсь в дымину пару раз в год.

@jsunderhood pic.twitter.com/46hqEhkD5K

10:54
@FladeX @jsunderhood выбрав язык по вкусу - Вы им можете и "гвозди заколачивать" - Java (GWT) на бекенде использовать! 👻

Так я же не спорю, что можно. Просто считаю, что не нужно :)

@FladeX @jsunderhood выбрав язык по вкусу - Вы им можете и "гвозди заколачивать" - Java (GWT) на бекенде использовать! 👻

10:56
@jsunderhood хочется не просто учить язык/технологию, а на какой-то реальной задаче. Как подобные задачи находить?

Пойдут задачи, для которых риск ошибки выбора сопоставим с рисками реализации на том, который вы знаете.

@jsunderhood хочется не просто учить язык/технологию, а на какой-то реальной задаче. Как подобные задачи находить?

10:59

Еще «одноразовые» задачки, где не будет нужна долговременная поддержка.

10:59
@FladeX @jsunderhood в кофеварку (выстаиваемые системы) суют сейчас … JavaScript! 👻

Что-то мне уже хочется бросить пить кофе.

@FladeX @jsunderhood в кофеварку (выстаиваемые системы) суют сейчас … JavaScript! 👻

11:02
@jsunderhood как правило проблема в нахождении задачи не в вакууме, то есть не очередной никому не нужный тудулист-эпп или типа того

Я и не про коней в вакууме. Исключительно про рабочие задачи. Нужно распарсить лог? Попробуй питон в следующий раз.

@jsunderhood как правило проблема в нахождении задачи не в вакууме, то есть не очередной никому не нужный тудулист-эпп или типа того

11:10

Пишите комменты в коде по делу или все поросло бессмысленным и беспощадным jsdoc'ом? pic.twitter.com/6Wu0Qr6yfD

11:14
@jsunderhood думаю, что для простых задач существует уже слишком много решений. Тот же лог проще распарсить готовым, чем писать свое.

Готовое решение все равно нужно интегрировать. Заодно узнаете, как дела с готовыми решениями и комьюнити.

@jsunderhood думаю, что для простых задач существует уже слишком много решений. Тот же лог проще распарсить готовым, чем писать свое.

11:21
@jsunderhood по-моему эталонный доклад про комментирование кода: youtube.com/watch?v=-SRUct… От дежурного jsdoc мало пользы практической
11:24
@jsunderhood Главное — после того, как осилишь awk, не оценивать пуфон только по задачам парсинга логов.

Именно так :)

@jsunderhood Главное — после того, как осилишь awk, не оценивать пуфон только по задачам парсинга логов.

11:25

Лучшие комменты в коде Node.js-модуля, что я видел. Схемки и выдержки из спецификации. github.com/molnarg/node-h…

11:50
@jsunderhood комменты выглядят как копипасты из rfc

Большая часть. Но они привязаны к коду реализации, когда читаешь — понятно, что тут делал автор.

@jsunderhood комменты выглядят как копипасты из rfc

11:55

Имхо, в этом смысл комментариев: не объяснить, как работает код, а что он делает, если это не очевидно.

11:57

Если требуется объяснение «как» — то тут попахивает хаком.

11:57
@taujavarob @jsunderhood писать свое имеет смысл только когда это не очередной велосипед. Код с нулевой полездностью - роскошь.

В таком случае примерно все образование — роскошь.

@taujavarob @jsunderhood писать свое имеет смысл только когда это не очередной велосипед. Код с нулевой полездностью - роскошь.

13:15
@jsunderhood так оно и есть. Вопрос только в том кто платит.

Если в результате человек научился делать что-то эффективнее, то кто бы не платил — он выиграл.

@jsunderhood так оно и есть. Вопрос только в том кто платит.

13:24
@jsunderhood «если это не очевидно» — и тут мы с разбегу натыкаемся на разницу в понимании «очевидного» :-(

«Очевидное» — это буквально то, что написано в коде. Транслируй код в человеческий язык — это то, что писать не надо

@jsunderhood «если это не очевидно» — и тут мы с разбегу натыкаемся на разницу в понимании «очевидного» :-(

13:45
@esergeev @jsunderhood верно. "Образование было и есть роскошь"(с). В практике достаточно обучения по методу наставничества. Что и было века

Теперь вспомните, чем занимались подмастерья: подай@принеси, рутиной и повторением и копированием.

@esergeev @jsunderhood верно. "Образование было и есть роскошь"(с). В практике достаточно обучения по методу наставничества. Что и было века

13:46

Рекламная пауза: нам нужны люди пилить инфраструктуру! Не бойтесь, приходите! yandex.ru/jobs/vacancies…

13:49

На вопрос «с чего бы начать язык Х» никогда не мог ответить. Узнаешь свойства языка, видишь подходящую задачу.. twitter.com/stay_positive/…

14:14

..пробуешь делать. Первые 100500 раз бросаешь, потому что ступор и непонятно. На 100501 начинает получаться. Или нет :)

14:16
@jsunderhood Ну как минимум - научиться делать стандартные вещи:чтение файлов,треды,сокеты,строки,стандартная библиотека

Угу. В первое время само собой тратишь х100 времени на тривиальные штуки, но потом втягиваешься. Или нет :)

@jsunderhood Ну как минимум - научиться делать стандартные вещи:чтение файлов,треды,сокеты,строки,стандартная библиотека

14:19
@jsunderhood ну вот, например, мне очевидно, что такое `test() && action()`, а кому-то if подавай — и так же дальше со сложными map/reduce

Это к вопросу стиля, не комментов, имхо. И ты озвучил одну из причин, почему я ненавижу ТогоКогоНельзяНазывать =)

@jsunderhood ну вот, например, мне очевидно, что такое `test() && action()`, а кому-то if подавай — и так же дальше со сложными map/reduce

14:50
@jsunderhood А тотКогоНельзяНазывать — это кто?

JavaScript же... =#
Ох, божечки-кошечки и сатана матана.

@jsunderhood А тотКогоНельзяНазывать — это кто?

15:05
@PanyaKor @jsunderhood Тогда утверждение странное. `condition && action` — это не какой-то локальный приём.

Об этом и речь. Иначе бы к использованию банальной сортировки нужно было приложить томик Кнута.

@PanyaKor @jsunderhood Тогда утверждение странное. `condition && action` — это не какой-то локальный приём.

15:09
@jsunderhood Главное — про пряник не забывать.

Пряник Кнут припрятал в конце 4В.

@jsunderhood Главное — про пряник не забывать.

15:12

Битва экстрасенсов! Отборочный раунд. Угадайте язык под строчке кода. pic.twitter.com/bEqCX2eFdu

15:29
@jsunderhood Эм… Perl какой-нибудь?

Мимо.

@jsunderhood Эм… Perl какой-нибудь?

15:31
@jsunderhood кофе?

Бинго!

@jsunderhood кофе?

15:34
@jsunderhood lisp?

Маловато скобочек ;)

@jsunderhood lisp?

15:35
@jsunderhood как мимо? я всегда так пишу

Тогда тебе медаль «Человек — обфускатор»!

@jsunderhood как мимо? я всегда так пишу

15:36

Битва экстрасенсов! Второй сезон. Что за язык, и что делает этот код? pic.twitter.com/nOzZaOD49y

15:55
@jsunderhood ну, вот. А говорите задача а потом язык. - Именно язык определяет как вы мыслите. А не задача! 👻

В том, что у меня с головой не в порядке, я никогда не сомневался :)

@jsunderhood ну, вот. А говорите задача а потом язык. - Именно язык определяет как вы мыслите. А не задача! 👻

15:59

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

16:04

Хотя я еще в процессе погружения. Я бы даже сказал, что только ступни промочил.

16:05
@esergeev @jsunderhood я и говорю: граница между «что» и «как» весьма размытая, причём для разных людей по разному

По твоему же синтетическому примеру можно сказать «как», но нельзя сказать «что». Где тут неопределенность?

@esergeev @jsunderhood я и говорю: граница между «что» и «как» весьма размытая, причём для разных людей по разному

16:09
@jsunderhood не понятно почему но похоже что считает сумму первых 10000 нечетных делящихся на 3, кложур?

Господин @jossser о-о-очень близок к разгадке обоих вопросов, но нет :)

@jsunderhood не понятно почему но похоже что считает сумму первых 10000 нечетных делящихся на 3, кложур?

16:32
@jsunderhood OCaml?

Тепло :) Но уже отгадали Haskell.

@jsunderhood OCaml?

16:36
@jsunderhood количество цифр во всех нечетных числах делящийся на 3 без остатка в диапазоне 1-10000

Спасибо проходящим гостям из соседних миров! :)

@jsunderhood количество цифр во всех нечетных числах делящийся на 3 без остатка в диапазоне 1-10000

16:45

Классный курс, если хотите понимать, как все работает с самого «низу»: от NAnd элементов до прикладных программ nand2tetris.org

18:57

Прямо сейчас идет на Курсере coursera.org/learn/build-a-…

18:59
@jsunderhood почему нельзя? «делать действие в случае успешной проверки»

Это ты ответил на вопрос «как» в такой форме. Что делает этот код сказать нельзя. Ему нужен комментарий...

@jsunderhood почему нельзя? «делать действие в случае успешной проверки»

19:32

Типа «если проверка CVC прошла, выполняем транзакцию» — это про «что». Но лучше поправить имена и не писать коммент.

19:33
@jsunderhood язык мутирует. Если его не бросают разработчики. - языки начинают имитировать возможности друг друга.

Не очень понимаю, что тут значит «имитировать». Прикладных языков реализующих только одну парадигму практически нет

@jsunderhood язык мутирует. Если его не бросают разработчики. - языки начинают имитировать возможности друг друга.

19:38

Берут то, что удобно. Функции первого порядка, анонимные функции и замыкания — это удобно, черт возьми.

19:40

Но зачем, например, жрать кактус и пытаться завести функторы, паттерн-матчинг и lazy evaluation в JavaScript я совершенно не понимаю.

19:41

Задачи требуют функционального языка в полной мере? Так и используй его.

19:42
@iamale_ru @jsunderhood ClojreScript, Elm, PureScript и в путь...
20:00
@jsunderhood А если задача требует функционального языка в браузере? (Алсо, паттерн-матчинг — это удобно, чёрт возьми. (Но в JS не взлетит))

Как поспеет wasm, весь мир языков, имеющих llvm frontend будет у ваших ног.

@jsunderhood А если задача требует функционального языка в браузере? (Алсо, паттерн-матчинг — это удобно, чёрт возьми. (Но в JS не взлетит))

20:03
@jsunderhood llvm это несколько ортогональная вещь по тношению к wasm

Почему же?

@jsunderhood llvm это несколько ортогональная вещь по тношению к wasm

20:21

Ну, то есть я понимаю, что функциональная нагрузка wasm & llvm ir пересекается, но трансляция llvm ir в wasm байткод, имхо, меньшее зло...

20:25
@jsunderhood это возможно. я просто не очень понимаю почему упомянуты только llvm языки

Только потому что для них есть фронтенды :) Конечно, ничто не мешает прикрутить генерацию wasm в другой компилятор.

@jsunderhood это возможно. я просто не очень понимаю почему упомянуты только llvm языки

20:31

Про отношения LLVM IR и байткода WebAssembly бурные дискуссии уже прошли. Можно ознакомиться, например тут: github.com/WebAssembly/de…

20:33
@jsunderhood тут чел предлагает использовать llvm в wasm. тут вкратце рассказываю почему wasm не llvm youtu.be/eWF_1nMM5Yo?t=…

Эм, кажется он говорит не о том. Более того упоминается llvm backend в начале рассказа про MVP wasm.

@jsunderhood тут чел предлагает использовать llvm в wasm. тут вкратце рассказываю почему wasm не llvm youtu.be/eWF_1nMM5Yo?t=…

21:01

Вот отличный, на мой взгляд, ответ про portability of LLVM IR quora.com/Is-the-LLVM-Bi…

21:08

То есть, в принципе, LLVM IR переносим, если frontend не генерирует непереносимого вывода. Но мир не идеален :)

21:11
@jsunderhood мера понятие неопределённое. SQL требует в полной мере ООП? А JavaScript - в полной мере ООП? Аналогично и с функциональщиной.

Под мерой я предполагал удовлетворение парадигме. Само слово предполагает определенность. ru.wikipedia.org/wiki/%D0%9F%D0…

@jsunderhood мера понятие неопределённое. SQL требует в полной мере ООП? А JavaScript - в полной мере ООП? Аналогично и с функциональщиной.

21:30

Есть важна деталь: то, как выполняются вычисления. В Haskell и Java очень по-разному. Синтаксис безусловно можно накрутить любой.

21:35
@jsunderhood я про меру удовлетворения того или иного языка той или иной трендовой парадигме.

Прости, но я не понимаю. Можно представить некий чеклист для парадигмы. Реализация либо удовлетворяет ему, либо нет.

@jsunderhood я про меру удовлетворения того или иного языка той или иной трендовой парадигме.

21:37

Немножко мэдскилз на ночь. pic.twitter.com/9pkQSuuRFJ

22:51

# Вторник 55 твитов

Утречко! Как дела ваши? Сборки падают? Стектрейсы уходящие в event-loop доставляют?

8:44
@jsunderhood а вот поделись, как дебажить node.js в продакшене?

А про это еще не все рассказали? Давайте тогда определимся, про какого рода отладку мы говорим.

@jsunderhood а вот поделись, как дебажить node.js в продакшене?

8:52

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

8:58

Это не обязательно, если используется scheduling policy none (процесс просто не встанет в очередь к дескриптору соединения в отладке).

8:59

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

9:01
@jsunderhood можно от общего к частному. Вот у тебя падает приложение, что дальше? Как падать, как логгировать, как искать причину?

А, то есть про post mortem разборы. Сейчас будет реклама github.com/nodules/terror/ и grafana.org :)

@jsunderhood можно от общего к частному. Вот у тебя падает приложение, что дальше? Как падать, как логгировать, как искать причину?

9:07
@jsunderhood @github а ещё для логов есть elastic search и kibana

Yep, но на самом деле не суть важно, лишь бы работало быстро.

@jsunderhood @github а ещё для логов есть elastic search и kibana

9:13

Локализация исключений. На первый взгляд никакой разницы (кроме потери стектреса при rethrow, но об это позже):
gist.github.com/kaero/5d48acc6…

9:17

Но rethrow позволит более точно установить место в обработчике выше и сформировать метрику, за которой можно следить gist.github.com/kaero/5d48acc6…

9:22

Понятно, что есть и другие способы. Можно, например, парсить стектрейс. Но это не летит, если тебе нужны realtime-метрики, ..

9:23

..а событий у тебя несколько десятков или сотен тысяч в секунду.

9:24

В результате мы сделали terror и обработчик ошибок верхнего уровня помимо логирования отправляет метрику в statsd.

9:27

Это позволяет видеть проблемы на графиках очень оперативно и достаточно точно определять источник: 1 код ошибки на 1 место использования

9:29

btw, конкретный код тут не важен. Главное иметь возможность стремительно быстро понимать, что пришел писец, и где он засел.

9:33

Логи. Ну, они есть, но для оперативной реакции и понимания проблем логи без постобработки бесполезны. Есть logstash, но как-то не полетел.

9:35

А постобработка и риалтайм... возможны до определенной нагрузки. С определенного момента становится неоправданно дорого по ресурсам.

9:37

Про собственно, post-mortem. Тут как раз важны логи. Можно использовать опцию --abort_on_uncaught_exception и ковырятся потом в корке.

9:47

Даже не знаю, что добавить еще.

9:47

На тему есть github.com/nodejs/post-mo… но там все очень вяленько.

9:49

Я подумал над вчерашним вопросом @stay_positive про изучение C++. Для Node.js разработчиков есть выход через native extensions.

10:20

Простой задачей может стать интеграция с нужной C/C++ библиотекой. Это достаточно тривиальная задача, чтобы начать и разобраться с языком.

10:21

Правила хорошего тона для command-line утилит:
— ввод через stdin
— результат в stdout
— остальное в stderr
— не забываем про exit code

10:37

Не понимаю, почему многие ими пренебрегают. Выполнять их не сложно.

10:37

IO через stdin/stdout важня для взаимодействия с другими инструментами через пайпы. Exit code, чтобы понять успешно ли было выполнение.

10:40

Тонкий момент про stderr: в него стоит писать _весь_ вывод, не имеющий отношения к успешному результату работы. Не только ошибки.

10:41

Это критично при пайпинге, чтобы следующий инструмент не получил неожиданного на вход. Слить err&out при необходимости проще, чем разделить.

10:45

В догонку про Node.js, C++ и native extensions:
scottfrees.com/ebooks/nodecpp/
blog.scottfrees.com/c-processing-f…

10:50
@jsunderhood stdout морально устарел. Его надо забыть.

WUT?

@jsunderhood stdout морально устарел. Его надо забыть.

11:00

Если вы решили написать очередную систему сборки gittup.org/tup/build_syst…

12:16

Интересно, что некоторые не различают систему сборки и систему выполнения задач. И всякими хаками превращают вторые в первые, и наоборот.

12:30

Например, PHONY цели в make – это именно оно.

12:31

Как и сборка Grunt'ом. У Grunt на главной транице, кстати, большими буквами написано, что он task runner.

12:32
@jsunderhood это реальные задачи современной разработки такие, а не "некоторые". webpack, например.

Окей, «реальные задачи современной разработки не различают системы сборки и системы выполнения задач» ;)

@jsunderhood это реальные задачи современной разработки такие, а не "некоторые". webpack, например.

12:44
@jsunderhood таски по сборке в гранте это хак?

Система выполнения задач не предусматривает, из коробки, слоя кэширования промежуточных результатов, например.

@jsunderhood таски по сборке в гранте это хак?

12:46

Системе сборки он люто необходим, чтобы ее можно было использовать в хоть сколько-нибудь большом и сложном проекте.

12:47

Само собой вас это будет волновать только когда время сборки перевалит за несколько секунд.

12:48
@jsunderhood Пару месяцев назад сборка фронтэнда у нас занимала 30+ секунд.

Сколько сейчас? Как лечили?

@jsunderhood Пару месяцев назад сборка фронтэнда у нас занимала 30+ секунд.

13:12
@jsunderhood вопрос в том, стоит ли вообще их настолько категорично и идеологически разделять, как ты зачем-то хочешь показать :)

С одной стороны вы делаете модуль leftpad, с другой не хотите разделять task runner и систему сборки. Не надо так.

@jsunderhood вопрос в том, стоит ли вообще их настолько категорично и идеологически разделять, как ты зачем-то хочешь показать :)

13:13
@jsunderhood Потратил день на внедрение инкрементной сборки во все щели. В общем случае теперь секунды в 2-3 удаётся уложиться.

Молодцы, всем в пример :)

@jsunderhood Потратил день на внедрение инкрементной сборки во все щели. В общем случае теперь секунды в 2-3 удаётся уложиться.

13:14
@jsunderhood вопрос в том, стоит ли вообще их настолько категорично и идеологически разделять, как ты зачем-то хочешь показать :)

Если по существу, то «собрать проект» — это задача, да. Ее может выполнить task runner. Запустив систему сборки.

@jsunderhood вопрос в том, стоит ли вообще их настолько категорично и идеологически разделять, как ты зачем-то хочешь показать :)

13:20
@jsunderhood пока все твои доводы абстрактны в вакууме идеи разделения :) я использую реальные билд+раннер инструменты, и это просто удобно.

Я могу понять, если систему сборки используют, как средство выполнения задач. Так повелось еще с make .PHONY.

@jsunderhood пока все твои доводы абстрактны в вакууме идеи разделения :) я использую реальные билд+раннер инструменты, и это просто удобно.

13:23

Обратного понять не могу: task runner не имеет средств реализации инкрементальной сборки. Ты их фигачишь сам. Т.е. пишешь систему сборки.

13:24

Хотя тут есть тонкий момент. Известные системы сборки были разработаны для конкретных больших проектов.

13:26

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

13:27
@jsunderhood Система выполнения задач вообще не нужна. npm scripts и webpack.

Правда, если удобно использовать модули реализующие тривиальные задачи.

@jsunderhood Система выполнения задач вообще не нужна. npm scripts и webpack.

13:53

Но всплывает более глубокая проблема экосистемы Node.js: отсутсвие единого интерфейса связывания модулей. Его и регламентирует task runner.

13:54
@freiksenet_ru иногда строки становятся слишком длинными и не оч удобно @jsunderhood

Больше одной команды класть в скрипт. npm scripts использовать как единую точку входя для всех инструментов проекта.

@freiksenet_ru иногда строки становятся слишком длинными и не оч удобно @jsunderhood

14:12

Внезапно обнаружил, что в node 6.x встроили tick processor. Теперь не нужно таскать из исходников. Вызывается: node --prof-process prof.log

17:40

Век живи — век читай спеку ECMAScript. Сегодня я узнал, что NaN >> 0 == 0.

20:50
Node.js Board of Directors Meeting starting shortly after 2pm PT youtu.be/-VFth1yMt38 Tune in Live!

Буквально через минуту...

Node.js Board of Directors Meeting starting shortly after 2pm PT youtu.be/-VFth1yMt38 Tune in Live!

20:59
@jsunderhood И что это тебе дало? ;-)

Я не то, чтобы хотел это узнать. Наткнулся на код, который использует >>>, как хак для приведения к Uint32.

@jsunderhood И что это тебе дало? ;-)

21:47
Is anyone rendering XML with React? What are you using? I wanna publish an RSS feed.

Сферический реакт в вакууме.

Is anyone rendering XML with React? What are you using? I wanna publish an RSS feed.

22:17

# Среда 12 твитов

@shuvalov_anton ну пока особо никаких(power shell разве что). Но сериализация/парсинг при пайпинге отнимает много ресурсов @jsunderhood

А как де/сериализация связана с, собственно, использованием stdio? %\

@shuvalov_anton ну пока особо никаких(power shell разве что). Но сериализация/парсинг при пайпинге отнимает много ресурсов @jsunderhood

8:48

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

8:48

Но ничто не мешает гонять там бинарные данные. Хоть прям структуры копируй из памяти.

8:49

Использование текстовых форматов и необходимость де/сериализации — уступка универсальности и быстрому написанию преобразований человеком.

8:51

Хотя я сомневаюсь, что десятки лет назад кто-то думал об этом в таком ключе :)

8:52

Альтернатива всему этому — объектно-ориентированные ОС.

8:53

Но так решается проблема передачи данных только в рамках машины. Как только в дело вступает сеть — привет, сериализация.

8:57

btw, доброе утро! pic.twitter.com/ufpGsfQVlH

9:00
Альтернатива всему этому — объектно-ориентированные ОС.

Под ОО ОС, я имею ввиду, например, Фантом, а не то что написано в Википедии

Альтернатива всему этому — объектно-ориентированные ОС.

9:11

В методы модуля fs Node.js 6 наконец добавили поддержку файловых дескрипторов. JSON.parse(fs.readFileSync(0, {encoding:'utf8'}))

20:24
WDYT? pic.twitter.com/PP6zkWIkqx

А что хочешь услышать? Понятно, читаемо. Профилированием по скриншоту не владею :)

WDYT? pic.twitter.com/PP6zkWIkqx

21:12
wow: "How to build static checking systems using orders of magnitude less code" blog.acolyer.org/2016/05/31/how… pic.twitter.com/DZeFVdajTH
21:20

# Четверг 12 твитов

@jsunderhood вот про читаемость и наличие ФП в моем жс как раз и хочется услышать

Если коллегам ок, то почему нет.

@jsunderhood вот про читаемость и наличие ФП в моем жс как раз и хочется услышать

9:07

HyperDev hyperdev.com – Node.js playground от Fog Creek joelonsoftware.com/items/2016/05/…

9:11

В моей голове имя Fog Creek Software навсегда связано с Fog Bugs =)

9:14
Каждую неделю в @jsunderhood или @backendsecret приходит новый ведущий и транслирует свои заблуждения о Скраме и Аджайле. Утомительно.

Ну, зачем вы наговариваете.

Каждую неделю в @jsunderhood или @backendsecret приходит новый ведущий и транслирует свои заблуждения о Скраме и Аджайле. Утомительно.

10:54

Да

11:59

Есть у кого профилирование встроенное в CI цикл? Как профилируете и анализируете?

12:01

Мне в голову сходу и задешево ничего лучше сбора cpu profile при нагрузочном тестировании не приходит.

12:06

Потом можно из профиля достать функции превысившие подобранный threshold или сравнивать с предыдущей ревизией.

12:08

Хозяйке на заметку: vm.runInThisContext(`(()=>${json})()`) быстрее, чем JSON.parse(json), но есть нюанс: U+2028 и U+2029

15:56
@jsunderhood экономия на спичках

Большой JSON. Очень большой JSON.

@jsunderhood экономия на спичках

20:14

Кстати, именно из-за этого нюанса нельзя при помощи JSON.stringify формировать JSONP ответ без дополнительной обработки.

20:18

Конфа с кучей интересных докладов: media.ccc.de/b/congress
Не js/frontend, в основном безопасность, но есть и другие.

22:33

# Пятница 1 твит

Важно!! mkdev ищет второго ментора по фронтенду. Нужно быть профи в БЭМ, Ангуляр 2, Реакт, D3.js и уметь и любить учить людей.
13:46

# Воскресенье 8 твитов

Читаю amazon.com/Engineering-Co… по 10-20 страниц за раз. Выписываю все непонятное и несколько дней читаю учебники и статьи.

10:56

Тяжело восстанавливать забытую с университета математику самостоятельно.

10:58

На вопрос «нахрена?» отлично отвечает сама книга (1-1, p. 5) pic.twitter.com/Il3MnZiNXc

11:02

О ренумерации pic.twitter.com/U0OgVNKql4

11:26

media.ccc.de/v/32c3-7240-co… классный рассказ от @smealum и компании о том, как обошли защиту 3DS, чтобы запускать homebrew. Фигурирует WebKit :)

11:31
V8 5.2: ES6 & ES7 support, performance, etc. @MHablich
v8project.blogspot.de/2016/06/releas… ^ar
11:31

Reverse engineering — это очень интересно. Только сначала нужно освоить engineering ;)

11:34

Всем чмоки в этом чате <3 pic.twitter.com/qrEbgV39ZX

18:57

github.com

other