Telegram Web Link
Недавно поднимал дев окружение на виндовом стационарнике и был приятно удивлен состоянием дел в терминале
Windows Terminal работает на пять, есть официальная powerline версия Cascadia Code и аналог oh-my-zsh — oh-my-posh
В итоге терминал выглядит вот так вот
Что он там делает 700мс однако ума не приложу, грешу на плагин для гита

Тут отличный гайд - https://www.hanselman.com/blog/HowToMakeAPrettyPromptInWindowsTerminalWithPowerlineNerdFontsCascadiaCodeWSLAndOhmyposh.aspx

Ну и можете заценить мои дотфайлы
https://github.com/saitonakamura/dotfiles/blob/master/Powershell_profile.ps1
https://github.com/saitonakamura/dotfiles/blob/master/WindowsTerminal-profiles.json#L26
https://habr.com/ru/company/otus/blog/508778/

Наконец-то вместе с otus.ru закончил первую часть статьи про то как в 2020 работает компиляция js под совместимые браузеры. В первой части сосредоточился на том как это все работает, распространненых подводных камнях и обзоре браузеров о которых вы возмодно не знали
Клевые ребята с Твери делают онлайн!
Forwarded from Alexander Shushunov
В эту пятницу на онлайн площадке http://Tver.io будем поговорить за Open Source. В программе два доклада и панельная дискуссия. Трансляция - https://youtube.com/watch?v=ZnsRH9NVqDw. Вход свободный 😉
Походу я на следующей неделе буду выступать на холи, а в связи с этим возобновил работу над superstruct-ts-transformer. В этот раз запилил поддержку кастомных валидаторов

https://github.com/ts-type-makeup/superstruct-ts-transformer#custom-validators

Работа с ts compiler api это конечно non penis canina est.

* Документации конечно практически ноль
* Типы не всегда помогают, ибо вот явно тебе нужен Signature потому что у него есть метод getReturnType, но как из текущей ноды его получить??
* В дебаге тоже не супер ибо типы в рантайме не видны (ха-ха), разные ноды выражаются числовыми флагами (каждый раз смотри что этот 172 означает). Под конец уже некоторые запомнил (например тот самый 172 это SyntaxKind.TypePredicate)
* Навигация по сорцам на гх не работает, а самый главный файл (checker.ts) не может ни отображать ни искать по нему. "А хули вы хотели, 40 тыщ строк"

Но в конце концов оказалось все не очень сложно (когда уже понял то, ага). Дальше в планах сделать поддержку враппинга с дженериком, переехать на jest и попробовать наконец-то сделать babel plugin
BMTH продолжает жечь! POST HUMAN: SURVIVAL HORROR — просто отлично
https://open.spotify.com/album/0e1WaSNDZnoPixaxDNdWo4?si=0aGRaqTYToy3e2ye5iP8ng

P.S. Все еще нежно люблю aмo
Увидел что Розенвассер активно работает над вики ТС и наткнулся на вот такое (советы по оптимизации скорости компиляции и editing experience)
https://github.com/microsoft/TypeScript/wiki/Performance
Материалы по "Bending reality with type-directed emit"
Slides and materials for "Bending Reality with type-directed emit"

Слайды: https://bending-holyjs.netlify.app
Сама либа: https://github.com/ts-type-makeup/superstruct-ts-transformer
Type visitor helper: https://github.com/ts-type-makeup/ts-type-visitor
Про номинальные типы: https://youtu.be/m0uRxCCno00
Про работу с js AST: https://t.co/9ernl0RGpW?amp=1
Про бабель (англ): https://youtu.be/UeVq_U5obnE

И мы хайрим! https://hh.ru/vacancy/38324416
Многие недовольны тем что в 17 реакте нет новых фич, но для меня этот релиз очень важный, и вот почему

