Size: a a a

2019 August 27
oleg_log
Сегодня в маршрутке дувчушка лет 4-х спросила маму: «А если всем попросить Одерски, он закроет PR с отступами?»
С мамой плакала половина скалистов…
Одерски, выключи отступы!!!
источник
2019 August 28
oleg_log
it's wednesday my dudes 🐸

My full income progression from a career in tech as a full-time employee (writing code, individual contributor):
2008: €25K
2009: €30K
2010: €55K
2011: €75K
2012: $120K
2013: $155K
2014: $186K
2015: $230K
2016: $393K
2017: $467K
2018: $511K

*few tweets later*

Math was never my thing. I think it's safe to say that my math knowledge is limited to the level of basic arithmetic, fractions, and percentages. And I can't remember needing anything else throughout my career.

And neither was computer science my thing. The only sorting algorithm I can write is bubble sort. I learned a few data structures & some other CS concepts on the job, as needed, but I never had interest in CS research, unless it was very relevant to what I was working on.

As for programming, I'm only fluent in two languages: JavaScript and Java. And I only learned Java while working at Amazon. I have a superficial understanding of a handful other languages, but I feel I can pick up any language with only a modest effort.

https://twitter.com/dvassallo/status/1165815638276755457
источник
oleg_log
Мне кажется NodeJs пошло не по тому пути, когда в билде мы стали видеть:

../../nan/nan_converters_43_inl.h:22:1: warning: 'ToBoolean' is deprecated: ToBoolean can never throw. Use Local version. [-Wdeprecated-declarations]

/Users/oleg.kovalov/.node-gyp/12.1.0/include/node/v8.h:2523:3: note: 'ToBoolean' has been explicitly marked deprecated here
 V8_DEPRECATE_SOON("ToBoolean can never throw. Use Local version.",
 ^

../../nan/nan_implementation_12_inl.h:103:42: error: no viable conversion from 'v8::Isolate *' to 'Local<v8::Context>'

Это конечно полезно знать, но какого черта я вижу сорцы v8 ?? Тут (возможно) стоит поругать авторов тестов и репо, что v8 пересобирается или что там они творят. Но в любом случае абстракции потекли :(
источник
oleg_log
Узнал одну историю от друга.

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

И вот одну печеньку искали 6 недель. Никак не могли найти виновника, кто докидывает скрипт для трекинга пользователей. Быстро-фикс был прост - затирать на ЛБ (cloudflare, а точнее их workers).

Потом правда скрипт нашли, но каким-то образом он не грепался или включался на странных этапах сборки, а может и руки были кривые. Такие вот дела.

Может у вас есть история про миндальное хттп пичекьки? (послушаю тут @olegkovalov)
источник
oleg_log
не быдлокодер, а chaos engineer 👌
источник
oleg_log
хм, получается Ian сослался на мой комент про FAQ, жизнь с этого дня стала чуть приятнее.

Ах, да, исход этого "пропозала" немного очевиден.
источник
oleg_log
Публичный метод вызывает другой публичный метод (оба в одном классе), это..
Анонимный опрос
20%
Даже не думал о таком, без разницы
57%
Нормально и ничего менять не надо
21%
Плохо и надо сделать через приватный метод
2%
Ща-ща я вам поясню в коментах
Проголосовало: 537
источник
oleg_log
Тут появился сбоник всех пропозалов для обсуждения, и среди них меня особенно привлек 1. Речь идет про Elixir-like pipe operator.

|> в Эликсире позволяет быстренько делать композицию функций, к примеру в го, автор пропозала хочет видеть:

s := strings.TrimSpace(x) |> strings.ToLower() |> strings.ReplaceAll("/old/", "/new")

Что равносильно:
s := strings.ReplaceAll(strings.ToLower(strings.TrimSpace(x)), "/old/", "/new")

И вот Robert Griesemer (один из первых авторов го) предлагает изумительно простой вариант, который работает так же:

t1 := f1(t0)
t2 := f2(t1)
...
tn := fn(tn_1)


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

сборник: https://github.com/golang/go/issues/33892
kurved pipe: https://github.com/golang/go/issues/33361
источник
oleg_log
Этим японцем был Chris Okasaki, автор Purely Functional Data Structures.

(А ваще он не японец, а веселый мужик, вот вики https://en.wikipedia.org/wiki/Chris_Okasaki вот гитхаб https://github.com/chrisokasaki (вроде он, хз) )
источник
oleg_log
источник
oleg_log
лойс
источник
oleg_log
источник
oleg_log
Note #18 gotip 🔨

gotip консольная утилита, которая помогает скомпилировать go из мастера и очень быстро проверить, пофиксили ли баг в мастере или совместимость проекта с последней версией (origin/master).

$ go get -v golang.org/dl/gotip
$ gotip download
………………………….
…. Long output…. Here…. ☕️☕️☕️
………………………….
$ gotip version
go version devel +307544f Wed Aug 28 15:49:59 2019 +0000 darwin/amd64

$ gotip run main.go


P.S. код gotip довольно простой -> https://github.com/golang/dl/blob/master/gotip/main.go#L37
источник
2019 August 29
oleg_log
Утро походу начнется с подкаста с Кармаком. Еще не смотрел, но чую годноту (+это еще Joe Rogan подкаст, там часто годные вещи бывают, слышал такое)

https://www.youtube.com/watch?v=udlMSe5-zP8
источник
oleg_log
А не, как-то воды много, даже до 1/4 не добрался
источник
oleg_log
источник
oleg_log
источник
oleg_log
Fastmail и IETF замутили новый стандарт для почты, интегесно.

https://fastmail.blog/2019/08/16/jmap-new-email-open-standard/

Описание протокола https://jmap.io/#i-want-to-implement-it-what-do-i-need-to-know

Да-да и тут жсон

JMAP (JSON Meta Application Protocol) is a modern standard for email clients to connect to mail stores. It therefore primarily replaces IMAP + SMTP submission.
источник
oleg_log
хм, неужели след Гоферкон будет на 2к участников? 🤔
источник
oleg_log
Собственно как теперь работает #go get с прокси.

GopherCon 2019: Katie Hockman - Go Module Proxy: Life of a Query
https://youtu.be/KqTySYYhPUE?list=PL2ntRZ1ySWBdDyspRTNBIKES1Y-P__59_&t=699
источник