oleg_log
1.77K 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
Кто-то распечатал в офисе, короч всем приходится сосат6 из-за UX
Собственно почему мы все живём и страдаем 😥
Ввязался в один собес, интересная фирма, хороший продукт, приятный стек. ну короч красиво все.

И вот попросили сделать тестовое....вроде бы не проблема, куды там, 1.5 сервиса написать и чтобы не стыдно было показать...

...но в итоге пришлось распрощаться с последней надеждой отдохнуть в воскресенье(ну хотя бы половинку). Обидно то, что даже скилы не подтянешь, негде душе развернуться!

Короч брать тестовое и убивать выходной день я больше не горю. Либо надо знать, что ничего другого в выходные делать не придется.

Не повторяйте мою ошибку.
Жеза-то какая. Короч, собеседовали меня по архитектурам, как там круто все сделать, всякие high availability, low-latency, даже в теорию сети пошли.

Приходишь, а тебе говорят: ну тут короч в жс чет не работает, надо подебажить. Причем в хроме норм, а в фф - хз.

Но это все равно не так страшно, как садить фронтендера за легаси скалу (не в обиду фронтам).
Forwarded from distraction
"The TCP stack in Linux 1.0 in 1994 contained 3k lines. It grew to 18k lines in version 2.6 (2010). Today’s TCP implementation spans more than 80k lines of C code in the Linux kernel"

Из какого-то исследования тсп под линуксом: https://arxiv.org/pdf/1901.01863.pdf

В общем-то логично, туда вливают кучу сил, ибо критикал для всех этих монополистов айти, вот бы с юдп еще так было :(

Было бы еще интересно сравнить с BSD семейкой.
О, гитхаб теперь показывает зависимости на репо (точнее кто юзает это репо).

Вроде и полезно, но хм, не захламит ли это интерфейс? Да и внешние тулзы как-то это делает более детально 🤔
Приходи к нам в Go! У нас есть:
if - ведь как-то надо жить без монад
for - потому что зачем что-то еще?
goto - если вы решили нарваться на проблемы
дженерики - они есть, правда, просто вам нельзя
interface{} - ведь дженериков вам не дадим, а стрелять в ногу надо
go - ведь зачем интел продает нам hyperthreading
chan - почти имиджборды, все пишут, все читают, всё асинхронно
unsafe - если вы хотите попросить прибавку к зп
go modules - единственный верный пакетный менеджер который сломал всю экосистему
OKR 1к до конца мая сделан, всем спасибо 🎉
Нашлась старенькая статья о том, что подсветка комментариев в коде сломана.

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

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

https://jameshfisher.com/2014/05/11/your-syntax-highlighter-is-wrong/
А потом на выходных опять бекенд, фронтенд
Новые новости из мира микросервисов.

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

Уже 5 человек пытаются распутать эту #саксес_сториз
oleg_log
#полезняшки fd - еще один велосипед на расте, теперь о поиске файлов mcfly - быстрый поиск по истории баша Apptivate - хоткеи на открытие приложений под макось Caffeine - запрещает включение скринсейвера, опять макось https://github.com/sharkdp/fd ht…
Давно не было, сегодня #полезняшки о КАФКЕ

https://github.com/edenhill/kafkacat - Generic command line non-JVM Apache Kafka producer and consumer - эту штуку даже на недавнем Kafka Summit в Лондоне рекламировали

https://github.com/fede1024/kafka-view - Kafka web UI да еще и на расте

https://github.com/linkedin/Burrow - тулза от авторов(или уже нет) для мониторинга лага. Правда порой баги и алёрты с неё ловили :(

https://github.com/birdayz/kaf и альтернатива первому, но уже на го, а не си
Сегодня на еженедельное демо позвали ХРшу(тимлид позвал), посмотреть как мы работаем, чем занимаемся.

В течении часа ей пришлось смотреть на WireShark, непонятные диаграмммы Service Mesh, слушать про миграцию сервисом на новые VM и делать вид, что понимает шутки на ответ из curl-a.

Боюсь теперь знать, какой фидбек она напишет о нас.
Как остаться видимым на мастере с 2016, пособие.

Достаточно закомитить лишнюю строку и с большой доле вероятности всем будет пофиг :D
Сегодня с автором @golangdigest разгорелся диалог, когда нужно давать интерфейс для логгера? (Речь о го, но офкорс применимо к остальным)

И вот итог:
- если у вас приложение(консольное, десктопное), то тут передача логгера ни к чему(кэп). Хватит параметра для файлика куда писать
- вебсервис почти тоже самое, либо пишите локально, а потом другой инструмент собирает, либо по сети куда-то туда(опять кэп). Тут только вопрос - жсон или тхт. Тут одного верного ответа не будет, зависит от фирмы/команды/требований. Но я бы начинал с тхт.
- но если у вас либа, вот тут интересно.

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

А вот если срок жизни больше(читай как клиент Consul, агрегатор событий, и все в таком духе), тот тут уже стоит дать возможность логгировать так, как захочет страдалец/ваш пользователь. Лишний раз узнать, что соединение с консулом отпало про причине ххх никому лишней не будет.

Такие дела, готов спорить до вашего посинения.
А что такое песок? да этож silicon dioxide (диоксид кремния), а кремний это...правильно, процессоры!

Красиво-то как. Да и пикча справедливая.
У сервиса есть фича - перейти readonly и на любое мутирующее действие нужно отвечать ошибкой(хттп код). Вопрос - каким?
(репост оч приветствуется)
Anonymous Poll
10%
400 Bad Request
19%
403 Forbidden
37%
405 Method Not Allowed
14%
406 Not Acceptable
3%
412 Precondition Failed
2%
500 Internal Server Error
2%
501 Not Implemented
2%
502 Bad Gateway
7%
503 Service Unavailable