У нас на проекте есть оптимизация размера бандла — мы минифицируем всякое sed-ом (то что terser сам не умеет), но главным образом React.createElement. И всё бы ничего, но из-за того что это просто find-replace по сути, это ломает sourcemaps (а разбираться как бы их переправить для такого кейса не было ни времени ни сил). Но выкидывать минификацию не хотелось ибо разбрасываться килобайтами — к низким индикаторам производительности. В итоге была патовая ситуация

Речь конечно идет только про продакшен билд, но тут, как в анекдоте, нюанс — у нас одни и те же артефакты используются как на проде так и на стейджингах (чтобы быть максимально похожим на прод). Получалось что дебажить ни на проде (что тоже бывает полезно) ни на стейджингах нормально нельзя. Не смертельно, но очень неприятно

Но теперь jsx-runtime фактически сам делает эту оптимизацию и наша больше не нужна. Победа!

https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html

Пытливые могут ради интереса ознакомиться со спекой сормапов версии 3 (мне в свое время сильно помогла в понимании)
https://sourcemaps.info/spec.html
Иногда, казалось бы, простой PR порождает интересные предложения, дискуссии и выявляет подводные камни. Однажды после code and learn я решил добавить в issue template ноды повершельную команду чтобы достать нужную инфу об ОСи. Звучит просто, да?

И вот прошло чуть больше года и PR наконец-то смерджили! (три дня назад)

https://github.com/nodejs/node/pull/30289

Конечно большее время заняло ожидание (когда я внесу правки по ревью, само ревью, обуждение и т.д.). Но там ^ 35 сообщений, порой немаленьких и довольно содержательных.

К примеру cmd /c ver гораздо короче "$([Environment]::OSVersion | ForEach-Object VersionString) $(if ([Environment]::Is64BitOperatingSystem) { "x64" } else { "x86" })", но в нем нет битности системы

Или например было предложение сделать вот так systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"System Type". Не так коротко, но все еще лучше чем PowerShell-версия. Да вот только выяснилось что вывод systeminfo зависит от локали системы и findstr на не англоязычных виндах не найдет нужные строки

Ну и конечно всякие мысли от мейнтейнеров на тему того какого характера большинство багов с которыми они сталкиваются и насколько полезна та или иная информация (к примеру https://github.com/nodejs/node/pull/30289#issuecomment-650772698)

В итоге я даже рад что это заняло столько времени ибо я многое узнал 🙂 (и потратил кучу времени других людей)
Вторая часть advent of code 2020 прямо очень интересная! Чтобы не спойлерить тем кто еще решает, я напишу решение в комменте

Но если не собираетесь решать, прошу под кат (ах, извините тут не хабр)
Наконец-то дописал ^
Хороший тред, много интересных идей в реплаях

https://twitter.com/sama/status/1337464959408754691
Давно присматривался к этому репо, но времени не было начать. И вот кто-то собрался решать

P.S. Это репост с другого канала, но я планирую как минимум отметиться там в коментах, а может что-то запостить и сюда
Forwarded from Wild Wild Web
Я тут наткнулся недавно на очень интересную подборку задач по TypeScript. Особенность этих задач в том, что их нужно решать используя только систему типов TypeScript.

То есть, все задачки, которые там есть, их решение должно происходить в compile-time, никакого кода на TypeScript или JavaScript, кроме, собственно, типов.

И я призадумался. А не сделать ли мне «марафон» постов, где я буду идти по порядку от легкого уровня к сложному и рассказывать о решении, как оно работает, почему и так далее. Как вы на это смотрите? Не будет ли часто по одному посту в день на одну задачу из этой подборки?

Я лично уже прошел почти половину, очень интересно. Можно это всё завернуть в формат более продвинутого изучения типов. Не писать же только интерфейсы, правда? 🙃

В общем, я думаю это отличная идея и с завтрашнего дня, я буду выкладывать сюда решения задач и рассказывать почему решение работает (если, конечно, мы не придём к обратному решению в комментариях). А пока, вы можете поиграться и сами 😎

https://github.com/type-challenges/type-challenges
2025/06/29 18:52:06
Back to Top
HTML Embed Code: