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

Later Ctrl + ↑

Протестировал новый рестик Турандот

Официант решил принести нам сюрприз потому, что подруга поинтересовалась, что за блюдо заказал соседний стол. т.к. выглядело эффектно. Официант решил порадовать сюрпризом нас тоже и принес пирожное, но оно оказалось не кстати. Все таки дня рождения ни у кого в этот день нет, а мы все равно получили торт с демонстрацией. Сошлись на том, что это в честь нашего первого визита в ресторан. Может быть это такое отношение, ко всем новым клиентам или новый способ развода на чайного сомелье)) (чай от который стоит 300 рублей). В общем впечатления странные. Второй раз туда идти не хочется. Про кухню ничего сказать не могу т.к. не пробовал, вероятно хорошая, а фрукты оказались достаточно простыми на вкус. Еще один курьезный момент произошел, когда я попросил счет. Его сначала принесли без включенного тортика. Но потом когда узнали, что чаевые будут 5% решили добавить в счет тортик. Так что чаевые 5% достаточно мало для такого заведения. Надо было оставить большое, а то не удобно как-то получилось.

Прочитал полезную книгу data science at the command line

Сразу к делу:

docker pull datasciencetoolbox/dsatcl2e
docker run --rm -it datasciencetoolbox/dsatcl2e

Подробности тут: https://datascienceatthecommandline.com/2e/chapter-2-getting-started.html

cowsay "Let's moove\!"
 ______________
< Let's moove! >
 --------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Вот думаю может перевести на русский язык ... хм..

Тестирую Yandex Data Proc

Не буду описывать подробно как заказать услугу Data Proc, так как это оказалось достаточно просто.
Генерируем ключ ( желательно без пароля ) для более удобного доступа.

ssh-keygen -t rsa

Создаем Data Proc кластер ... next next finish ...

Копируем данные на ноду:

cat "/Users/yuriygavrilov/Documents/My Tableau Repository/Datasources/2022.1/en_US-US/Sample - Superstore.txt" | ssh -i /Users/yuriygavrilov/ssh_key/ya_np/ya ubuntu@51.250.79.62 'cat | hadoop fs -put - "hdfs://rc1a-dataproc-m-a1s92pxkgxp555pm.mdb.yandexcloud.net:8020/user/hive/warehouse/stor/stor.csv"'

Обвязываем табличку:

create external table store 
(Row_ID	string	,
Order_ID	string	,
Order_Date	string	,
Ship_Date	string	,
Ship_Mode	string	,
Customer_ID	string	,
Customer_Name	string	,
Segment	string	,
Country_Region	string	,
City	string	,
State	string	,
Postal_Code	string	,
Region	string	,
Product_ID	string	,
Category	string	,
Sub_Category	string	,
Product_Name	string	,
Sales	string	,
Quantity	string	,
Discount	string	,
Profit	string	
)       
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
LOCATION 'hdfs://rc1a-dataproc-m-a1s92pxkgxp555pm.mdb.yandexcloud.net:8020/user/hive/warehouse/stor/'
tblproperties ("skip.header.line.count"="1");

Создаем таблицу итогов продаж по регионам:

create table region_sales
(region string,
sales float 
);

Загружаем данные:

insert into region_sales (region, sales) select region, sum(REPLACE(sales, ",", ".")) as sales from store group by region ;

Проверяем итоги:

select * from region_sales

Central 501239.9
East 678781.25
South 391721.9
West 725457.8

Все ровно)
но вот запросы исполняются достаточно долго 12 секунд, но никто и не обещал скорость на малых данных.

В целом очень удобно. Заказал, загрузил, посчитал и выключил.

А теперь тестируем Спарк:

spark-shell
import spark.implicits._
import spark.sql
sql("SELECT region, sum(sales) FROM store_orc group by Region").show()
+-------+------------------+
| region|        sum(sales)|
+-------+------------------+
|  South|391721.90536534786|
|Central|  501239.889593184|
|   East| 678781.2377765179|
|   West| 725457.8231142759|
+-------+------------------+

Класс!) заработало)

 1 comment   2022   Data Proc   hadoop   yandex

Статичный хостинг сайтов по протоколу s3 от Storj

Иногда достаточно простой страницы, которую мы хотим опубликовать в интернет. Хостингов много разных, а хочется не только страницу сделать, но и выложить там фотки например гигов на 150 с последнего отпуска. Конечно можно купить хостинг Яндекс диск или еще Гугл и шарить папки, но кто ищет легких путей)) не я точно.

Ниже я расскажу как создать хостинг статичных страничек на протоколе s3 от Storj

Вот коротко, что требуется:

  1. Аккаунт
  2. Папку
  3. Uplink
  4. Домен и DNS

А теперь подробнее:

  1. Заводим аккаунт на https://www.storj.io – тут просто, выбираем регион из трех Европа, Азия или США. Сразу скажу, что логины отличаются в разных регионах и стоит запомнить в каком регионе вы регистрируетесь.
  1. После регистрации заходим в раздел Bucket и создаем новый с любым названием. Например, “site”. Имейте ввиду, что регистр важен и лучше использовать маленькие буквы. При создании бакета потребуется придумать пароль. ВАЖНО! Если его забыть то ничего восстановить не получится. Так что придумываем надежный пароль и помним его сильно))). Можно, кстати не придумывать и положиться на систему и она сгенерирует автоматически ключевую фразу в несколько слов. Выучить предложение наизусть в этом случае будет сложно, да и печатать долго. Ладно будем считать пакет создан.
  1. На этом этапе нужен uplink. Скачать его можно тут: https://docs.storj.io/dcs/downloads/download-uplink-cli/

