There will be no singularity – Telegram
There will be no singularity
1.99K subscribers
248 photos
15 videos
5 files
995 links
Smartface, technologies and decay
@antonrevyako
Download Telegram
Я еще не рассказывал о поездке на highload 2019 2 недели назад.

Т.к. любой желающий, купивший билет, мог заявить свой митап, я решил попробовать.

Мне выделили зал с несколькими рядами кресел, огромным телеком и звукоусиливающим оборудованием. При этом более уважаемым людям дали маленькие будки вместимостью 10 человек. За что мне были такие почести, я понял не очень, но энивей, спасибо, @HighLoadChannel 🙂

В итоге зал забился полностью, что меня тоже очень удивило 🙂
Запись, если что, вот: https://www.youtube.com/watch?v=g0vhMNh_4tg&t=8s

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

Зато получилось много пообщаться с разными компаниями.

И вот что я вам хочу сказать.
Сингулярности не будет 😟

Абсолютному большинству компаний, которые там были представлены, наплевать на качество того, что они делают. Причем такая история и в avito, и в lamoda и в других крупных компаниях.

Концепция, как говорят киношники - "добьем на посте". Т.е. когда исходный материал так себе, на постпродакшене это можно поправить.

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

Честно - я расстроился. И пока я расстраивался, я пропустил важную вещь, которая догнала меня через несколько дней.

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

Но при этом абсолютно все, кто связан с Ops - DevOps и DBA сказали - "дай нам этот инструмент, мы будем этих безруких мудаков макать в их поделки аргументированно".

Я это все осознал не сразу. Но когда осознал, стало понятно, что внезапно в моем стартапе случился pivot (смена направления).
Мой инструмент нужен, но просто другой целевой аудитории.

Я знал, что больше 90% стартапов делают не то что они задумывали с самого начала. Но я-то думал, что я не такой 🙃

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

Кроме того, теперь не очень понятно что делать со стратегией монетизации. Если раньше у меня все складно было посчитано на одно рабочее место в месяц, прикинут объем рынка, куда бежать и что делать, то сейчас - ¯\_(ツ)_/¯
Если на демо дне у вас все пошло не так, вспомните, что даже у Илона «наше всё» Маска бывают проколы на презентациях.

https://youtu.be/IdaDdZHBOZA

Но при этом не забывайте, что при Джобсе такой фигни не было!!!
Есть такая штука - феномен Баадера — Майнхоф, она же иллюзия частотности. Это когда ты, например, решил купить себе белый мерседес, и сразу же начинаешь замечать, что у всех вокруг, сцк, белые мерседесы.
Так вот, только я собрался расписать лонгрид на предмет лучшего языка программирования, как на хабре понеслось:
https://habr.com/ru/post/477006/
https://habr.com/ru/post/477038/


( ͠° ͟ʖ ͡°)
Дед с батей сцепились по пьяни и испортили всем праздник каждую пятницу одно и то же


https://twitter.com/yegor256/status/1198108667289178113?s=21
Результат разговора ^ с боссом уровня свелся к тому, что Java-разрабы даже линтеров не используют, какая им разница что статическим анализом называть.
Энтерпрайз такой энтерпрайз.

И еще в копилку Java твит от бывшего фронта:
https://twitter.com/vkozulya/status/1197555301760851969?s=21
Сегодня случилось удивительное - я психанул и занес вастрику на патреон.

Если вы вдруг не знаете вастрика - vas3k.ru

Если вдруг не знаете патреон - patreon.com
Это такой кикстартер для порнохудожников и юмористов, которым в твитере не нравятся треды.

Не то чтобы мне не хватало бесплатного контента...
Но, во-первых, @vas3k смешной, а во-вторых, там типа клуб с секретными чатами в телеге. Нетворкинг, вот это вот все :)

Стоит это дело всего $1 в месяц, но ему уже напихали почти $2.5к ежемесячных донатов.

Потом я психанул еще раз и занес подкасту @podlodka

Если вы не слушаете подкасты совсем или Подлодку в частности, вам точно стоит начать. Там есть просто гениальные выпуски, например про базы данных.
Но им, почему-то донатят всего $350 в месяц.

У вастрика за бакс есть клуб и приватный контент, у подлодки просто донат.

И при том, что патреон собирает бабло, приложение у них - ад и израиль.

Главная неприятность в этом во всем такая, что расшарить статьи вастрика с друзьями не получается, тк paywall.

