artalog – Telegram
artalog
4.2K subscribers
533 photos
40 videos
39 files
897 links
Развернутые ответы на вопросы в чатах, мысли от рабочих процессов.
Вопросы - @artalar.
Download Telegram
Вдруг кому полезно будет.

Вот уже час мой MacBook Air на m1 подключен к Xiaomi Power Bank 3 30000 и заряд ноута не меняется (сижу в браузере и телеге, фоном открыто куча всего).

Закрыл крушку на 5 минут - прибавился процент к зараядке.

Интереснее всего, конечно, сколько раз сможет этот банк зарядить мак с нуля, но такие эксперименты мне пока не удобно проводить.

UPD. Зарядка с закрытой крышкой:
29% в 16-00
54% в 20-00 (+25 %)
67% в 21-15 (+13%)
На банке все еще мигают 3 индикатора из 4.
🔥1
дйствтлн, почему бы не запилить ~большую фичу и не рассказать об этом вообще никому: ни в доках, не в релизноутах.

GraphQL экосистема меня очень сильно раздражает одной простой проблемой - нет легкого клиента для запросов и сабсткрипшенов (без кешей и тп). Ну как нет, вот есть, оказывается, но об этом никто не говорит О_о
Я пользуюсь graphql-request уже очень давно и до сих пор мне не хватало именно подписок. Что ж, посмотрим как оно себя поведет.

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

P.P.S. чета с того времени либа заметно подросла в размере =(
👎1
Именование коммитов

Conventional Commits я сам использую, тк это распространенный стандарт и под них есть тулинг, но лично мне не хватает точности в этом стандарте и я бы хотел видеть такую систему:

Название коммита должно состоять из 4 частей: фича (бизнес-сущность), техническая-сущность, тип изменения, описание (опционально). При этом фича может разделяться (точкой) на подфичи, а описание содержать номер задачи. Первые три части разделяются /, перед описанием ставится двоеточие:


const commitMessage =
${featureName}.${subFeatureName}/${techType}/${changeType}: ${issueNumber} ${denoscription};


Примеры:

shopCard.amount/style/mod: #27 outline - изменили стиль аутлайна для инпута суммы на корзине
shopCard/test/add: #28 snapshots - добавлено снапшот-тестирование для корзины
app/build/fix: #29 reduce bundle size
charts/style/fix: overflow

Технические типы:

logic - business logic of user feature
style - view (UI) of user feature
util - utility functions and services
type - types definition
test - tests for functional
doc - denoscription and specification
example - storybook, docz, etc
deps - third party dependency changes (replaces, forks, API improves)
perf - performance changes
pretty - prettify formating, white-space, missing semi-colons, etc
config: changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm), configuration files and noscripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)

Типы модификаций

add - new functional
mod - modifying functional with behavior changes
fix - correcting functional without behavior changes (refactor, inner interface updates)
del - delete functional

Зачем? Такая система очень упрощает чтение истории и поиск по ней, форсит использовать атомарные комиты (надо писать что это и зачем?), позволяет хранить в комит месадже всю информацию об изменении, при этом оставляя его кратким.

P.S. хочу я это с 2019, но все руки не дойдут комитлинт донаписать.
👎13🤯6👍4
Задачка простая - создать скрипт элемент, если такого нет.

На первом скрине типы ругаются, потому что ТС не сужает тип после переприсваивания переменной, что странно и я не знаю почему так происходит. С юнионами такое работает, а вот с интерфейсами и наследованием, видимо, правила другие. В любом случае, onload правильно ошибку выдает.

На втором скрине, кажется, все красиво, но не типобезопасно, хотя ТС считает иначе. Вот воспроизведение ошибки в рантайме.

На третьем скрине уже решение правильное по типам и рантайму, но вербозное.
Конечно, хотелось бы какой-то хелпер, который делает асерт querySelector на HTMLScriptElement и мы бы могли использовать одну переменную, но у нас на проекте либы для контрактов нету. Как оно могло бы выглядеть можете посмотреть на 4 скрине.

Про рантайм контракты я рассказывал в этом докладе.
👍2🔥1
Live stream started
Live stream finished (1 hour)
Семантические селекторы

