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
Forwarded from OpenDevCast
OpenDevCast — коллективный блог разработчиков. Цель — дать каждому простую возможность опубликовать свои блогпосты про IT, рассказать о своих проектах и поделиться опытом.

Многие хотят что-то писать и о чем-то рассказывать, но не знают с чего начать, где опубликовать и как привлечь читателей. И вот как раз с преодолением этих преград мы и хотим помочь.

+ Канал: @opendevcast
+ Чат: @opendevcastchat
+ Гайд как сделать пост: https://github.com/opendevcast/opendevcast

#intro
@olegkovalov (@oleg_log)
@orsinium (@itgram_channel)
Forwarded from Undefined Nation
Я как бы активный жаворонок, спать днём для меня дикое исключение.

И вот 1й раз за полгода я решил подремать днём (организм потребовал), как полетели алёрты из любимого PagerDuty , что на тестовом окружении много 4хх.

Да чтоб меня :/
Сегодня узнал о SetPanicOnFault из пакета runtime/debug от Алексея Палажченко.

SetPanicOnFault controls the runtime's behavior when a program faults at an unexpected (non-nil) address. Such faults are typically caused by bugs such as runtime memory corruption, so the default response is to crash the program.

Но вот пользоваться этим не стоит, поведение программы после segfault (внезапно) неопределено.

#go https://golang.org/pkg/runtime/debug/#SetPanicOnFault
Крутой доклад о дженериках в #go, сравнение с C++ и Java, плюсы и минусы, ну и как работает.

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

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

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

https://nchan.io
https://github.com/slact/nchan
Ухты, кубы оказывается на модули переехали в начале года, а я это упустил. 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
Открываешь пулл реквест «меняем хранилище с редиса на зукипер»

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Получаем: фокус уходит в проект с открытым файлом и поиск начинается там.
Хм, 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/
Я выиграл у Акинатора загадав Дональда Кнута.

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

it's wednesday 🐸
Если вам не повезло и вы столкнулись с discourse, то сделать его более статичным и читаемым довольно легко, надо просто....

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

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