oleg_log
1.78K subscribers
1.86K photos
129 videos
9 files
2.77K links
Shelter for antisocial programmers "Oleg"

halp: @olegkovalov
web: https://olegk.dev
fov: @oleg_fov
chat: @oleg_log_blabla
podcast: @generictalks

about: https://xn--r1a.website/oleg_log/3200
Download Telegram
Вспомнил, что давно не рассказывал #саксес_сториз жизненные. Есть метрика с нашего сервиса, котороая как бы для нас сделана, в тех целях.

Конечно же появились люди из другой команды, которые на неё повесили алерты, при рестарте инстансов они получали крики Pagerduty, что логично. Попросили их не использовать эту метрику, ведь она для них неверная (данные ок, но не персистентные) и даже сказали, какую надо. Вроде круто.

Проблемка вот в чём. Уже прошло 9 месяцев с 1го разговора, они к нам приходили 5-6 раз с одним и тем же вопросом: "что вы там такое сделали что у нас алёрты летят ???". Тыкали носиком, что вот тут был тред на Слаке, вот сделайте по другому.

Таск у них висит, вопрос фикса - изменеиня одной строки в ямле, но нет, мы забываем и ходим раз в 1.5 месяца с вопросами "что вы тут опять ломаете??"
Yes as a Service http://ynaas.com/

Для создания своих сервисов вида:

нужнылидженерикивраст.ynaas.com

Сделано на Баше, очень минимально, прикольно https://github.com/izabera/ynaas
The whole time, their dashboard stayed green because from their point of view, they had tremendous availability. We're talking 99.999% here! Totally legit!

Well, this is the point where you find out that their "99.999%" availability is for their entire system. They see that, and they're good. It's not a problem! Everything is fine.

https://rachelbythebay.com/w/2019/07/15/giant/
oleg_log
Наказывать деньгами (урезанием зарплаты к примеру) за факапы в проде:
Не уверен насчет вариантов, может повторю опрос как будут отзывы и замечания
Cloudflare - угроза интернету?

(в контексте недавнего падения и того, что больше и больше ресурсов зависят от одной фирмы)
Anonymous Poll
52%
Да
28%
Не
21%
Результат
Confidential_VMs_2_tn2.gif
16.9 MB
🔐 Кстати, если вы, так же как и я пропустили эту новость - загляните. Google анонсировал Confidential VM.

Построили они их на 2nd Gen AMD EPYC процессорах с использованием AMD SEV фичи. Заявлено, что ни другие VM, ни сам Google доступа на виртуалку, равно как и доступа к памяти, которая будет зашифрована, иметь не будут. #google #security #напочитать | Блог | Канал
Не знал, что nonprofit 9.9.9.9 (Quad9) спонсируются IBM (https://en.wikipedia.org/wiki/Quad9) и из всех 4 (или 3 ? :) только Cloudflare догадались повесить хттп страницу.
Forwarded from Sysadmin Tools 🇺🇦
Правда или ложь?

Как известно, в последние годы, ведущие компании мира начали предлагать свои DNS-сервера для ускорения открытия сайтов.
Так, в частности, первенство делят Google (8.8.8.8), CloudFlare (1.1.1.1) и IBM (9.9.9.9).
Сегодня компания Apple предоставила свой собственный DNS-сервер 10.10.10.10, с новым алгоритмом сжатия suna.
Благодаря использованию новейших разработок в области телекоммуникации, а также сотрудничестве с MIT, инженерам из Купертино удалось достичь ускорения загрузки сайтов от 3 до 5 раз.
По истине невероятный прорыв стал возможен лишь благодаря недавно опубликованной научной работе физика Флоренса Зигмульда, в котором предлагается использовать квантовую декомпозицию IP-пакетов.
Видно встраивание (embedding) бинарных данных в бинарник (хах) таки произойдет.

2е интро от Расса с объяснением, что он придумал
https://twitter.com/_rsc/status/1285597041675120641

И сам тред-пропозал
https://github.com/golang/go/issues/35950#issuecomment-661926816
Решил доопенсурсить одну вещичку, как хороший гражданин Гитхаба, дописываю тесты. Необходимо было проверить, что поля структур от пользователя правильные.

Вариант1: вытащить часть логики, а остальное запихнуть в лямбды, чтобы красиво и без копипасты.

Вариант2: https://go2goplay.golang.org/p/CZrCcqpIanG

Не знаю, что тут можно сказать. Ну можно и так, и так.
oleg_log
Решил доопенсурсить одну вещичку, как хороший гражданин Гитхаба, дописываю тесты. Необходимо было проверить, что поля структур от пользователя правильные. Вариант1: вытащить часть логики, а остальное запихнуть в лямбды, чтобы красиво и без копипасты. Вариант2:…
Код, кому не хочется идти по ссылке

type Checker struct{}

func (Checker) Check(dst interface{}) error { return nil }

func TestBadStruct(t *testing.T) {
verify(t, func(checker *Checker) error {
return checker.Check(&struct {
Bool bool
}{})
})

verify(t, func(checker *Checker) error {
return checker.Check(&struct {
Int int
}{})
})
}

func TestBadStruct_Generic(t *testing.T) {
verify_gen(t, &struct {
Bool bool
}{})

verify_gen(t, &struct {
Int int
}{})
}

func verify(t *testing.T, testCase func(*Checker) error) {
t.Helper()

if err := testCase(&Checker{}); err == nil {
t.Fatal(err)
}
}

func verify_gen[type T](t *testing.T, s T) {
t.Helper()

cheсker := &Checker{}
if err := cheсker.Check(s); err == nil {
t.Fatal(err)
}
}
oleg_log
?
Лан, я перемудрил) Погрешил на рефлексию, а дебажить не хотелось. Просто нужно было передавать указатель на структуру и с interface{} все стало на свои места.

Штош, пойду выпиливать лямбды и удалять Бартоша из подписок.

Спасибо Егору, что заставил меня еще раз в код посмореть. А ваще, дженерики ничего бы нового не дали, упс)
It's been by far the most requested feature for a while, and it's finally here: Svelte officially supports TypeScript.

https://svelte.dev/blog/svelte-and-typescript