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
2/2
Отдельного упоминания заслуживает коммутатор. Когда его купили в Израиле 1992 году он был уже сильно б/у. Там его просто списали и продавали за очень небольшие деньги.
В него вставлялись такие платы расширения, на которых было по несколько десятков процессоров Z-80. Это процессоры, на которых работал мой первый компьютер spectrum zx-48. 48 - это количество килобайт оперативной памяти. Он подключался к телевизору и грузился с кассет.

Короче, я понял того разработчика не так. Он хотел сказать, что нужно откатить date_end к предыдущим значениям, а не обнулить.
От того, что я обнулил, система пересчитала все услуги с начала времен до наступившей полночи. У каждого абонента образовалось по несколько миллионов в минусе на балансе и биллинг отправил команды на отключение.
К тому моменту оператор работал уже 10 лет и им пользовались все - от бандитов до губернатора.

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

И да, в анализаторе (holistic.dev) будет notice, когда в запросе будет встречаться конструкция UPDATE SET field = NULL :)
Еще одна короткая история про бэкапы.
Был у нас (уже не в сотовом операторе) сисадмин. Каноничный такой. Свитер, борода, регэкспы. Сидел под какой-то самопальной сборкой какой-то только красноглазиком известной BSD или чего у них там обычно бывает.

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

Today, we're proud to announce improved charts and a new date picker on pganalyze! We're now treating date range selection as a first-class concept to help you better monitor your Postgres databases.

Дейт-пикер у них, сцк, новый :)
Когда вам начинает казаться, что вы немного перебарщиваете со своим pet-project, посомтрите на это...
Forwarded from UX Live 🔥
Как же это круто сделали https://poolside.fm/ Обожаю сайты, которые уходят целиком в концепцию своей задачи (даже правый клик и Format C пасхалки есть).
Иногда мне кажется, что dhh гнет свою линию по одной причине. Ему страшно признаться, что все это время он троллил сообщество своим пет-проджектом.


https://twitter.com/dhh/status/1258074299337826304
О как... оказалось автора я от греха забанил в твиттере, чтоб не слышать его истерических воплей в ленте...
Короткий тред про то, что если вам не нравится electron, то можно вспомнить, что есть еще qt... (маты, 18+)

https://twitter.com/codbasters/status/1253669191309316096
От нескольких человек слышал рекомендацию, что мне стоит заопенсорсить мой анализатор (holistic.dev) и зарабатывать на саппорте для enterprise.

У меня на этот счет несколько другое мнение. Мне кажется, что схема с OSS не сработает с инструментами для улучшения качества ПО.

Что можно предложить в качестве платных опций?
- Несколько платных правил? Через месяц эти правила воспроизведут в OSS версии и смысла в них не будет.

- Saas-версию? Этот класс ПО не требует какого-то специального обслуживания (бэкапы, настройка), поэтому даже предпочтительнее иметь on-premise версию, чем SaaS.

- Сделать лицензию, чтоб ее не могли использовать облачные провайдеры в managed версиях бесплатно, как mongodb? 100 индусов за полгода перепишет все на java и в этой лицензии не будет никакого смысла.

- Другое? Напишите в чат, пожалуйста, если есть идеи.

Особенно непонятно это все выглядит на фоне существующих продуктов (открытых и коммерческих) в той же предметной области.

Если в области статического анализа для c/ c++/ c#/ java идет месилово, да и то коммерческие продукты как-то ухитряются существовать, то в области sql-анализа тишь да гладь.
Собираю тут полезные ссылки в этой области, ознакомьтесь, если интересно:
https://github.com/antonrevyako/useful-links/blob/master/opensource-sql-tools.md

И там все печально.

Я постоянно просматриваю много проектов, связанных с SQL. По понятной причине меня интересуют части, связанные с парсингом различных SQL - диалектов.
Абсолютно все проекты построены на кривых костылях. Они даже не пытаются сделать что-то приличное.
Все делают вид, что работают со всеми основными базами pg/mysql/mssql/oracle. Достичь они это пытаются, сделав парсер некого обобщенного SQL - диалекта,
который работает везде. Если попытаться использовать какой-то специфичный синтаксис - все рушится.

Например, свежий OSS-убийца DataGrip - beekeeper studio:
https://github.com/beekeeper-studio/beekeeper-studio

