Size: a a a

2020 March 01
oleg_log
Что скажете по поводу smartwatches?
Анонимный опрос
11%
Хочу или планирую купить
12%
Уже есть, улучшило мою жизнь
7%
Уже есть, прост (айти) аксессуар
9%
Уже есть, ничего не дало толком
7%
Уже есть, помогает в спорте/здоровье
27%
Не хочу покупать, оно бесполезное
2%
Куплю по акции чтобы было
6%
Уже были... (сломались/потерялись или вы отказались)
19%
Я не знаю, хочу результаты посмотреть
2%
Другое? (офк в лс напишите)
Проголосовало: 1026
источник
oleg_log
источник
oleg_log
Хороший доклад на воскресенье от Богдана. О  circuit breaker-ах в жава-мире. Доклад за 2017, но теория осталась верной, послушать стоит.

https://www.youtube.com/watch?v=lLpjVteXIIg
источник
oleg_log
Escape from Escape Analysis of #golang Sounds pretty interesting!

For the code, the heap allocation -8.88%, the heap usage -8.78%. Time consumption -9.48%, cumulative time of GC pause -5.64%.

Paper http://www.wingtecher.com/themes/WingTecherResearch/assets/papers/ICSE20.pdf

Code https://github.com/wangcong15/escape-from-escape-analysis-of-golang
источник
2020 March 02
oleg_log
The missing GUI Client for GRPC services. 🌸

Inspired by Postman and GraphQL Playground
BloomRPC aim to give the simplest and efficient developer experience for exploring and querying your GRPC services.

https://github.com/uw-labs/bloomrpc
источник
oleg_log
эт смешно)))))))))000
источник
oleg_log
источник
oleg_log
Очень хорошая новость, предсказываю рост популярности протобаф
источник
oleg_log
Note #63 A new Go API for Protocol Buffers

В официальном #golang блоге появилась статья про новый Go API для Protocol Buffers.

Рекомендую почитать! ->

https://blog.golang.org/a-new-go-api-for-protocol-buffers
источник
2020 March 03
oleg_log
Случайно узнал, что меня упомянули в подкасте Радио Платформа, приятно и неожиданно. (мой канал и @go_perf который я пытаюсь держать живым, рил).

Ребят можно найти тут @radioplatforma а в гостях был Сергей от @golangdigest

https://www.youtube.com/watch?v=teuz7QjT2U0
источник
oleg_log
Там FB свой мессенджер переписывает, и эт конечно интересно-полезно, хотя много чего не досказано. Понравились коменты с ХН:

So, they've reduced 1.7M lines of code to 360K. Let's pause here for a moment:

- NumPy is 360K lines mostly C
- Postgres is around 2.1M of C
- Go 1.13 is around 1.5M of Go code
- Rust 1.37 is around 1.2M of Rust code iirc
- core llvm is around 3M of C++ iirc
...
A chat app is 1.7M. A chat app...

Makes me feel sorry for all the time spent/wasted by all those devs, many of whom are unquestionably brilliant and could've worked together on something truly awesome, big and useful. But we all know that doesn't pay the bills and so here we are.

> that includes payments, camera effects, extensive social integrations, stories, GIFs, reactions, games, polls, voice recording, calling, video chat
To be fair, this is part of the problem ^

https://engineering.fb.com/data-infrastructure/messenger/
https://news.ycombinator.com/item?id=22466462

Да, конечно мерять все в SLOC это так себе метрика, но и пренебрегать ею неправильно.
источник
oleg_log
Простенькая статья о простых системах. И очень хорошее сравнение с контейнеровозом (я не про кубернетес). Команда с дюжину людей управляет 185М долларов, весом 55к тонн и длиной 400м.

Возникает осознанный вопрос - почему команда из 10 человек может управлять только 1-2 сервисами и при этом не уметь в стабильную работу (говорю не про всех, но встречается, сами знаете).

Даже у нас есть скрытый bus factor, есть пару сервисов, в которых разбирается ток автор, и если что-то ломается, то проще подождать, пока автор и разберенется-починит. Да, все настолько плохо.

https://www.gkogan.co/blog/simple-systems/ Лайк за наезд на Salesforce, часто вижу bus factor = 1 где ток какой-то принципал знает что там включить. И ждут по 2-3-7 дней на действие этого спеца.
источник
oleg_log
This table has the number of command line options for various commands for v7 Unix (1979), slackware 3.1 (1996), ubuntu 12 (2015), and ubuntu 17 (2017).

If you open up a manpage for ls on mac, you’ll see that it starts with

ls [-ABCFGHLOPRSTUW@abcdefghiklmnopqrstuwx1] [file ...]

https://danluu.com/cli-complexity/
источник
oleg_log
100 полезных приёмов и хаков в Pandas от Kevin Markham, собранные в одном ноутбуке.

https://www.kaggle.com/python10pm/pandas-100-tricks
источник
oleg_log
А визуализации в ридми действительно годные
источник
oleg_log
Не помню, где я это нашёл, но вот только что попробовал — и это шикарно. Если надо сравнивать разные множества, где каких элементов не хватает и всё такое — вот это прямо то что надо. Просто ставится и работает.
https://github.com/gecko984/supervenn

Там в ридми очень много интересных примеров.
источник
2020 March 04
oleg_log
Одна особенная вещь, которую я встречал только в жава-мире (страшная фраза, ток сейчас понял) - фильтрация логов.

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

Да, конечно это можно сделать в любом языке, где есть что-то вида interface Logger и в соотв методе логирования проверять или нет. Но блин! не видел такого нигде, кроме как в жаве.

Обычно как-то проще все: вот тебе реализация логгера, вот сюда пиши и хватит.

Важное P.S. в офисе воняет бомжом. нет, не от меня. и ток возле входа на этаж, хм...
источник
oleg_log
Хашимото, который основатель Хашикорпа, опубликовал прикольную библиотеку на го:

protostructure - Encode and decode Go (golang) struct types via protocol buffers.

This library is useful when you want to send arbitrary structures over protocol buffers.  This works because we can reconstruct the struct type dynamically using reflect including any field tags.

https://github.com/mitchellh/protostructure

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

Про подобную либку говорил как-то на конфе, но все осталось в планах :(  Кстати окда оч мало, если хотите рефлект поизучать, то советую.

По сути это лвл-ап для https://github.com/mitchellh/mapstructure
источник
2020 March 05
oleg_log
Есть один вопрос, который, практически, задаю на каждом код ревью: почему тут ‘return true’ ?

Многие знают правило, что всякие наименованные константы надо определять и правильно называть (или комент добавлять, тож ок). Но многие на какой-то там булиан закрывают глаза. Ну да, true эт что-то о истине/включено/активно, а вот число 87 эт магия.

Но как не удивительно, на ревью часто всплывали ответы «хм, а действительно, тут не всегда true надо».

А ведь что мешало сразу подумать о: ‘return true // because of bla-bla’ ? Кстати люблю такой же комент, в реализации какого-то интерфейса, где метод пустой. Там тож магия случается.
источник
oleg_log
источник