oleg_log
1.74K subscribers
1.87K photos
131 videos
9 files
2.8K links
Shelter for antisocial programmers "Oleg"

halp: @olegkovalov
web: https://olegk.dev
fov: @oleg_fov
chat: @oleg_log_blabla
podcast: @generictalks
Download Telegram
Shape Up - Stop Running in Circles and
Ship Work that Matters.

Basecamp сделали альманах того, как нужно работать. 1 картинка вместо всего блога. Определенно выходные будут потрачены на это.

https://basecamp.com/shapeup
такой кодик делает мне больно ):

isFoo ?: false -> true
Слехка очевидная вещь, но начал больше замечать, что много кто думает не задачей, а синтаксисом.

Вместо: у меня есть исходные данные в таком виду, я хочу такой Х результат.
Получается: мне тут нужна лямбда, в которую передается указатель на последний добавленный элемент, как из этого сделать Х ?

Это под-проблема называющаяся XY problem (https://xn--r1a.website/oleg_log/1118), которая смещает внимание от задачи.

Недавно в разговоре вытекло: короч мы пишем данные в AVL-дерево, ведь нам нужно отсортированные данные. Как оказалось нужно просто хранить мин-макс. кек.
Полчаса 3 человека решают, как назвать класс со списком хедеров и в каком пакете положить. И в каком месте кто это должен вызвать...🤔
Мысль из чата порожденная чатом: называть сервис реверсом оригинального слова.

календарь -> ьраднелак
сессия -> яиссес
коллектор -> ротеллок

Самое удобное, что легко понять оригинальную идею, достаточно прочитать в правильную сторону. Однако.
Кстати у меня тож траблы последние месяцы начались....
Лучшее, что я сделал для себя за этот месяц - сходил к офтальмологу и начал снова носить очки во время работы. Минус у меня небольшой (-0.75), но было достаточно, чтобы глаза утомлялись и в конце дня мне хотелось не пользоваться зрением до самого утра. И это при том, что монитор и то, что на нем написано я вижу прекрасно, как мне кажется.

Дело не в стеснении, а в том, что в какой-то момент я почувствовал, что очки мне не нужны. А теперь почувствовал снова, что нужны. Перенапряженные глазные мышцы деформируют глаз, тем самым усугубляя его дефекты, а со временем вызывая астигматизм. Очки же помогают держать мышцы в меньшем напряжении и, может быть, глаз немного вернется свою естественную форму.

Я знаю, что есть достаточно людей, которые не проверяют зрение, потому что привыкли, но щурятся, горбятся, разглядывают туманные пиксели - так вот, это стоит своих денег и в этом нет ничего стыдного, а уж тем более ваше зрение не станет хуже от ношения очков, скорее всего только лучше.
кто не делал велосипед, тот не был гофером
https://xn--r1a.website/libmustdie/2586
oleg_log
#sre
Еще одна забавная вещь: многие читают SLA как закон. Хотя расшифровав мы получим Service-Level Agreement. Казалось бы, договорились - делаем и все, но нет.

После слова Agreement идет кол-во "девяток" в договоре, аля 99.99% и вот на них это не заканчивается!

На самом деле эти "девятки" это SLO (Service-Level Objective), простыми словами цель для продоставленных услуг. И вот в ней и скрыта гарантия сервиса, то есть сколько мы планируем держаться в строю.

Но и на них это не заканчивается, ведь дальше идет табличка, которая определяет, какие будут возмещения, при несоответствии SLO, и как следует нарушению SLA.

Собственно SLA Cloudflare 100%, хотя сами видели недавно.
Пришло время для brew upgrade rust

700k rps все таки сложно не оценить. Советую еще вкладку Latency нажать :3

https://www.techempower.com/benchmarks/#section=data-r18
Блин! я сегодня узнал супер крутой паттерн в тестах го от https://victoriametrics.com/

Чтобы не писать эти дурные слайсы для table driven tests, можно все оформить как на скрине.

Просто как if err != nil. Я уже с минут 15 кусаю локти, что до этого не дошел сам. аргх
Твитер помер. Придется новый хостинг искать...
oleg_log
Блин! я сегодня узнал супер крутой паттерн в тестах го от https://victoriametrics.com/ Чтобы не писать эти дурные слайсы для table driven tests, можно все оформить как на скрине. Просто как if err != nil. Я уже с минут 15 кусаю локти, что до этого не дошел…
Зачем 700к рпс, когда есть движок жс от Фабриса Беллара? (автора ffmpeg, qemu и вычислителя числа пи)

— Рассово верный Си
— 190 KiB of x86 code
— Passes 100% of the ECMAScript Test Suite.
— Almost complete ES2019 support
— В тесте bench-v8 опережает движок XS на 35%, DukTape более чем в два раза, JerryScript в три раза, а MuJS в семь раз.
— Может в WASM

Фабрис, ты ювелир.
А еще он автор TinyC. Самого мелкого и шустрого компилятора Си.

https://bellard.org/quickjs/ (спасибо @sysadmin_tools )
oleg_log
Блин! я сегодня узнал супер крутой паттерн в тестах го от https://victoriametrics.com/ Чтобы не писать эти дурные слайсы для table driven tests, можно все оформить как на скрине. Просто как if err != nil. Я уже с минут 15 кусаю локти, что до этого не дошел…
Небольшое дополнение по этому посту. Да, паттерн не новый, как для го, так и для других языков. Его порой можно найти в стдлиб (и конечно же на гитхабе). Вот вежливо ссылку подкинули на один из примеров https://golang.org/pkg/time/#example_Time_Format

Мне кажется, когда в марте был хакатон по хттп-серверу с нуля, я тоже видел подобное в пакет http, но вот только вчера меня это удивило.
Hyrum's Law - An observation on Software Engineering

With a sufficient number of users of an API,
it does not matter what you promise in the contract:
all observable behaviors of your system
will be depended on by somebody.

http://www.hyrumslaw.com/
oleg_log
Hyrum's Law - An observation on Software Engineering With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody. http://www.hyrumslaw.com/
Хочется так же к этому добавить, что дело не только в API, как в описании методов и параметров, но так же и поведение этого API.

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

Собственно мемасик от xkcd наглядно показывает: дело не в только в апи, но и в том, как все работает.
Ребятки, я давно не интересовался, на какие каналы вы подписаны.

Ну или если вы сами ведете что-то - не стесняйтесь поделиться.

Кидайте @olegkovalov потом будет пост-сборник.
Прикольно, оказывается ФБ не забил на React Native и выкатил JS движок заточенный под RN на андроиде (дада, опять жс движок).

Это смотрится неплохим шагом на территорию гугла с их флагманом Flutter. Прям айти-техно-политика.

https://xn--r1a.website/defront/180