Size: a a a

2020 January 04
oleg_log
источник
oleg_log
Прошло совсем "немного" времени с последнего упоминания о моем велосипеде с jwt, и вот оно добралось до v1.0.0, так сказать начну новую декаду продуктивно.

Даже тесты есть и вроде работает. Хотя все эти RS, PS, ES смотрятся ненужными мне (ладно RS(A) еще полезно смотрится, но уже есть новый и сексуальный EdDSA).

По большому счету я просто хотел поиграться с вылизыванием кода и написанием непробиваемого апи, собственно альтернативные реализации с interface{}, тоннами кода, лямбдами и прочей ересью меня просто выкашивали.

Лайк-подписка-колокольчик уменьшают кол-во 5хх ошибок в вашем проде https://github.com/cristalhq/jwt

Есть парочка мест, которые непокрыты тестами, но считайте это инпрогресс :)
источник
oleg_log
Tabs vs Spaces (src)
источник
2020 January 05
oleg_log
Вот что не меняется на ХН, так это то, что там всегда готовы поговорить про JWT.

В 1м коменте ссылки на другие дебаты, 1606 комментария https://news.ycombinator.com/item?id=21783303

И как по мне, все это выливается из одного места: люди путают stateful и stateless местами, натыкаются на несоответствие и продолжают есть кактус.

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

Надеюсь я начну и доведу гайд "куда втыкнуть jwt и не ошибиться" до ума.
источник
2020 January 06
oleg_log
источник
oleg_log
Красивая статья о том, на чём FAANG зарабатывают в % и в миллиардах. Речь о Apple, Amazon, Alphabet(Google), Microsoft, Facebook.

https://www.visualcapitalist.com/how-tech-giants-make-billions/
источник
oleg_log
А вот это что-то из хорошего:
Now using Zstandard instead of xz for package compression

Мы уже давно в той эре, когда суперсжатие нам не надо, а вот скорость декомпресии напрямую связано с UX и сохранением нервов пользователей.

As announced on the mailing list, on Friday, Dec 27 2019, our package compression scheme has changed from xz (.pkg.tar.xz) to zstd (.pkg.tar.zst).

zstd and xz trade blows in their compression ratio. Recompressing all packages to zstd with our options yields a total ~0.8% increase in package size on all of our packages combined, but the decompression time for all packages saw a ~1300% speedup.

На сколько я помню, lz4 будет посильнее (и в компресии, и в скорости), но и требовательнее по цпу.

https://www.archlinux.org/news/now-using-zstandard-instead-of-xz-for-package-compression/
источник
oleg_log
A Public Notice About the TON Blockchain and Grams
https://telegram.org/blog/ton-gram-notice
источник
oleg_log
Поговорим о зависимостях? Опять.

Ты берешь либу BSD3, а в ней оказывается зависимость с Affero GPL (AGPL, такая лицензия для опенсурс веб-сервисов), и все, ты нарушитель и должен публиковать весь свой проект в опенсурс.

Большинство из нас конечно в СНГ, где царят чуть другие правила, но зачем лишний раз себе/бизнесу (своему и не) создавать проблемы, которые могут стоить очень дорого?

Соглашусь еще по теме Раста: когда открываешь Cargo.toml чаще хочется взвыть и закрыть. Я понимаю, глаза привыкли видеть другое, но колво одного и того же велосипедирования печалит.

https://www.agwa.name/blog/post/always_review_your_dependencies
источник
2020 January 07
oleg_log
источник
oleg_log
Подробный чеклист о Java Concurrency, с тонной ссылок на тулзы и спецификации. Альманах на самом деле.

https://github.com/code-review-checklists/java-concurrency

А, и еще, жава-каналы - го вп :D
Кто знает каналы про jvm в телеге? подкиньте)
источник
oleg_log
I repeat: do not use spinlocks in user space, unless you actually know what you're doing. And be aware that the likelihood that you know what you are doing is basically nil.

