oleg_log
1.76K subscribers
1.86K photos
130 videos
9 files
2.79K links
Shelter for antisocial programmers "Oleg"

halp: @olegkovalov
web: https://olegk.dev
fov: @oleg_fov
chat: @oleg_log_blabla
podcast: @generictalks
Download Telegram
Прост потому что красиво сделано
Узнал, что у одних людей была авария на проде из-за пустых строк.

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

В итоге кеши не наполнялись правильно и в общем это перегрузило->убило сервисы.

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

Блин, да есть же боты, сложно блин прикрутить было one-click CLA ? аргх

https://github.com/cloudfoundry/go-diodes/pull/23#issuecomment-519414655
В слаке Kong есть канал YELLING где все ходят покричать капсом, если что-то не работает. Прикольно.

(Kong занимается клауд платформаме, в https://konghq.com/)(туда один из наших уходит, после пары месяцев полу-ремоутом, котлинист стал гофером, помянем)
Занесло на хабре почитать перевод статьи про генерики в го, ну то есть комент, чтож еще. И нарвался на шикарную ветку коментов.

Есть такой юзер TheShock, который поливает го со всех возможных шлангов, но тут миленький фейл получился: https://habr.com/ru/company/mailru/blog/462811/#comment_20481883

ТЛДР: почему нет конструкций <T> или [T] ?
Потому что усложнит гошный парсер. Пример из Раста if a as u32 < 5 { ... }
error: < is interpreted as a start of generic arguments for u32, not a comparison

Пример из С#
bool b = f as F < a; // fail
bool b = (f as F) < a; // ok

*злорадно хмыкаю нефурфажным гоферным носиком*
oleg_log
Занесло на хабре почитать перевод статьи про генерики в го, ну то есть комент, чтож еще. И нарвался на шикарную ветку коментов. Есть такой юзер TheShock, который поливает го со всех возможных шлангов, но тут миленький фейл получился: https://habr.com/ru/…
Собственно вопрос про: усложнять ли парсер или усложнять жизнь разрабам?

Пойдешь по первому пути - потеряешь в скорости компиляции (а ведь это хорошая фича).
Пойдешь по второму пути - заставишь лишний раз не юзать генерики где не надо (звучит го-вэй со всеми последствиями)

Я за 1е, доп скобки (type T contr) не так и ужасны, зато смотрится прозрачно.
oleg_log
Поедем с круглыми скобками или двинем в спец символы?
Круглые скобки это то, что предлагается в пропозале
аля func (type T contr)(s []T)

Ну а "спец символы" это всякие <T>, [T], #$!#$ и что угодно можно придумать-стащить с других языков.
How is git commit sha1 formed

Сколько жил, столько думал, что в хеше комита есть привязка ко времени. А вот нифига.

(printf "commit %s\0" $(git cat-file commit HEAD | wc -c); git cat-file commit HEAD) | sha1sum
(на макоси у меня прост shasum заработало)

gist с разбором https://gist.github.com/masak/2415865

Сурс https://xn--r1a.website/rxd_txd/1634

UPD: я ошибся, см след пост https://xn--r1a.website/oleg_log/1631
oleg_log
How is git commit sha1 formed Сколько жил, столько думал, что в хеше комита есть привязка ко времени. А вот нифига. (printf "commit %s\0" $(git cat-file commit HEAD | wc -c); git cat-file commit HEAD) | sha1sum (на макоси у меня прост shasum заработало)…
Ой я дурнооооой.
Время же указано в git cat-file commit HEAD

Конечно же при git reset HEAD~1 и повторном комите будет другой хеш.

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

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

Кстати легальный способ не работать. Тимлиду впарить не сложно будет, ведь "мы лучшем поймем наши проблемы и дыры в знаниях". Пользуйтесь 😈
Выходишь на дежурство(on-call которое), вроде и все работает, а приходится отвечать за 60+ сервисов (дев/тест/прод и как минимум каждое в 4х инстансах). Неприятно.
Жаль я раньше этого не видел, отличное объяснение для тех, кто не понимает природы отсутствия автоматической конвертации []int <-> []interface{} #go
сурс https://habr.com/ru/post/325468/
о этот насыщенный гигабайтами жава-мир
(это кеши зависимостей на Трависе для maven & gradle)
Во-первых это красиво...правда это не спасает от уголовной ответственности https://docs.perl6.org/type/atomicint#Operators

В коментах всплыл scalaz https://gist.github.com/folone/6089236