Satont.
300 subscribers
320 photos
52 videos
1 file
201 links
Download Telegram
Вчера крутая-лучшая-суперская винда высрала 2 блюскрина, и поломала ключи для secure-boot каким-то образом.

Из-за этого пришлось выписывать новые ключи в биосе, и у меня поломался линукс из-за этого, видимо потому что загрузик был подписан другими ключами.
Ну ладно, разобрался, переустановил grub (перед этим попробовав systemd-boot, refind).

Пришлось 1.5-2 часа разбиратья с этой всей фигнёй, вместо того чтобы быть счастливым и купить мак за 500-1000к.

Хотя главный минус мака для меня это отсутствие тайлинга нормального, yabai кал. 😠
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥5
13
Добавил ClickHouse в twir.app! 🚀

Пока записываю туда только:
- сообщения с чата

- использование команд
Что дало:
1. почти моментальный count() квери.

- использование смайликов
Что дало:
1. почти моментальный count().
2. меньший размер таблички.
3. быстрое аггрегирование таймсерии для смайлов, для года данных — 30мс с клиента, а это значит общее затраченное время на запрос, нетворк раундтрипы, скан, вообщем весь цикл.
4. быстрая выборка топа, истории.

Есть ещё что туда писать, но пока не переделывал.

Подтюнил конфиг чтобы не писалось гигибайты логов, а то на работе есть некоторые таблички логов, которые вестя 70гб. Можно было бы просто выставить ttl, но мне пока эти данные не нужны.

Так же человек с чата подсказал на счёт того, чтобы для колонок использовать тип данных LowCardinality(String) на часто повторяющиеся строки, что уменьшило их размер на диске в разы. Не знаю даёт ли это что-то в перформансе.

Мигрировал данные из постгреса очень легко, просто выполнил:
INSERT INTO chat_messages
SELECT *
FROM postgresql('postgres:5432', 'twir_prod', 'chat_messages', 'twir', 'twir');

INSERT INTO channels_emotes_usages
SELECT id, "channelId" as channel_id, "userId" as user_id, "createdAt" as created_at, emote
FROM postgresql('postgres:5432', 'twir_prod', 'channels_emotes_usages', 'twir', 'twir')


Так как clickhouse очень быстрый, 13млн записей загрузилось что-то типо за 2 секунды.

Пока ограничил ему 2cpu и 3GB ram, что коненчо же смешно для клика, но больше гига оперативы он не потребляет на моих размерах.

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

Прикрутил opentelemetry к клиенту клика, могу видеть query, их время.
7❤‍🔥41🦄1
Satont.
Добавил ClickHouse в twir.app! 🚀 Пока записываю туда только: - сообщения с чата - использование команд Что дало: 1. почти моментальный count() квери. - использование смайликов Что дало: 1. почти моментальный count(). 2. меньший размер таблички. 3. быстрое…
С метриками чутка пришлось повозиться, потому как из коробки клиент не имеет инструментария внятного, но всё же всё работает как я хочу.

Даже для batch запросов могу видеть сколько rows было внесено.
❤‍🔥7
Satont.
Добавил ClickHouse в twir.app! 🚀 Пока записываю туда только: - сообщения с чата - использование команд Что дало: 1. почти моментальный count() квери. - использование смайликов Что дало: 1. почти моментальный count(). 2. меньший размер таблички. 3. быстрое…
Ещё из прикольного — у меня для создания\запуска миграций используется собственная cli.

Докинул туда clickhouse, и теперь одним и тем же способом могу создавать\запускать миграции для этих бд.

Отвечая на вопрос вообще ПОЧЕМУ было принятно решение мигрировать эти данные из postgres:

Первая
Это аналитические данные, они чаще пишутся, чем читаются., и никогда не изменяются.
А так как пишутся они ну очень часто (на каждое сообщение с чата), то это создаёт лишнюю нагрузку постгресу, чего я бы хотел избежать.
Постгрес на инсерты делает очень много операций к диску, чем кликхауз не злоупотребляет.
Таким образом я скину большую часть нагрузки с постгреса. Когда накопится больше данных — покажу графики с графаны, но я уже вижу улучшения.

Вторая
Я просто хочу чуть глубже поиспользовать ClickHouse. Twir всегда был тем проектом, где я обкатываю технологии для себя, если нахожу им пременением. Мне кажется тут хорошее применение.

Добавил партишены на даты, и данными можно очень быстро оперировать при выборках.
❤‍🔥102👍2
Тестят новый рефрешнутный ui, хотя недвано совсем обновились с старого убогого.

Это дизайн с их вечно beta редактора Fleet.

Прикольно выглядит, мне нравится.
Пока только в 2025.2 EAP, не в релизе.

https://blog.jetbrains.com/platform/2025/06/testing-a-fresh-look-for-jetbrains-ides/?ref=dailydev
❤‍🔥52👎2🆒2
РКН, мой любимый РКН.

Они стали блочить Cloudflare, Hetzner, и потому пришлось для Российских юзеров взять сервер, и направить главный домен twir.app на него, с которого уже идёт прокси до hetzner.

То есть сейчас user -> proxy server -> hetzner proxy service -> service.

Соответственно я теряю сразу бенефиты Cloudflare по rate limit, anti-ddos, auto ssl, cache, anti-ai scrapping, font/img cdn optimization, фронтовые метрики аналитику (и вообще метрики) в числе которых: LCP, CLS, INP, pages visits, pages views, стата по странам и вот это всё, и кучу всего сверху, включая S3.

Очень здорово, круто. Спасибо РКН!

Теперь придётся больше селфхостить, больше париться.
4😡2
Размер зависимостей Twir.
Golang vs JavaScript.

Лицо чела, который решил законтрибьютить без интернета нормального — представили?
❤‍🔥3😁1
Кто бы мог подумать.

Пока без подробностей от автора, но видимо его подписывали на одни условия, а потом продиктовали другие. Кто-то верит, что с nuxt будет иначе? Я — нет.

Если кто не шарит — это автор swc, одного из быстрейших бандлеров и парсеров js, написанный на rust. Его использует под капотом turbobuild.
GOWRAP

Библиотека на генерацию обёрток под интерфейсы, чтобы добавить в них реализацию разных вещей, например opentelemetry, логирование, валидацию, prometheus.

С помощью неё вы легко можете оборачивать ваши реализации по одному и тому же паттерну.

https://github.com/hexdigest/gowrap
👍2
Мужик из Reyohoho пошёл, форкнул bttv, и добавил в него прокси, чтобы у вас малюток работал 1080р и смайлики с 7тв.

https://t.iss.one/reyohoho_twitch_ext
👍5🗿2
уаааааааа, я сейчас умру.
🍓4
Channel photo updated
The most smart alt right:
(xlibre moment)
This media is not supported in your browser
VIEW IN TELEGRAM
🗿6😁3🫡31🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Я опять на машинки дрифтовые смотрю.
🏆9❤‍🔥3🔥3🤪3
🍌7❤‍🔥4😍4😱1