Андруша пишет код – Telegram
Андруша пишет код
1.25K subscribers
137 photos
1 video
1 file
218 links
Download Telegram
Понедельник. Ссылки.

Последнюю неделю-полторы я пишу свой сборщик для js/ts библиотек, поэтому и ссылки весьма специфичные

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#signal
У addEventListener оказывается есть возможность прокинуть abortSignal. Это куда удобнее для меня, так как
а) можно на 1 сигнал повесить сколько угодно подписок
б) не надо хранить и DOM ноду, и колбек, для того чтобы осуществить отписку

https://deno.com/blog/http-imports
Deno признал, что импорты через http урлы - это чуток путь не в православную сторону

https://github.com/sveltejs/rollup-plugin-svelte/issues/104
Не забывайте при написании package.json для библиотек экспортировать сам package.json. Он бывает нужным в неожиданных сценариях

https://2ality.com/2019/10/hybrid-npm-packages.html
Немного устаревшей доки как писать esm/cjs библиотеки корректно

https://blog.isquaredsoftware.com/2023/08/esm-modernization-lessons/
И как всё же их писать сложно

https://www.typenoscriptlang.org/docs/handbook/modules/appendices/esm-cjs-interop.html#library-code-needs-special-considerations
А так же нужно не забывать собирать 2 вида тайпингов, так как cjs и esm тайпинги у тайпскрипта не взаимозаменяемы

https://e18e.dev
ljharb гордился бы нами. Люди всерьёз задумались о размере пакетов. Надеюсь, что эта инициатива не заглохнет

https://storybook.js.org/blog/storybook-8-2/
И вот вам сразу практический пример как крупный проект начал думать о размере и удобстве работы с зависимостями

https://github.com/tc39/proposal-promise-try
Но не стоит считать, что ljharb абсолютное зло. Он так же делает и приятные для нас штуки

https://github.com/uBlockOrigin/uBlock-issues/wiki/About-Google-Chrome's-%22This-extension-may-soon-no-longer-be-supported%22
Manifest v3 в Хроме наступает. Походу, всё же вскоре случится

https://parceljs.org/getting-started/library/
Парсель внезапно имеет практически идеальную конфигурацию сборки для библиотек. "Практически" - потому что всё же package.json не генерится, а его приходится писать руками
👍14🔥3💩3🤡3
Когда-то давно я видел наборы в стиле "100500 ошибочных допущений о времени/ФИО/так_далее" и мне захотелось поделиться несколькими историями/заблуждениями, когда дефолты не работают.

Важный контекст: я не являюсь гражданином РФ и никогда им не был, но прожил около 6 лет с 2016 по 2022 год в Москве и Санкт-Петербурге как трудовой мигрант.
Не очень важная, но хотелка: не стесняйтесь ставить реакции. Вам ничего не стоит, а мне приятно.
Важное уточнение для всех нероссиян: далее я буду использовать российкую терминологию, так как она отличается от международной. Загранпаспорт==паспорт и паспорт==id-карта


Заблуждение/история №1: Российский номер телефона имеют только россияне.
(Скриншоты в комментариях)
Хочется сказать что это очевидно. Но, внезапно, нет. Не очевидно. Как минимум для техподдержки Яндекса.
Вчера я решил глянуть что предлагает рекламная сеть Яндекса для телеграм каналов и обнаружил, что Яндекс предлагает мне зарегистрироваться с моим уже бывшим номером телефона, хотя я отчётливо помнил, что я его менял на казахстанский. Оказалось, что Яндекс в какой-то момент открыл мне самостоятельно счёт в Яндекс.Банке и привязал туда мой российский номер телефона. На моё желание удалить номер я увидел простую вещь: хочешь что-то с ним сделать - пиши в техподдержку. Ну, бывает, я написал(скриншот 1). И я очень сильно удивился когда меня попросили предоставить паспорт(которого у меня нет из-за отсутствия гражданства) и сделать селфи, чтобы что-то там подтвердить. Напоминаю: документов у Яндекса об открытии счёта быть не может. Да, я работал в Яндексе, но счёта в Яндекс.Банке не открывал. Итог: диалог просто был завёршён со стороны техподдержки, так как я отказался делать фото. Не знаю был ли там человек или робот, но впечатление уже сильно попортилось.
Кстати, советую и вам проверить. Авось и у вас есть счёт в Яндекс.Банке, о котором вы не знаете.
Благо второй диалог(скриншот 2) был уже куда адекватнее. Без фото и прочих данных мне пообещали, что счёт закроют. И его закрыли, правда по СМС так и не уведомили, хотя пообещали.

