Size: a a a

2019 July 14
oleg_log
В го есть такая штука, как Method Expressions и о ней мало кто догадывается. Суть в том, что метод вы вызываете не на переменной, а на её типе. Я видел её раза 4 в жизни, хоть я и не мало го перечитал.

f := foo{}
foo.bar(f)

// same as

f := foo{}
f.bar()


Я так понимаю это было сделано из-за легаси с С (хотя я скорее ошибаюсь и теплю).

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

Спецификация: https://golang.org/ref/spec#Method_expressions

И как-то эта штуковина нам не понравилась и мы добавили проверку в go-critic, чтобы её лишний раз не использовали :)
https://go-critic.github.io/overview.html#methodexprcall
источник
oleg_log
Недавно интернет гудел про log(1+2+3) = log(1) + log(2) + log(3) и...в общем-то шумел без особого повода. класик.

Прост log(1) = 0 и внезапно мы получаем обычное свойство логарифма log(a * b) = log(a) + log(b) /shrug

Забавный видос по теме, там есть мемсы https://www.youtube.com/watch?v=OcTMBrUutfk
источник
2019 July 15
oleg_log
бгг
источник
oleg_log
Обучаем нейронку
источник
oleg_log
Elements of Programming by Alexander Stepanov and Paul McJones is now free.

Книга чуток математичная, но вдруг кому-то надо. Кстати 2019, то есть самая новенькая.

http://elementsofprogramming.com/
источник
oleg_log
источник
oleg_log
О, а тут еще языки для вечных флеймов из сборника Interesting Programming Languages

Внезапно в списке Elixir, Idris, Julia, Nim, Zig. Они конечно не мейнстрим, но достаточно известные, как по мне.

Там еще есть крутой Chapel от Cray Inc. Это такая фирма, которая пилит суперкомпьютеры почти 50 лет. Собственно язык для легко написания кода, который легко раскатать по многим машинам и процам. OpenMP-like language.

https://www.btbytes.com/pl.html
источник
oleg_log
“Recruiting the 10x developer”
Auguste Toulmouche, 1866

(айти движ бурлит по теме 10x developer, опять...)

https://classicprogrammerpaintings.com/post/165545705467/recruiting-the-10x-developer-auguste
источник
oleg_log
Эпик-трипл-пост о С++

Если бы я был булочкой с корицей, я бы плакал работая с С++

https://t.me/experimentalchill/10
Telegram
Experimental chill
Расскажу немного про C++. Мой доклад на CppCon отклонили в последний день по причине баланса. Расскажу тут, что я бы вещал.

Я внедрял C++17 на очень большой репозиторий и скорее всего буду помогать внедрять на ещё больший.

Сейчас я поговорю о том, что вообще может сломаться и что вообще за жесть происходит, когда вы апгрейдитесь.

Пункты будут идти с менее до более болезненных

1. Триграфы. Кому-то они нужны были?

Вкратце, в С++ можно было писать всякие ??(, которые бы означали [.

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

#include <iostream>

int main() {
   std::cout << "Size=???(FAILED, " << std::endl;
}

g++ test.cpp -O2 -o test -trigraphs        
➜  ~ ./test    

Size=?[FAILED

По факту триграфы были препроцессором.

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

Вообще триграфы нужны были в C99, потому что в ISO 646 не было некоторых скобок.…
источник
oleg_log
источник
2019 July 16
oleg_log
Хороший человек сделал крутувещь - собрал статистику, во сколько известные программисты комитят.

К примеру Torvalds, Lattner(Swift), Pike, Fitzpatrick(Go), Lerdorf(PHP), van Rossum и Bellard.

Теперь я еще больше боюсь Fitzpatrick, van Rossum и продолжаю бояться PHP.

В конце статьи однострочник на баше :)
https://ivan.bessarabov.com/blog/famous-programmers-work-time
(если погоняете на других репо, расты, нимы, ерланги, кубернетесы, не поленитесь кинуть результаты @olegkovalov :)
источник
oleg_log
You vs. The guy she told me don't worry about
источник
oleg_log
источник
oleg_log
Предыдущие 2 поста являются хорошим примером того, что 10x engineer таки не миф.

Конечно это не значит, что нужно сидеть в 4ч ночи и что-то докомичивать. Но и то, что есть люди со страстью к своей профессии, готовые долго корпеть над результатом. И эти как раз прокачивать навыки.

Считайте меня адептом религии смирения™, но быть 10х не значит, что каждый должен спускать здоровье перед монитором. Всегда есть кто-то лучше умнее. Нужно быть к этому готовым и спокойным.

10хэ это не сделать рефакторинг всего проекта за ночь и не значить угадать по стектрейсу с прода какой там баг, сидит ли человек в виме, использует ли gui для гита или помнит флаги tar - мелочь и дело практики+желания.

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

Хард скилы без софт скилов бесполезны, если ты не работаешь 1.

(хотя Линус круто всех материт, приятно читать)
источник
oleg_log
Кстати комикс xkcd про tar сложен до 1го прочтения доки(ну или ответа на SO):

tar zxvf:
z — means (un)z̲ip.
x — means ex̲tract files from the archive.
v — means print the filenames v̲erbosely.
f — means the following argument is a f̱ilename.

аки unzip — extract — verbose — filename

SO: https://stackoverflow.com/a/21929288/433041

ну или ungzip как говорит @pnegodyay
источник
oleg_log
Мне как-то рассказали про мнемонику Xtract Ze Vucking File и теперь я это вспоминаю абсолютно каждый раз
(C) от читателя
источник
oleg_log
Хм, жависты-сишарповцы, а у вас есть тулы для race detection? Вот чтобы я мог быстро проверить, все ли красиво между тредами и никакие данные не пересекаются?

аля Go race detector / C++ ThreadSanitizer, если знаете что это.

Быстрый гуглеж как-то не сильно помог.
Заранее спасибо @olegkovalov
источник
oleg_log
Хуже принужденных a/b-тестов могут быть только нерабочие a/b-тесты.

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

Аргх. ну вот зачем трогали.
источник
oleg_log
ok google, какие там были дыры в докере с 2017 ? друг спрашивает
источник
oleg_log
Если ты не идешь к гуглу, гугл(Вадим) приходит к тебе:

> Subject: CVE-2019-5736: runc container breakout
exploit code
https://www.openwall.com/lists/oss-security/2019/02/13/3

Спасибо, гугл-Вадим 🙌
источник