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
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
oleg_log
Лан, я перемудрил) Погрешил на рефлексию, а дебажить не хотелось. Просто нужно было передавать указатель на структуру и с interface{} все стало на свои места. Штош, пойду выпиливать лямбды и удалять Бартоша из подписок. Спасибо Егору, что заставил меня…
Меня отпустило и я закончил.

Делаю я 1 селфхост проектик, и хотелось простого - читать конфиг из разных теплых мест. Брать какие-то там вайперы-шмайперы спасибо, но не хотел.

В итоге родился aconfig. Проще некуда. Читает с дефолтов структуры, с файлов, с енв и конечно флагов.

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

Тут можете жмакнуть звездочку https://github.com/cristalhq/aconfig буду оч признателен. #hq

Отдельное и огромное спасибо Искандеру, за выслушивание моих попыток и крутой совет с flag.FlagSet, чуть позже расскажу, что там такое было прикольное.
Магия это плохо, если не вротмненоги. Столкнулся с такой фишечкой Rust, когда он выводит тип сам, заглядывая в будущее (а именно на следующие строки кода).

Это приятно, что компилятор знает о предстоящих действиях, но это так же напрягает из-за неявных допущений.

Хоть и пример о константах и явные вызовы фций такое бы не пропустили(ведь да?), некое ощущение тревоги остаётся.

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=d653649834e63684a51c83896212ffbd (пойду за ведром)
Если бы Телеграм стал платным (допустим 5-10 баксов в месяц), вы бы продолжили им пользоваться?

(допустим платные фичи не добавили, просто весь сервис стал по подписке)
Anonymous Poll
28%
Да
57%
Не
15%
Результаты
А, и еще, хороший стикер благодаря Александру появился:
хотя пикчу сделал Михаил, что немаловажно