Welcome to my personal place for love, peace and happiness❣️

Later Ctrl + ↑

Запускаем Garage S3 в Docker

Создаем проект, просто папку, где все будем хранить:

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

, но у меня почему-то так не работало. Порты закрыты были все. Потом разберусь ¯\_(ツ)_/¯ .

10 mo   Open Source   s3

S3 Storage

  1. Garage – Французский опенсорс для домашнего использования и небольшой нагрузки. Но написан на Rust

garagehq.deuxfleurs Тут можно почитать, как утверждают разраотчики, то это можно напускать даже на тостере :), в прочем они скорее всего правы, учитывая язык разработки.

  1. SeaweedFS – А этот написан на Go. Вот, что они про себя пишут: быстрая распределенная система хранения больших двоичных объектов, файлов и озер данных для миллиардов файлов! Хранилище BLOB-объектов имеет поиск на диске O(1) и многоуровневое облако. Filer поддерживает Cloud Drive, активно-активную репликацию между DC, Kubernetes, монтирование POSIX FUSE, S3 API, S3 Gateway, Hadoop, WebDAV, шифрование, Erasure Coding. Есть хорошее сравнение с другими решениями тут: https://github.com/seaweedfs/seaweedfs#compared-to-other-file-systems. И есть статья на Медиуме

Seaweedfs – part1
Seaweedfs – part2
Seaweedfs – part3

  1. JuiceFS – Кажется китайский софт, написан на GO, есть комьюнити версия и платная для высоконагруженных решений. Подходит для big data.
10 mo   big data   Open Source   s3

Grist – это современная реляционные таблицы как Excel но бесплатные

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).

Попробовал. Норм. Простенько и со вкусом. Выглядит качественно.

10 mo   Excel   Open Source

Bacalhau – платформа для быстрой, недорогой и безопасной вычислительной технологии

Частичный перевод https://www.bacalhau.org https://github.com/bacalhau-project/bacalhau и http://expanso.io

https://www.bacalhau.org — это платформа для быстрой, недорогой и безопасной вычислительной технологии, которая позволяет пользователям запускать вычислительные задания там, где данные создаются и хранятся.
С открытым исходным кодом программного обеспечения bacalhau вы можете оптимизировать свои существующие рабочие процессы без необходимости переписывать код, выполняя задачи Docker и веб-ассемблера (WASM) в виде заданий. Эта архитектура также известна как вычисление над данными (CoD).
Название “bacalhau” происходит от португальского слова для треска.

bacalhau стремится преобразовать обработку данных для больших наборов данных, улучшить эффективность и снизить стоимость, а также открыть обработку данных для более широкой аудитории. Наша цель — создать открытую, совместную вычислительную экосистему, которая позволит совершить несравненную коллаборацию. Мы (Expanso.io) предлагаем демонстрационную сеть, чтобы вы могли попробовать работу без установки. Попробуйте!

Почему Бакальхау?
⚡️ Бакальхау упрощает процесс управления вычислительными заданиями, предоставляя единую платформу для управления заданиями в разных регионах, облаках и устройствах на границе сети.
🤝 Бакальхау обеспечивает надежную и устойчивую к сетевым сбоям оркестрацию, гарантируя, что ваши задания будут выполнены даже при сетевых сбоях.
🚨 Бакальхау предоставляет полную и постоянную аудиторскую запись того, что произошло, поэтому вы можете быть уверены, что ваши задания выполняются безопасно.
🔐 Вы можете запускать частные рабочие процессы для снижения вероятности утечки конфиденциальной информации или случайной передачи ваших данных за пределы вашей организации.
💸 Бакальхау снижает затраты на вход и выход, поскольку задания обрабатываются ближе к источнику.
🤗 Вы можете прикрепить свои данные к любой машине, и Бакальхау сможет выполнять задания с этими данными.
💥 Вы можете интегрироваться с сервисами, работающими на узлах, для выполнения заданий, например на DuckDB.
📚 Бакальхау масштабируется для обработки параллельных заданий. Вы можете обрабатывать петабайты (квадриллионы байт) данных.

А вот еще одна статья из рассылки:

В проекте lighthouse, который принимает новые технологии, ВМС США выбрали открытое программное обеспечение Bacalhau, поддерживаемое Expanso, в качестве решения для оркестрации. Программное обеспечение Bacalhau помогает ВМС США достичь своей цели развертывания возможностей искусственного интеллекта в подводных операциях. Совместно с нашим партнером Mycelial, Expanso преодолел несколько препятствий, чтобы позволить использование аналитики с использованием искусственного интеллекта в сложных и суровых условиях глубоководных сред. Bacalhau также соответствовал строгим стандартам безопасности ВМС США, одновременно позволяя доступ к данным и вычислениям по неустойчивым сетям.

