Satont.
298 subscribers
321 photos
52 videos
1 file
202 links
Download Telegram
Аналог Firefox Multi-Containers, но под хром: https://chrome.google.com/webstore/detail/megbklhjamjbcafknkgmokldgolkdfig
Позволяет вам создать "коробочки", в которых у вас разные аккаунты под сайты. Мне, как вы понимаете, — мастхэв.

Только у этого экстеншена есть киллерфича - синхронизация cook'ов.
🔥1
Вью из коробки форматирует console.log рефов в адекватный формат, если у вас включена настройка в браузере.
🔥3
Знаете, наверное даже хорошо, что в го простая система типов.
Прекратите спрашивать документы на кассе, мне 25 лет по паспорту 35 в душе, ало.
Выходные расписаны.

1. сб — пью вино, ем питсу.
2. вс — пью вино, ем питсу.
5💊2
Я тактично промолчу на счёт того, что twitch сначала ввели известные вам всем правила, а потом откатили свои изменения. )
👌1
Live stream started
Live stream finished (26 minutes)
Базовый пулреквестик получился в Twir на +6,215 −4,356.

Переписал events сервис.
Сервис отвечает за рассылку внутренних ивентов, которые создаются в twir. Например кто-то подписался на канал, использовал команду. Пользователь может создать слушатель на эти ивенты, и N количество операций.

К примеру ивент FOLLOW с операцией Send Message.

У операций может быть delay, то есть отложенное выполнение, это вызывает проблему: когда приложение падает, или перезапускается в следствии нового обновления – мы теряем этот ивент и его операции, потому как он выполняется в отдельной горутине.

Решений может быть несколько:
1. Написать собственные абстракции для возобновления выполнения после перезапуска.
Минус у такого в том, что... всю эту логику нужно будет писать, поддерживать, продумывать схемы БД.
2. Использовать что-то готовое.

Я выбрал вариант 2, и остановился на temporal.io, так как он имеет SDK по Go, TypeScript, есть то что нужно именно мне.

Temporal позволяет описать Flow, и описать динамические Activities для этого Flow.
Имеет поддержку Sleep, которую на самом деле обрабатывает внутренне, а не вешает горутину.
Условно на вход попадает 2 операции, между ними есть Sleep – они просто попадут в очередь на обработку, управление ими перейдёт на temporal, своего кода писать не нужно.
Реализовал worker который выполняет activities, и полетели.

Из минусов: я не нашёл как создать состояние для Flow, чтобы в рамках одного запущенного Flow можно было расшарить состояние между Activities с мутациями . Вынес просто в redis, привязав к Flow id.
Satont.
Базовый пулреквестик получился в Twir на +6,215 −4,356. Переписал events сервис. Сервис отвечает за рассылку внутренних ивентов, которые создаются в twir. Например кто-то подписался на канал, использовал команду. Пользователь может создать слушатель на эти…
Переписал теперь таймеры, которые отправляют сообщеньки в чат раз в N времени.

Тоже использовал temporal, так как там есть решение по scheduled тасочкам.
Так как теперь там воркеры, по приколу заскейлил таймеры в 6ти экземплярах. Ну почему бы и нет, всё равно гошные приложения потребляют мало оперативной памяти.
Пакет от samber чувака – это который делал lo (lodash для го), do – di контейнер для го.

Он сделал пакет, который способен сделать из нескольких slog handler ов – один https://github.com/samber/slog-multi
А ещё он сделал пакеты под самые популярные логгеры для go, чтобы их можно было подсоединить к slog.

Slog нужен для того, чтобы абстрагировать имплементацию логгера от вашего приложения. Посредством либ или самописного кода, вы подсоединяете любимый логгер к slog, и используете его интерфейс. Можете менять логеры, менять таргет writer'а(допустим писать не в консоль, а в какое-то хранилище).

Я в твире у себя сделал один логгер под все приложения, подключил к нему zerolog + sentry на ошибки, ещё в и temporal его прокинул.
👍2🔥1
Вы можете использовать save-exact=true в вашем глобальном\проектовом .npmrc, чтобы пакеты по умолчанию устанавливались с закреплённой версией 1.2.3, а не semver кареткой ^1.2.3.
👍1
Кто нибудь юзает golangci-lint? Можно как-то ошибочки прямо в `goland`е подсвечивать?
200 человек. 🥳
🎉21
Satont.
Кто нибудь юзает golangci-lint? Можно как-то ошибочки прямо в `goland`е подсвечивать?
Оказывается я делал немного неправильно.
Есть плагин, который умеет подсвечивать ошибочки прямо в goland, при этом filewatcher настраивать не нужно.

Моя ошибка была в том, что я не поставил глобально golanci-lint бинарник, и не указал плагину его путь. После того как сделал его — в редакторе стали появляться ворнинги\ошибки.
AMD 7800xt взял.
👌101👍1🌚1
Уже в компьютере, всё работает.
😱6👌3
Satont.
Уже в компьютере, всё работает.
В пабге упор в проц. Jokerge