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
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%
Результаты
А, и еще, хороший стикер благодаря Александру появился:
хотя пикчу сделал Михаил, что немаловажно
А почему еще никто не сказал, что Cassandra 4.0 Beta выпустили? Судя по описанию не зря они затягивали. Надо будет на свежую голову почитать подробнее. Apple (да если бы только ни) постарались хорошо.

https://cassandra.apache.org/blog/2020/07/20/apache-cassandra-4-0-beta1.html
Мы тут о системах сборок ругаемся, можете подключаться (не, не подкаст, прост чат) https://xn--r1a.website/generictalkschat