Вывод: не все люди - россияне
=======
Заблуждение/история №2: Не все живущие в РФ - россияне
Во времена своего студенчества родители где-то раз в месяц присылали мне деньги на жизнь. Самый простой доступный способ был отправка денег всякими посредниками типа western union или "золотая корона". В итоге после получения денег у меня была какая-то наличка на руках, которую нужно как-то закинуть на банковский счёт для удобных операций.
В то время у Тинькофф не было банкоматов и единственным способом пополнения счёта я видел пополнение через салон сотовой связи. Я использовал разные салоны: мвидео, билайн, евросеть и другие, но абсолютно везде был один нюанс: для пополнения счёта нужно было предоставить паспорт гражданина РФ. Не знаю кто это придумывал и какая форма мотивации была у сотрудников салонов, но во всех случаях общение строилось так:
1) я показывал свои документы
2) минуты 3 мне доказывали что у меня должен быть российский паспорт, даже после моих слов, что у меня нет гражданства. Эта информация просто никак не принималась людьми
3) в итоге консультант смирялся, вбивал СВОИ данные и деньги поступали ко мне на счёт

Вывод: не все люди - россияне. Думайте, когда проектируете системы. Может быть ею захочет воспользоваться иностранец.
👍12🤯10🤡4💩3❤‍🔥2🙏1💯1
Заблуждение/история №3: У людей может меняться ФИО.
В 2016 году в загранпаспорте у меня была фамилия+имя+отчество, с помощью которых я устроился на первую работу, и, следовательно, получил свой набор документов
В 2018 году я получил новый загран, в котором у меня уже были фамилия+имя. Отчества не было. И это прямо прибило все гос и частные органы в РФ. У меня сломались "пенсионный фонд", "тинькофф", "сбер" и моя компания, в которой я работал. И сломались по простой причине: они не подразумевали что у человека может смениться ФИО. До сих пор у меня в РФ для государства 2 личности: ФИО и ФИ. 2 разных человека. И это мне очень больно била при попытке устроиться на работу, так как всякие СНИЛСы и прочее попросту не подходили к моей "текущей личности". В итоге каждый работодатель просто плевал на несоответствия и вроде как штрафов не получал.

Вывод: ФИО может меняться без ведома государства
=====
Заблуждение/история №4: У людей может меняться номер паспорта

По этой же причине у меня сменился и номер паспорта в 2018 году. В итоге у меня сломались госуслуги РФ. Не сказать что они мне как-то сильно нужны, но это всё равно забавно. И причина проста: документы, указанные в СНИЛС не совпадают с данными паспорта. А без этих двух сущностей иностранцу не зарегистрироваться на госуслугах РФ. И РФ не особо дружелюбно к людям, которые хотят изменить данные у них. В итоге я плюнул и решил жить без доступа к такому великому сервису как госуслуги РФ

Вывод: Не только ФИО, а вообще любые данные человека могут измениться без ведома государства.
=====
Ко всем разработчикам у меня только одна просьба: при проектировании сервисов попробуйте не забыть о том, что в вашем государстве живут не только ваши сограждане, но и другие люди.
👍12🤬3💩3🤡2❤‍🔥1🤯1🙏1🥴1
raycast

До последнего времени мне было абсолютно фиолетово на какой ОС сидеть. Главное, чтобы задачи лучше всего выполнялись.
Проект работает лучше всего под линуксом? Буду сидеть под линуксом. Винда? Без проблем. Макось? И эта железка есть.

Это всё обеспечивалось тем, что у всех трёх ОС можно построить примерно одинаковое окружение: запускаешь терминал, в нём fish+tmux и работаешь как тебе привычно.
Но около 2 месяцев назад схема дала слабину. Потому что есть https://www.raycast.com.

Напомню свою позицию по работе с устройствами: поиск превыше всего. https://news.1rj.ru/str/xavescor_code/73
И рейкаст - это прямо идеальное продолжение этого подхода.

