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

halp: @olegkovalov
web: https://olegk.dev
fov: @oleg_fov
chat: @oleg_log_blabla
podcast: @generictalks
Download Telegram
Докину еще про язык. Вот тут я постил отличный доклад Guy Steele о создании языка https://xn--r1a.website/oleg_log/948 (очень советую)

Это довольно непростой и последовательный процесс. Вместо: оооо, какая фича, берем на спринт, лучше было бы: ооо, а это интересно, надо подумать как это сойдется с другими вещами.

Внезапно так можно сказать и не только про язык, но и про любой проект. Стараться делать не feature-driven, а problem solving driven.

Горутины это фича, решающая проблему.
Борроу чекер это фича. рещающая проблему.
Оно компилируетсо быстрее - маркетинг

*mic drop*
oleg_log
Докину еще про язык. Вот тут я постил отличный доклад Guy Steele о создании языка https://xn--r1a.website/oleg_log/948 (очень советую) Это довольно непростой и последовательный процесс. Вместо: оооо, какая фича, берем на спринт, лучше было бы: ооо, а это интересно,…
Нашел в подписках крутую штуку по визуализации деления (стволовых?) клеток. Немного трудно материал заходит, но пролистать поклацать прикольно.

​We present the Integrated Mitotic Stem Cell as a data driven model and visualization tool that captures a holistic view of human cell division for the first time.

https://www.allencell.org/

или сразу к туториалу + визуализации https://imsc.allencell.org/

(спасибо @neuronach за репост от @chkech)
Обожаю этот твитор и это дикое, как по мне, восхваление фильтра Блума.

В любом треде в стиле "а какая ваша любимас структура данных" всегда будет с хорошую пятерку криков ФИЛЬТР БЛУМ ФАРЕВА.

Мне интересует больше другое: зачем оно вам понадобилось? И что-то мое паучье чутье говорит ток 2 варианта:
- я про это читал, я понял (оно ведь простое), но при это звучит страшно, можно хвастаться
- я чет решил переинженерить и короче применил либу с гитхаба.

Почти тож самое могу сказать про все эти крутые кучи со сложностью О(1). Читать-то про них и читали, но они на практике не такие и шустрые. Но да, ЧСВ греет.
Надеюсь понедельник будет таким же
О, гоферы, нашел крутую либу для работы с айпишниками от Хашикорпа. Куча валидайций, проверок и прочего сахара. Даже CLI есть.

https://github.com/hashicorp/go-sockaddr
Случайно тыкнул в IDEA файлик на 300мб во время коммита. И хип совсем внезапно улетел в облака, правда я это смог понять по фризу на 15 секунд и окошком: ну шо, может жвм еще памяти докинем?

Зато с подсветкой кода.
Еще вишенка. Чел из команды перешел на полставки, потому что начал писать сервис меш для одной фирмы в СФ.

Он фанбой котлина, но...собес и работу взял на го (что не мешает ему постоянно шутить про ифы-форы и отсутствие других вещей в го).

Угадайте кто у меня спрашивает "а где надо ложить мой проектик на го, чтобы оно заработало" ?

ну реально #саксес_сториз (уже сижу вспоминаю 3ю историю для ккккккккккккомбо на сегодня)
В этой строке прекрасно все

MultiDcRepositoryCommandExecutor multiDcRepositoryCommandExecutor(ZookeeperGroupRepositoryFactory zookeeperGroupRepositoryFactory)
Было:
stream()
.filter(some_heavy_filter() && some_easy_check())

Говорю на ревью, давай так:
stream()
.filter(some_easy_check())
.filter(some_heavy_filter())

в мастере:
stream()
.filter(some_heavy_filter())
.filter(some_easy_check())


и комент: done

Спасибо синьерам за выработку кортизола в моем теле
oleg_log
Было: stream() .filter(some_heavy_filter() && some_easy_check()) Говорю на ревью, давай так: stream() .filter(some_easy_check()) .filter(some_heavy_filter()) в мастере: stream() .filter(some_heavy_filter()) .filter(some_easy_check()) и комент: done Спасибо…
Да, там реально стоило разбить и сделать простой чек раньше.

Кроме красоты, это еще чуток узкое место, и пару десятков тыщ рпс пролетающие через фильтр это подтверждают.
1й после o̻̭d̍ͪm̴ͫe͂ͤn͐͗ ͨ̈҉̗̘ a͂͒
Сейчас я пишу одну из самых отвратительных вещей в жизни.

Если кратко, то я играюсь с ооп фабриками, спринг контекстами и перекидыванием классов между публичным и приватным проектами.

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

Офкорс можно ругать архитектуру и вообще мой дед написал бы лучше, но так уж вышло.

Често говоря меня выбешивает другое: циклические зависимости. Не явные, но все же циклические. Когда оказывается, что пакеты между собой связаны в кольцо длиной 5 (foo -> bar -> baz -> quz -> foo, wtf?)

Выстраданная мысль: спагетти начинается не с кода, а с модулей/пакетом/неймспейсов.

"he will not divide us" - звучит как лозунг херовенько организованных модулей, в которые я несу демократию и фичи👌
Дед Боб сцепился с Джеффом со стековерфлоу и испортили всем ленту в твиторе каждый раз одно и тоже...

Рандом чел - Types + tests > tests
Дед Боб - Not necessarily. Types come with significant costs.

Но ведь: Tests aren't free either

Дедуле пора на пенсию.

https://mobile.twitter.com/codinghorror/status/1141848007404425221
В копилочку к: между теоретическим и практическим программированием все же есть разница