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
oleg_log
Почему вы подписаны на этот канал?
(в догонку к вопросу на выходных + интерес одного из подписчиков)
Фак, надо было доабвить вариант "Олег", считайте его последним вариантом.
Тут BlazingSQL вышли в опенсурс и это очередная крутая новость. Я пока малым был, часто мучал вопрос: ну почему gpu не используются для задач кроме рендера и математики????

В общем эт круто, больше решений в этой области - больше движа. Недавно и Убер хранилище с метриками релизнул, да и другие БД были.

Если честно, я жду молотилку байт для Clickhouse :3
Не знаю зачем, вроде и так справляется, но who cares.

https://blog.blazingdb.com/blazingsql-is-now-open-source-b859d342ec20

https://github.com/blazingdb/pyBlazing/
Заметно не соглашусь с Trunk Based Development. В таблице приведены вещи из разных областей, но выданы с выгодной стороны.

Тип давайте пушить в мастер, пейриться и прятаться все под фичер-флагами.

— Feedback comes late
ну вот вы пейритесь, а потом 3й человек прочитает ваш код и ужаснется.
— Low quality feedback
почему напарник поможет это сделать лучше? может он тоже ничего не знает, обратитесь еще к кому-то и решите.
— My code
хм....тут какой-то особый софт-скилл, я пасс.
— Individual codestyle
смех, пора уже gofmt-like иметь в каждой репе, чтобы било по рукам.
— Infrequent integration
ок, а причем тут транк? берешь и пушишь, хоть с бранча, хоть с коммита (что одно и тоже), просто фичер-флагой закрой и забудь.
— Easy to ignore a failing build
так можно и на мастере игнорить красные билды, может просто настройки репы глянем?
— Dread large refactorings
честно, я не понял как это поможет, больше кода трогаешь, больше вещей может не состыковаться.
— People work in isolation
так это, мне надо бегать по всем комитам, что _уже_ в мастере? хм, мне казалось ПР для этого и создано, посмотреть перед влитием кода.
— Poor tooling for reviewing changes
берешь и чекаутишь бранч, изи.
— Lose original commit history
ок, тут можно поспорить, я хочу видеть 1 комит на 1 задачу, но тут часто спорный вопрос.

В общем странная статья, тут вопрсо не про 'only master vs branch per feature', а 'у нас есть чертовы правила или мы йоло-стайл'

https://xn--r1a.website/count0_digest/2577
Функции раньше
- полиморфные
- оптимизация хвостовой рекурсии
- модификаторы доступа для инкапсуляции

Функции сейчас
- разрыв сердца от не собаки

by @zioff
Так-с. Готовь срывать покровы, но они и так сорваны. Программисты не работают по 8ч в день. Большинство. Хорошо это или нет - не знаю (мне точно хорошо %)

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

Вывод: в своей фирме я буду форсить парное программирование с 1го дня.

И не для того, чтобы все пахали, а чтобы задачи закрывались быстро, с двойным вниманием, а в свободное время люди делали, что хотят. К примеру сабмитили мемы в бота Профанктора (ха как красиво рекламу впихнул @libmustdie)

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

Взял с борды (не имедж-борды) таск, на пару накидали код, кинули на ревью, пошли еще 1 взяли или сели ревьювить код других. Ну или свалили домой, ведь на сегодня хватит. А еще нет времени на прокрастинацию.

Готов слушать как вы сильно не согласны @olegkovalov
Yak shaving
[MIT AI Lab, after 2000: orig. probably from a Ren & Stimpy episode.] Any seemingly pointless activity which is actually necessary to solve a problem which solves a problem which, several levels of recursion later, solves the real problem you're working on.

https://en.wiktionary.org/wiki/yak_shaving

Собственно так я и начал писать свою либу jwt, клиент redis, клиент zookeper, движок каф...

Возможно 1 из рекордов, лвл 64 http://boston.conman.org/2018/03/03.1
Тут роадмап Envoy на 2019 огласили, все круто, и тебе HTTP/3, и WASM, и даже поддержка Kafka(Redis, ZK, MySQL уже есть)...даже конкуренты Nginx & HAProxy фичи копируют, вот только судя по гитхабу и стонам соседней тимы не все так вылизано.

А еще Lyft пихает 40М рпс в Редис, однако.

https://blog.getambassador.io/envoy-proxy-in-2019-security-caching-wasm-http-3-and-more-e5ba82da0197
Прост потому что красиво сделано
Узнал, что у одних людей была авария на проде из-за пустых строк.

В Puppet было чууть-чуть криво написан шаблон конфига (пустые строки после иф-ов), что породило неправильные параметры для Varnish...

В итоге кеши не наполнялись правильно и в общем это перегрузило->убило сервисы.

Бойтесь пустых строк
Такой пришел версию подбить от скуки, а тебе говорят заполняй пдф и шли на мыло. Удачи братаны.

Блин, да есть же боты, сложно блин прикрутить было one-click CLA ? аргх

https://github.com/cloudfoundry/go-diodes/pull/23#issuecomment-519414655
В слаке Kong есть канал YELLING где все ходят покричать капсом, если что-то не работает. Прикольно.

(Kong занимается клауд платформаме, в https://konghq.com/)(туда один из наших уходит, после пары месяцев полу-ремоутом, котлинист стал гофером, помянем)
Занесло на хабре почитать перевод статьи про генерики в го, ну то есть комент, чтож еще. И нарвался на шикарную ветку коментов.

Есть такой юзер TheShock, который поливает го со всех возможных шлангов, но тут миленький фейл получился: https://habr.com/ru/company/mailru/blog/462811/#comment_20481883

ТЛДР: почему нет конструкций <T> или [T] ?
Потому что усложнит гошный парсер. Пример из Раста if a as u32 < 5 { ... }
error: < is interpreted as a start of generic arguments for u32, not a comparison

Пример из С#
bool b = f as F < a; // fail
bool b = (f as F) < a; // ok

*злорадно хмыкаю нефурфажным гоферным носиком*
oleg_log
Занесло на хабре почитать перевод статьи про генерики в го, ну то есть комент, чтож еще. И нарвался на шикарную ветку коментов. Есть такой юзер TheShock, который поливает го со всех возможных шлангов, но тут миленький фейл получился: https://habr.com/ru/…
Собственно вопрос про: усложнять ли парсер или усложнять жизнь разрабам?

Пойдешь по первому пути - потеряешь в скорости компиляции (а ведь это хорошая фича).
Пойдешь по второму пути - заставишь лишний раз не юзать генерики где не надо (звучит го-вэй со всеми последствиями)

Я за 1е, доп скобки (type T contr) не так и ужасны, зато смотрится прозрачно.
oleg_log
Поедем с круглыми скобками или двинем в спец символы?
Круглые скобки это то, что предлагается в пропозале
аля func (type T contr)(s []T)

Ну а "спец символы" это всякие <T>, [T], #$!#$ и что угодно можно придумать-стащить с других языков.
How is git commit sha1 formed

Сколько жил, столько думал, что в хеше комита есть привязка ко времени. А вот нифига.

(printf "commit %s\0" $(git cat-file commit HEAD | wc -c); git cat-file commit HEAD) | sha1sum
(на макоси у меня прост shasum заработало)

gist с разбором https://gist.github.com/masak/2415865

Сурс https://xn--r1a.website/rxd_txd/1634

UPD: я ошибся, см след пост https://xn--r1a.website/oleg_log/1631