Роль Bacalhau в беспилотных морских операциях
Современные военно-морские суда оснащены сложными датчиками и системами, которые повышают их боевую эффективность. Среди них, беспилотные подводные аппараты (UUV) и беспилотные поверхностные аппараты (USV) ВМС США генерируют значительное количество ценных данных, которые необходимы для принятия решений. Bacalhau улучшает возможности вычисления на устройстве этих беспилотных систем (так называемая Compute-over-Data), используя свой инновационный подход к бесшовной развертываемости на краю и предоставляя возможность планировать и контролировать задания из любой точки мира.

Вклад Bacalhau в программу JADC2
Программа Joint All Domain Command and Control (JADC2) Департамента обороны ознаменовала важный шаг в направлении искусственного интеллекта/машинного обучения (AI/ML)-ориентированной боевой готовности. Bacalhau сыграл ключевую роль в этом сдвиге. Bacalhau облегчает развертывание сложных моделей, обслуживание и наблюдаемость развернутых решений и обеспечивает надежное обновление новых версий по мере обучения и доработки. Предоставление глобального обзора и надежной вычислительной мощности может быть особенно сложным при работе с сетями, которые могут отключиться в любое время; Bacalhau platform эффективно решает эти проблемы как часть своего дизайна.
Безупречная интеграция данных

Успех этого проекта зависел от обмена данными по всему флоту беспилотных судов, как управляемых, так и беспилотных, а также в облачных средах. Bacalhau platform, в сочетании с коннектором Kafka Mycelial, обеспечил синхронизацию реального времени и вычисление на устройстве по сетям различного качества и пропускной способности.

Минимальная инфраструктура, максимальная защита

Конвенциональные решения требуют значительных инвестиций в аппаратное обеспечение, тогда как Bacalhau спроектирован на максимизацию эффективности с минимальной инфраструктурой и передачей данных. Если имеется доступная емкость, платформа Bacalhau может работать на существующих устройствах и системах, избегая необходимости новых аппаратных установок. Повторное использование существующих систем в организации также предлагает преимущества, поскольку они были проверены и заданы требования безопасности. Кроме того, в области, где пространство, вес и энергия (SWaP) являются критическими, Bacalhau демонстрирует, что эффективная обработка данных и защита могут быть достигнуты с минимальным использованием ресурсов. Bacalhau работает в гармонии с существующими технологиями, предлагая удобное решение для удовлетворения интенсивных потребностей морских операций.

Bacalhau доступен как открытое программное обеспечение.
https://github.com/bacalhau-project/bacalhau

А вот еще кусочек как можно все проверить и ознакомиться с архитектурой:

Архитектура
Bacalhau — это пиринговая сеть узлов, которая позволяет осуществлять децентрализованное общение между компьютерами. В сети существуют два типа узлов:
Узел-запросчик: отвечает за обработку запросов пользователей, обнаружение и ранжирование вычислительных узлов, пересылку заданий на вычисление узлам вычисления и мониторинг жизненного цикла задания.
Узел вычисления: отвечает за выполнение заданий и получение результатов. Различные узлы вычисления могут использоваться для разных типов заданий, в зависимости от их возможностей и ресурсов.

Узел-запросчик и узлы вычисления вместе образуют пиринговую сеть и используют госспинг для обнаружения друг друга, обмена информацией о возможностях узла, доступных ресурсах и состоянии здоровья.
Чтобы взаимодействовать с сетью Bacalhau, пользователи могут использовать интерфейс командной строки Bacalhau (Bacalhau CLI) для отправки запросов узлу-запросчику в сети. Эти запросы отправляются в формате JSON по протоколу HTTP, широко используемому для передачи данных в интернете.

Установка:

curl -sL https://get.bacalhau.org/install.sh | bash

Этот пример демонстрирует, как использовать stable diffusion на графическом процессоре и запускать его в сети Bacalhau. stable diffusion — это передовое текстовый модельер, который генерирует изображения из текста и был разработан как открытая альтернатива DALL·E 2. Он основан на модели смешения вероятностного типа и использует трансформер для генерации изображений из текста.

bacalhau docker run --gpu 1 ghcr.io/bacalhau-project/examples/stable-diffusion-gpu:0.0.1 -- python main.py --o ./outputs --p "cod swimming through data"

