artalog
4.24K subscribers
542 photos
40 videos
40 files
913 links
Развернутые ответы на вопросы в чатах, мысли от рабочих процессов.
Вопросы - @artalar.
Download Telegram
Много интересного и необычного по TypeScript можно подчерпнуть из @why_typescript_is_bad

Если у вас тоже есть находки фрикового поведения ТС пишите в @why_typescript_is_bad_chat, репостним в канал.
🤔2👍1
#reatom

Вот вам красивая (ну я надеюсь) картинка с новой архитектурой реатома. Что поменялось:

- из компьютедов (и экшенов) можно планировать новые апдейты, которые будут выполнены до(!) эффектов.
- log выделился в отдельную очередь, из него нельзя делать апдейты.

Вроде, мелочи? Или, зачем так сложно? Дело в том, что эта последовательность действий выражает самое ожидаемое поведение от реактивной системы, а точнее то, как должен работать автобатчинг и как разделять вычисления и сайд эффекты так что бы их можно было понятно дебажить.

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

Было очень больно и сложно (эдж-кейсы перфа, типизации, лимитов бандла), но я знаю, что итоговый результат будет помогать делать продукты быстрее и лучше, и стоит того.
👍71
Когда-то давно я увлекался выживанием в дикой природе. Поделюсь воспоминаниями о том как запастись провиантом и растянуть его на подольше. Надеюсь, никому не понадобится, а иначе поможет.

Человек несколько недель может жить без еды. Если есть макароны - уже хорошо, но лучше крупа. Не забывайте хранить их в сухости. Есть достаточно 1 - 2 раза в сутки, но не много. Если еда в избытке, питайтесь чуть чаще, но не наедайтесь, а лучше отдайте ее соседу.

Лучшая консервация - сушка. Рецептов и способов много. Самый тупой способ - нарезать очень тонкими ломтиками и сушить на сквозняке (подвесив) закрыв тканью от гнуса. Я бы начал с красного мяса. Потом в суп добавлять - не вкусно, но полезно. Курицу без термообработки не употреблять.

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

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

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

Вода (питьевая) - самое главное что должно у вас быть. Наперед. Компоты / газировки / алкоголь и тп могут сделать только хуже. Лучше всего простая вода. Не дестилированная, но кипяченая. За раз выпивать не больше 100-150мл, за день не меньше 500мл. Без физических нагрузок можно попытаться уложиться в литр в день.
Снег обязательно кипятить. Проточную воду с улицы фильтровать через много мха и угля, тоже кипятить.
Если кипятить невозможно: марганцовка / йод / перекись.

Самый минимум аптечки: активированный уголь, йод, бинт и вата. Бф-клей, парацетамол, супрастин.

Годный контент по теме есть у Gleb Skorobogatov: ютуб, инста,
👍12🤔4😁1
Да я не могу ничего вразумительного написать по поводу военных действий в Украине. Сколько не пытался.
Надеюсь, что это скоро закончится и мирные жители перестанут страдать. Держитесь! Я молюсь о мире.

Дальше только тех. контент.
👍22👎2🤔2
Вы и так об этом скоро услышите или уже знаете, но не могу не поделиться: пропосал на синтаксис описания статических типов для ECMAScript.

Он будет опциональный и не будет влиять на рантайм. Это просто стандартизация экосистемы. И это хорошо.
🤔7👍3👎1
CleanShot 2022-03-11 at 11.59.51.png
274.8 KB
#ide

Поменял тему, радуюсь.

Carbonight (rainglow), Iosevka Term 18 600.

Да, я большой сторонник низкоконтрастных тем. Лично мне, разноцветные слова пляшущие тут и там только мешают, особенно когда подсветка не попадает в семантику (бывает в ~15% случаев, но все равно полностью рушит к себе доверие).
🤔5👍3🔥1
artalog
CleanShot 2022-03-11 at 11.59.51.png
CleanShot 2022-03-11 at 12.19.00@2x.png
560.2 KB
Еще пара скринов текущей темы и Nord, на который намного проще пересесть, если все же захочется попробовать что-то низкоконтрастное.
🤔1
Мне тут подсказали что писать выражение за ифом в одну строку плохо потому что это “смесь которая читается тяжело”. И что лучше писать такие вещи через логические операторы, вроде isSome && effect().

Проблема с однострочным написанием действительно есть - неконсистентность выравнивания и обособления скобками с многострочным вариантом исполняемого кода. Неконсистентность это всегда избыточная когнитивная нагрузка и лучше ее избегать. Но писать три строчки вместо двух меня тоже совсем не радует. Тут нет единственно верного решения и стоит смотреть на подготовленность каждого разработчика в команде к такому кодстайту: можете ли вы парсить код в голове быстро в независимости от кодстайла (тогда стоит писать меньше кода) или вы читаете код медленно.

Лично мне быстрее понимать менее выразительный, но более концентрированный код. По той же причине беру низкоконтрастную тему и узкий шрифт, см. пост выше.

А по поводу сайд-эффектов в логических выражениях - тут точно нет, потому что операторы && и || имеют семантику возврата значения, которая сильно диссонирует с логикой условного ветвления кода, да еще и баги может создавать в редких кейсах форматирования.

Из интересного: можно поискать ишьесы на подобные темы в prettier и посмотреть мой доклад про семантику в программировании.
👍2🤔1
artalog
Мне тут подсказали что писать выражение за ифом в одну строку плохо потому что это “смесь которая читается тяжело”. И что лучше писать такие вещи через логические операторы, вроде isSome && effect(). Проблема с однострочным написанием действительно есть …
В личку спросили про баги которые могут вызывать &&. Это редкий кейс, но я с таким сталкивался.

Условия: отсутствие стат типизации и колбек приходящий извне, который возвращает булеан или ничего (undefined).
Ну и потом кто-то передает () => isSome || setTimeout(…) забыв о том что вернется intervalId. Ну и мы потом конвертируем число в тру и получаем позже ошибку.

P.S. а есть языки в которых void и undefined это про разное и можно явно понять что вернулось из функции, а не гадать, undefined это от return undefined (find на массиве или get на мапе) или от отсутствия return.
👍4
Трамплины.

Еще два года назад я хотел написать про трамплины для “перепрыгивания” глубины стека в рекурсивных вычислениях на чистых функциях, но ни времени, не ума на это не хватило.

Поделюсь сейчас просто своими заметками и продублирую ссылки на ишье к ТС в котором применяются трамплины для обхода небольшой глубины рекурсии системы типов: TypeScripts Type System is Turing Complete, и неплохую статью с детальным разбором темы: Using trampolines to manage large recursive loops in JavaScript.

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

#fp #ts
👍4
mermaid

Наконец, попробовал этот тул для текстового рисования графиков в Markdown. Совсем чуть-чуть и пока все понравилось, довольно удобно. На скринах то что я написал и как это рендерится.

Напомню, в Gitlab поддержка есть уже давно, а в Github появилась месяц назад.
👍7
#ide буду делиться приятными темками, иногда. Ayu спокойная, но выразительная, много сидел на ней.

А если вам хочется поэксперименитровать - CRT.

оу, какой ужасный жпг получился, простите.
👍4🤔2
Live stream started
Live stream finished (28 minutes)