Size: a a a

2020 November 05
oleg_log
Обширная статья про то, что плохо в клауде. Как и цена, как и перф, как и вендор-локин. Ну правда в принципе.

Лонгрид чуть.

https://cerebralab.com/Is_a_billion-dollar_worth_of_server_lying_on_the_ground

UPD: случайно скинул раньше.
источник
2020 November 06
oleg_log
Таааааак. Кто пишет сервисы на gRPC (без разницы какой язык, но скорее го, хах).

Подскажите, как вы ошибки заворачиваете и вот это все около ошибок. Попытался глянуть статьи и советы, но на 100% не определился.

Тыкать сюда @olegkovalov саммари ответов будет на 100% (не как с пейперами :) ведь полезно всем знать как надо делать. Спасибо.
источник
2020 November 07
oleg_log
oopsie

"Bitcoin and Ethereum are now using up the same amount of electricity as the whole of Austria. Carrying out a payment with Visa requires about 0.002 kilowatt-hours; the same payment with bitcoin uses up 906 kWh, more than half a million times as much"

https://thecorrespondent.com/655/blockchain-the-amazing-solution-for-almost-nothing/86714927310-8f431cae
источник
2020 November 08
oleg_log
Netflix Bulldozer: Batch Data Moving from Data Warehouse to Online Key-Value Stores.

В простонародье "давайте достанем все их Хадупа в Кассандру и раздадим по рест-хттп". Забавно, но мы год назад делали тож самое. Только был еще Airflow и чуть триггеров с Кафки, а не Mesos Scheduler.

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

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

https://netflixtechblog.com/bulldozer-batch-data-moving-from-data-warehouse-to-online-key-value-stores-41bac13863f8
источник
2020 November 09
oleg_log
Ох ребятки, все плохо.  Сижу я здесь играюсь с ElasticSearch и немного удивляюсь сложности текущего софта. Да наверное и не только текущего.

Тема давно избитая, софт становится больше-сложнее, но это не повод поныть вечерком. Просто колво информации в логах контейнера Эластика/Кибаны сильно демотивирует. Может даже не со стороны опс-ов, а разработчиков, ведь с этим приходится работать и что-то там дофикшивать.

Наверн это и объясняет, почему многим друзьям и знакомым интереснее писать библиотеки, чем проекты (ну приложения, думая уловили). Я в том числе.

Правда, ведь интереснее накидать пару сотен (до пары тыщ точно) строк кода, которые решают опред задачу. "Мысли о апи в ванной крутятся, пока счетчик за воду крутится" на самом деле обыденная вещь.

А, ну и главное, в написании либ больше труда, чем в приложении. YMMV как всегда, но хочется верить в лучшее. Собственно одну для ES и пишу, надеюсь даж закончить, 3 дня не отпускает.
источник
oleg_log
Вернемся к ошибкам и gRPC. Пожалуй самым популярным и экосистемно-верным будет использование очевидного решения.

https://pkg.go.dev/google.golang.org/grpc/status

Вот тутъ можно глянуть как там грпц мапится на хттп https://github.com/grpc-ecosystem/grpc-gateway/blob/master/runtime/errors.go

Какие вообще коды в грпц есть https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto

3 человека упомянули Result<Response, Error> паттрн в protobuf, при помощи магического слова oneof но насколько оно вам надо - хз. Пример:

message Response {
   oneof status {
       Result success = 1;
       Error rejected = 2;
   }
}

Мы остановились на статусе и все, видно выдумывать нечего на самом деле. Еще можно через мидлвару оборачивать, но непонятно зачем (оно в нашем случае)
источник
oleg_log
Conventional Commits
Анонимный опрос
20%
Пользуемся, хорошо все
6%
Пользуемся, но ерунда
1%
Раньше было - отказались (время написать мне в лс почему)
19%
Неа, не пробовали
3%
Неа, не пробовали, но попробуем после/из-за опроса
4%
Используем другую номенклатуру (опять же в лс попрошу)
23%
Ничего не используем явно, стараемся просто красиво
16%
Ничего не используем явно, в гит-логе хаос
8%
Другое
Проголосовало: 432
источник
oleg_log
вам таки нужны-важны коменты тут?
Анонимный опрос
38%
да
28%
не
34%
хз
Проголосовало: 808
источник
oleg_log
Пускай массы тешатся (с)
Маркс (хотя я это видел написаное на мосту, но верю в правдивость автора)

Сам чат если шо https://t.me/oleg_log_blabla
источник
2020 November 10
oleg_log
Последний выпуск @generictalks как раз был с автором канала, настоятельно советую подписаться)
источник
oleg_log
(Несколько раз собирался написать этот пост и каждый раз забывал. Меня даже уже подписчики стали спрашивать почему я не писал про это (@oleg_log, спасибо!).)