Если говорить вкратце: то это поисковая строка с возможностью расширения. И плагины есть практически на любой вкус.
И теперь у меня жизнь выглядит примерно так:
- Нужно что-то найти? Ищем через рейкаст в гугле или duckduckgo
- Нужно что-то объяснить? Делаем запрос через рейкаст к чатгпт
- Нужно написать маме о чём-то? Открываю чат с мамой через рейкаст через плагин к whatsapp(Плагина, делающего интеграцию с телегой, увы, нет)
- Нужно что-то перевести на другой язык? Верно. Плагин к google translate
- Нужно написать коллеге в slack? Открываешь чат с коллегой напрямую через raycast
- Хочется включить кондиционер? Плагин к home-assistant.io тоже есть в рейкасте.

Преимущество рейкаста в том, что в комьюнити есть куча поехавших, которые сделали плагины практически к чему угожно. И это всё БЕСПЛАТНО. Тебе не нужен никакой другой интерфейс для поиска кроме поиска raycast.

Кроме того raycast исправляет тупые косяки макоси:
- Есть window manager
- Есть буфер обмена с историей
- Есть возможность править менюбар

И вот, увы, я снова привязан к макоси, так как рейкаст настолько удобен, что жить без него боль
👍21💯6🤡4💩3
Понедельник. Ссылки.

https://npmgraph.js.org/?q=smartbundle
Тул, чтобы глянуть граф зависимостей в библиотеке. Хороший тул для того чтобы принимать решение стоит ли брать либу или нет

https://eslint.org/blog/2024/08/eslint-v9.9.0-released/
Поддержка тайпскрита из коробки становится стандартом. Спасибо, bun

https://vercel.com/blog/how-google-handles-javanoscript-throughout-the-indexing-process
Очередная рекламная статья от верцела, где они доказывают, что SPA индексируются. Но, читая статью, держите в голове, что гугл говорит что для полной индексации необходимо отдавать HTML. И никак иначе.

https://minutestomidnight.co.uk/blog/leaving-the-web-industry/
Грустная история о том как навыки могут устаревать. Учитесь на чужих ошибках, чтобы не оказаться на обочине рынка.

https://nodejs.org/en/blog/release/v22.6.0#experimental-network-inspection-support-in-nodejs
Нода разогналась и не перестаёт удивлять новыми фичами. Теперь, можно исследовать сетевые запросы, а не только играться с точками останова

https://bundle.js.org
Хороший сервис, чтобы посмотреть что именно прилетит к вам в бандл, если вы напишете те или иные импорты

https://x.com/sanxiaozhizi/status/1805585053550100901
Если вы генерите d.ts, а tsc по-вашему мнению тормозит, то появилось решение, которое работает быстрее. Как минимум по информации в твите

https://www.rainsberger.ca/blog/50-docs-tips-in-50-days/
50 советов от автора документации Astro. Очень рекомендую, так как считаю документацию Astro одной из лучшей среди технических документаций

https://news.1rj.ru/str/it_diva_offical/410
Как подготовиться к публичному выступлению. Так же рекомендую этот канал, так как он делает весьма хорошие материалы по тому как вести свой карьерный путь

=====
Ну и главное. РЕКЛАМА. Реклама себя. Провожу консультации и не только по всему что связано и не очень с фронтендом. Подробнее: https://news.1rj.ru/str/xavescor_meetings_logs/6
👍22💩2🤡2🗿1
Webstorm 2024.2

Вышел новый мажор. И самая главная новость на текущий момент: НЕ ОБНОВЛЯЙТЕСЬ.
Проверено не только на мне, а ещё и на коллегах.

Не знаю что они там сделали, но явно отдел тестирования профукал все полимеры.
Проблема а) github copylot плагин не совместим с этой версией. И самое тупое - он не отключается. Он работает. И походу, в WS все плагины работают последовательно. Так как в случае падения копайлота у вас замирает абсолютно всё: перестают работать все анализы. webstorm показывает ошибку? Ну, эта ошибка будет отображаться ещё 15 секунд, пока гитхаб плагин не упадёт.
Проблема б) тайпскрипт автокомплит тупо перестал работать. На любой автокомплит WS вам попросту выплёвывает всё, что он сумел найти в проекте. И всё продолжается нереальными тормозами.
Проблема в) проблемы не уходят даже если отключить копайлот и тайпскрипт, и даже если перезапустить IDE c очисткой кеша, и даже если удалить IDE и поставить с нуля. Фиг знает что это, но что-то не зависящее от проектов.