Но в богомерзкой ios13 появилась возможность на лету конвертить страницы и отправлять готовой pdf’кой в телегу. Если вам очень захочется почитать статьи вастрика - попросите меня, я вышлю.
А лучше занесите человеку доллар, оно того стоит
у patreon не только с приложением все плохо...
¯\_(ツ)_/¯
...После митапа на highload я полетел в Пермь на Miro Platform Developers Conference.
2 часа я ехал на такси до Шереметьево и 2 часа летел....
Вышел в час ночи в публичную зону аэропорта Большое Савино, заказал такси, стою, жду. Рядом местный молодой человек орал в трубку кому-то из встречающих - "Да вы что, сдурели, я вас тут 15 минут ждать буду?" :)

Miro - душевные ребята. Возможно, вы их знаете по названию RealTimeBoard. Офис у них в отдельном здании на берегу реки. Здание - бывший ремонтный цех. Т.е. лофт, все как положено :)

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

Во-первых, сама платформа. Как говорится, я джва года ждал эту игру (с). Они сделали API для Mindmap. На самом деле можно строить любые схемы. Я давно мечтал о такой штуке, чтоб визуализировать все issue из всех проектов в gitlab на одном графике. Жаль, что сейчас это не очень актуально, но вдруг кто-то сделает.
Но не просто API, а платформу. Т.е. возможность делать сторонние интеграции на базе этого API.
Кстати, они запустили contest с призом в $21k. Вряд ли вы успеете, но вдруг. https://go.miro.com/platform-contest

Так вот. Видно, что ребята не часто делали API. Сколько мануалов в сети с bestpractice, но это все равно не помогло. Например, описание линии
{
"type": "line",
// required for creation
"startWidget": {
"id": "3074457346811293699"
},
// required for creation
"endWidget": {
"id": "3074457346811293709"
},
"style": {
// supports short hex code color format
"borderColor": "#da0063", // default: "#000000"
// allowed values: "normal", "dashed", "dotted"
"borderStyle": "normal", // default: "normal"
// allowed values: 1.0, 2.0, 3.0, 4.0, 5.0, 8.0, 12.0, 16.0, 20.0, 24.0
"borderWidth": 1.0, // default: 1.0
// allowed values:
// "none", "opaque_block", "rhombus", "opaque_rhombus", "circle",
// "opaque_circle", "block", "open_arrow", "opaque_arrow"
"lineEndType": "opaque_block",
"lineStartType": "opaque_block",
// allowed values: "straight", "orthogonal", "bezier", "sketch"
"lineType": "orthogonal" // default: "straight"
}
}


Да, это прям из документации :)

Тут плохо приблизительно все, начиная от id в виде больших интов в строке вместо uuid, отсутствия общего namespace для borderColor, borderStyle, borderWidth и line, заканчивая енумом толщин линий, заданных в формате float.

Я думаю, они это осознают, но потом будет всем немножко больно.
Во-вторых, что у них на бэке... Начнем с того, что они долгое время хранили все в... Redis. Они, судя по всему, очень удачливые сукины сыны.
Это отчасти объясняет то, что у них нет namespace'ов в API.
Потом они решили, что дальше так нельзя и надо сложить данные в Postgresql. И знаете что они сделали? Они пропустили шаг с ORM и пошли еще дальше.
Взяли JOOQ (это такая либа для описания SQL в виде собственного DSL) и засунули его в свою Java. Т.е. они пишут запросы на JOOQ, который компилируется во время выполнения в SQL.
Кстати, у них есть вакансии постгревых DBA с релокацией в Пермь :)
И самое интересное. На конференции выступал разработчик из Stripe. Stripe - карточный процессинг, самый дорогой выпускник Y-Combinator с оценкой в $35b. Основной их фишкой с самого начала был самый легкий онбординг в индустрии. From developers to developers. Лучшая документация, лучшее версионирование api.

Мне немного удалось пообщаться с докладчиком. Знаете какой у них стек?
Ruby + mongoDb. И, кажется, vertica для аналитики (он ни разу не слышал про ClickHouse)
Но не просто Ruby и не просто MongoDb. Они и то и то допилили.
На вопрос "как же вы без транзакций живете, вы же платежный сервис", был дан ответ "страдаем" :))

Хотел сохранить эту ссылочку до разговора о NOSQL базах данных, но сейчас подходящий момент. Если вкратце - кластер MongoDb может терять до 42% данных.
https://aphyr.com/posts/284-jepsen-mongodb

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

Кстати, о Redis. Кластер Redis может терять до 56% данных...
https://aphyr.com/posts/283-jepsen-redis

Выводов не будет, выводы в названии канала.
PS: Miro отличные ребята. Все что они рассказывают про продуктовую часть своей работы - прекрасно. Я им желаю всяческих успехов и захвата мира. Если мир захватится с такими костылями, мир сам виноват. Перезагрузка матрицы всё почистит :)
Вот вам немножко фотографий из их офиса