Анатолий Ч. | канал
323 subscribers
1.34K photos
191 videos
17 files
645 links
Канал Анатолия Ч.

Робот: @dot_ch_bot
Чат канала: @wallet_chat
Кто я такой: https://t.me/ch_an/1779

Я: @yandex_links
Download Telegram
Анатолий Ч. | канал
Конкурс закончился Победил @gosunov. Он уже получил 1500₽. Правки за оставшиеся 500₽, интервью с победителем и публикация рабочего решения будут уже не сегодня. Хоть многие в комментариях утверждали о тривиальности задачи, всего было прислано 14 неудачных…
Решение

Я немного пообщался с @gosunov, он студент в итмо и занимается олимпиадным программированием. Во время конкурса узнал много нового про формат .png. Его решение состояло из bash-скрипта script.sh, который внутри себя в одном месте запускает python-скрипт:

script.sh
set -e
mkdir frames42x42
mkdir frames42x42masked

ffmpeg -i input.mp4 -an -vf crop=272:272,scale=42:42,fps=6 42x42_fps6_muted.mp4
ffmpeg -i 42x42_fps6_muted.mp4 frames42x42/%05d.png

python3 mask.py
ffmpeg -y -framerate 6 -i frames42x42masked/%05d.png 42x42.apng
mv 42x42.apng 42x42.png


mask.py
from PIL import Image

w = 42
h = 42
x0 = (w - 1) / 2
y0 = (h - 1) / 2

R = min(h, w) / 2 - 1

def crop_to_circle(im):
for x in range(w):
for y in range(h):
dist = ((x0 - x) ** 2 + (y0 - y) ** 2) ** 0.5
if dist > R:
im.putpixel((x, y), (0, 0, 0, 0))

n = 32450
for i in range(1, n + 1):
print('\r%05d/%05d' % (i, n), end='')
im = Image.open('frames%dx%d/%05d.png' % (w, h, i)).convert('RGBA')
crop_to_circle(im)
im.save('frames%dx%dmasked/%05d.png' % (w, h, i))


Оно сделает анимацию для 42x42, для 100x100 понадобится поменять параметры руками и запустить ещё раз.

🥔🥔🥔🥔

Также параллельно с победителем конкурса вчера, прямо на моих глазах пытался закодить задачу @the_tigor, но не успел. В качестве поощрительного приза я купил ему чипсики. Его код состоит из одного python-скрипта, который сразу генерит и 42х42, и 100х100 версии:

tigor.py
import cv2
from PIL import Image, ImageDraw
from tqdm import tqdm
import random

target_fps = 6
video = cv2.VideoCapture('./input.mp4')

first42 = None
first100 = None

sequence42 = []
sequence100 = []

mask = Image.new('L', (272, 272), 0)
draw = ImageDraw.Draw(mask)
draw.ellipse((0, 0, 271, 271), fill=255)

frame_count = video.get(cv2.CAP_PROP_FRAME_COUNT)
nth_frame = video.get(cv2.CAP_PROP_FPS) / target_fps
frame_id = 0
frameids = []

while int(frame_id) < frame_count - nth_frame:
frame_id += nth_frame
frameids.append(frame_id)

def rand_mod(img):
for i in range(4):
width, height = img.size
random_x = random.randint(0, width - 1)
random_y = random.randint(0, height - 1)
random_channel = random.randint(0, 2)

pixel = list(img.getpixel((random_x, random_y)))
if pixel[random_channel] < 255:
pixel[random_channel] += 1
else:
pixel[random_channel] -= 1
img.putpixel((random_x, random_y), tuple(pixel))

for frame_id in tqdm(frameids):
video.set(cv2.CAP_PROP_POS_FRAMES, int(frame_id))
ret, frame = video.read()
if not ret:
break
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

img = Image.fromarray(frame)
cropped = img.crop((104, 0, 376, 272))
round = Image.composite(cropped, Image.new('RGBA', (272, 272)), mask)

img100 = round.resize((100, 100))
img42 = round.resize((42, 42))

rand_mod(img100)
rand_mod(img42)

if first42 is None:
first100 = img100
first42 = img42
else:
sequence100.append(img100)
sequence42.append(img42)

img.close()
cropped.close()
round.close()

def save(first, sequence, name):
first.save(name, optimize=True, compression_level=9, save_all=True,
append_images=sequence, loop=0, duration=int(1000 / target_fps))

save(first42, sequence42, '42.png')
save(first100, sequence100, '100.png')


Про правки я напишу в комменты (и в наш божественный @wallet_chat).
4432🔥1🤡11
🎵 Wrapped for Artists

Много каналов по соседству публиковали свой Spotify Wrapped. Не думаю, что вам интересно моё увлечение Лидой и Джонибоем, но знали ли вы, что Спотифай делает такую же штуку для артистов?

Раскрываю свои итоги года как Anatoliy Ch. в Spotify.

