На заметку всем, кто рекомендует мне выложить все в опенсорс:
https://twitter.com/tim_nolet/status/1317061818574082050
https://twitter.com/tim_nolet/status/1317061818574082050
Twitter
Tim Nolet 👨🏻🚀
Oh @awscloud I really do 💕 you! But next time you fork my OS project github.com/checkly/headle… and present it as your new service, give the maintainers a short "nice job, kids" or something. Not necessary as per the APLv2 license, but still, ya know? aw…
Вроде бы и смешно, но я знаю несколько человек, которые тянут язычок у куллера на себя. У всех офисных куллеров, что я видел, язычок в таком положении фиксируется и можно не держать чашку в ожидании наполнения.
https://twitter.com/towernter/status/1317479702349647873
https://twitter.com/towernter/status/1317479702349647873
Twitter
Tawanda Nyahuye👨💻
users be like that sometimes
А пока идет перепись тех, у кого есть бесплатная столовка в офисе и тех, кому приходится наливать воду в куллере, аки холопам, вот еще один наброс в тему канала:
чуваки заморочились и посчитали сколько ресурсов тратит одна и та же программа, написанная на разных языках.
Бенчмарк (как и все бенчмарки) барахло (и переписывать все на сях я не буду), но в конце списка оказались именно те, кого мы там ждали: руби и питон :)
https://thenewstack.io/which-programming-languages-use-the-least-electricity/
Теперь мы знаем, кто виноват в глобальном потеплении...
чуваки заморочились и посчитали сколько ресурсов тратит одна и та же программа, написанная на разных языках.
Бенчмарк (как и все бенчмарки) барахло (и переписывать все на сях я не буду), но в конце списка оказались именно те, кого мы там ждали: руби и питон :)
https://thenewstack.io/which-programming-languages-use-the-least-electricity/
Теперь мы знаем, кто виноват в глобальном потеплении...
The New Stack
Which Programming Languages Use the Least Electricity?
Can energy usage data tell us anything about the quality of our programming languages? Last year a team of six
Пятничный SQL-WTF
Понедельничный SQL-TIL
Пару недель я занимаюсь описанием грамматики SQL-синтексиса базы snowflake. Это такая cloud-only база, которую пилят 8 лет, 1500 человек сотрудников, вышли месяц назад на IPO с оценкой $70B...
Как-то давно в твитерах молодежь жаловалась на непонятную документацию постгреса:
https://news.1rj.ru/str/nosingularity/165
Как же выглядит синтаксис snowflake?
Выглядит он как письмо дяди Федора родителям (олды тут?).
1) Нет нормальной структуры.
Часть команд очевидно где-то есть, но найти их не получается. Например, есть описание ALTER ACCOUNT, а CREATE ACCOUNT нет.
Оно, наверное, логично - аккаунт, это сущность, получаемая в результате регистрации. Но если выполнить "несуществующую" команду
2) Одни и те же сущности описываются разными ключевыми словами:
Описание параметров FILE FORMAT занимает несколько страниц и копируется из раздела в раздел, везде, где это свойство используется. Видимо, зарплата привязана к количеству строк :)
4) У команд есть алиасы, но про них ничего не сказано.
Случайно узнаешь об этом из примеров. Есть команда REMOVE, во всех примерах - RM.
5) Содержимое строк является частью синтаксиса.
6) В некоторых командах строки можно НЕ БРАТЬ в кавычки.
В документации:
7) Ключевые слова иногда можно использовать в кавычках:
И даже в примерах об этом ничего не нет. Например, в FILE FORMAT можно пропустить описание type и тогда будет считаться, что за основу взят CSV.
9) Порядок некоторых свойств может быть произвольный.
Узнать какие именно свойства не зависят от порядка можно только императивно. Например, о том, что CLUSTER BY можно воткнуть перед описанием колонок я нашел в примере на гитхабе у какого-то левого чувака:
В примере выше CLUSTER BY описан как
11) Описание аналогичных команд имеет разный формат.
Опустим подробности, что зарегистрироваться жителям РФ они не дают. Просто "ой, не работает" на этапе регистрации, а в каких-то формах страны просто нет.
Но когда вы прорветесь в админку, можно будет порадоваться - они вернули мне мой 2007. Такая убогая и тормозная админка ставит их на одну ступень со всеми серьезными игроками - гугл и амазон :)
И это не считая того, что там визуально не обозначено и половины тех функций, которые описаны в документации.
Пару недель я занимаюсь описанием грамматики SQL-синтексиса базы snowflake. Это такая cloud-only база, которую пилят 8 лет, 1500 человек сотрудников, вышли месяц назад на IPO с оценкой $70B...
Как-то давно в твитерах молодежь жаловалась на непонятную документацию постгреса:
https://news.1rj.ru/str/nosingularity/165
Как же выглядит синтаксис snowflake?
Выглядит он как письмо дяди Федора родителям (олды тут?).
1) Нет нормальной структуры.
Часть команд очевидно где-то есть, но найти их не получается. Например, есть описание ALTER ACCOUNT, а CREATE ACCOUNT нет.
Оно, наверное, логично - аккаунт, это сущность, получаемая в результате регистрации. Но если выполнить "несуществующую" команду
CREATE ACCOUNT userто получим не syntax error, а SQL access control error: Insufficient privileges to operate on account 'USER'
2) Одни и те же сущности описываются разными ключевыми словами:
SOURCE_COMPRESSION = AUTO_DETECT | GZIP | ... | NONEеще:
COMPRESSION = AUTO | GZIP | ... | NONE
FILE FORMAT, FILE_FORMAT, STAGE_FILE_FORMATи еще:
NETWORK POLICY, NETWORK_POLICY3) Определения повторяются.
Описание параметров FILE FORMAT занимает несколько страниц и копируется из раздела в раздел, везде, где это свойство используется. Видимо, зарплата привязана к количеству строк :)
4) У команд есть алиасы, но про них ничего не сказано.
Случайно узнаешь об этом из примеров. Есть команда REMOVE, во всех примерах - RM.
5) Содержимое строк является частью синтаксиса.
SCHEDULE = '{num MINUTE | USING CRON expr time_zone }'
или вот:externalStageParams (for Amazon S3) ::= URL = 's3://_bucket_[/_path_/]' ...Видимо, есть некоторые сомнения в когнитивных способностях пользователей azure, т.к. одного протокола оказалось недостаточно...
externalStageParams (for Google Cloud Storage) ::= URL = 'gcs://_bucket_[/_path_/]' ...
externalStageParams (for Microsoft Azure) ::= URL = 'azure://_account_.blob.core.windows.net/_container[/_path_/]'
6) В некоторых командах строки можно НЕ БРАТЬ в кавычки.
В документации:
PUT file:///tmp/data/mydata.csv @my_int_stage;А можно брать. Но узнаешь, только если попробуешь...
7) Ключевые слова иногда можно использовать в кавычках:
... COMPRESSION = AUTO ...8) Свойства описаны как обязательные, но на самом деле таковыми не являются.
... COMPRESSION = 'AUTO' ...
И даже в примерах об этом ничего не нет. Например, в FILE FORMAT можно пропустить описание type и тогда будет считаться, что за основу взят CSV.
9) Порядок некоторых свойств может быть произвольный.
Узнать какие именно свойства не зависят от порядка можно только императивно. Например, о том, что CLUSTER BY можно воткнуть перед описанием колонок я нашел в примере на гитхабе у какого-то левого чувака:
create or replace TABLE "tablecluster" cluster by LINEAR(DATE, ID)(10) Описанный ограничения синтаксиса некоторых свойств в реальности не существуют.
DATE TIMESTAMP_NTZ(9),
ID NUMBER(38,0),
...
);
В примере выше CLUSTER BY описан как
CLUSTER BY ( expr1 [ , expr2 ... ] )То, что параметром может выступать функция, не сказано нигде.
11) Описание аналогичных команд имеет разный формат.
PUT file://_path_to_file_/_filename_ internalStageВидимо, это связанно с возможностью использования свойств в произвольном порядке, но блин!
GET internalStage file://_path_to_file_/_filename
Опустим подробности, что зарегистрироваться жителям РФ они не дают. Просто "ой, не работает" на этапе регистрации, а в каких-то формах страны просто нет.
Но когда вы прорветесь в админку, можно будет порадоваться - они вернули мне мой 2007. Такая убогая и тормозная админка ставит их на одну ступень со всеми серьезными игроками - гугл и амазон :)
И это не считая того, что там визуально не обозначено и половины тех функций, которые описаны в документации.
👍1
В этом довольно специфичном тесте PostgreSQL выносит MSSQL и MySQL вперед ногами:
https://www.mssqltips.com/sqlservertip/6607/delete-sql-performance-for-sql-server-mysql-and-postgresql/
https://www.mssqltips.com/sqlservertip/6607/delete-sql-performance-for-sql-server-mysql-and-postgresql/
There will be no singularity
На заметку всем, кто рекомендует мне выложить все в опенсорс: https://twitter.com/tim_nolet/status/1317061818574082050
Twitter
Андрей Ситник
«Большинство (>80%) популярных опенсорс-проектов, получают пожертвований меньше, чем платят среднему программисту или даже ниже черты бедности». https://t.co/gsOV99CYM2
Ребята из @profunctor_io большие молодцы и я всегда готов поддержать их призывы рассказать про профунктор-джоб, поэтому вот:
Не секрет, что лучшие вакансии в айти расходятся задолго до попадания на hh и linkedin. Одно из мест где можно ловить такие варианты это канал Профунктора: NVIDIA, Revolut, Bolt, Мосбиржа и другие лучшие карьерные варианты для разработчиков появляются там регулярно. Стоит подписаться, чтобы быть в курсе того сколько нынче платят «по рынку», и не гнуть спину за полцены из-за того что неудачно прособеседовался год назад.
@profunctor_jobs
@profunctor_jobs
И первая хорошая новость за этот год:
https://www.government.is/news/article/2020/10/27/-Foreign-experts-can-work-remotely-in-Iceland/
https://www.government.is/news/article/2020/10/27/-Foreign-experts-can-work-remotely-in-Iceland/
www.government.is
Icelandic measures for remote workers put in place
The Minister of Tourism, Industry, and Innovation, the Minister of Justice and the Minister of Finance and Economic Affairs have put in place measures to enable non-EEA foreign nationals to reside in Iceland for up to six months and telework for foreign companies.…
Не перестаю кекать со snowflakeDB (вот тут история, как я грамматику по документации начал писать)
Как можно одновременно выполнить запрос и выдать "SQL compilation error"?
Update: причем ошибка вываливается на примере из документации. А результат, который все-таки прилетает, не совпадает с результатом из документации...
PS: про сноуфлейк нет мемасов, поэтому вот вам демотиватор (!!!):
Как можно одновременно выполнить запрос и выдать "SQL compilation error"?
Update: причем ошибка вываливается на примере из документации. А результат, который все-таки прилетает, не совпадает с результатом из документации...
PS: про сноуфлейк нет мемасов, поэтому вот вам демотиватор (!!!):
Прошло несколько месяцев с публикации прошлой версии подборки экзотических применений SQL, поэтому не грех опубликовать ее еще раз, добавив еще один пункт.
Не все знают, но SQL можно использовать не только для работы с данными в БД.
Есть возможность манипулировать данными из командной строки.
Зачем такое может понадобиться?
1) Парсинг JSON-логов
https://github.com/avz/jl-sql
Можно придумать много хороших usecases. Я писал про эту тулзу в статье про тестирование логов - https://news.1rj.ru/str/nosingularity/198
https://osquery.io/
Совершенно безумная и красивая идея. 257 источников данных!
https://github.com/escherize/img_sql/
4) SQL для MongoDB, DynamoDB, Kafka, S3
Если не хочется работать с монгой, но очень нужно, то можно выкрутиться так
https://rockset.com/solutions/mongodb/
Например, отлично зайдет для использования в тулзах для визуализации, таких как Grafana.
Насколько это имеет смысл для работы с базами из приложения, сказать сложно.
5) SQL для запросов по git репозиториям
https://github.com/augmentable-dev/gitqlite (переименовали в askgit)
https://relational-pipes.globalcode.info/v_0/examples-jack-midi-generating-1.xhtml
Не все знают, но SQL можно использовать не только для работы с данными в БД.
Есть возможность манипулировать данными из командной строки.
Зачем такое может понадобиться?
1) Парсинг JSON-логов
https://github.com/avz/jl-sql
Можно придумать много хороших usecases. Я писал про эту тулзу в статье про тестирование логов - https://news.1rj.ru/str/nosingularity/198
> cat data.json | jl-sql 'SELECT key, SUM(value) AS sum, COUNT(*) AS count GROUP BY key'2) Работа с параметрами операционной системы
https://osquery.io/
Совершенно безумная и красивая идея. 257 источников данных!
> osqueryi --json "SELECT * FROM mounts m, disk_encryption d WHERE m.device_alias = d.name AND d.encrypted = 0;"3) Работа с изображениями
https://github.com/escherize/img_sql/
> ./img_sql.py -i samples/matrix.jpg -o samples/matrix_out.jpg -s 'update pixels set r = g, b = r, g = b where x > 700'Осталось написать транспайлер в GLSL и будет win :)
4) SQL для MongoDB, DynamoDB, Kafka, S3
Если не хочется работать с монгой, но очень нужно, то можно выкрутиться так
https://rockset.com/solutions/mongodb/
Например, отлично зайдет для использования в тулзах для визуализации, таких как Grafana.
Насколько это имеет смысл для работы с базами из приложения, сказать сложно.
5) SQL для запросов по git репозиториям
https://github.com/augmentable-dev/gitqlite (переименовали в askgit)
> -- how many commits have been authored by user@email.com?6) Играем музыку оО
> SELECT count(*) FROM commits WHERE author_email = 'user@email.com'
https://relational-pipes.globalcode.info/v_0/examples-jack-midi-generating-1.xhtml
А вы тут спрашиваете, зачем я по snowflake упарываюсь...
https://twitter.com/dbengines/status/1322913553590996994
https://twitter.com/dbengines/status/1322913553590996994
Не было ни одного случая, чтобы мне не было больно от контакта с интерфейсами продуктов гугла.
Не бомбит только от gmail, да и то, это скорее всего стокгольмский синдром.
Каждый раз, когда появляется необходимость зайти в гугл аналитику или в G Suite, я стараюсь максимально отпрокрастинировать это действие. Потому что знаю, что потрачу в 10 раз больше времени, чем мог бы, и все равно все будет через одно место. И при этом, скорее всего, я не получу того, что мне было нужно, а просто забью.
Почему в аналитике статистика с задержкой в сутки? Виноват часовой пояс? Гуглим... 15 минут спустя находим как настроить часовой пояс для сайта. Проверяем: 10 кликов по менюшкам... Нет, все ок. Часовой пояс подходящий. Так, допустим, аналитика приезжает с задержкой. Гуглим... "Статистика (например, по кликам, конверсиям и показам), как правило, появляется с задержкой примерно в три часа". Ну допустим, но статы нет... А, ладно, хрен с ним, не больно и хотелось...
И так каждый раз! Сцк!
И грузится это все как будто сервера в секретном бункере под горой в Швейцарии, куда протянули только ADSL, а я через TOR захожу.
Не бомбит только от gmail, да и то, это скорее всего стокгольмский синдром.
Каждый раз, когда появляется необходимость зайти в гугл аналитику или в G Suite, я стараюсь максимально отпрокрастинировать это действие. Потому что знаю, что потрачу в 10 раз больше времени, чем мог бы, и все равно все будет через одно место. И при этом, скорее всего, я не получу того, что мне было нужно, а просто забью.
Почему в аналитике статистика с задержкой в сутки? Виноват часовой пояс? Гуглим... 15 минут спустя находим как настроить часовой пояс для сайта. Проверяем: 10 кликов по менюшкам... Нет, все ок. Часовой пояс подходящий. Так, допустим, аналитика приезжает с задержкой. Гуглим... "Статистика (например, по кликам, конверсиям и показам), как правило, появляется с задержкой примерно в три часа". Ну допустим, но статы нет... А, ладно, хрен с ним, не больно и хотелось...
И так каждый раз! Сцк!
И грузится это все как будто сервера в секретном бункере под горой в Швейцарии, куда протянули только ADSL, а я через TOR захожу.