И так же дежурное напоминание: у jetbrains toolbox есть дежурная функция "откатиться на предыдущую версию". Это работает прекрасно, так как при установке новой версии старые не удаляются. Новая версия IDE просто устанавливается в соседнюю директорию. Уже обновились и такие же проблемы? Откатывайтесь спокойно и ждите второго сервиспака. Не обновлялись? Подождите как минимум 2024.2.1. Пока уж точно рано.

А ченжлоги? Ну вот она, положила https://blog.jetbrains.com/webstorm/2024/08/webstorm-2024-2/
Есть file based routing, запуск TS файлов и обновление внутреннего рантайма. Звучит, может быть вкусно, но не с такими проблемами.
😱16💩8🤡3😁2🤓211💯1
Forwarded from Work & Beer Balance
Постоянно гуглю этот тип, так что решил обронить его тут.
Полезная вещь для дебага, позвоялет "развернуть" сложный тип. Ну то-есть выводит конечный тип после всех дженериков юнионов и тп.
Если совсем просто - вместо SomeGeneric<SomeOtherGeneric, AnotherGeneric<API["some"]>> получаем структуру из js примитивов

/**
* Debugging type that will display a fully resolved type
* in Intellisense instead of just the type aliases
*
* @type {T} The type to expand out
*/
type ExpandRecursively<T> = T extends (...args: infer A) => infer R
? (...args: ExpandRecursively<A>) => ExpandRecursively<R>
: T extends object
? T extends infer O
? { [K in keyof O]: ExpandRecursively<O[K]> }
: never
: T

type Expand<T> = T extends (...args: infer A) => infer R
? (...args: A) => R
: T extends object
? T extends infer O
? { [K in keyof O]: O[K] }
: never
: T


Бонус контент:
чтобы тс вам в ошибках не обрезал тип через ... надо включить noErrorTruncation в tsconfig
👍23😨14🤡2🔥1💩1
Девтулзы

Девтулзы в браузере стали неотъемлемой частью веба, так как без отладчика ты не можешь написать никакую нормальную программу.
И так исторически сложилось, что "стандартом" стал Chrome devtools protocol, который не сказать что хорошо описан без костылей может использоваться везде.

