Size: a a a

2019 June 26
oleg_log
ExponentiallyDecayingReservoir это такой крутой контейнер для метрик, который выжирает под 1.5гб рама и висит там очень долго (почти забирая треть рама сервиса).

А потому что внутри ConcurrentSkipListMap. А она далеко не легко весная, а метрик хочется больше. Но не такой же ценой, блин.

(резервуар из пакета com/codahale/metrics если что)
источник
oleg_log
источник
oleg_log
Узнал сегодня о макросе include в Rust, который парсит заданный файл как выражение на расте. В доке сразу советуют им не пользоваться лишний раз. Действительно, странно-опасная штука, контект выражения смешивается с округающим кодом. Но круто, да.

/// File 'monkeys.in':
['🙈', '🙊', '🙉']
   .iter()
   .cycle()
   .take(6)
   .collect::<String>()

/// File 'main.rs':
fn main() {
   let my_string = include!("monkeys.in");
   assert_eq!("🙈🙊🙉🙈🙊🙉", my_string);
   println!("{}", my_string);
}

https://doc.rust-lang.org/std/macro.include.html

И более адекватные братья include_bytes & include_str. Работаю так же, ток типы байт аррей и строка соотв.

Казалось бы, причем тут префикс include, а как подсказал друг, это смахивает на include из си. Как помню в ранних версиях это просто означало: вставь этот файл сюда и компиль (хотя си далеко от этой мысли не ушел)
источник
oleg_log
Штош, в го завозят try к 1.14, разрешают накладывание интерфейсов, ругаются на strings(int), улучшают криптографию. Аве

https://blog.golang.org/go2-next-steps
источник
oleg_log
Если кратко, то try работает так. Там есть одна тонкость, когда он используется с go и defer. Пользоваться можно, но смысл сомнительный.
источник
oleg_log
Do…or do not. There will be a try.
(c)
источник
oleg_log
источник
oleg_log
вдохновлялся старым твитом https://twitter.com/oldprog30/status/758267463821848576
источник
2019 June 27
oleg_log
Далеко не редкий диалог:
- (предположительно глупый вопрос)
- (долгий и подробный ответ, хотя и обычны подойдет)
- (подслушавший человек: вау, оказывается даже так???)

К чему я это, к тому, что стоит себя пересилить и лишний раз спросить, в большинстве случаев это закончится лучшими знаниями для всех сторон. Хороший профи не будет рофлить и обсирать.

Если же все наоборот, то...лучше спросить себя, что я делаю с этими муделями тут /шраг

Собственно разговор из сесурити тимы гугла. Далеко не глупый человек уточнил у напарника какую-то вещь, а через 15 мин диалога тимлид офигел, от реальных вещей.
источник
oleg_log
источник
oleg_log
Штош, я опять на конфе, в этот раз GopherCon Poland в Гданьске.

Доклад тот же (Packages & Modules), что и на GoGoConf, ток оформление другое. 2й раз читать необязательно.

Слайды https://speakerdeck.com/olegkovalov/packages-and-modules-gophercon-poland-2019

GoGoConf: https://t.me/oleg_log/1161

(между конфами я успел постареть на год ):
источник
oleg_log
Наканецта
источник
oleg_log
О, уже бета го 1.13 вышла. Кул.

https://t.me/golangdigest/975
источник
oleg_log
AirPods гениальны, спасибо, Тим (да, туалетный юмор, буквально)
источник
2019 June 28
oleg_log
Что-то у меня такое предчувствие, что лог билда на 2.5мб это больше, чем надо. Конечно есть ripgrep и все это парсится, но...зачем?
~19к строк лога это щедро
источник
oleg_log
Вчера нашел приятный сервис, который помогает сформировать время повтора задачи в cron. Отлично подходит ленивым хипстерам типа меня, которые мало пользовались cron-ом. Я вот, например, даже не знал, что можно указывать единицы времени, кратные какому-то числу, например: */4 - означает, что будет браться те часы, минуты или что-то еще, которые кратны четырём.
https://crontab.guru
источник
oleg_log
О, вспомнил по раздутым метрикам пару вещей.

Вот они в принципе не болели. Рама полно, можно обжираться, гц просидал редко, можно не париться, но...вот брать хипдампы - нет.

Мы пару раз сталкивались с ситуацией, что нужен дамп для анализа, а потом прикидывали, что это овер 4гб (там даж 6-8гб получалось) и понимали, что не, подебажим головой.

Самая настоящая мина. Заложенная же авторами (или странными энжэнэрами метрик).

Code debt in the nutshell
источник
oleg_log
Я опять с интересностями от разрабов гугла и опять о го.

В ближайшей версии, может двух, в го завезут новый линкер, который не выжирает кучу памяти и работает чуть шустрее. Сейчас остался небольшой вопрос внутренней политики, так-что ждем-с.

Почему текущий(хах, в 2х смыслах) линкер такой какой есть? Он 1в1 портировался с Си в версии 1.5 или около, и просто работал. И в общем-то никто им сильно не занимался.

Кстати в 1.13 будет новый escape analysis, тоже давно наболевающая часть тулчейна.

Я так понимаю это предварительные подготовки-зачистки к го2 и отчасти дженерикам, логично же.
источник
oleg_log
Раз уж пятница, а я долблюсь с деплоями, вот задачка 10летней давности, с курсов по прогр от моего Гуру:

Найти наибольшее из двух чисел, не используя иф.

Предполагалось решение в виде простой арифметики. Но если это сложно, пишите тайпсейфом своим.

Решения сюда: @olegkovalov (наверное в пн будет сборник ответов) #задачка
источник
oleg_log
When @Cloudflare launched the public 1.1.1.1 resolver we supported plain DNS, DoH, DoTLS and offered to reply by SMS, Twitter and @telegram. But today someone has sent us a telegram with a DNS query.

We will be replying (cc @matthewgall) https://t.co/DihSLJX0K8

https://twitter.com/jgrahamc/status/1144272344803946496
источник