oleg_log
1.72K subscribers
1.88K photos
131 videos
9 files
2.82K links
Shelter for antisocial programmers "Oleg"

halp: @olegkovalov
web: https://olegk.dev
fov: @oleg_fov
chat: @oleg_log_blabla
podcast: @generictalks
Download Telegram
Groovy Copperfield опять показывает фокусы.
Теперь-то с подсветкой видно, что ПРОД и ДЕВ трактуются по разному (через полчаса-то понятно). Оба они значения enum, вот только ПРОД будет новым инстансом, а (ДЕВ) - нет. Такое предчувствие, что груви и ямл это две ноги одной сатаны.
Крутилась у меня одна мысль о "code must be greppable", в подкасте будет сложно объяснить, поэтому тут.

Рассмотрим вот такое, где $ это подстановка переменной/интерполяция строки:
private val rootMetric = "remoteservice.endpoint"
private val successMetric = "$rootMetric.success"
private val retryMetric = "$rootMetric.retries"
private val failureMetric = "$rootMetric.failure"


И вот представьте, вы нашли метрику в храгилище метрик, в логах, документации. И решили узнать, а где она используется в коде (или прост где еще упоминания её). И вот вы сделали ктрлц-ктрлв и великое Find All.....

Но не находится ничего в коде с remoteservice.endpoint.retries Разве что слова поотдельности, либо в какой-то момент вам везет и вы ищите remoteservice.endpoint.

А было бы чуть больше копипасты в _нужном_ месте - жизнь стала бы проще. Конечно, если вы знаете все мели в своем проекте, то круто, но проекты могут быть разные по размеру и вы что-то да оставляете для будущего читателя.
oleg_log
Крутилась у меня одна мысль о "code must be greppable", в подкасте будет сложно объяснить, поэтому тут. Рассмотрим вот такое, где $ это подстановка переменной/интерполяция строки: private val rootMetric = "remoteservice.endpoint" private val successMetric…
Как подсказал Пётр, Линус подобное дежрит в стайлинге Линукса (лол), последнее предложение 2го пункта:

However, never break user-visible strings such as printk messages, because that breaks the ability to grep for them.

Значит стоит прислушаться (ко мне, бгг)

https://github.com/torvalds/linux/blob/master/Documentation/process/coding-style.rst#2-breaking-long-lines-and-strings
В одном большом проекте CI занимает 6 минут в среднем. Но иногда случается ШТОТО и проект падает в какой-то ретрай луп на 5000 ретраев (1 ретрай = 1 сек)

Как можете догадаться(или посчитать, фу) это 83 минуты. Общее время билда составило 89 минут (почти уверен, что таймаут на билд 90 мин).

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

5k get.
Интересная ситуация, срабатывает алёрт на то, что кол-во рпс в БД выросло (естественный рост трафика к праздникам).

Но вот чтобы увеличит значение, нужно подождать билд 4 минуты (правда странно, зачем конфиг алёртов держать вместе с кодом?)

А теперь самое любимое - смёржить никак, потому что в воскресенье вечером нормальные люди отдыхают. Останется только замютить уведомления в pagerduty ¯\_(ツ)_/¯
Forwarded from Grumpy Website
Forwarded from Grumpy Website
@nikitonsky: Today we announced LKJALSDFER. The next revolutuinary thing by JALJSLDMVA after AJLFERMN and JLMVNW!
Гугл все ищет новые способы удержать людей на странице поиска. В будущем можно будет смотреть статус пересылки прям в поиске по номеру самой посылки.

https://webmasters.googleblog.com/2019/12/package-tracking-early-access-program.html
Как же не хватает ФП в метриках. Ведь действительно это бы упростило чтение и изменение запросов.
(1я строка 260 символов, и обычно она будет отрендерена как 5, что не помогает совсем)(на сколько я знаю это касается любых хранилищь метрик)
Dawson’s first law of computing
Одна тима, которая использует наш сервис для перевода текста, накатала нам очень душный excel файл с примерами, когда markdown был поломан после перевода (user -> md -> gootrans -> md -> user).

И вот, мы такие хмурые собрались смотреть, что же там такое происходит. Через полчаса проверки разных вариантов пришли к единому мнению: пока душная тима не начнет отправлять нам правильный markdown, ничего фиксить и не надо.

Я не знаю каким образов они его наполучали и как его рендерили (рендери ли?). Но урок отличный, перед фиксом багов надо проверить, что данные имеют хоть какой-то смысл.

QUICKUPD: сервис внутренний, пользуются ток разрабы, валидировать = тратить жизненную энергию и производить CO2
лол, открыл 27 вкладок из закладок и...где-то хром протупил
Очевидное поведение ведь (я про картинку выше).

Is new always better? UDP vs DoH
https://blog.apnic.net/2019/12/06/is-new-always-better-udp-vs-doh/