Оказывается, 4 года назад крупные игроки начали разрабатывать стандартный девтул протокол: WebDriver BiDi(https://w3c.github.io/webdriver-bidi/)

В итоге о его поддержке на данный момент заявили:
- Firefox https://fxdx.dev/deprecating-cdp-support-in-firefox-embracing-the-future-with-webdriver-bidi/
- Chrome https://developer.chrome.com/blog/webdriver-bidi
- Puppeteer https://pptr.dev/webdriver-bidi
- Selenium https://www.selenium.dev/documentation/webdriver/bidi/
- WebdriverIO https://webdriver.io/docs/api/webdriverBidi/
- BrowserStack https://developer.chrome.com/blog/webdriver-bidi-support-in-browserstack

Пока не известно, но, по-моему мнению будет в Сафари.

И отказались имплементировать, внезапно, Playwright. https://github.com/microsoft/playwright/issues/30237
И, одна из причин, как оказалось https://github.com/microsoft/playwright/issues/30237#issuecomment-2225500478 Pavel is also creator of CDP.
Позиция плейрайта, прямо говоря, максимально ущербная, но будьте готовы что в будущих версиях будет что-то ломаться, так как Playwright не хочет идти на стандартные решения.

Ну, ljharb хотя бы деньги получает за свои пакеты.
👍10🤡3💩2
Цифровизация курильщика или почему я не люблю государство

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

Я проживаю в Казахстане и тут же у меня открыто ИП, поэтому я должен взаимодействовать с государством в момент отчитывания и уплаты налогов. Это нормально и везде так. И ты можешь подать все декларации в цифровом режиме, и даже не обязателен бухгалтер. Но сложности начинаются в тот момент, когда ты хочешь взаимодействовать с этой машиной.

Давайте я опишу как в Казахстане оцифровали отчёты по налогам. Всё просто: дословно перенесли аналоговый процесс в цифру. Не думая. Хотя вру, постарались сделать удобно, но об этом позже.

В общем, у тебя есть 910 форма(см. прикрепленное изображение), которую нужно заполнить какими-то значениями. И, в чём-то автоматизация стала умной: там даже заполнились ФИО и мой ИИН. Жизнь стала чуток проще. Нам и нужны компьютеры, чтобы максимально упрощать нашу жизнь. Одобряю.
Но хочу обратить внимание на пункт 6: первоначальная/очередная/дополнительная/...
Знаете что это? Это, грубо говоря, способы обработки декларации. Я понимаю зачем это нужно было в аналоговом мире - для того, чтобы упростить жизнь всем: государству, людям, бухгалтерам. Подаёшь начальную? Государство видит, что ты раньше не подавался. Очередную? Видит, что твои данные уже были. Дополнительную? Ну, тут тебе жизнь упрощена по-максимуму. Просто вбей дельты ТОЛЬКО в нужные поля. А остальные оставь пустыми. Так и тебе гемориться меньше, и государству вносить коррекций меньше, так как они сразу видны. И так далее.
Т.е. каждый пункт нёс какую-то теоретическую пользу.

Что поменялось с цифровизацией? Угадали, ничего. Только формы отсылаются в цифре, не более.
- Нам правда нужно в цифре отличать начальную форму от очередной? Государство не знает посылал ли я формы раньше? Это нельзя вычислить самостоятельно? Реально в 2024 году есть резон напрягать человека в этом различии.
- Нам правда нужно в цифровую эру иметь "дополнительный" режим? Чтобы ты как дебил высчитывал дельты? А если ты ошибся пару раз и у тебя 1-2 дополнительных формы? То в таком случае ты как дебил должен высчитывать дельту между отосланным состоянием(форма + все отправленные дельты) и нужным? Ну нахрена, если у нас есть компьютеры, которые сами могут это сделать.

В идеальном мире достаточно было бы просто одной формы. А далее компьютер пусть сам всё считает. Делегирование и компьютеры открыли нам великий мир, где ты можешь заниматься реально важными вещами, а всякую фигню будут делать металлические мешки.
К примеру, у меня робот-пылесос убирает всю квартиру в максимальном режиме каждый день. Затраты на его обслуживание 1$ в месяц. Всё, пусть хоть по 2 часа всё у меня дома вылизывает. Вообще не проблема. И цифровизация должна как раз понимать что дешевле сделать роботу, а что человеку, чтобы упрощать жизнь человеку. Потому что оптимизации аналогового мира не подразумевали, что у нас будет такой вычислитель, который очень сложные для людей операции будет выполнять за наносекунды.

А по поводу удобства, которое я упомянул в начале: эти дебилы запихнули валидацию в форму, чтобы упростить жизнь. Некоторые значения обязаны быть больше нуля. И в итоге доп. форму ты подать не можешь. Потому что валидация была рассчитана только на основной режим. А о том что кто-то будет делать коррекцию никто не подумал.
👍9💩7🤡5😁1😱1
github - это прямо хорошая социальная сеть. Если никогда не заходили на главную и не обращали внимание на ленту, то советую пересмотреть своё отношение. Внезапно, это весьма удобный и эффективный способ следить за интересующими вас проектами. Открыл для себя это недели 2 назад и не могу не нарадоваться.
11👍21🤡6💩3
Понедельник. Ссылки

https://github.com/honojs/hono
Экспресс устарел. Забудьте о нём. И если не хочется менять привычек, то посмотрите на продукт выше

https://www.edgedb.com/blog/an-approach-to-optimizing-typenoscript-type-checking-performance#how-do-we-quantify-the-type-checker-s-workload
Чуть-чуть о том насколько долго проверять типы

https://x.com/samat/status/1823717286051565775
Немного наркомании или как запустить что-то похожее на postgresql в браузере
3🔥8👏2💩2🤡1
Forwarded from artalog (artalar)
Привет, фронтендеры!

Приглашаем вас на важное событие в мире фронтенда — FrontendConf 2024.
Это не просто конференция, это возможность перенять опыт лидеров рынка, актуализировать подходы и пообщаться с большим количеством профессионалов.

30 сентября и 1 октября в Москве, в кластере “Ломоносов", соберутся более 1000 участников из России и СНГ, чтобы делиться с друг другом новостями, знаниями и опытом.
У вас есть возможность стать частью этого сообщества разработчиков и инженеров, чтобы обменяться опытом профессионального развития и новыми идеями улучшения своих продуктов, зарядиться энергией и завести новые профессиональные связи.

Что вас ждет:
- 51 доклад с реальными кейсами, свежими идеями и глубоким анализом актуальных задач.
- Дебаты по актуальным темам отрасли.
- Фейл-митап. Важные истории, которые рассказывают без записи и трансляций.
- QA-сессии, общение с экспертами, митапы.

Программа конференции уже на сайте, промокод на 5% от стоимости билета (любой формат): fc24_artalog.

Что нового в этом году?

Подробно обсудим внедрение ML в продукты; как нейросети меняют наш софт; как их использовать в ежедневной работе для повышения производительности. Александр Шатилов из Европлана расскажет о применении ИИ в пользовательских интерфейсах с помощью Tensorflow.js, а Илья Никитин из Авито обсудит, можно ли научить ИИ верстке.

Обязательно рассмотрим новейшие веяния во фронтенде, заглянем за горизонт инженерной мысли, обсудим новые вызовы, проблемы и технологические концепты. Так, Сергей Константинов из Сбера расскажет о сравнении Bun и Node и почему выбирают JSCore, а Даниил Трофимов из СберМаркета поделится последними достижениями в развитии PWA. Мы исследуем, как инновации из смежных областей могут дать новый импульс фронтенд-разработке.

Темы конференции:
1. Культура разработки: Узнайте о вызовах, с которыми сталкиваются лидеры отрасли, и о практиках, которые они применяют.
2. Главная точка нетворкинга: Встреча профессионалов, где вы сможете обменяться знаниями и установить профессиональные связи.
3. Источник инженерной мотивации: Два дня, которые зарядят вас мотивацией к развитию и вдохновят на работу над своими проектами.
4. Архитектура: Принципы построения масштабируемой архитектуры и подходы к управлению техническим долгом и миграцией кодовой базы.
5. Производительность: Научитесь создавать производительные веб-приложения, эффективно рендерить изменения и оптимизировать процессы разработки.
6. Коммуникации и процессы: Погружение в инженерную культуру, которая поможет снизить стоимость разработки и повысить эффективность командной работы.
7. Внедрение ML: Исследуйте, как искусственный интеллект может улучшить ваши продукты и ускорить разработку.
8. Будущее отрасли: Ознакомьтесь с будущим фронтенда, включая технологии AR и новые концепции фреймворков.

Также в этом году есть и традиционные треки: FrontOps, Технологии, Дизайн…

FrontendConf 2024 — это возможность стать частью сообщества, которое формирует будущее фронтенда. Ждём вас 30 сентября и 1 октября в Москве, в кластере "Ломоносов", чтобы вместе открыть новые горизонты разработки и управления.

Зарегистрируйтесь и присоединяйтесь к нам на FrontendConf 2024!
💩22🤡5👍1
Почему я люблю оффлайн конференции?

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

Простой пример. Когда я проживал в РФ, то я каждый год посещал Vuejs moscow. И не по причине, что мне интересно Vue или что-то типа того. Это просто свободная дата, когда можно было собраться на одной точке и пойти в бар.

Пользуйтесь этим. В современном мире не так просто собраться всей компанией знакомых в одном месте. И конференции - это отличный способ это реализовать.
👍12💩4🤡21
https://nodejs.org/en/blog/release/v20.17.0

Поздравляю. Код, который поддерживает require(esm) бекпортнули в 20 ноду. А это значит, что cjs умирает в следующем году со смертью node18.
👍20💩4🤡1
Прокачусь чуток на волне актуальных новостей: бан россиян в Notion.

Это неприятная вещь, но кмк, время облаков прошло ещё в 2022 как минимум, когда россиян побанили в куче сервисов. Да, это удобно, но любой может быть забанен где угодно.
Я где-то с 2020-2021 года мигрирую на offline-first окружение. Мой личный арсенал(корпоратам не подойдёт):

1) NAS Synology 1522 с кучей дисков(40ТБ+) как локальный сервак для разных сервисов. Умеет в докер, что позволяет разную фигню и не очень запускать
2) Synology photo как бекап всей галереи со всех моих устройств. Если Яндекс, Гугл или эпол меня забанит - всё сохранится у меня
3) Synology office как замена гугл докс. Как минимум все эксельки валяются у меня дома
4) gitea как локальный гит сервер. Запускается через докер на вышеописанном синолоджи. Является бекапом всех моих приватных и публичных github репозиториев
5) fsnotes для заметок. Они хранятся на гитхабе и локальной гитее как бекап
6) Бекапы всех ноутбуков и т.п. на вышеописанный синолоджи
7) bitwarden как замена 1password. Пока bitwarden используется как зеркало, так как в своё время я купил 1password на 4-5 лет. И пока подписка всё ещё есть
8) home-assistant.io - как управлялка всеми умными и не очень вещами в доме. Есть даже возможность локально управлять штуками, которые дизайнились как онлайн вещи. На голову выше чем любые комерческие решения. Яндекс, гугл или эпол идут в пень.
9) Ну и tailscale.com как VPN, который позволяет мне ходить домой из любой точки мира. Единственная онлайн точка отказа. Но удобство пока что перевешивает риски чего-то лишиться
10) Самописный скрипт для телеги, который бекапит абсолютно всю переписку раз в 1 минуту, чтобы умники не удаляли сообщения + был нормальный поиск по ним
11) synology contacts + calendar как бекапы для моих контактов и календарей.

