Size: a a a

2020 February 03
oleg_log
Итого по онлайн генераторам.

JSON -> Go https://mholt.github.io/json-to-go/

Curl -> Go https://mholt.github.io/curl-to-go/

Много языков, но все в жсон, нет хмл https://quicktype.io

UPD: https://curl.trillworks.com/ спасибо Георгию
источник
oleg_log
Гугл еще что-то хочет? Хм...Я конечно не фан AWS, но масштабы все же невписуемые.

In 2019, Amazon’s online sales accounted for only 50% of the company’s total revenue. For the first time, Amazon generated as much revenue from AWS cloud hosting, Prime memberships, the third-party marketplace, and advertising, as it did from selling products online.

https://www.marketplacepulse.com/articles/amazons-retail-business-is-now-just-50-of-the-companys-revenue
источник
2020 February 04
oleg_log
TL;DR: TeamViewer stored user passwords encrypted with AES-128-CBC with they key of 0602000000a400005253413100040000 and iv of 0100010067244F436E6762F25EA8D704 in the Windows registry. If the password is reused anywhere, privilege escalation is possible.

http://whynotsecurity.com/blog/teamviewer/
источник
oleg_log
Хотя возможно не все так ОДНОЗНАЧНО https://t.me/hn_best_comments/2397 (за ссыль спасибо @jemalloc)
источник
oleg_log
Ввиду оглушительного успеха хакатона мы решили продолжать тему подобных мероприятий и попробовать новый формат — онлайн-конфу. Как и что точно не решили, поэтому важно ваше мнение.

Ответьте на этот короткий опрос: https://alexanderlavrov.typeform.com/to/oGOobC

Или поговорите на эту тему с @olegkovalov
источник
oleg_log
В принципе красиво. Правда тема избитая.
источник
oleg_log
Note #58: The Zen of Go

По аналогии с Zen of Python, Dave Cheney представил The Zen of Go на GopherCon Israel 2020.

1. Each package fulfils a single purpose
2. Handle errors explicitly
3. Return early rather than nesting deeply
4. Leave concurrency to the caller
5. Before you launch a goroutine, know when it will stop
6. Avoid package level state
7. Simplicity matters
8. Write tests to lock in the behaviour of your package’s API
9. If you think it’s slow, first prove it with a benchmark
10. Moderation is a virtue
11. Maintainability counts

По ссылке есть описание каждого пункта -> https://the-zen-of-go.netlify.com/.

P.S. возможно добавить сюда https://github.com/andriisoldatenko/proverbs? или пусть живет отдельно.
источник
oleg_log
Если мои дети пойдут в айти, одно из ранних, чему я их научу - запускать команды с -v/--verbose если что-то не работает.

Как оказывается, кто бы мог подумать, это эффективный способ понять, что же происходит с запускаемым приложением. В данном случае с ssh. Ничего интересного, но Connection closed by x.x.x.x port 22 говорит ничего, с дебагом чуть проще.

А, и конечно следующим пунктом - заставлять всех добавлять -v флаг для детального вывода/дебага приложения.

UPD: как подсказал Александр, для ssh есть -vvv который еще больше вещей пишет, стоит запомнить.
источник
oleg_log
Давайте честный вопрос-ответ:

вы вне работы как-то профессионально развиваетесь?  (внимание: выбрать можно несколько, ну кроме 1го и последнего, кэп)
Анонимный опрос
4%
Честное нет
19%
Смотрю доклады
28%
Чаще просто статьи читаю
17%
Читаю книгу
12%
Прохожу курсы онлайн
3%
Прохожу курсы/тренинги оффлайн
16%
Делаю проект в интересной мне технологии и этим учусь
1%
Что-то очевидно, что я забыл, поэтому в лс @olegkovalov
Проголосовало: 2414
источник
oleg_log
источник
oleg_log
источник
2020 February 05
oleg_log
Поражаюсь, что же у людей в голове происходит. Вот что надо было думать, чтобы захотеть такую фичу. Чем фор не устраивает-то?

Iterate forwards (with superfluous +)
for idx, v := range +s {}