После чего нужно скачать результаты командой

bacalhau get <id>

подробнее тут: https://docs.bacalhau.org/examples/model-inference/stable-diffusion-gpu/

Сам проект: https://github.com/bacalhau-project/bacalhau
Разные примеры: https://docs.bacalhau.org/examples

Сам проверял некоторые, отлично работают и дока хорошая.
Еще хорошо, что такую сеть можно запустить у себя в приватном режиме.

10 mo   bacalhau   big data   CoD   Open Source
10 mo   Marketing

Два интересных магазина

https://friendfunction.ru

Мы открыли магазин Friend Function в 2013 году. С тех пор мы находим, привозим и производим крутые городские аксессуары и продаем их так, чтобы и сами вещи, и процесс покупки приносил вам много удовольствия.

В Friend Function мы продаем все, что нужно в городе: рюкзаки, шапки, кепки, солнечные очки, сумки на пояс, дождевики и много других нужных вещей. А еще у нас можно выбрать нетривиальные подарки на любой праздник. Мы собираем бренды с мировым именем и крутые локальные марки, а также развиваем линейку собственного производства. Так что если вам нужен мерч с вашим дизайном – это тоже к нам.

В названии Friend Function отражается наш подход и к ведению бизнеса, и к подбору ассортимента, и к отношениям с клиентами.

https://usmall.ru

USmall — первый маркетплейс американских магазинов в России. Только оригинальная продукция, более 1.000.000 позиций одежды, обуви и аксессуаров, включая новые коллекции DKNY, Tommy Hilfiger, Calvin Klein, Ralph Lauren, GAP, Michael Kors и других популярных брендов.

При отборе брендов мы ориентируемся на вещи средней ценовой категории. Например, пуховики Calvin Klein и Tommy Hilfiger из новых коллекций стоят 10-15 тысяч рублей. Толстовки тех же брендов обойдутся в 3-6 тысяч, а джинсы Levis в 3-5 тысяч. В среднем, это ниже на 40-50% чем в магазинах Москвы, Петербурга или Казани. В разделе обувь вы найдете оригинальные New Balance от 4 до 10 тысяч рублей, ботинки Timberland за 12-15 тысяч и UGG по 8-12 тысяч.

10 mo   City   Shop
11 mo   ФРИИ

The first permanent digital art gallery in Toronto! Thx to @NFTgoat_art

Выставка в Торонто 🚀 Вини Насо!

Walking the Uncanny Valley

🗓️ Nov 9-15 by appointment
🗓️ Opening night Nov 16, RSVP link 👇
⏳ Ends on Nov 26
📍 Location: 282 Geary Ave, Toronto
🖼️ Artists: @voidzto @newcolossal @younggunmotion @ariceCG @IamRWR2 @NasoVini @ChenRunbo @smearballz

Художники

Voidz

Voidz (@voidzto) – это анонимный цифровой художник из Торонто, Канада. С 2018 года его работы переосмысливают город с новых визуальных точек зрения с использованием среды искусства смешанной реальности. Он создает произведения, которые заставляют людей сомневаться в повседневной реальности и искажают ожидания мира вокруг них. Работы Voidz в основном размещаются в Instagram и включают сотрудничество с Drake, Stromae, Masego, FKJ, Puma, Burberry, Amiri, а также участие в выставках на Nuit Blanche и Beeple Studios.

Newcolossal

NewColossal – 3D-художник, дизайнер и художественный директор из Торонто, Канада, создающий сюрреалистические миры и странные объекты, населяющие их.

Young Gun Motion

Джо Паскаль (Young Gun Motion) – цифровой художник из Торонто, Канада. Его работы специализируются на сюрреалистических и уникальных способах искажения формы человека в веселых и гибких формах. Работы Джо игриво абсурдны и в значительной степени зависят от компьютерного моделирования для создания неожиданных результатов. Джо работал над музыкальными клипами для артистов, таких как Red Fang и Danny Elfman, а также над проектами для Adult Swim и Vice.

Arice

Arice – итальянский цифровой модельер в сфере моды, работающий в качестве директора по движению в MediaMonk в Торонто, Канада. Обладая страстью к модным фильмам и уникальным визуальным подходом, он сотрудничал с известными дизайнерами, такими как Una Burke и модным домом Etro, а также работал с брендами, такими как Adidas и итальянским Vogue. Arice также имел возможность работать с музыкальным продюсером Skrillex, создавая музыкальное видео для его нового сингла.