Не стесняйтесь пытаться строить свои бекапы или локальные вервисы. Может так оказаться, что они будут на равне по удобству или даже удобнее коммерческих аналогов.
👍31🤡5💩42
Андруша.tjournal_edition

Сейчас происходит небольшой срач на тему "кто быстрее?" в небезызвестной соц.сети X:
К сожалению, оригинальный твит удалён, но суть была такова: мы сравниваем js фреймворки и пытаемся понять кто быстрее.
Из мемов: для svelte код сгенерировали через ChatGPT. В случае реакта использовали dev сборку.
Оставшиеся артефакты:
https://x.com/Rich_Harris/status/1828514846817624511
https://x.com/Rich_Harris/status/1828514846817624511

Автор пообещал опубликовать уже исправленное исследование https://x.com/matteocollina/status/1828670076490600593, но допускаю что и оно будет кривое.
И оказывается, оригинальный пост тоже сохранился: https://blog.platformatic.dev/an-ssr-performance-showdown
https://github.com/platformatic/ssr-performance-showdown

От себя могу добавить: Бенчмаркинг - это не просто сложная тема, а архисложная. Настолько, что почти никто в мире не умеет нормально бенчмаркать код. Поэтому если кто-то меряет производительность, не делая бенчмарки как часть проф деятельности - лучше не доверять его результатам. Совершить ошибку там можно буквально на любом чихе.

