oleg_log
1.76K 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
Я думаю многие не раз задумывались: как правильно писать комментарии и стоит ли вообще? Есть крутая статья от Antirez, автора Redis.

И вот он предлагает такую категоризацию комментариев:
— Function - to prevent the reader from reading code in the first place
— Design - states how and why a given piece of code uses certain algorithms, techniques, tricks, and implementation. It is an higher level overview of what you'll see implemented

— Why - why the code is doing something, even if what the code is doing is crystal clear
— Teacher - don't try to explain the code, but teach the *domain* in which the code is operating

— Checklist - there are places in the code that tells you to remember to do things in some other place of the code
— Guide - babysit the reader, assist her while processing what is written in the code
— Trivial - is a guide comment where the cognitive load of reading the comment is the same as reading the associated code

— Debt - technical debts statements
— Backup - comments older versions of some code block or even a whole function

Но советую читнуть все, там много, но просто + примеры

http://antirez.com/news/124
Наверное одно из самых наглядных объяснений bottleneck-ов.

Пропускная способность:
— параллельных процессов - их сумма
— последовательных процессов - минимум среди них

Кафка и монолит на руби, так сказать
Заметил одну вещь: чем меньше человек участвует в опенсурсе, тем он меньше думает о своем коде.

Наблюдение пошло с того, как люди ломают совместимость во внутренних либах фирмы и...все. Сломали и сломали, едем дальше.

А зависящей стороне прост приходится молча это проглатывать, либо же не обновляться (действительно, как это так?)

Я именно про ломание в патч и минор версиях, все же для этого мажорчики есть.

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

Короч, не опенсурсил - не мужик
Вот отключение этих двух кнопочек позволит спасти ваш мастер от форс пушей с фиксом, если кто-то случайно смержит 20 рабочих коммитов аля Fix review comments. Но клацнуть их слишком сложно при создании репо....
(в очередной раз обещаю дописать статью про гит, чтобы убрать возможность любых факапов, чесна)

UPD: это сделает жизнь проще, при фиксе. Это не спасет от пушей в мастер, для этого другая ж галочка, ну чего вы..
oleg_log
А у вас "одаренные" тоже на (гиро)скутерах по офису гоняют и в звоночек звенят?
В общем-то у нас было обострение год назад, особенно в июле-августе, человек 5 постоянно мотались и хвастались у кого батарея толще на скутере.

И вот сейчас парочка topgear устроила мимо комнат.
Либо это холодный вечер пятницы, либо меня потянуло на подкасты, подкиньте что-то, что любите слушать. И как вы вообще вкатились в них?

Меня как-то отталкивает то, что я теряю контекст, потому-что хочу заниматься своими делами _и_ при этом слушать.

Кстати необязательно айти, кто меня знает ‾\_(ツ)_/‾

Заранее благодарю @olegkovalov
даже моя бабушка лучше контекст-свитчи делает
(с) анон из токийского дрифта
oleg_log
Такс, хотел в пятницу, но #задачка будет сегодня. Сколько различных флоат32 помещается в промежутке [0; 1] ? (для подсказки: а сколько в [-1; 1] ? Ответ можно дать наугад с большой шансом угадать :) Для тех кому скучно и хочется поиграться с битиками: посчитайте…
Так получилось, что ответили только 3/3 человека. Штош.

Начнем с подсказки, ответ....половина. Да, в [-1; 1] содержится половина всех флоат32.

Если кратко, то для х и 1/х у нас одинаковое кол-во битов. Поэтому внутри [-1; 1] должно быть столько, сколько в (-inf; -1) U (1; +inf), приблизительно, ведь там еще +- 0 и NaN, а я не помню что и как с ними %)

Соотв в [0; 1] попадет четверть всех флоатов.

Если совсем точно, то 126 * 2**23 + 1 == 1,056,964,609. Позитивные экспоненты * мантисса + само число 1 = миллиард с кусочком, или 2**30 как приближение, то есть 1/4 от 2**32.

А код для [x;y] я сам не написал, поэтому можете не спрашивать, задание было для хардкорщиков, но видно таких не нашлось.

Так устроена природа, как говорил мощный физик из ДонНУ.

Ссылочки:
любимец многих Daniel Lemire (советую его блог, особого хардкора жаль нет, но порой интересно)
https://lemire.me/blog/2017/02/28/how-many-floating-point-numbers-are-in-the-interval-01/

"Дизассемблер флоатов" https://float.exposed/0x42304000

И хорошее описание внутренностей флоатов http://fabiensanglard.net/floating_point_visually_explained/
Вот очень-очень крутое замечание https://xn--r1a.website/numstation/1550

При смене операций над данными можно решить разные задачи. Мне это еще напомнило BFS/DFS (те что обходу графов в ширину и глубину).

При смене очереди на стек, в простейшей реализации, 1й становится 2м и можно наоборот.

Весь мир состоит из паттернов.
черт...годовщину пропустил 😭
В го 1.13 очевидно завезут новые таймеры, вот с таким красивым комитом: const oldTimers = false

И таким (частичным) описанием:
runtime: switch to using new timer code

No big changes in the runtime package benchmarks.

Changes in the time package benchmarks:

name old time/op new time/op delta
AfterFunc-12 1.57ms ± 1% 0.07ms ± 1% -95.42%
After-12 1.63ms ± 3% 0.11ms ± 1% -93.54%
Reset-12 6.78µs ± 1% 4.24µs ± 7% -37.45%
Sleep-12 183µs ± 1% 125µs ± 1% -31.67%
Ticker-12 5.40ms ± 2% 0.03ms ± 1% -99.43%


Насколько я знаю от людей из гугла, это вещи давно у них ходят в проде и все ок, вероятность фатальных дыр минимальна.

Справа там куча патчей с изменениями:
https://go-review.googlesource.com/c/go/+/171883/
В телегу завезли анимированные стикеры, если вы в поисках, то есть канал с ними.

https://xn--r1a.website/AnimatedStickers
и еще https://xn--r1a.website/topanimated

(кстати какие-то клиенты телегу могут падать с ошибкой, обновитесь до последней)
Forwarded from Animated Stickers
This media is not supported in your browser
VIEW IN TELEGRAM
ДА БЛИН, ДА! (хотя спасают, но редко)
oleg_log
Как много вы овертаймите?
(возьмем 8ч как нормальный рабочий день)
ежедневно == только рабочие дни, аргх
Уже 15 лет висит.
https://jira.atlassian.com/browse/JRASERVER-3406
(кстати комент потерли)