# Понедельник 9 твитов
Привет хакеры! Всю эту неделю я буду ващим MC из мира разработки компиляторов.
12:55Тут буквально на днях я работал над webassembly в JavaScriptCore. JavaScriptCore это движок для JS и webassembly в… twitter.com/i/web/status/1…
15:09Я уже привык что код на c++, да еще и в больших проектах не блещет новыми идеями и фишками из новых стандартов, раз… twitter.com/i/web/status/1…
15:10Посмотрите на эту кучу макросов: webkit-search.igalia.com/webkit/source/…,
WASM_PARSER_FAIL_IF(!parseVarUInt32(elementCount), "can't… twitter.com/i/web/status/1…
Спустя буквально пару часов я прозрел, блин, а это удобно. Не надо как в Go писать каждый раз if not error, просто… twitter.com/i/web/status/1…
15:12Посмотрите как функция объявлена, auto SectionParser::parseElement() -> PartialResult, это же в прямом виде rail wa… twitter.com/i/web/status/1…
15:13Также Андрей Александреску предлагал внести похожий способ обработки ошибок в c++: youtube.com/watch?v=CGwk3i….
15:13Возвращаясь к своей задаче я написал пару функций для парсинга в стиле:
PartialResult WARN_UNUSED_RETURN parseElemK… twitter.com/i/web/status/1…
Вот к слову и патч в JSC который добавляет поддержку обновленной секции elements и reference-type proposal: bugs.webkit.org/attachment.cgi….
15:17# Вторник 16 твитов
“Пфф, да как два байта дописать.” Людям, которые не знакомы с внутренней кухней разработки браузеров или компилятор… twitter.com/i/web/status/1…
16:59Например, средний инженер гугла может потратить всю свою карьеру только на то, чтобы в google drive интерфейсе прав… twitter.com/i/web/status/1…
16:59Другой пример парольный менеджер в браузере. Рядовой фулстек разработчик скажет что это по сути всего лишь бд для п… twitter.com/i/web/status/1…
16:59Вот в прошлом году мне поручили сделать оптимизацию в wasm, которая помимо всего прочего требовала поменять ABI в S… twitter.com/i/web/status/1…
16:59ABI это application binary interface, т.е. это что-то похоже на api, в том смысле что это тоже набор соглашений о т… twitter.com/i/web/status/1…
16:59В отличии от API ABI работает на более низком уровне и отвечает на такие вопросы: а как физически передавать параме… twitter.com/i/web/status/1…
16:59Если не сильно вдаваться в мотивацию, то мне надо было добавить пару байтов прямо после аргументов функции на стек… twitter.com/i/web/status/1…
16:59Я пропущу тот момент что задача требовала еще и проведения небольших исследований, а опишу лишь небольшой перечень… twitter.com/i/web/status/1…
16:59Подытоживая могу сказать что это не все так сложно как и я описал. Комитить в большие проекты это как играть в dark… twitter.com/i/web/status/1…
16:59# Среда 13 твитов
Третий день, хочется пожертвовать им и просто поговорить о книгах.
14:02Меня много спрашивают о том, что бы такого почитать чтобы стать тру программистом, 10x или просто наконец-то выучит… twitter.com/i/web/status/1…
14:02Вокруг книг много хайпа. Есть книга дракона, есть книга динозавра, есть книга тигра, я думаю есть еще и другие фант… twitter.com/i/web/status/1…
14:02Забавно что этот культ "крутых" книг, по моему скромному мнению, поддерживают те люди, которые этих самых книг никогда и не читали.
14:02Но если вы прям сразу как максимально крутой парень начнете читать книгу дракона, естественно в оригинале, в переры… twitter.com/i/web/status/1…
14:02Это не значит что хороших книг нет, есть! Для себя я понял что читать их надо не для того чтобы прочитать, а для то… twitter.com/i/web/status/1…
14:02Вообще, если хотите знать основы, то смело следуйте этому сайту, ничего лучше я не находил: teachyourselfcs.com
14:02Есть великая книга - SICP, бьюсь об заклад её скачивания подскочат... Вообще, только ленивый не писал про эту книгу… twitter.com/i/web/status/1…
14:02Моя рекомендация по sicp, начать с лекций на hexlet, они по sicp бесплатные. Это не реклама, просто мне там понрави… twitter.com/i/web/status/1…
14:02Мне очень понравилась серия книг Clean*. Да, Роберт Мартин за свою жизнь написал только fitnesse, который не блещет… twitter.com/i/web/status/1…
14:02По компиляторам мне нравится engineering a compiler. Она достаточно базовая, но хорошо структурирована и позволяет… twitter.com/i/web/status/1…
14:02Также по компиляторам рекомендую видеокурс: openclassroom.stanford.edu/MainFolder/Cou…. Автор круто разбил все на модули и качественно все описал.
14:02А что вы посоветуете?
14:02# Четверг 1 твит
@devongovett @threepointone @buildsghost @thomasankcorn I just presented on the topic of bundling and JavaScript, w… twitter.com/i/web/status/1…
👍
@devongovett @threepointone @buildsghost @thomasankcorn I just presented on the topic of bundling and JavaScript, w… twitter.com/i/web/status/1…
11:36
# Пятница 6 твитов
#wasm очень интересная технология, но мне кажется что ей недостает фокуса на правильных вещах. Для себя я выделил 3… twitter.com/i/web/status/1…
7:471/3 Десктопные приложения которые сложно поставлять и которые одновременно требуют производительности.
14:191/3 Идеальный пример это ugene.net. Это IDE для генетиков пользователями которой являются студенты. П… twitter.com/i/web/status/1…
14:191/3 В итоге получаем отличную IDE для генетиков, которая не тащит за собой Qt и работает сразу в браузере и причем… twitter.com/i/web/status/1…
14:192/3 Игры. Вспомните сколько было прекрасных игр на flash. Да, технология оказалась небезопасной, но все же. Как тол… twitter.com/i/web/status/1…
14:193/3 язык для экспериментов для web. Эмуляция различных языков, эксперименты с отказом от JS в браузере и переписыва… twitter.com/i/web/status/1…
14:19# Суббота 8 твитов
Коммиты в какой-нибудь большой и известный компиляторный или браузерный проект позволяют попрактиковаться в промышл… twitter.com/i/web/status/1…
13:37Но как начать если еще есть и основная работа не связанная с open-source или как начать когда непонятно с чего нача… twitter.com/i/web/status/1…
13:37Если ты студент, то тут есть что выбрать. Я рекомендую обратить внимание на оплачиваемые стажировки - google summer… twitter.com/i/web/status/1…
13:37Если ты не студент, то стажировки тоже есть, например outreachy.org. Но если хочется просто для души и ра… twitter.com/i/web/status/1…
13:37Моя первая рекомендация это mozilla. Несмотря на все увольнения и странности с руководством в mozilla очень дружелю… twitter.com/i/web/status/1…
13:37идем в codetribute.mozilla.org/projects/jseng и выбираем задачу с тегом good-first-bug. Там обычно что-то в духе переименовать пер… twitter.com/i/web/status/1…
13:37BTW: в большом проекте всегда есть что можно доделать, но на это просто не хватает людей. Например TODO в wasm в SpiderMonkey очень много.
13:37Не хотите SpiderMonkey, есть JSC (bugs.webkit.org), есть chromium (bugs.chromium.org/p/chromium/iss…), llvm и другие.… twitter.com/i/web/status/1…
13:37# Воскресенье 2 твита
Для high-level понимания не могу не порекомендовать блог wingolog.org.
10:38Вот и пришло время прощаться, как говориться: Keep doom-scrolling, keep refreshing, have a good week.
10:40# Ссылки
other
- https://webkit-search.igalia.com/webkit/source/Source/JavaScriptCore/wasm/WasmSectionParser.cpp#374
- https://www.youtube.com/watch?v=CGwk3i1bGQI
- https://bugs.webkit.org/attachment.cgi?id=414651&action=diff
- https://bugs.webkit.org/
- https://teachyourselfcs.com/
- http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=Compilers
- https://www.usenix.org/conference/usenixsecurity20/presentation/lehmann
- https://www.wingolog.org/archives/2020/10/15/on-binary-security-of-webassembly
- http://ugene.net/
- https://www.outreachy.org/
- https://codetribute.mozilla.org/projects/jseng
- https://bugs.chromium.org/p/chromium/issues/list?q=Hotlist%3DGoodFirstBug&can=2
- http://wingolog.org/