Простой пример вышеуказанных слов: https://github.com/platformatic/ssr-performance-showdown/pull/5#issuecomment-2314409414 Удали scoped-css и скорость растёт в 3 раза.

Могу порекомендовать поисследовать труды Андрея Акиньшина(в прошлом занимался производительностью JetBrains Rider/Resharper), а в частности его книгу "Профессиональный бенчмарк. Искусство измерения производительности" и его выступления на конференции dotnext. Он там не погружается в кишки дотнета, и рассказывает доступным языком как можно обосраться при проверках перфоманса. Увы, плейлиста у меня нет, но вы спокойно можете поискать "Андрей Акиньшин" в ютубе и найти почти все его материалы.
10👍22💩2🤡21
Технологии и репутация

Перед прочтение этой заметки я считаю, что обязан уведомить о конфликте интересов: я знаком с эффектором с первого его релиза и общаюсь/общался/знаком с многими из кор тимы эффектора уже долгое время. А с его автором Димой @monada_kedavra я провожу время в баре раза 3 в год стабильно, так что моё мнение может быть искажено.
Однако я считаю что effector.dev - это путь не втуда и reatom.dev лучше его.
Однако я считаю effector.dev одним из лучших решений для описания логики на рынке react приложений

А теперь можно перейти к основной теме:
https://habr.com/ru/companies/vk/articles/839632/

Я не хочу касаться содержания этой статьи, потому что это неважно. Я хочу поговорить о психологии людей.