В статье Style with Stateful, Semantic Selectors описывается идея использования атрибутов доступности как селекторов состояний. Мне кажется это идея очень правильной: нужно не забывать про те фичи что уже есть в платформе, использование их косвенных свойств (видимость в css), помогает гарантировать что про них не забудут и это сделает качество продукта лучше для части пользователей.

В чатике по a11y подсказали какие ещё атрибуты отвечают за состояние элемента и теперь одна из главных задач для #mono это реализация этой практики.

https://github.com/artalar/mono/issues/5
👍2😁1
А я вот не считаю макос операционкой с хорошим UX.

Новость о дырке в безопасности, но дело совсем не в этом.

Только что зашел в Software Update (почему не System??) и там написано что ОС актуальна, при этом написано что последний чек был вчера днем, wat? Кнопки “проверить апдейт” нет. Захожу в Advanced, там тоже нет кнопки, закрываю модалку, с окна стирается вся инфа и показывается лоадер, wat? Лоадер висит секунд 15 - столько нужно что бы сделать гет на последнюю версию??
Окей, говорит, есть апдейт. Нажимаю обновится - грузит 3ГБ О_о

UPD: скачал три, а в More Info показывает 2.21.

И вот таких вот вещей куча.

Для меня Mint лучшая ОС. Но даже винда мне нравится больше макоса, жаль только тормозит по причине и без.
👍10👎5👏2
В пятницу делюсь интрересным видосом, как обычно.

https://youtu.be/PUv66718DII

В этом докладе десятилетней давности показана разработка на технологиях, о которых и сейчас мы можем только мечтать. Какие-то обрывки есть в нашем повседневном инструментарии, но слаженной системы не наблюдается вовсе.
Очень вдохновляющий доклад. И постоянно повторяйте себе при просмотре - это 2012 год 🙂
👍4
Кек, некст использует только одно ядро вашего сервера, и вот как это исправить.
🤔14
Сложность фронт разработки одинаковая у маленьких и больших компаний, а сложность бек разработки различается для маленьких и больших компаний
Anonymous Poll
26%
Согласен
74%
Не согласен
Уже неделю вся семья болеет, поэтому тут так тихо. Сам уже выздоровел, но много времени нужно на помощь родным, так что я не успеваю написать пост про ценность иммутабельных данных: зачем они нужны и какие проблемы помогают решать.
Если у вас есть знакомые статьи про это - поделитесь в комментариях, скину сюда если будет что-то интересное.
Designing Events-First Microservices

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

Информация преподносится хорошо и будет полезна всем инженерам, не только бекенд разработки. Например, описанные принципы помогают понять как реактивное программирование помогает уменьшить связанность кода. И этот принцип применим абсолютно везде: от UI-виджетов, до бекенд сервисов.
👍8
На что уходят часы разработки реатома - ну я туплю в то как промисы работают (не первый раз уже). Первый скрин - как было, второй - как стало (комментарий внизу описывает почему).
🤔4👍2
https://news.1rj.ru/str/ctodaily/1626

Помимо топика, меня не устраивают облачные диски своими корявыми клиентами, в которых часто не хватает каких-то фич и есть проблемы с UX.

Что бы я хотел - это локальное приложение для синхронизации нескольких дисковых ресурсов: гугл драйв, авс, sftp, локальная папка и тп. Я управляю с любого файл менеджера своими локальными папками и файлами, а оно автоматом расползается бекапами по всяким дропбоксам и на личную виртуалку.
Не знаете таких приложений?) Быстрый гуглинг ничего дельного не дал, обычно предлагают комбайны, которые все на себя замыкают и денег за это просят.

UPD: спасибо за рекомендацию rclone.org.

Почему я против локальных (в квартире) NAS’ов:
1) Нужно выложить сразу много денег.
2) Отключение света или электричества в квартире явление не редкое и гарантий тут нет.
3) Стихийное бедствие в виде пожара, грабежа, да банального “зацепил провод и упало” грозит потерей всего. А любой переезд = офлайн.
4) Хотите доступ с интернета? Платите помесячную аренду за белый IP.
Заменил в реатоме ts-node на tsx - колдстарт поменялся с “быстро”, на “мгновенно”.

UPD: а дело, оказывается, в дефолтах. ts-node делает тайпчек по умолчанию, а tsx нет. Но я все равно останусь на tsx, потому что он без проблем запускает код с модулями, ну и вообще посмотрите сравнение.
❤‍🔥14👍1🔥1