# Понедельник 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
@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
@jsunderhood как мимо? я всегда так пишу
Тогда тебе медаль «Человек — обфускатор»!
@jsunderhood как мимо? я всегда так пишу
15:36
Битва экстрасенсов! Второй сезон. Что за язык, и что делает этот код? pic.twitter.com/nOzZaOD49y
@jsunderhood ну, вот. А говорите задача а потом язык. - Именно язык определяет как вы мыслите. А не задача! 👻
В том, что у меня с головой не в порядке, я никогда не сомневался :)
@jsunderhood ну, вот. А говорите задача а потом язык. - Именно язык определяет как вы мыслите. А не задача! 👻
15:59
Но, так скажем, на этом языке я бы не всякую задачу стал решать. Точнее лично у меня для него есть только две области применения пока что.
16:04Хотя я еще в процессе погружения. Я бы даже сказал, что только ступни промочил.
16:05@esergeev @jsunderhood я и говорю: граница между «что» и «как» весьма размытая, причём для разных людей по разному
По твоему же синтетическому примеру можно сказать «как», но нельзя сказать «что». Где тут неопределенность?
@esergeev @jsunderhood я и говорю: граница между «что» и «как» весьма размытая, причём для разных людей по разному
16:09
@jsunderhood не понятно почему но похоже что считает сумму первых 10000 нечетных делящихся на 3, кложур?
Господин @jossser о-о-очень близок к разгадке обоих вопросов, но нет :)
@jsunderhood не понятно почему но похоже что считает сумму первых 10000 нечетных делящихся на 3, кложур?
16:32
@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
# Вторник 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…
Но rethrow позволит более точно установить место в обработчике выше и сформировать метрику, за которой можно следить gist.github.com/kaero/5d48acc6…
9:22Понятно, что есть и другие способы. Можно, например, парсить стектрейс. Но это не летит, если тебе нужны realtime-метрики, ..
9:23..а событий у тебя несколько десятков или сотен тысяч в секунду.
9:24В результате мы сделали terror и обработчик ошибок верхнего уровня помимо логирования отправляет метрику в statsd.
9:27Это позволяет видеть проблемы на графиках очень оперативно и достаточно точно определять источник: 1 код ошибки на 1 место использования
9:29btw, конкретный код тут не важен. Главное иметь возможность стремительно быстро понимать, что пришел писец, и где он засел.
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:37IO через 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…
@jsunderhood stdout морально устарел. Его надо забыть.
WUT?
@jsunderhood stdout морально устарел. Его надо забыть.
11:00
Если вы решили написать очередную систему сборки gittup.org/tup/build_syst…
12:16@jsunderhood github.com/start-runner/s… pic.twitter.com/tO9AaQJWoO
Каждый первый автор системы сборки :)
@jsunderhood github.com/start-runner/s… pic.twitter.com/tO9AaQJWoO
12:24
Интересно, что некоторые не различают систему сборки и систему выполнения задач. И всякими хаками превращают вторые в первые, и наоборот.
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:50ecma-international.org/ecma-262/5.1/#…
ecma-international.org/ecma-262/5.1/#…
ecma-international.org/ecma-262/5.1/#…
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
Вот он github.com/nodejs/node/bl…
21:47Is 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:57btw, доброе утро! pic.twitter.com/ufpGsfQVlH
Альтернатива всему этому — объектно-ориентированные ОС.
Под ОО ОС, я имею ввиду, например, Фантом, а не то что написано в Википедии
Альтернатива всему этому — объектно-ориентированные ОС.
9:11
В методы модуля fs Node.js 6 наконец добавили поддержку файловых дескрипторов. JSON.parse(fs.readFileSync(0, {encoding:'utf8'}))
20:24WDYT? 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/DZeFVdajTH21: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, в основном безопасность, но есть и другие.
# Пятница 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
О ренумерации pic.twitter.com/U0OgVNKql4
media.ccc.de/v/32c3-7240-co… классный рассказ от @smealum и компании о том, как обошли защиту 3DS, чтобы запускать homebrew. Фигурирует WebKit :)
11:31V8 5.2: ES6 & ES7 support, performance, etc. @MHablich11:31
v8project.blogspot.de/2016/06/releas… ^ar
Reverse engineering — это очень интересно. Только сначала нужно освоить engineering ;)
11:34Всем чмоки в этом чате <3 pic.twitter.com/qrEbgV39ZX
# Ссылки
github.com
- https://github.com/molnarg/node-http2/blob/master/lib/protocol/framer.js#L58
- https://github.com/WebAssembly/design/issues/188
- https://github.com/nodules/terror/
- https://github.com/nodejs/post-mortem/issues
- https://github.com/nodejs/node/blob/v4.2.1/lib/buffer.js#L333
other
- http://www.espruino.com/
- https://www.youtube.com/watch?v=-SRUctRR_4s
- https://yandex.ru/jobs/vacancies/dev/inter_infrastructure_dev_spb/
- http://www.nand2tetris.org/
- https://www.coursera.org/learn/build-a-computer/
- https://www.quora.com/Is-the-LLVM-Bitcode-file-format-portable-If-not-why-isnt-it-portable/answer/Nathaniel-Yazdani
- https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%B0%D0%B4%D0%B8%D0%B3%D0%BC%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
- http://grafana.org/
- https://gist.github.com/kaero/5d48acc6873813ce2de8778a89a91fc4
- https://gist.github.com/kaero/5d48acc6873813ce2de8778a89a91fc4#file-exceptions_02-js
- http://scottfrees.com/ebooks/nodecpp/
- http://blog.scottfrees.com/c-processing-from-node-js
- http://gittup.org/tup/build_system_rules_and_algorithms.pdf
- http://www.ecma-international.org/ecma-262/5.1/#sec-11.7.2
- http://www.ecma-international.org/ecma-262/5.1/#sec-9.5
- http://www.ecma-international.org/ecma-262/5.1/#sec-9.6
- https://blog.acolyer.org/2016/05/31/how-to-build-static-checking-systems-using-orders-of-magnitude-less-code/
- https://hyperdev.com/
- http://joelonsoftware.com/items/2016/05/30.html
- https://media.ccc.de/b/congress
- https://media.ccc.de/v/32c3-7240-console_hacking
- http://www.amazon.com/Engineering-Compiler-Second-Keith-Cooper/dp/012088478X/ref=sr_1_1?s=books&ie=UTF8&qid=1465123969&sr=1-1&keywords=engineering+a+compiler
- http://v8project.blogspot.de/2016/06/release-52.html