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
Видно встраивание (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
Как пользуются айфоном слабовидящие. Заставляет удивиться и задуматься о UI/UX

https://twitter.com/Kristy_Viers/status/1287189581926981634