Решил доопенсурсить одну вещичку, как хороший гражданин Гитхаба, дописываю тесты. Необходимо было проверить, что поля структур от пользователя правильные.
Вариант1: вытащить часть логики, а остальное запихнуть в лямбды, чтобы красиво и без копипасты.
Вариант2: https://go2goplay.golang.org/p/CZrCcqpIanG
Не знаю, что тут можно сказать. Ну можно и так, и так.
Вариант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
https://svelte.dev/blog/svelte-and-typescript
svelte.dev
Svelte <3 TypeScript
Typernetically enhanced web apps
oleg_log
Лан, я перемудрил) Погрешил на рефлексию, а дебажить не хотелось. Просто нужно было передавать указатель на структуру и с interface{} все стало на свои места. Штош, пойду выпиливать лямбды и удалять Бартоша из подписок. Спасибо Егору, что заставил меня…
Меня отпустило и я закончил.
Делаю я 1 селфхост проектик, и хотелось простого - читать конфиг из разных теплых мест. Брать какие-то там вайперы-шмайперы спасибо, но не хотел.
В итоге родился
С АПИ вроде все понятно и меняться особо не должно, но фидбек послушаю, мой случай покрывает и я пока доволен.
Тут можете жмакнуть звездочку https://github.com/cristalhq/aconfig буду оч признателен. #hq
Отдельное и огромное спасибо Искандеру, за выслушивание моих попыток и крутой совет с flag.FlagSet, чуть позже расскажу, что там такое было прикольное.
Делаю я 1 селфхост проектик, и хотелось простого - читать конфиг из разных теплых мест. Брать какие-то там вайперы-шмайперы спасибо, но не хотел.
В итоге родился
aconfig. Проще некуда. Читает с дефолтов структуры, с файлов, с енв и конечно флагов.С АПИ вроде все понятно и меняться особо не должно, но фидбек послушаю, мой случай покрывает и я пока доволен.
Тут можете жмакнуть звездочку https://github.com/cristalhq/aconfig буду оч признателен. #hq
Отдельное и огромное спасибо Искандеру, за выслушивание моих попыток и крутой совет с flag.FlagSet, чуть позже расскажу, что там такое было прикольное.
GitHub
GitHub - cristalhq/aconfig: Simple, useful and opinionated config loader.
Simple, useful and opinionated config loader. Contribute to cristalhq/aconfig development by creating an account on GitHub.
Чувствуюется рука Microsoft, но новость приятная всем https://blog.rust-lang.org/inside-rust/2020/07/23/rust-ci-is-moving-to-github-actions.html
blog.rust-lang.org
Rust's CI is moving to GitHub Actions | Inside Rust Blog
Want to follow along with Rust development? Curious how you might get involved? Take a look!
Магия это плохо, если не вротмненоги. Столкнулся с такой фишечкой Rust, когда он выводит тип сам, заглядывая в будущее (а именно на следующие строки кода).
Это приятно, что компилятор знает о предстоящих действиях, но это так же напрягает из-за неявных допущений.
Хоть и пример о константах и явные вызовы фций такое бы не пропустили(ведь да?), некое ощущение тревоги остаётся.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=d653649834e63684a51c83896212ffbd (пойду за ведром)
Это приятно, что компилятор знает о предстоящих действиях, но это так же напрягает из-за неявных допущений.
Хоть и пример о константах и явные вызовы фций такое бы не пропустили(ведь да?), некое ощущение тревоги остаётся.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=d653649834e63684a51c83896212ffbd (пойду за ведром)
Если бы Телеграм стал платным (допустим 5-10 баксов в месяц), вы бы продолжили им пользоваться?
(допустим платные фичи не добавили, просто весь сервис стал по подписке)
(допустим платные фичи не добавили, просто весь сервис стал по подписке)
Anonymous Poll
28%
Да
57%
Не
15%
Результаты
А, и еще, хороший стикер благодаря Александру появился:
хотя пикчу сделал Михаил, что немаловажно
хотя пикчу сделал Михаил, что немаловажно
oleg_log
А, и еще, хороший стикер благодаря Александру появился: хотя пикчу сделал Михаил, что немаловажно
This media is not supported in your browser
VIEW IN TELEGRAM
А почему еще никто не сказал, что Cassandra 4.0 Beta выпустили? Судя по описанию не зря они затягивали. Надо будет на свежую голову почитать подробнее. Apple (да если бы только ни) постарались хорошо.
https://cassandra.apache.org/blog/2020/07/20/apache-cassandra-4-0-beta1.html
https://cassandra.apache.org/blog/2020/07/20/apache-cassandra-4-0-beta1.html
cassandra.apache.org
Introducing Apache Cassandra 4.0 Beta: Battle Tested From Day One
This is the most stable Apache Cassandra in history; you should start using Apache Cassandra 4.0 Beta today in your test and QA environments, head to the dow...
Мы тут о системах сборок ругаемся, можете подключаться (не, не подкаст, прост чат) https://xn--r1a.website/generictalkschat
Узнал о таком крутом канале https://xn--r1a.website/awesome_russian_podcasts и его основе в виде репы https://github.com/unchase/awesome-russian-it/blob/master/Podcasts.md
Определенно полезно, если вы слушаете подкасты. Николаю отдельное спасибо за его труд.
Определенно полезно, если вы слушаете подкасты. Николаю отдельное спасибо за его труд.
Telegram
Awesome Russian Podcasts
Ежедневно в группе публикуются новые выпуски ИТ-подкастов, собранных в GitHub-репозитории https://github.com/unchase/awesome-russian-it
Для YouTube-каналов есть аналогичный канал - @awesome_russian_youtube
Присоединяйтесь и зовите друзей!
Для YouTube-каналов есть аналогичный канал - @awesome_russian_youtube
Присоединяйтесь и зовите друзей!
oleg_log
Однако это он ворвался TIL: The well-known formula for calculating a Bloom filter's false positive probability is wrong https://twitter.com/martinkl/status/1247188496143601664
По поводу передоказательства false positive в Bloom filter https://xn--r1a.website/hn_best_comments/4972
Telegram
HN Best Comments
Re: Bloomfilters debunked: Dispelling 30 Years of math...
I feel like most commenters are missing the point. The fact that this issue was finally settled once and for all using a proof assistant is a huge achievement! That's the highest degree of…
I feel like most commenters are missing the point. The fact that this issue was finally settled once and for all using a proof assistant is a huge achievement! That's the highest degree of…
Как пользуются айфоном слабовидящие. Заставляет удивиться и задуматься о UI/UX
https://twitter.com/Kristy_Viers/status/1287189581926981634
https://twitter.com/Kristy_Viers/status/1287189581926981634
Twitter
Kristy Viers 🦯
I thought I would share how I, as someone who is visually impaired use my iPhone.☺️
oleg_log
Интересный вопрос на самом деле. Для тех, кто не хочет ответить в твитор, может ответить мне 👀 @olegkovalov https://twitter.com/davidcrawshaw/status/1277111328155398145
Зря я пошел смотреть ответы.
CRDT, TLA+, SMT вот прям те вещи, без которых сейчас сложно начать проект. Про ML можно даже не говорить.
А вот про примитивы для многопоточного программирования я не заметил. Хотя если подумать, решение в стдлиб очень бы упростило жизнь в новом языке.
Еще порадовало, что многие упомянули телеметрию(трейсинг, метрики) и жсон/ямл, полезно ведь.
Вопрос встроенной ORM такой же полезные, как и: "а нужен ли нам 1 единый интерфейс под все БД(хотя бы NoSQL) ?".
CRDT, TLA+, SMT вот прям те вещи, без которых сейчас сложно начать проект. Про ML можно даже не говорить.
А вот про примитивы для многопоточного программирования я не заметил. Хотя если подумать, решение в стдлиб очень бы упростило жизнь в новом языке.
Еще порадовало, что многие упомянули телеметрию(трейсинг, метрики) и жсон/ямл, полезно ведь.
Вопрос встроенной ORM такой же полезные, как и: "а нужен ли нам 1 единый интерфейс под все БД(хотя бы NoSQL) ?".
oleg_log
Cloudflare - угроза интернету?
(в контексте недавнего падения и того, что больше и больше ресурсов зависят от одной фирмы)
(в контексте недавнего падения и того, что больше и больше ресурсов зависят от одной фирмы)
Таки большинство за то, что Cloudflare это угроза. Спешу не согласиться.
Если какой-то сервис решает спрятаться за CF, то...падение CF это все так же отвественность сервиса, разве нет? Да, есть SLA, да, CF получают за это деньги и должны поддерживать стабильность, но ведь никто не застрахован :)
Слишком много сервисов живут за CF и как-то вот особо нарекание нет, пока не упадёт. Совпадение? Как минимум 10% мирового трафика идёт через них и вроде бы все ок. Возможно если бы они все поделили на независимые регионы, то было бы всем спокойнее, но на диване все виднее.
Случаев спасение от DDoS и прочих неприятностей (еще и неплохое кеширование) только подтверждает их полезность, пруфую многими друзьями с терабайтным контентом в день.
А здесь прикольная история, как выставить 13.7гб файл в интернет и узнать кошельком, что Cloudflare кеширует только дл 512мб. Поучительно. Ток в чем проблема Cloudflare? https://chrisshort.net/the-aws-bill-heard-around-the-world/ (спасибо Вадиму за ссылку).
Около итог: все может упасть, и AWS, и CF, и даже контейнер, хотя в тут же AWS ослуживает неисчисляемое кол-во трафика и клиентов, через CF идёт тоже сотни Пб и контейнеры могут ходить годами без рестартов. Так в чем проблема пользоваться этими вещами? :)
Если какой-то сервис решает спрятаться за CF, то...падение CF это все так же отвественность сервиса, разве нет? Да, есть SLA, да, CF получают за это деньги и должны поддерживать стабильность, но ведь никто не застрахован :)
Слишком много сервисов живут за CF и как-то вот особо нарекание нет, пока не упадёт. Совпадение? Как минимум 10% мирового трафика идёт через них и вроде бы все ок. Возможно если бы они все поделили на независимые регионы, то было бы всем спокойнее, но на диване все виднее.
Случаев спасение от DDoS и прочих неприятностей (еще и неплохое кеширование) только подтверждает их полезность, пруфую многими друзьями с терабайтным контентом в день.
А здесь прикольная история, как выставить 13.7гб файл в интернет и узнать кошельком, что Cloudflare кеширует только дл 512мб. Поучительно. Ток в чем проблема Cloudflare? https://chrisshort.net/the-aws-bill-heard-around-the-world/ (спасибо Вадиму за ссылку).
Около итог: все может упасть, и AWS, и CF, и даже контейнер, хотя в тут же AWS ослуживает неисчисляемое кол-во трафика и клиентов, через CF идёт тоже сотни Пб и контейнеры могут ходить годами без рестартов. Так в чем проблема пользоваться этими вещами? :)
chrisshort.net
The AWS bill heard around the world | ChrisShort.net
The tale of the July 4th surprise $2700 AWS bill. It is more nuanced than you think and might have exposed a bug.