Size: a a a

2019 December 04
oleg_log
источник
oleg_log
перемога™ под вечер
https://twitter.com/SlackHQ/status/1201955273667158023
источник
oleg_log
источник
oleg_log
logging.level:
   foo.bar: DEBUG
   foo.bar.baz.qux: INFO


Caused by: java.lang.ClassCastException: class java.lang.String cannot be cast to class java.util.Map (java.lang.String and java.util.Map are in module java.base of loader 'bootstrap')


Короч фишка в том, что десериализатор foo.bar обозначает как строку, а потом пытается трактовать как мэп и привет исключению.

еее, 83 страницы стандарта
https://yaml.org/spec/1.2/spec.pdf
источник
oleg_log
Вы всё еще любите naked return в #go ? В общем зря, ой зря.

func duh() (x int) {
 {  
   x := 10    
   return  
 }
}


./prog.go:6:3: x is shadowed during return
(ни разу такой ошибки не видел, прям новое нашел, спасибо Искандеру)

https://play.golang.com/p/zm61gMAH5XA

В golangci-lint есть nakedret и пропозал чтобы выкинуть в го2 https://github.com/golang/go/issues/21291
источник
oleg_log
А вот это очень-очень-очень хороший пост про копипасту и её последствия.

ТЛДР: самый популярный сниппет кода (жавы) с SO был с багом (и это ток по данным гитхаба).
Проблема с плавающей точкой, ha-ha, classic!

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

https://programming.guide/worlds-most-copied-so-snippet.html
источник
oleg_log
HackerOne breach lets outside hacker read customers’ private bug reports.

Company security analyst sent session cookie allowing account take-over.

https://arstechnica.com/information-technology/2019/12/hackerone-breach-lets-outside-hacker-read-customers-private-bug-reports/
источник
oleg_log
источник
oleg_log
Кому скучно - напишите гошный RWMutex на одних каналах. Если хотете, то можете решение в лс слать.
источник
oleg_log
Re: Generating a Java program with 90% less code
       
> We define the UserProvider interface

I'm strongly against creating interfaces for non-library (not shared) code, that will only ever have one concrete implementation. I see it all the time in internal service code, code that will never have a second implementation. It makes code hard to navigate, harder to understand, and tedious to manage as instead of updating one file, now you'll need to update two.
       
ronnier, 3 hours ago
источник
2019 December 05
oleg_log
Некоторые наверное видели серию постов Расса о модулях в го, и вчера вышел собирательный пост обо всем (минимум воды, но все равно много, хотя читается легко).

Вот оно https://research.swtch.com/vgo-principles

Но меня привлекла другая ссылка, про похожий эксперимент с использованием минимально-поддерживаемой версии в Rust (июнь 2018) и...попытка не совсем успешная, но показательная, советую глянуть
https://illicitonion.blogspot.com/2018/06/rust-minimum-versions-semver-is-lie.html
источник
oleg_log
источник
oleg_log
Вебинар 24 декабря для тимлидом, советую послушать

https://t.me/psyvit/163
Telegram
Psy в IT
✔️ Теперь ты тимлид. У тебя есть команда, за которую отвечаешь и нужно принимать важные решения. Есть бизнес, который ждет стратегии. А еще хочется писать код больше чем 2 часа в неделю. Как все успеть?

✔️ Вдруг оказалось, что команда совсем не похожа на тебя. Они не так пишут код, не так общаются и вообще все делают не так. А им нужно делегировать задачи. ОМГ! Как это сделать и надо ли это делать вообще?

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

👇
Обсудим на бесплатном вебинаре "Как быть руководителем и не сойти с ума?" 24 декабря

Вести буду я - практикующий психолог с 10-летним опытом, ведущая тренингов и семинаров в IT по проблемам профессионального и личностного развития, спикер IT-конференций, ex IT HR.

Год назад выступление с этой темой на devleads митапе было горячим и собрало много откликов. Теперь все переосмыслено, доработано и стало частью авторской программы для руководителей, управленцев и тимлидов - PSYvIT.

На вебинаре затронем вопросы:
источник
oleg_log
unrolled loop❤️
источник
2019 December 06
oleg_log
я бы прост назвал Jetbrains Atlassian.

Конечно замахнулись круто, и слак, и гугл календарь, и бейзкамп, и конфлюенс. лол, даже мобайл сразу.

Как бы по швам не разошлись от напряжения
источник
oleg_log
А вот и один из ответов. Правда в статье есть куча других примитивов, но глянуть все равно стоит #go

https://blogtitle.github.io/go-advanced-concurrency-patterns-part-3-channels/
источник
oleg_log
Недавно был инцидент с Кассандрой, запрос из DataGrid на продовую бд, из-за отсутствия партиционного ключа. Это выжрало всю память и кластер начал кашлять ошибками.
источник
oleg_log
источник
oleg_log
Groovy Copperfield опять показывает фокусы.
Теперь-то с подсветкой видно, что ПРОД и ДЕВ трактуются по разному (через полчаса-то понятно). Оба они значения enum, вот только ПРОД будет новым инстансом, а (ДЕВ) - нет. Такое предчувствие, что груви и ямл это две ноги одной сатаны.
источник
oleg_log
Крутилась у меня одна мысль о "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.

А было бы чуть больше копипасты в _нужном_ месте - жизнь стала бы проще. Конечно, если вы знаете все мели в своем проекте, то круто, но проекты могут быть разные по размеру и вы что-то да оставляете для будущего читателя.
источник