Без выбора базы автодополнение SELECT * FROM выглядит как список всех известных токенов (ALTER, AND, AS...), а при SELECT * FROM public. автодополнение не появляется.
И есть подозрение, что лучше тут ничего не будет, т.к. ноги растут из пакета https://github.com/maxcnunes/sql-query-identifier, который не обновлялся уже 3 года.

Или вот, vitess.io - a database clustering system for horizontal scaling of MySQL. Тулза на go, все по уму.
Они заморочились и сделали свой AST парсер, который собирается из самописной грамматики. Можно попробовать собрать:
https://github.com/vitessio/vitess/tree/master/go/vt/sqlparser

И что? Грамматика описана криво даже для версии 5.7
Например, в ней важен порядок DEFAULT и NOT NULL в CREATE TABLE, а в оригинальной MySQL - нет.
Новый синтаксис 8.0 не поддерживается совсем.
В прошедшем декабре CNCF объявила vitess достаточно зрелым для использования в production.

Вот такая ситуация с этими вашими OSS.

А что там у коммерческих продуктов?

Про drawsql.app (mysql/pg/mssql) и моего единственного конкурента я уже бугуртил тут
https://news.1rj.ru/str/nosingularity/424

Так, что у нас там дальше... dbdiagram.io (mysql/pg/ror)
Не понимает половины ALTER, совсем не понимает CREATE FUNCTION, CREATE EXTENSION и тд.

Если вы можете порекомендовать какой-то продукт или сервис, связанный с SQL, на который стоит обратить внимание, напишите, пожалуйста.

Почему все более или менее прилично у DateGrip? Они разрабатывают свой универсальный парсер грамматики:
https://github.com/JetBrains/Grammar-Kit
Специфичную для разных баз грамматику они пишут руками.

Справедливости ради, holistic.dev не начался бы, если бы не было OSS AST-парсера для postgresql.
Но на данный момент в этом парсере реализована поддержка специфичного синтаксиса postgresql только до 10 версии.

Поэтому нам пришлось самостоятельно выковыривать парсер из postgresql 13. В ближайшем большом релизе мы его выкатим.
Похожим образом приходится действовать с mysql и clickhouse.

Найти подходящий AST парсер - это процентов 5 всей работы.

Вы бы стали опенсорсить остальные 95%?
А вы пользуетесь визуализаторами схемы базы? Если да, то какими?
Anonymous Poll
8%
Да, платным standalone
0%
Да, платным SaaS
22%
Да, бесплатным
72%
Нет
Как пелось в одной старой песне: «hit me baby one more time» (disclaimer: никак не связанно с текущей новостной повесткой :))

Еще одно мнение про долину:

https://telegra.ph/CHto-eshche-ne-rasskazali-pro-nedostatki-Kremnievoj-Doliny-05-11

... Если не менять работу/обстановку/жизнь, то от понимания, что так может пройти вся оставшаяся жизнь, рано или поздно начинаешь задаваться вопросами "а что я сделал в жизни" и от осознания реальности становится не по себе. Не знаю, с чем это связано – возможно с тем, что у русских "особенная душа"...

А в любой другой точке мира будет как-то иначе?
Сильно сомневаюсь, что свойство задаваться подобными вопросами зависит от национального признака.
По моим ощущениям виновны тут две вещи - пирамида Маслоу + кризис среднего возраста.

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

Справедливости ради, ни в одной из ситуаций я не находился, поэтому сегодня играю за диванного аналитика.

Но пару кризисов среднего возраста уже пережил, поэтому виртуально могу поставить себя в каждую из описанных ситуаций. В Калифорнии, как мне кажется, было бы веселее :)
Удивительным образом вселенная подбрасывает релевантный контент. И нет, алгоритмы гугла и фб тут не виноваты. И даже феномен Баадера — Майнхоф тут ни при чем.

В догонку к предыдущему посту, на Шмит16 пост об осознании места гречки, себя, гречки в себе и всего вместе в нашем неспокойном мире:
https://news.1rj.ru/str/Shmit16/527

Некоторым это может напомнить старый анекдот «больной, я как посмотрю, у вас времени свободного дохрена...»

Но я искренне завидую людям, которые могут заниматься рефлексией на таком уровне...
xzibit.jpg