Слушатели
За год у меня было 764 слушателя из 69 стран. Топ-5 стран по прослушиваниям: Сербия, Нидерланды, США, Германия, Украина. 553 человека услышали меня впервые.

Стримы
У меня 14293 стрима — это 220 часов непрерывного прослушивания моей музыки.

Активность
В этом году мне поставили 103 лайка, а мои песни попали в 21 плейлист. Мои треки шерили другим людям — чаще всего шерили «Музыку для сна в самолёте», «Дай денег» и «Музыку для сна в отеле». И что больше всего меня удивило — у 5 разных человек я попал в топ-5 артистов за этот год!

Астрологи объявили неделю музыкального флекса, самооценка выросла вдвое.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🍾8🎉53🤮2🔥1
Нет времени объяснять

«Слово пастыря» или «Умницы и умники»?

🗳 ГОЛОСОВАНИЕ 🗳
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
55🤔1🤮1
Forwarded from Anatoliy Ch.
Какое телешоу лучше?
Anonymous Poll
38%
Слово пастыря
62%
Умницы и умники
4💩1
Переезд

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

У меня же вещей по сути не было: монитор мне для работы не нужен, коллекцию съеденных пачек тик-таков я передал на нужды бисерохранения, а коммунальную GaN-зарядку я хотел прихватить с собой лично.

Поучаствовать в общем переезде очень хотелось, и мне пришла идея: я достал первую попавшуюся бутылку воды из соседней переговорки, достал наклейку new work place для переезда, записал на ней свой новый стол, и наклеил на бутылку.

В воскресенье на старом столе её уже не было. Завтра я еду в новый офис.
14😁6🤣2
Внимание

Я пришёл (теперь буду ходить на работу пешком 🤩) в новый офис.
Бутылку перевезли.

Спасибо за внимание
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11🥰4
Как Цой продал жопу лейблам
(другое название поста — Аккорды & Прокрастинация)

Я как-то искал гитарные аккорды у песни «Вот и помер дед Максим» (не спрашивайте зачем) и обнаружил, что на сайте с аккордами AmDm.ru висит огромная красная плашка:

Запретили песни Цоя, Агата Кристи, Наутилус Помпилиус, Зиверт
Отвечаем в отдельной теме


«Искал медь, а нашёл золото!» — подумал я, и сразу же пошёл читать историю самого громкого копирайт-скандала в музыкальной индустрии 2023 2022.

Оказывается, в ноябре 2022 года ООО «Первое музыкальное Издательство» и ООО «Национальное музыкальное Издательство» захотели подать в суд на админа сайта AmDm.ru за размещение аккордов и текстов песен, которые им принадлежат ("Кино", "Наутилус Помпилиус", "Агата Кристи", "Зиверт", etc), или же платить за них по 10000–5000000 рублей за композицию. Очевидно, у сайта с аккордами таких бабок нет, и они были вынуждены выпилить эти песни с сайта. Ещё они разместили на своём сайте добротный манифест, донося до лейблов идею, что сайты с аккордами приносят им пользу и народную любовь, а не вред.

«Почему же эта история про прокрастинацию?»

— спросите вы?

Дело в том, что у меня сейчас есть примерно 18 ненаписанных постов в дальнем ящике, которые я отложил на потом (примерно половина из них не выйдет никогда), и историю про amdm.ru я откладывал с августа.

И с тех пор невероятный сюжет успел пройти дальше:
сайт AmDm.ru заблокировали в России.

По решению суда по иску ООО «Первое музыкальное Издательство», вообще без уведомления администрации сайта. Иск был к 🤡🤡 CloudFlare Inc 🤡🤡 из-за текстов 10 рандомных песен, которые мне неизвестны.

https://t.me/amdm_ru/54

Теперь AmDm собирает подполье в своём Телеграм-канале, а ребята в комментариях предлагают вернуть на сайт песни Кино.

Такие дела.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡5🎄3🤯1
Анатолий Ч. | канал
Как Цой продал жопу лейблам (другое название поста — Аккорды & Прокрастинация) Я как-то искал гитарные аккорды у песни «Вот и помер дед Максим» (не спрашивайте зачем) и обнаружил, что на сайте с аккордами AmDm.ru висит огромная красная плашка: Запретили…
Я копираст

Вы можете говорить о копирастах что угодно, но я вам не поверю. Потому что когда власть (которая и не снилась моему отцу) правообладателя окажется в ваших руках и когда во рту появится вкус крови, вы начнёте рассуждать иначе.

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

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

Так начались угрозы со стороны моего лейбла в адрес пиратских ресурсов:
Уважаемые представители сайта [URL],

В качестве официального представителя Anatoliy Ch. в России и представителя звукозаписывающего лейбла gorgona music, который обладает исключительными правами на соответствующие музыкальные произведения, я обращаюсь к вам с серьёзным вопросом касательно авторских прав.

