Welcome to my personal place for love, peace and happiness 🤖

Later Ctrl + ↑

DANIEL MARTIN: One and Three NFTs

Идея, лежащая в основе One and Three NFTs, касается нашего понимания истинной природы и ценности искусства NFT. Я представлю три версии одного и того же физического оформления, что и NFTs – неподвижное изображение, видео и 3D-модель. У коллекционера будет возможность оценить и определить ценность каждой версии, тем самым решив, какую из них он считает настоящим произведением искусства.

Эта концепция основана на произведении искусства, созданном Джозефом Кошутом еще в 1965 году под названием “Один и три стула”. Кошут продемонстрировал три варианта стула – настоящий стул, фотографию стула и письменное описание стула. Затем он попросил зрителя определить, какое изображение, по его мнению, является наиболее точным изображением стула.

В мире цифрового искусства, распространяемого в виде NFT, мы сталкиваемся с новыми и похожими вопросами, касающимися истинной сути произведения искусства. В сфере традиционного визуального искусства художественное произведение обычно определяется как физический объект. Однако появление NFT размыло эту грань, открыв множество новых форм искусства и сред, доступных благодаря покупке цифрового токена. Например, если художник рисует картину, фотографирует ее и впоследствии продает цифровое изображение, какой компонент работы является собственно произведением искусства – фотография, оригинальная картина или и то, и другое вместе? Тот же вопрос применим к 3D-художникам, которые создают модель, а затем анимируют ее – является ли 3D-модель настоящим произведением искусства или результирующей анимацией?

Выпуск One and Three NFTs включает в себя процесс торгов, который позволяет коллекционерам оценить стоимость каждого из предлагаемых экспонатов. Это, в свою очередь, заставляет их задуматься над тем, что они считают произведением искусства. Должны ли они рассматривать эти фрагменты как отдельные сущности или как части большего целого? Существует ли истинное художественное произведение в неподвижном изображении, анимации или 3D-модели? С другой стороны, сливаются ли они в единое произведение искусства благодаря лежащей в их основе концепции? Возможно, один коллекционер решит приобрести их все, объединив в единое целое, но все же с возможностью позже продать их по отдельности.

Коллекционеры преодолевают границы и вырабатывают новые определения. Истинная суть произведения искусства остается неуловимой, и вполне возможно, что консенсус может никогда не быть достигнут. И все же, разве не в этом вся прелесть? Решение в конечном счете остается за каждым человеком, предоставляя ему свободу определять свою собственную интерпретацию.

https://www.danielmartin.nl/one-and-three-nfts

https://superrare.com/danielmartin

Новый проект в мире NFT Sound.xyz

Недавно появился новый музыкальный проект на блокчейне. Ребята делают NFT треки, где авторы могут зарабатывать со своих произведений. Зарегался 👍, выбираю себе в коллекцию песенки 🎵

Присоединяйтесь: https://www.sound.xyz/

Чтение avro в spark из s3

import pyspark
import os

S3_ACCESS_KEY = os.environ.get(“S3_ACCESS_KEY”)
S3_BUCKET = os.environ.get(“S3_BUCKET”)
S3_SECRET_KEY = os.environ.get(“S3_SECRET_KEY”)
S3_ENDPOINT = os.environ.get(“S3_ENDPOINT”)

This cell may take some time to run the first time, as it must download the necessary spark jars

conf = pyspark.SparkConf()

IF YOU ARE USING THE SPARK CONTAINERS, UNCOMMENT THE LINE BELOW TO OFFLOAD EXECUTION OF SPARK TASKS TO SPARK CONTAINERS

#conf.setMaster(“spark://spark:7077”)

conf.set(“spark.jars.packages”, ‘org.apache.hadoop:hadoop-aws:3.3.1,io.delta:delta-core_2.12:2.1.0,org.apache.spark:spark-avro_2.12:3.3.2’)

conf.set(‘spark.hadoop.fs.s3a.aws.credentials.provider’, ‘org.apache.hadoop.fs.s3a.AnonymousAWSCredentialsProvider’)

conf.set(‘spark.hadoop.fs.s3a.endpoint’, S3_ENDPOINT)
conf.set(‘spark.hadoop.fs.s3a.access.key’, S3_ACCESS_KEY)
conf.set(‘spark.hadoop.fs.s3a.secret.key’, S3_SECRET_KEY)
conf.set(‘spark.hadoop.fs.s3a.path.style.access’, “true”)
conf.set(“spark.sql.extensions”, “io.delta.sql.DeltaSparkSessionExtension”)
conf.set(“spark.sql.catalog.spark_catalog”, “org.apache.spark.sql.delta.catalog.DeltaCatalog”)

sc = pyspark.SparkContext(conf=conf)

sc.setLogLevel(“INFO”)

spark = pyspark.sql.SparkSession(sc)

df = spark.read.format(“avro”).load(f“s3a://{S3_BUCKET}/person2.avro”)

Загрузка данных iceberg в Trino

Создание схем

CREATE SCHEMA delta.my_schema_d
WITH (location = ‘s3a://test/delta_p’);

CREATE SCHEMA hive.my_schema_h
WITH (location = ‘s3a://test/hive_p’);

CREATE SCHEMA iceberg.my_schema_i
WITH (location = ‘s3a://test/iceberg_p’);

Создание таблицы на базе CSV

create table hive.my_schema_h.taxi_p (
VendorID bigint,
tpep_pickup_datetime varchar,
tpep_dropoff_datetime varchar,
passenger_count bigint,
trip_distance decimal(20,2),
RatecodeID bigint,
store_and_fwd_flag varchar,
PULocationID bigint,
DOLocationID bigint,
payment_type bigint,
fare_amount decimal(20,2),
extra decimal(20,2),
mta_tax decimal(20,2),
tip_amount decimal(20,2),
tolls_amount decimal(20,2),
improvement_surcharge decimal(20,2),
total_amount decimal(20,2))
WITH (
format = ‘TEXTFILE’,
textfile_field_separator = ‘,’,
skip_header_line_count=1
);

Создание таблицы iceberg

create table iceberg.my_schema_i.taxi_i (
VendorID bigint,
tpep_pickup_datetime varchar,
tpep_dropoff_datetime varchar,
passenger_count bigint,
trip_distance decimal(20,2),
RatecodeID bigint,
store_and_fwd_flag varchar,
PULocationID bigint,
DOLocationID bigint,
payment_type bigint,
fare_amount decimal(20,2),
extra decimal(20,2),
mta_tax decimal(20,2),
tip_amount decimal(20,2),
tolls_amount decimal(20,2),
improvement_surcharge decimal(20,2),
total_amount decimal(20,2))

Запись таблицы iceberg

insert into iceberg.my_schema_i.taxi_i select * from hive.my_schema_h.taxi_p

Earlier Ctrl + ↓