Equivalent:
for idx := 0; idx < len(s); idx++ {
 v := s[idx]
}

Iterate backwards
for idx, v := range -s {}

Iterate from middle outwards
for idx, v := range ±s {}


https://github.com/golang/go/issues/36816
источник
oleg_log
Как добиться успеха в тиме, чтобы тимлид и чуть выше по званию кивнули головой в знак одобрения?

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

Берете паузу, собираете больше логов. Потом понимаете, что есть более новые версии всех компонентов, которые внезапно уже не такие и молодые, и уже проверенные огромным коммюнити и тонной бизнеса.

Обновляетесь. Все начинает работать как и ожидалось. Делаете графики в стиле https://t.me/oleg_log/698 и все, успех получен.
источник
oleg_log
BTW, тут недавно прокакивал Go-канал с опросами, можно иногда и позалипать. Прикольно было бы в виде бота оформить и под разные языки, да еще и с возможностью добавить вопрос (желательно через гитхаб ПР). Ловите идею!

https://t.me/golangquiz
источник
oleg_log
Об устройстве строки в libc++

Внимание, куча простого кода вида: __ xx_

https://joellaity.com/2020/01/31/string.html
источник
2020 February 06
oleg_log
Мы наверное слышали про Discord который переходит с Go на Rust в одном из сервисов? (https://blog.discordapp.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f)

TLDR: ничего нового, го в своей нише, раст в своей

Не прошло и года с прикрепленного поста, как человек расказывавший о проблемах го написал пост (один из авторов).

Самое странное в посте (и что вызывает подозрение в компетенции инженеров), так это сравнение го 1.9.2 с ночными сборками раста. Несложно найти, что 1.9.2 был в конце 2017, хотя переписывать на раст они начале в мае 2019. 1.10 им ничего не дало, но 1.11 и 1.12 вполне могли. Про обновление версий писал буквально пару дней назад, ХМММММ

Так же интересная вещь - изменение структуры данных, с хешмапы на b-tree. Можете сказать мелочь, но я так не думаю. Да и всем известно, что в расте на b-tree потратили много времени.

И моё любимое. "Мы переписали сервис по новой и поняли, что можно сделать лучше." Возможно переписывание на го, с пониманием проблемы 2.0 дало бы такой же результат. Но это сложно проверить.

Ой, еще про гц забыл. За гц нужно платить, складывается такое подозрение, что они хотели жить на managed языке без каких либо затрат на это, может ток мне показалось.

UPD: еще мысль о их тиме, они что-то быстро навякали на го (язык позволяет) и это стало приемлимо работать, но с ростом пользователей они уперлись в свой код, вместо го-пила, решили раст-пилить.
источник
oleg_log
из вечного
источник
oleg_log
А какие у вас связи с CNCF ?
Анонимный опрос
81%
Не знаю что это
10%
Пока не работал(а)
1%
Работал(а) раньше
3%
Хочу перекатиться
5%
Сейчас работаю
Проголосовало: 561
источник
oleg_log
Надо было на SRE подаваться. Довольно интересно взглянуть на подробное описание собеса в гугле для SRE. Даже деревья вертеть не надо 😢

https://telegra.ph/Opyt-sobesedovaniya-v-Google-na-poziciyu-SRE-02-02

(нашел в закладках от @devopslibrary)
источник
2020 February 07
oleg_log
Ща будет #саксес_сториз Вот вы такие прикольные, знаете что такое SLA, инциденты, метрики. И вроде прям супер все классно, бери хоть универ открывай.

Вот только есть одно "но" - ваша либа для сбора метрик немножко странно собирает результаты. К примеру у вас был запрос, который отработал за 10+ сек (внешний сервис, никаких обещаний, все дела). И...после этого запроса у вас других запросов не было. Как вы думаете, где подвох?

Эта метрика будет висеть на уровне 10+ сек, пока не придет след запрос и/или пока вы не убьете инстанс. Да-да, так оно и будет вам сыпать алерты с фиксированной периодичностью "ойойой р99 плохое ойойой". Но самое приятное, что на это висит тасочка, то есть это будет пофикшено, чесн.
источник