Недавно нам стало известно, что на вашем ресурсе по адресу [URL] без нашего согласия размещены и доступны для бесплатного прослушивания и скачивания треки, принадлежащие Anatoliy Ch. и нашему лейблу. Прилагаемые скриншоты подтверждают этот факт.

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

Ваше немедленное реагирование на данное уведомление и удаление спорного контента поможет избежать дальнейших правовых разбирательств.

С уважением,
Глеб Павлюк
Официальный представитель Anatoliy Ch. в России
gorgona music


И они удаляли пиратский контент. И это было офигительно. Просто офигительно.
😁14🤡8🔥2🥰2
Media is too big
VIEW IN TELEGRAM
https://www.youtube.com/watch?v=v4rvTMBCJD0

Сейчас на ютубе пропали абсолютно все рэп-баттлы (почему?). Я обнаружил это вчера, когда не нашёл баттл Оксимирона и Славы КПСС и не смог приобщить ещё одного человека к высокому.

Я не на шутку испугался, ведь это видео — самое главное событие баттл-рэп сцены в мире ever, и одно из самых социально значимых видео на русском ютубе в 2017 году (в моём личном топе оно на первом месте, на втором «Он вам не Димон», на третьем «Тает Лёд»).

Возможно, в ближайшем времени времени видео вернут, но сейчас я его перезалью здесь. Да, два гигабайта, зато с более высоким качеством, чем в большинстве ютуб-перезаливов.
43
Анатолий Ч. | канал
Смерть программы лояльности На этой неделе @wallet изменил минимальную сумму чека в 5000 раз: с 0.0001 до 0.5 TON. Это значит: 1. Что присылать вам приятные копеечные чеки за подписку на канал я теперь не могу. 2. Что присылать вам чеки побольше за длительную…
Возвращение манидропов

Ой, чуть не забыл! @wallet понизил минимальную сумму чека обратно до 0.0001 TON, поэтому я вернул манидропы.

Уточню, как оно работает сейчас:
1. На канале выходит новый пост.
2. Робот ждёт случайное время в определённом интервале.
3. Робот кидает пост-манидроп в комментарии под постом.
4. В посте-манидропе TON-чек (много не дам).
5. Кто первый его активирует — того и тапки.
6. Взявший чек традиционно помечает коммент реакцией, указав своё первенство. Или же не отмечает, и получает на пост-манидроп негативные реакции и комментарии «скам».

На данный момент, временной интервал — 5-10 минут, а сумма чека 0.00777 TON.

Технически, можно и всю программу лояльности возродить, но я этого делать не буду.
Во-первых, сейчас я получаю офигительное удовольствие от целенаправленного избегания хранения пользовательских данных и использования баз данных в принципе.
Во-вторых, лавочка с
@wallet может в любой момент снова закрываться, я не хочу об этом беспокоиться.

Можете прийти через 5 минут и испытать свою (удачу?) скорость в комментах 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉63👍1🍾1
Татары строят
Тюбетей. Это Ресторан татарской кухни с доставкой на дом.

minecraft.tubatay.com

А я что делаю?
🔥7
❄️ А я решил запустить свой майнкрафт-сервер 🐷

Страничка сервера со статусом в реальном времени в роботе:
t.me/dot_ch_bot?start=minecraft_server

Начинаем 28 декабря (я вайпну карту), но зайти можете уже сейчас.

Про концепцию, правила и 😳 голосование — в следующем посте.
Please open Telegram to view this post
VIEW IN TELEGRAM
7
Про концепцию, правила, и 😳 голосование

Концепция

Я хочу ванильный сервер, действие которого будет сосредоточено на обустройстве небольшого спавна (мало усилий -> большая красота).

Спавн на моём сервере представляет очень маленькое и очень высокое плато посреди большого океана. Уплыть на материк возможно, но лично я это буду делать только с целью добычи ресурсов (например, для поиска тыкв, чтобы сделать на спавне снеговиков).

Посмотреть спавн вы можете на онлайн-карте (ссылка вот тут). При этом карта показывает только спавн. Чтобы любой желающий мог осознать в чём прикол сервера.

На моём сервере нет модификаций, меняющих игровой процесс. Нет приватов и нет вайтлиста. Но всё же, я прошу вести себя прилично, и соблюдать правила ниже. Иначе, я очень расстроюсь. Пожалуйста, не расстраивайте меня.

Правила

Правил всего лишь 3:
1. Все правила Российской Федерации (не убей, не кради, не разжигай, etc)
2. Не используй софт\моды, дающие игровое преимущество.
3. Не испытывай сервер на прочность.

😳 Голосование

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

Поэтому, если вы хотите принять участие в сервере с 28 декабря, пожалуйста, проголосуйте под этим постом:
- 💎, если вы хотите сыграть на сервере, и у вас лицензия
- 💎, если вы хотите сыграть на сервере, и у вас пиратка
Please open Telegram to view this post
VIEW IN TELEGRAM
2513👍52🎉1