Когда вы пишете какие-то материалы, которые критикуют что-либо нужно учитывать несколько ВАЖНЫХ и ещё раз ВАЖНЫХ вещей:

1) вы используете всю медийку платформы и силу бренда от которого вы публикуетесь. В данном случае это habr и vk. vk даёт доверие статье, так как продукт крупный, а habr - поисковый трафик. Лично у меня в топ 4 результатах поиска в гугле по запросу "effector js" находится 2 статьи хабра. И нет ни одной причины полагать, что статья выше не окажется на одном из этих мест

2) Люди не читают длинные статьи. Они смотрят на заголовок, если повезёт на выводы, а содержание просматривают(при критической удаче) по диагонали. Вычитывают печатные материалы единицы. И в итоге в голове откладывается только основная мысль "Продукт - говно".

3) Люди никогда не ищут опроверждения материалов и поэтому контрматериалы, разбирающие ошибки изначальных статей, не видимы для людей, которые в пункте 2 посчитали продукт говном

4) Опроверждения или ответки не попадают в рекомендательные алгоритмы одним и тем же людям. Зачастую это разные "пузыри", которые никак не пересекаются.
Прекрасный пример этого пункта: история Ильи Климова(@jsninja_news) и Владилена Минина(@js_by_vladilen). Так же не буду судить Минина, но видео(https://www.youtube.com/watch?v=p3vfmNIjmW4) Климова просто повесило ярлык(не касаюсь резонно или нет) на Минина о том что он инфоцыган.
Я даже больше скажу - я сам так считаю как минимум благодаря видео Климова. И больше скажу: я вообще не помню что там было в видео. Но ярлык уже повешен.

Выводы просты: хотите приченить ущерб продукту - просто напишите отрицательный отзыв о продукте. Если он нишевый(как эффектор), то запоминание того, что продукт говно вам обеспечено.
Если же вам важно донести максимально объективную точку зрения, то попробуйте хотя бы связаться с кор тимой ДО ПУБЛИКАЦИИ, а не после. Нет ничего плохого в том, чтобы написать своё мнение и мнение разработчиков продукта. Пусть читатель сам решает что валидно, а что нет.

Потому что сначала публиковать статью, наносить репутационный ущерб, а потом приходить в чат со словами "ну давайте обсудим, а я поправлю" - это прямо плевок. По причине вышеописанных пунктов. Если шо, он пришёл вот тут: https://news.1rj.ru/str/effector_ru/354994.
Правильньным поведением было бы, кмк, признать ошибку, удалить/скрыть статью, внести правки, чтобы отражалось мнение обеих сторон и опубликовать заново.

Предвосхищу вопрос: да, автор может писать что ему хочется, но это не значит что он не поступает как мудак. Причём именно "поступает". Контент самой публикации никакого отношения к этой мудачести не имеет.

Но а если вы хотите чему-то поднасрать - алгоритм как вам действовать выше. Дерзайте
1🤡29👍15💩92🤮2👎1🤔1
Forwarded from AlmatyJS
📣 Билеты на AlmatyJS #4 уже доступны

Финальное расписание докладов будет доступно на следующей неделе, а сейчас мы с радостью хотим объявить список спикеров на предстоящий AlmatyJS #4:

«Рынок никогда не ошибается?» — Андрей Васильев
«Biz+Dev=❤️» — Сергей Андреев
«Продуктовая аналитика или как понять насколько хорош ваш продукт?» — Уалихан Оразбаев

«Улучшаем UX с помощью streaming» — Павел Гасанов
«Рецепты MobX. Продвинутые практики для больших проектов» — Максим Титов
«Срочно выпускай это в прод» — Максим Горбатюк

«Назад в будущее: автостопом по трендам веб-разработки» — Атай Кебеков
«No-console: юзай devtools по назначению» — Адыл Жоро

Билеты доступны для покупки на Sxodim 🔥
Ждём вас 21 сентября в 12:00 на AlmatyJS #4.

Спасибо нашим партнёрам из MOST IT Hub за помощь в организации митапа.

@almaty_js
👍10💩2🤡2🥱1
Продолжаю пиарить конференции. В этот раз я уже сам буду в Алматы 21 сентября. Приходите посидеть, пообщаться о разном.
👍8💩2🤡2