(c) Linus

https://www.realworldtech.com/forum/?threadid=189711&curpostid=189723
источник
oleg_log
ScyllaDB со своим "супер" бенчмарком в 83 мощные тачки сделали одно: дали другим отправную точку для своего маркетинга. Логично, что ClickHouse в аналитике(OLAP) будет круче, но чтобы на такой мелкой машинке? (речь про Intel NUC в статье ниже). А, ну и VictoriaMetrics, они о похожем, я вроде постил раньше о том же бенче.
источник
oleg_log
ClickHouse Cost-Efficiency in Action: Analyzing 500 Billion Rows on an Intel NUC — Altinity
https://www.altinity.com/blog/2020/1/1/clickhouse-cost-efficiency-in-action-analyzing-500-billion-rows-on-an-intel-nuc
источник
oleg_log
Fifty Years of RFCs

This RFC marks the fiftieth anniversary for the RFC Series. It includes both retrospective material from individuals involved at key inflection points as well as a review of the current state of affairs. It concludes with thoughts on possibilities for the next fifty years for the Series.  This document updates the perspectives offered in RFCs 2555 and 5540.

https://tools.ietf.org/html/rfc8700
источник
2020 January 08
oleg_log
Хочется отдельно упомянуть SEDA (staged event-driven architecture http://sosp.org/2001/papers/welsh.pdf) и то, как не много требуется, чтобы начать использовать свои ресурсы оптимально.

Когда Богдан в одном чате упомянул эту статью, мне сразу вспомнились задачи оптимизации (целочисленное/линейное прогр, которое мало кому заходило в универе).

Собственно найти баланс для своей задачи, точнее для каждого этапа и бац - вы попали в золотую середину. Рандомно пихать тредпуллы не самый лучший подход (кстати, у нас частая оптимизация это фикс размера тредпулла для жава сервера, что намекает).
источник
oleg_log
Generic talks 0006 с Богданом и Олегом.

https://soundcloud.com/generictalks/0006-podozhdyom-v-ocheredi

00:00 - Начнём с очереди
10:00 - Capacity planing, metrics
23:25 - Когда работать асинхронно, как правильно? Архитектура SEDA
42:28 -Твит Кармака о Python, C++, C# и Java и что уже железо
47:40 - Не С++ единым, Rust no_std
56:28 - И снова вернёмся к очередям
1:02:05 - Классический race condition, о котором не все знают.
источник
oleg_log
О! еще о наболевшем. Когда приходят в лс/чат/коменты к подкасту и говорят, что слишком затянут эпизод на ютюбе, слишком короткий подкаст, мало мяса, много мяса, а я мимокрокодил.

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

Разница между "потрачу 6ч выходного дня/вечера ради 1ч контента с 0 отдачей" vs "потрачу час(обычно 2 :) ради 1ч контента с такой же отдачей" еще существенна.

Фидбек это приятно и полезно, даже если он неприятный, указывающий на косяки. Но для этого он должен быть аргументирован 👌
источник
oleg_log
А вы знали, что в #go неправильно вызывать t.Fatal в горутине?

Начиная с 1.15 это будет в vet включено. Возможно это хорошая вещь, которую можно затащить в go-critic 🤔

Баг аж с 2013 https://github.com/golang/go/issues/5746
источник
2020 January 09
oleg_log
Во вторник мне не посчастливилось зайти в Декатлон и купить шмот для гор по бонусу. Кроме упавшей кассы на винде с вечным рестартом приложения и циклическим падением, пришлось увидеть их CRM.

Эта штуковина постоянно кидала 401ю ошибку 4 раза подряд для сотрудника, после чего пропускала дальше (не шучу, из-за последующих проблем в сабмите формы, приходилось перелогиниваться).

И тут меня накрыло: этож сколько софта написано в мире для автоматизации рутины, сколько человеко-часов убито над этим, сколько денег потрачено на все вместе (без поддержки) и в итоге ничего не работает!

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