Проф. Андреас Зеллер с коллегами сделал отличный проект для популяризации генеративного тестирования - интерактивная книга в формате Jupyter notebook. В книге несколько разделов, каждый из которых посвящен подходам создания и примерами использования генеративных тестов: на основе свойств (property-based), search-based, мутационный фаззинг, тестирование API, тестирование грамматик и другие темы. Все темы авторы объясняют понятным языком и приводят примеры кода, который можно запускать в самой книге (спасибо Jupyter notebook). Мне каждый раз было лень искать публикацию, в которой бы объяснялся принцип search-based тестирования, нашел описание в книге и там оказалось всё очень просто. В общем если вам интересно автоматизированное тестирование, то книга рекомендована к прочтению.

https://www.fuzzingbook.org/

#непишитетесты, генерируйте их
источник
oleg_log
Вы уносите с собой код при смене работы?
Анонимный опрос
17%
Да
22%
Нет
49%
Товарищ майор, нет конечно))))
6%
Иногда
7%
Другое
Проголосовало: 1054
источник
oleg_log
источник
oleg_log
Для жаждущих дженериков:

We will be working on that throughout 2021, with a goal of having something for people to try out by the end of the year, perhaps a part of the Go 1.18 betas.
источник
2020 November 11
oleg_log
Доброе утро!
Новый пост про мой опыт с алгоритмами поиска порядковой статистики. Там и обгоны алгоритма Александреску и классные гифки, бенчмарки, прожарка libcxx, всё вообще!
https://danlark.org/2020/11/11/miniselect-practical-and-generic-selection-algorithms/

Я также ещё выкладываю это в open source https://github.com/danlark1/miniselect, для пул реквестов открыт, если захотите использовать — пожалуйста, в ClickHouse дало до 20x буста, а суммарно все запросы ускорились на 2.5% из-за этого. Обещаю С++11 и выше, легкую замену std::nth_element и std::partial_sort и тщательное тестирование!
источник
oleg_log
Ого какая конфа интересная будет, люди от Hashicorp, NATS, Dgraph и PingCAP

https://systemsconf.io/
источник
oleg_log
Авторитетно без пруфов заявляю, что сервис-меш нужен, когда вы на свою плечи атланта взваливаете микросеовисное-легаси спагетти (без доков и минимальных гарантий, класика).

Вот в этом случае вы можете через прокси проверять, кто с чем связан и правда ли выполняет конракт(дада, код аудит это правильно и чесно, но есть нюансы).

Собственно через месяц-2 узнаю на скок это окупитсч на практике.
источник
oleg_log
Вышел .Net 5.0 и там нихрена себе сколько привезли.

Кроме либ и прочих удобностей сильно поправили GC, И как всегда упоминание поддержки Apple Silicon, хайп шо.

https://devblogs.microsoft.com/dotnet/announcing-net-5-0/

Еще я упустил новость о RyuJIT пару лет назад:

RyuJIT is the code name for the .NET just-in-time compiler, one of the foundational components of the .NET runtime. In contrast, the Roslyn C# compiler compiles C# code to IL byte code. The RyuJIT compiler compiles IL byte code to machine code for multiple processors.

https://devblogs.microsoft.com/dotnet/the-ryujit-transition-is-complete/

Да и gRPC подтюнили, только Rust-у уступает. Честно говоря никогда не встречал упоминание dotnet и grpc, думал это чуждо экосистеме, а ннннет.

https://devblogs.microsoft.com/aspnet/grpc-performance-improvements-in-net-5/
источник
2020 November 12
oleg_log
У PVS-studio хороший апдейт вышел. Благодаря нему я узнал о существовании MISRA, рескну назвать это каким-то PEP8 по аналогу с Питоном.

тут про апдейт https://www.viva64.com/ru/b/0774/

тут про мисра https://www.viva64.com/ru/b/0702/
источник
oleg_log
А здесь более расширенный бугурт по поводу ipv6. И он вполне логичен.

Когда я впервые посмотрел, сколько же нас ждёт адресов, возник осмысленный вопрос: зачем моей стиральной машинке несколько лярдов адресов? (и если бы только моей).

NAT хоть и имеет свои особенности, но все же решает(?) проблему. Забавно что теперь это NPT (network prefix translation, а не address).

Ах, и конечно же безопасность. Самое время думать о миграции из network engineer в network security engineer, 3х ставку требовать с порога)

Думаю сейчас кто-то из сетевиков придет в коменты или в лс и расскажет мне как мир устроен, но все же - много.

Лонгрид на самом деле, но советую https://teknikaldomain.me/post/ipv6-is-a-total-nightmare/
источник