Смотрим погоду в терминале
curl wttr.in/Moscow
Welcome to my personal place for love, peace and happiness❣️
curl wttr.in/Moscow
23 июля 1983 года “Боинг-767” авиакомпании “Air Canada” (бортовой номер 604) был неправильно заправлен топливом ☝️
В то время Канада переходила на литры и все стороны, участвовавшие в пересчетах керосина на дозаправку банально облажались.
Итог – в один прекрасный момент самолет на высоте 8000 метров превратился в замечательный 132-тонный, движущийся исключительно по инерции, контейнер. Без двигателей и половины приборов (отключились, поскольку работали от двигателей). Единственное, что работало в самолете – это аварийный ветрогенератор, благодаря которому поддерживалось давление в гидравлической системе. Право, я не знаю, как себя чувствовали 69 обитателей железного ящика, оказавшиеся на такой высоте.
Второй пилот Морис Квинтал, полистав инструкцию, не обнаружил раздела “Что делать, если вырубились все движки, а жить хочется”. Поскольку КВС Боб Пирсон в свое время занимался планеризмом а выбора все равно не было – решили планировать до ближайшего аэродрома.
Проблема была в подсчете скорости снижения – работал только спидометр, который показывал падение скорости от начальных 900 км/ч. На конец полета, скажу сразу, упал до 400 км/ч. Альтиметр (показывающий высоту) отключился. С помощью механического резервного прикинули, что снижаются со скоростью 1,5 км на 19 км полета.
Квинтал сказал, что знает хорошее заведение с блэк-джеком, старую авиабазу неподалеку (примерно 8000 метров вниз и чуть вбок). База называлась Гимли . Квинтал когда-то дембельнулся с этой базы и уговорил командира свернуть к местам боевой славы. Но в тот день у фортуны было игривое настроение.
На поле бывшей авиабазы организация “Виннипег Спортс Кар Клаб” устроила в честь субботы тусовку, с гонками на той самой ВВП. Сама полоса для этих целей использовалась регулярно, в центре даже был разделительный барьер, позволяющий проводить параллельные гонки. По краям полосы народ пил пиво, жарил мясо и всячески наслаждался жизнью, даже не предполагая какой супрайз может свалиться на их головы. В принципе, Пирсон мог в одиночку выпилить весь данный “клаб” из списка существующих организаций.
Не знаю насколько нескучно было в салоне в процессе снижения, но вот дальше началась истинная веселуха. Во первых нужно было выпустить шасси. С этой целью самолет встряхнули. Шасси выпали. Две задние стойки даже встали на замок. Пассажиры, думаю, начали о чем-то догадываться. Появились первые кирпичи.
Для посадки Боб Пирсон использовал (как я понимаю, единственный раз в мировой истории) в процессе посадки большого авиалайнера прием из арсенала планеристов. Называется он “скольжение на крыло”, он же “sideslip”. Эта милая процедура выглядит так: самолет ставится “на крыло” и у пассажиров есть выбор: смотреть в нижний иллюминатор на землю, в верхний на небо, но при этом продолжать срать кирпичами. Нос самолета, кстати, уводится в сторону от курса.Скорость, соответственно, падает до нужной. Состояние пассажиров “от щастья, что они это испытали” не передается описанию.
Уверен, что не меньше кирпичей появилось на аэродроме имени товарища Гимли, когда они увидели аэробус, направляющийся к ним, положение крыльев которого не предвещало, что садиться вообще входит в его планы. Но, в последний момент самолет выровнялся и опустился на полосу. Передняя стойка подломилась и он весело начал приближаться к тусовке автолюбителей. Надо сказать, что в момент посадки скорость была 320 км/ч, так что субботние гонки однозначно выиграл экипаж Пирсон-Квинтал.
Под спецэффекты в виде дымящихся и лопающихся колес, и шлейфа искр из-под гондолы самолет направился к автолюбителям. Чтобы они лучше могли рассмотреть посадку во всех деталях, он подъехал поближе. Как пишут, остановился в 30 метрах от группы встречающих.
Далее все получилось просто и буднично: скинули надувные трапы, выгнали пассажиров наружу, чтобы проветрить салон. Начавшийся пожар потушили автолюбители обычными автомобильными огнетушителями.
Причиной нескольких легких травм, полученных пассажирами, была не посадка. А поспешная высадка из заднего аварийного выхода. Хвост был слишком высоко и при скатывании по трапу банально не хватило высоты.
Квинтал в 1989 года сдал экзамен на КВС и летал на многих самолетах, как уверяют, и на борту №604 тоже. Пирсон в 1993 вышел на пенсию.
Ремонт самолета сделали на аэродроме Гимли за 2 дня. И он своим ходом улетел на базу, где полный ремонт обошелся в 1 млн долларов. Вскоре он вернулся в строй и использовался до января 2008 года.
StarRocks, a Linux Foundation project, is a next-generation sub-second MPP OLAP database for full analytics scenarios, including multi-dimensional analytics, real-time analytics, and ad-hoc queries. InfoWorld’s 2023 BOSSIE Award for best open source software.
Качаем, ставим, запускаем:
curl -s https://cdn.rilldata.com/install.sh | bash
rill start my-rill-project
Можно еще статейку полистать:
https://a.gavrilov.info/data/posts/Unlocking%20Data%20Insights%20with%20Rill:%20A%20Comprehensive%20Guide%20to%20Streamlined%20Data%20Analytics%20%7C%20by%20Felix%20Gu.pdf
🤌 DuckDB inside
Статья с хабра про выбор баз данных
https://habr.com/ru/articles/775574/
Смотрим тут: https://perthirtysix.com/tool/visualizing-american-inflation
Или копию pdf тут: https://a.gavrilov.info/data/posts/How%20Far%20Would%20$1%20From%201999%20Go%20Today%3F.pdf
https://github.com/adsblol/globe_history
✈️🗄 Historical data for all aircrafts traces known to adsb.lol. Openly licensed.
https://github.com/adsblol/globe_history/
This is a database for the day of 2023-12-09 of all aircraft known to adsb.lol.
GitHub Release: v2023.12.09-planes-readsb-staging-0
GitHub Download Link: https://github.com/adsblol/globe_history/releases/tag/v2023.12.09-planes-readsb-staging-0
Uploaded on: 2023-12-10
Original Path: /var/globe_history/2023/12/09
Pod of origin: planes-readsb-staging-0
It was made by readsb (https://github.com/wiedehopf/readsb)
This database is made available under the Open Database License:
http://opendatacommons.org/licenses/odbl/1.0/.
Attached locally: LICENSE-ODbL.txt
This is made possible by the adsb.lol feeders.
If you want to help, please consider increasing coverage by adding a feeder:
https://adsb.lol/feed
By feeding adsb.lol, you agree to the extent possible under law,
to waive all copyright and related or neighboring rights to your data, associating your work with the CC0 license.
https://creativecommons.org/publicdomain/zero/1.0/
Attached locally: LICENSE-CC0.txt
ps: может понадобиться декодер https://github.com/wiedehopf/readsb
Создаем проект, просто папку, где все будем хранить:
mkdir garage
cd garage
Создаем файл настроек томл:
nano garage.toml
Пишем туда этот текст:
metadata_dir = "/var/lib/garage/meta"
data_dir = "/var/lib/garage/data"
db_engine = "lmdb"
replication_mode = "none"
rpc_bind_addr = "[::]:3901"
rpc_public_addr = "127.0.0.1:3901"
rpc_secret = "3e59650cc67421460a80eafc4d45611ebb63a214296d8f32f51135041ff514f5"
[s3_api]
s3_region = "garage"
api_bind_addr = "[::]:3900"
root_domain = "localhost"
[s3_web]
bind_addr = "[::]:3902"
root_domain = "localhost"
index = "index.html"
[k2v_api]
api_bind_addr = "[::]:3904"
[admin]
api_bind_addr = "0.0.0.0:3903"
admin_token = "472070e320469b2f048f77dcad4149e0c608ef01ecf0ac863c416287a1127a9e"
Далее создаем папку для хранения метаданных и самих данных:
mkdir meta
mkdir data
Теперь запускаем docker:
docker run \
-d \
--name garaged \
--restart always \
-p 3900:3900 -p 3901:3901 -p 3902:3902 -p 3903:3903 -p 3904:3904 \
-v ./garage.toml:/etc/garage.toml \
-v ./meta:/var/lib/garage/meta \
-v ./data:/var/lib/garage/data \
dxflrs/garage:v0.9.0
Проверяем, что все хорошо:
Для удобства зарегистрируем alias так:
alias garage="docker exec -ti garaged /garage"
Теперь можно запускать команды быстрее.
garage status
==== HEALTHY NODES ====
ID Hostname Address Tags Zone Capacity DataAvail
851017ec5989840f e3428f26541f 127.0.0.1:3901 NO ROLE ASSIGNED
Добавим роль:
garage layout assign -z dc1 -c 1G 851017ec5989840f
Role changes are staged but not yet commited.
Use `garage layout show` to view staged role changes,
and `garage layout apply` to enact staged changes.
Применим роль:
garage layout apply --version 1
==== COMPUTATION OF A NEW PARTITION ASSIGNATION ====
Partitions are replicated 1 times on at least 1 distinct zones.
Optimal partition size: 3.9 MB
Usable capacity / total cluster capacity: 1000.0 MB / 1000.0 MB (100.0 %)
Effective capacity (replication factor 1): 1000.0 MB
dc1 Tags Partitions Capacity Usable capacity
851017ec5989840f 256 (256 new) 1000.0 MB 1000.0 MB (100.0%)
TOTAL 256 (256 unique) 1000.0 MB 1000.0 MB (100.0%)
New cluster layout with updated role assignment has been applied in cluster.
Data will now be moved around between nodes accordingly.
Можно создавать бакет:
garage bucket create gavrilov
Bucket gavrilov was created.
Генерируем ключи:
garage key create gavrilov-key
Key name: gavrilov-key
Key ID: GK6d2fd5f2bb22374c2b626fb2
Secret key: 5118548e77dcd660705662f18742e4d9f0cd5d37409c2e3bfa53a50f00e33886
Can create buckets: false
Key-specific bucket aliases:
Authorized buckets:
Добавляем доступ ключей в бакет:
garage bucket allow \
--read \
--write \
--owner \
gavrilov \
--key gavrilov-key
New permissions for GK6d2fd5f2bb22374c2b626fb2 on gavrilov: read true, write true, owner true.
И последний штрих доступ через web:
garage bucket website gavrilov --allow
Website access allowed for gavrilov
Теперь можно настроить доступ s3 клиента и что то положить в бакет:
mc alias set garage http://localhost:3900 GK6d2fd5f2bb22374c2b626fb2 5118548e77dcd660705662f18742e4d9f0cd5d37409c2e3bfa53a50f00e33886
echo "hello world from s3" | mc pipe garage/gavrilov/index.html
Открываем браузер и смотрим файлик: http://gavrilov.localhost:3902/
ps: На официальном сайте docker запускают с аргументом
--network host
, но у меня почему-то так не работало. Порты закрыты были все. Потом разберусь ¯\_(ツ)_/¯ .
garagehq.deuxfleurs Тут можно почитать, как утверждают разраотчики, то это можно напускать даже на тостере :), в прочем они скорее всего правы, учитывая язык разработки.
Seaweedfs – part1
Seaweedfs – part2
Seaweedfs – part3
https://github.com/gristlabs/grist-core
Grist — это современная реляционная таблица Excel. Она сочетает гибкость таблиц Excel с надежностью базы данных для организации ваших данных и повышения вашей продуктивности.
Этот репозиторий, grist-core, является сердцем Grist и содержит все необходимое для запуска мощного сервера таблиц как Excel. Если вы хотите просматривать и редактировать таблицы Excel, хранящиеся локально, вы можете использовать приложение grist-electron для Linux, Mac и Windows. А для отображения таблиц Grist на веб-сайте без какой-либо специальной поддержки можно использовать grist-static, полностью настраиваемую версию Grist, работающую в браузере.
Репозиторий grist-core является основой для всех этих вариантов, а также для хостинг-сервисов таблиц Excel, предлагаемых Grist Labs, компанией в Нью-Йорке (🇺🇸), которая является основным разработчиком Grist, и ANCT Données et Territoires, французским правительственным агентством 🇫🇷, чьи разработчики внесли значительный вклад в исходный код.
Репозитории grist-core, grist-electron и grist-static являются открытыми (Apache License, версия 2.0).
Попробовал. Норм. Простенько и со вкусом. Выглядит качественно.