Size: a a a

2019 March 25
oleg_log
Надеюсь в го2 это вмержат в мастер
источник
oleg_log
источник
oleg_log
Сегодня-завтра делаем хакатон. А тема: свой хттп сервер. Надо бы что-то оригинальное придумать в реализации 🤔
источник
oleg_log
OOP strikes back
источник
oleg_log
Bad programmers worry about the code. Good programmers worry about data structures and their relationships.
(c) Linus Torvalds

И вот по своему глупому желанию я провел выходные в путоне, а именно портируя небольшую библиотеку на го.

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

Становится тупо сложно ориентироваться: что где и как передается.
Этот параметр строка? словарь? класс? а, это была фция, ну ок.
А возвращаемый параметр? Это False? None? А, это список словарей, ну ок.

Да, есть юнит тесты, которые проверят, что все работает. Да, это все в проде и пробемы быстро фиксятся. Но! а что происходит с человеком, который видит этот код впервые? Ответ, по моему, очевиден.

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

Но да, работает.
источник
2019 March 26
oleg_log
Вот так смотришь на очередной тред по UB в крестах и возникает разумный вопрос: насколько еще целесообразно добровольно отстреливать себе конечности?

Ведь не так уж и много сфер, где только с++ справляются с задачей. Даже преславует хфт живет на жвм и го.

https://twitter.com/Nekrolm/status/1109797489576681472
источник
oleg_log
На днях вспоминал несколько споров об фичах:

- аля-ПМ: мы хотим аналитику в риалтайм. <- жирная точка.
- мы хотим ответ <2-3мсек с кеша.
- нам нужна пагинация с 12к элементов на странице.
- данные должны быть в бд

И внезапно оказывается, что после вдумчивой беседы это не особо-то и надо:

- аналитика нужна раз в неделю
- 12мсек оказалось достаточно
- пагинация все равно была по 25 элементов
- оказалось они живут до 10 минут и их потеря не страшна

Какой сделаем вывод? Контекст решает все. Бизнес-требования часто не соответствуют требованиям, и порой абсурдны.

Не смотря на то, как же хочется кидаться в создание своего самописного редиса, все же стоит узнать: а что таки вам-нам надо?
источник
oleg_log
1.5 года прошло, #![stable(since = "1.20.0")]
источник
oleg_log
> гоферасты допиливают третий веб-сервер
> в руст чатике рофлят от синтаксиса Go
> на конкурсе high load единственный rust участник выбирает синхронный веб фреймворк,  потому что tokio -- это адский ад
😏
источник
oleg_log
В команде все знают зачем жвмовское NIO, но при этом никто(?) не знает, что такое event loop. В итоге люди изобрели свой event loop и называет его NIO.
¯\_(ツ)_/¯
источник
oleg_log
Я решил разобраться, как же работает парсинг запросов в гошном net/http.

Кроме того, что это тяжело читать из-за разных корнер-кейзов, там оказывается есть пакет httpguts, а именно "internal/x/net/http/httpguts"

Ничего особенного, обычное utils (запрещенное в го наименование пакетов), но раз это в интернал - можно называть как хочешь. Такие вот дела
источник
oleg_log
Пожалуй с меня хватит веб-серверов на сокетах.

— парсинг запросов это боль
— чтения из сокетов не заработало сразу
— получилось милое апи
— хочется отказаться от сокетов и сделать на сисколлах
— го модули работают

И да, я рад, что есть люди, которые уже написали парсеры запросов и поддерживают их, респект им во всех языках 🎉

Готов с вами рофлить с критики.
репка https://github.com/cristaloleg/wabservar
источник
2019 March 27
oleg_log
Философская тема

Кого считать нужным команде, инженера, который осилит любой язык или работника с золотым молотком?
(с)
источник
oleg_log
Я тут в последние дние окунулся в NP-полные проблемы на графах, а еще столкнулся с...

General error during conversion: Error grabbing Grapes -- [download failed: com.google.guava#guava;16.0.1!guava.jar(bundle)]


...и тут я понял: любую NP-полную задачу можно свести к проблеме разрешения зависимостей. Ведь внутри (почти) каждого менеджера пакетов лежит SAT-solver.

(а проблема была в .m2 кеше, удалил гуаву и заработало, но это было NP-сложно нагуглить)
источник
oleg_log
О, клаудфлер релизнули wireguard на расте. перфект просто.

https://github.com/cloudflare/boringtun
https://blog.cloudflare.com/boringtun-userspace-wireguard-rust/
источник
2019 March 29
oleg_log
Ухты, Digitalocean за 7 лет доросли до 200М прибыли, 0.5к сотрудников и 500К живых пользователей. Естественно в будущее они видят за контейнерами, ведь ВМки это медленно...но!

Мне понравилась эта строка: Serverless is accelerating

Digital Lamdas confirmed(?)

Ну в ту же стопку про edge computing и ML/AI. Чую много вкусностей от ДО в 2020.

http://mattturck.com/digital-ocean/
источник
oleg_log
источник
oleg_log
в чем котлин скоро точно джвау обойдет, так это в срачах
(с)
источник
oleg_log
Самое веселое, что этим страдают и не новички.

При этом есть 10 типа людей:
- оно подчеркивает, значит неправильно (хотя это подсказка)(но при жтом лучше иметь 100% дружбу с линтером и вырубить ненужное)
- оно подчеркивает...ну хз, оно все подчеркивает, мне лень смотреть, зато смотри какая билдер-синглтон-фабрика.

RTFM надо узаконить как культурное GTFO.
источник
oleg_log
Я вот всё понимаю: когда ты новичок, даже загуглить сложно — не понятно что гуглить. Поэтому даже глупые вопросы — это хорошо и правильно.

Но когда человек в 2019 году приходит с вопросом «ЩИТО ДЕЛАТЬ-ТО?!! Я НЕ ПОНИМАЮ!» и сообщением от линтера «exported function JWTWithConfig should have comment or be unexported» , мне хочется кого-нибудь стукнуть. Это что-то за гранью добра и зла.
источник