Rodrigo (RWR2)

Родриго Резенде (род. 1984), также известный как RWR2, – бразильский художник, базирующийся в Торонто, Канада. Его произведения изображают странные фигуры в различных средах, стремясь выразить свои личные чувства и мысли о современной культуре, поведении и самой жизни.

Vini Naso

Вини Насо приносит тактильное ощущение в цифровую реальность. Его работы, характеризующиеся текстурным богатством и вызывающими формами, исследуют слияние органической и синтетической жизни. С интересом к биомимикрии и будущему природы, вклады Насо в выставку исследуют симбиоз между человеческим прикосновением и созданными компьютером мирами, предлагая осязаемый подход к неосязаемым вопросам Uncanny Valley.

Runbo Chen

Художественный стиль Runbo – это танец света и цвета, запечатленный в цифровом пигменте. Его произведения выходят за рамки холста и погружают зрителей в атмосферу, созданную из пикселей и кода. В работе “Walking the Uncanny Valley” творчество Runbo воплощает яркость человеческих эмоций в рамках цифрового выражения, сливая органическое с виртуальным и создавая диалог, который простирается от корней восточной философии до границ цифрового инновационного.

Smearballs

Smearballs, провокатор пикселей, гнет правила цифрового искусства с игривым нечестивым настроем. Его работы – это калейдоскоп странного и капризного, нарушающего общепринятую эстетику с дерзкостью, которая одновременно тревожит и очаровывает. В контексте странной доли произведения smearballs служат напоминанием о нецензурном подсознании, разворачивающемся в цифровой среде с свободой, которую позволяют только виртуальные холсты.

11 mo   art   NFT   Vini Naso
11 mo   Events

Как сделать scatter plot и посчитать В какой стране есть Интернет стоимостью почти 800 за Гб

Все вроде не сложно, но вот наименование точек оказалось самым сложным)

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('https://a.gavrilov.info/data/python/file.csv')
df.iloc[:, 6] = df.iloc[:, 6].str.replace('$','',regex=True)
df.iloc[:, 5] = df.iloc[:, 5].str.replace('$','',regex=True)
df.iloc[:, 5] = df.iloc[:, 5].astype(float)
df.iloc[:, 6] = df.iloc[:, 6].astype(float)
fig, ax = plt.subplots(figsize=(10, 6))
ax.scatter(x = df["Cheapest 1GB for 30 days (USD)"], y = df["Most expensive 1GB (USD)"])
for idx, row in df.iterrows():
 ax.annotate(row['Name'], (row['Cheapest 1GB for 30 days (USD)'], row['Most expensive 1GB (USD)']))
plt.show()

Это одно из заданий, которые встречаются на курсах по питону.

Файл данных тут: https://a.gavrilov.info/data/python/file.csv, это затраты на интернет в разных странах.

А задание само такое: “Построим: диаграмму рассеяния по столбцам таблицы ‘Cheapest 1GB for 30 days (USD)’ и ‘Most Expensive 1GB (USD)’. В какой стране есть Интеренет стоимостью почти 800 за Гб, если верить таблице?”

11 mo   Python

IPFS + ENS Хостинг

После долгого поиска все же нашел хороший сервис для IPFS хостинга.
Сделал себе редирект на адресах gavrilov.eth.link суды. Не знаю зачем, но прикольно)

https://fleek.co, (или можно этот, но его я не пробовал https://dappling.network, ничего сказать не могу)

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

В общем с fleek это оказалось проще и бесплатно.

Это может пригодится: https://towardsdatascience.com/decentralizing-your-website-f5bca765f9ed

11 mo   ENS   IPFS

Настройка DNSSEC для сайта

Настроил себе тут DNSSEC, теперь все по феншую 😁

Проверить свой можно тут: https://dnssec-analyzer.verisignlabs.com

И тут https://a.gavrilov.info еще кстати настроил безопасный коннект и tls. Пришлось сменить dns провайдера так как в России не нашел тех кто поддерживает DNSSEC.

А еще вот нашел табличку сравнения DNS на Хабре.
https://docs.google.com/spreadsheets/d/1AIlKX6xdvqXKou6kzspskn4pfu8bo-oYan2JaN6PVbI/edit#gid=2057868417

Я выбрал https://developers.cloudflare.com/dns/dnssec/, все оказалось проще простого.
Включаем настройку, берем ключ DS и вставляем его у регистратора.

11 mo   DNSSEC   www
Earlier Ctrl + ↓