Size: a a a

2019 September 02
oleg_log
Крутой доклад о дженериках в #go, сравнение с C++ и Java, плюсы и минусы, ну и как работает.

А еще там есть знакооооооооооомые мне мемы 🤔

https://speakerdeck.com/golangmoscow/anton-kil-chik-dzhienieriki-kotoryie-my-zasluzhili
источник
oleg_log
Сегодня узнал о такой крутой штуке к nginx как nchan. Обычный плагин позволяющий превратить нгинх в пабсаб (хттп поллинг, ws, sse). Еще умеет получать данные с Redis.

А еще (как я понял) все линейно скейлится, просто докидываешь инстансов и едешь. Внезапно проекту 10 лет, а я ток узнал. Хорошая вещь, чтобы не писать свой велосипед.

https://nchan.io
https://github.com/slact/nchan
источник
oleg_log
Ухты, кубы оказывается на модули переехали в начале года, а я это упустил. 400+ зависимостей однако.

https://github.com/kubernetes/kubernetes/blob/master/go.mod

Тут начало истории (не знаю зачем вам) https://github.com/kubernetes/kubernetes/commits/master?after=b327a729c520ec6a8ba1d21ac86aff092d4d031a+174&path%5B%5D=go.mod
источник
oleg_log
Открываешь пулл реквест «меняем хранилище с редиса на зукипер»

Ожидание:
код нового клиента, чуток конфигов, возможное удаление старого кода, все в пределах 10 файлов.

Реальность:
фиксы в 27 файлах, изменения и там, и сям, куча новой логики, тонны котлиновского сахара, с двадцать однострочников на 140 символов, DDD-проповедь от автора на слаке, опять...

:/
источник
oleg_log
Прикольно, оказывается Rob Pike делал ревью для таких статей как Google File System, MapReduce, Chubby (распред файловая система, распред. модель обработки данных и коорд. сервис распред систем).

А Robert Griesemer в BigTable и Chubby руку приложил.

Живут же люди...
источник
2019 September 03
oleg_log
❤️
источник
oleg_log
Сегодня повезло удалять ненужное апи из одного проекта. Я так давно это не делал, что даже отвык, как это прикольно.

Хоп-хоп, испекции запустил, методы поклацал, option + enter, enter и к следующему.

Короч надо искать ремоут работу по рефакторингу. Пусть мне платят за удаление кода с умным видом 🤔
источник
oleg_log
remote: Force-pushing to this repository has been disabled

...и речь не про мастер, а про мою, блен, ветку. Потому люди удивляются насилию и говорят что это видеоигры. Агащас.

UPD: репа другой тимы, со своими обострениями, я мимокрокодил
источник
oleg_log
Беспощадная жаба.

Я конечно понимаю причину
synchronized (readLock) {
           synchronized (writeLock) {
               synchronized (stateLock) {

но меня это не воодушевляет.

https://github.com/openjdk-mirror/jdk7u-jdk/blob/master/src/share/classes/sun/nio/ch/SocketChannelImpl.java
источник
oleg_log
Имеем: 2 открытых проекта в IntelliJ IDEA. Вот только в одном открыт хотя бы 1 файл, а в другом ничего.

Делаем: идем в тот, где ничего не открыто, жмём шифт 2 раза, в надежде быстро поискать классы.

Ожидаем: да что тут ожидать-то было?

Получаем: фокус уходит в проект с открытым файлом и поиск начинается там.
источник
oleg_log
Кстати вот еще(?, другой?) сбооник пропозалов для #go если хотите следить, что там выдумывают некоторые (в списках ничего интересного не нашел)

https://github.com/golang/go/issues/33502
источник
oleg_log
Хм, etcd 3.4 оказывается неплохо потюнили.

write throughput is increased by 70% and P99 write latency is reduced by 90% in the presence of long-running reads

also ran Kubernetes 5000-node scalability test on GCE with this change and observed similar improvements.

А еще там "придумали" Raft Non-Voting Member - Learner. Если честно, то я удивлен, что этого не было раньше (идея ведь на поверхности + в Zookeeper есть), но круто, что появилось, проще будет обновления делать.

https://kubernetes.io/blog/2019/08/30/announcing-etcd-3-4/
источник
2019 September 04
oleg_log
Я выиграл у Акинатора загадав Дональда Кнута.

Забавно, там был и CEO Nvidia и Шилдт (такой писатель книжечек по прогр).

it's wednesday  🐸
источник
oleg_log
источник
oleg_log
Hacktoberfest через 26 дней!!

https://hacktoberfest.digitalocean.com/
источник
oleg_log
Если вам не повезло и вы столкнулись с discourse, то сделать его более статичным и читаемым довольно легко, надо просто....

В общем, либо нажать Ctrl + P и откроется превью для печати, либо просто добавить /print к url.

Минимум жс, максимум спокойствия при чтении. Вангую что для этого может существовать расширения для браузера (правда ссылки на коменты рубит, а и чёрт с ним)
источник
oleg_log
Все так радуются по поводу го 1.13, а я вот чего-то не. Конечно релиз это круто, фиксы, фичи, обновления в пайплайнах, но..

Модули доступны уже с год (если вас занесло еще во времена vgo, ну или полгода с 1.12).

1_000 конечно красиво и полезно, но у меня мало констант в коде.

Новые фции в errors тоже ведь давно доступны в x/errrors...

Прокси и всякие sumdb эт рили классно. go.sum не раз спасал, когда какой-то гений делал форспуши тегов :(
источник
oleg_log
Написал статью, как делать странные картинки из больших графов.
https://habr.com/ru/company/ods/blog/464715/
источник
oleg_log
У одних знакомых людей случился инцидент на проде, потеряли деньги из-за healthcheck-ов. Казалось бы, а что же могло пойти не так?

Фаст-форвард в Кубернетес (потому что сейчас почти все ссылки по теме чеков ведет к кубам, скорее всего это было придумано раньше, но такова жизнь).

Так вот, там есть 2 вида: Liveness и Readiness.
1й отвечает на вопрос: сервис жив?
2й отвечает на вопрос: а готов ли?

И вот у людей не было ответа на 2й вопрос, что привело к неправильной обработке запросов и еще неким вещам (детали не важны).

Статья от чеках (с гифками) https://cloud.google.com/blog/products/gcp/kubernetes-best-practices-setting-up-health-checks-with-readiness-and-liveness-probes
Ну и конфиги в кубах (для примеров) https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/

PS: люди жили не на кубернетесе, что-то свое было.
источник
oleg_log
String с большой буквы, значит речь про джаву, мем справедливый, дело закрыто
источник