Далее настраиваем доступы API вводим команду:

uplink setup

Но погодите, у нас же нет еще ключей! А их мы должны взять в личном кабинете и предварительно сгенерировать. При генерации ключей можно давать полный доступ. Эти ключи не будут использоваться публично. Они нужны для работы Uplink, который запускается локально на вашем ПК.

Что бы сделать ключ заходим в аккаунт storj, меню Access и наживаем “Create Keys for CLI”. Там выбираем API и полные права. После генерации система выдаст две строки: ‘satellite address as “< nodeid>@

:” и API Key’. Запоминаем их и возвращаемся к Uplink. Он попросит сначала выбрать регион. Далее указать строку сателлиты, а за тем API Key. А в самом конце попросит ключ фразу от папки (бакета). На последнем этапе лучше не ошибаться, так как сообщений об ошибке не будет потому как это пароль шифрования, а не доступа. Если пароль будет другим, то вы не увидите там файлов. В общем не ошибаемся на этом этапе и аккуратно вводим пароль. Еще дополню, что можно запутаться с паролями и папками и правами для простоты можете создать один общий пароль или создавать для каждой папки свой пароль и свои API ключи. В прочем делайте, как вам нравится.

и так Uplink работает. А если нет то вот инструкция: https://docs.storj.io/dcs/api-reference/uplink-cli/setup-command/

  1. Генерируем общий доступ для нашей папки site. Для этого нужно выполнить команду:
uplink share --dns www.example.com sj://bucket/prefix

В итоге uplink выдаст настройки DNS, которые мы указываем у своего провайдера.

$ORIGIN example.com.
$TTL    3600
www.example.com    	IN	CNAME	link.storjshare.io.
txt-www.example.com	IN	TXT  	storj-root:bucket/prefix
txt-www.example.com	IN	TXT  	storj-access:jqaz8xihdea93jfbaks8324jrhq1

Все! Кладем в папку site index.html и радуемся.

 1 comment   2022   s3   Storj   www   хостинг

Открыл сезон сёрфборда

В прошлом году встал на доску и даже научился кататься с откинутым фалом ( без троса )
А в этом году так сразу не получилось. Все таки нужна практика и еще раз практика.

Где можно покататься: Пирогово, Строгино, Мякинино.
Где понравилось больше: Мякинино.
Цены примерно одинаковые. 5000р за 30 минут.

Рисую простую диаграмму на Python

Вот собственно сам код:

import pandas as pd
import altair as alt

df = pd.read_excel('Sample - Superstore.xls', index_col=0) 
df2 = df.groupby('Region').sum()
df2 = df2.reset_index(level=0)

bars = alt.Chart(df2).mark_bar().encode(
   alt.X('Region:N', sort='-y'),
   alt.Y('Sales:Q'),
   color=alt.condition(  alt.datum.Region == 'West',  # If the year is 1810 this test returns True,
   alt.value('orange'),     # which sets the bar orange.
   alt.value('steelblue'))   
)

text = bars.mark_text(
    align='left',
    baseline='middle',
    dx=11  # Nudges text to right so it doesn't appear on top of the bar
).encode(
    text='mean(Sales):Q'
)

(bars + text).properties(height=300)

Заметка о Docker

С момента запуска нод Storj ( выплату дохода еще не получал но он растет 🤑 ) начал использовать Docker контейнеры, которые запускаю на nas диске.
Очень удобно.

Пара полезных команд:

docker update --restart=always <container>  
## Запускает контейнер после перезагрузки. 

docker ps -a
# показывает запущенные контейнеры

## ну и еще куча разных можно узнать так: 
docker --help

В целом докер удобен и прост в использовании, но уже не так модно как поды ...
Если этот факт не смущает, то можете смело выбирать понравившийся контейнер и запускать где-нибудь. Например, этот https://hub.docker.com/r/jupyter/datascience-notebook для дата саенса... или дэйта саенса.

 No comments   2022   Docker

Новый рестик новый вкус

Ресторан располагается в центре города Тверь в здании кинотеатра. Очень удачное расположение и чудесный вид со второго этажа. Утиная ножка была нежной и вкусной, ну а соус немного кисловатый, но впечатления это не испортило.

http://larotondatver.ru

Кстати, очень любят микрозелень, почти все блюда с парой стеблей фасоли.

Как поставить аватарку для ENS

Нашел полезную инструкцию о том как сделать аватарку для ENS

https://medium.com/the-ethereum-name-service/step-by-step-guide-to-setting-an-nft-as-your-ens-profile-avatar-3562d39567fc

В целом нужно добавить такую строку в раздел “Аватарка”

eip155:1/[Стандарт НФТ маленькими буквами ]:[Адрес контракта коллекции ]/[ ИД токена ]

если все хорошо, то ENS регистратор подсвечивает зеленую галочку и можно сохранять.

У меня стоит вот так:

 No comments   2022   ENS   NFT
Earlier Ctrl + ↓