LINUX.ORG.RU

Сообщения LINUX-ORG-RU

 

Видео искалка - reptube

 , , , ,

Студия Колобо.. кхм. Конгломерат корпораций "000 На Коленочке ЛТД" от создателей "И таааак сойдёёёт" представляяяееет! Очередную, но уникальную во всей солнечной системе, а может быть даже галактике, фигню!
Короче суть проста как две палки, часто кидают ссылки на ютуб которые нифига не работают, но иногда есть аналогичное видео на rutube/platforma/my.mail/etc и для автоматизации поиска накалякалось. Главное чтобы youtube.com не блокировался полностью, чтобы по ссылке можно было извлечь название видео. Можно просто искать видео на rutube/platforma/my.mail/etc с разным форматом вывода, пайпы, m3u вывод для mpv и прочее Собственно воть и всё. Конечно, можно просто использовать браузер и использовать поиск в нём, но вот зачем это делать, если это можно не делать! Гениально, где моя шоколадная медалька.

Недоисходники

Чет я приболел, лень писать смешульки так что я тут тупо скопирую readme дабы не запаривать Ъ своим очередным высеро…шедевром


Зависимости

Любая версия Lua и утилита curl

  • Lua5.1
  • Luajit
  • Lua5.2
  • Lua5.3
  • Lua5.4

Использование

  • Аргументы опциональные
    • -h Отобразить справку
    • -d Отключить цветной вывод
    • -n [NUMBER] Количество результатов для вывода, в каждом из ресурсов
    • -v Подробный вывод, описание, имя канала, категория
    • -m Вывод в формате m3u (удобно для передачи в mpv)
    • -s Искать только точное совпадение с запросом
    • -l Отображать вывод в виде списка чистых ссылок
    • -ru --rutube Отобразить результаты с rutube.ru
    • -pl --platforma Отобразить результаты с platforma.ru
    • -my --mymail Отобразить результаты с my.mail.ru
    • -ok --okru Отобразить результаты с ok.ru
    • -dz --dzen Отобразить результаты с dzen.ru
    • -co --coub Отобразить результаты с coub.com

По умолчанию поиск ведётся везде, если вы выберите -ru будет показан
только вывод с rutube, если вы выберите больше ключей например ‘-pl -ru’
то будет выведено только то что выбрано, и в том порядке в котром идут ключи

Примеры

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

reptube Рецепты салатов -n 10 -v

Получить только 1 вариант с названием

reptube -n 1 Почему надо выключать телефоны на борту самолета

Найти видео по ссылке из youtube

reptube https://www.youtube.com/watch?v=jN1fA6zupOM

Найти видео по ссылке из youtube в строгом режиме, 100% совпадение или ничего

reptube -s https://www.youtube.com/watch?v=jN1fA6zupOM

Оформить вывод в формат m3u, полезно для передачи видеоплеерам, например mpv

reptube -m https://www.youtube.com/watch?v=jN1fA6zupOM | mpv -

Можно использовать pipe удобно для скриптов

echo 'Фильмы' | reptube -m | mpv -

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

mpv $(reptube -l Мультики)

Примеры вывода

  • Первое попавшееся видео
dron@gnu:~$ reptube Фильм Матрица -n 1 
* [1] Матрица (фильм, 1999)
  https://rutube.ru/video/307c52af7c3e122855aea0899c247971/
  • Тоже самое только с подробным выводом
dron@gnu:~$ reptube Фильм Матрица -n 1 -v
* [1] Матрица (фильм, 1999)
  [Фильмач — фильмы и сериалы онлайн][Фильмы]
  Культовый киберпанк братьев Вачовски, стабильно занима
  ющий высокие места во всевозможных топах лучших фильмов. 
  Философский подтекст фильм так глубок, что его корни ищут
   не только в классической мысли, но и более спорных источ
  никах — от классического аниме до «Алисы в стране чудес».
  Днём Томас Андерсон пишет код в одной из поглотивших мир 
  корпораций, а по ночам взламывает цифровые системы. В мир
  е закулисья он носит имя Нео, и в сети для него нет ни од
  ной тайны. Однажды Нео приходит таинственное сообщение= «
  Ты увяз в Матрице», а также указание следовать за белым к
  роликом. Вскоре он находит того самого кролика на спине н
  екой Тринити, и она предлагает ему погрузиться в новую ре
  альность. После этого жизнь Нео разделяется на «до» и «по
  сле».Год выпуска= 1999Жанр= фантастика, боевикПродолжител
  ьность= 136 мин.Режиссёр= Лана Вачовски, Лилли ВачовскиВ 
  ролях= Киану Ривз, Лоренс Фишбёрн, Кэрри-Энн Мосс, Хьюго 
  Уивинг, Глория Фостер, Джо Пантольяно, Маркус Чонг, Джули
  ан Араханга, Мэтт Доран, Белинда МакКлориCтрана= США, Авс
  тралияCтудия= Groucho II Film Partnership, Warner Bros. P
  ictures Co., Bullet Time, Silver PicturesЗдесь вы можете 
  посмотреть фильм Матрица в русском синхронном переводе в 
  хорошем качестве (4k, 2k, Full HD, 1080p) совершенно бесп
  латно.
  https://rutube.ru/video/307c52af7c3e122855aea0899c247971/
  • В фомате m3u
dron@gnu:~$ reptube Фильм Матрица -n 1 -m
#EXTM3U
#EXTINF:-1,'Матрица (фильм, 1999)'
https://rutube.ru/video/307c52af7c3e122855aea0899c247971/
  • Чистая ссылка
dron@gnu:~$ reptube Фильм Матрица -n 1 -l
https://rutube.ru/video/307c52af7c3e122855aea0899c247971/
  • Поиск по ссылке на youtube с точным совпадением
dron@gnu:~$ reptube -s 'https://www.youtube.com/watch?v=jN1fA6zupOM'
* [1] Почему надо выключать телефоны на борту самолета
  https://rutube.ru/video/3f329d37994e4f1c9e148028c1bf5d7a/
* [2] Почему надо выключать телефоны на борту самолета
  https://rutube.ru/video/4c87a2ea11f92883cfcfabd63a79c794/
dron@gnu:~$ 
  • Тупа мультики детю врубить (нет фильтра по возрату, на свой страх и риск)
reptube добрые мультфильмы -m | mpv -

Надеюсь кому пригодится
Досвиданья ::)

LINUX-ORG-RU
()

Бесплатный хостинг / Бесплатный домен :)

 , , , ,

Кто какими пользуется, какие бывают. Поисковики выдают хренову тучу вариантов. Все их проверять удел сильных духом. Чтобы локация была в РФ, если дают ssh то клёво. Дохлость ресурсов, аптайм в целом по барабану. Кое-как работает и ладно. Интересно узнать как и о просто хостингах куда можно залить статику хоть по FTP и всё без всяких CMS (или если цмски как опция) так и VPS,VDS. Я выпал из всего этого, просто интересно было-бы узнать что сейчас ну стабильное что ли, пусть и скромное.

Ну и чтобы без всяких приколов типа, превышен некий лимит и тебе выставляют счёт. Не скажу что сильно надо, но на перспективу узнать хорошо бы. Если не знаете «хорошие» места, но знаете плохие места, то тоже будет полезно узнать. И не только мне. Гы ::)

Перемещено Dimez из general

LINUX-ORG-RU
()

Часов много не бывает

 , , , ,

Так как сегодня пятница и похвальной является любая шизофрения в рамках почти здравого смысла, представляю вашему вниманию часы!

clockrip
██████ ██████    ██████ ██████
    ██     ██ ██     ██ ██    
██████ ██████    ██████ ██████
██         ██ ██ ██         ██
██████ ██████    ██████ ██████

clockrip -f O -s
OOOOOO OOOOOO    OOOOOO OOOOOO    OOOOOO OOOOOO
    OO     OO OO     OO OO  OO OO     OO OO  OO
OOOOOO OOOOOO    OOOOOO OOOOOO    OOOOOO OOOOOO
OO         OO OO OO     OO  OO OO OO     OO  OO
OOOOOO OOOOOO    OOOOOO OOOOOO    OOOOOO OOOOOO

clockrip -f ▓ -s
▓▓▓▓▓▓ ▓▓▓▓▓▓    ▓▓▓▓▓▓ ▓▓▓▓▓▓    ▓▓▓ ▓▓▓▓▓▓
    ▓▓     ▓▓ ▓▓     ▓▓     ▓▓ ▓▓  ▓▓     ▓▓
▓▓▓▓▓▓ ▓▓▓▓▓▓    ▓▓▓▓▓▓ ▓▓▓▓▓▓     ▓▓ ▓▓▓▓▓▓
▓▓         ▓▓ ▓▓     ▓▓ ▓▓     ▓▓  ▓▓ ▓▓    
▓▓▓▓▓▓ ▓▓▓▓▓▓    ▓▓▓▓▓▓ ▓▓▓▓▓▓     ▓▓ ▓▓▓▓▓▓

Эта элегантная утилита позволит вам выводить время в виде больших букф чисел в разнообразном цвете и стиле, а элегантное название подчеркнёт туннельный синдром кистей ваших рук при наборе в эмуляторе терминала.

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

Суть, мне нужны были часы как tty-clock нравится какой у них вывод, но только мне нужно было иметь возможность просто выводить время в таком виде в файл, а не держать обновляющееся время в терминале с виду дурацкая идея, но так надо, в этом вся суть.

  • clockrip

  • Аргументы опциональные

    • -h Отобразить справку
    • -u Выводить мировое UTC время, а не локальное
    • -s Отображать секунды
    • -f Установить символ заполнитель (одно знакоместо)
    • -ft [TEXT] Установить символ заполнитель (одно знакоместо)
    • -fw [TEXT] Установить символ заполнитель (два знакоместа)
    • -c [COLOR] Установить цвет заливки
    • -b [COLOR] Установить цвет заливки фона
    • -d Включить эффект мигания для точек разделителей
    • -t [TEMP] Установить цвет через значение температуры в Цельсиях
    • -bt [TEMP] Установить цвет фона через значение температуры в Цельсиях
    • -k [TEMP] Установить цвет через значение температуры в Кельвинах
    • -bk [TEMP] Установить цвет фона через значение температуры в Кельвинах

Ключи -t -k -bt -bk отменяют значение ключей -c -b
Ключи -t -k переопределяют друг друга, какой задан последним тот и задаёт значение
Ключи -bt -bk переопределяют друг друга, какой задан последним тот и задаёт значение

Цвет заливки может быть названием цвета из списка

  black |  red |  green |  yelow |  blue |  purple |  cyan |  gray
 bblack | bred | bgreen | byelow | bblue | bpurple | bcyan | bgray

Цвет заливки может быть кодом цвета от 0 до 256 или от 000000 до FFFFFF Если вместо времени отображается белиберда можно попробовать заменить -fw на -ft и наоборот, утилита работает только с заливкой символами шириной 1 или 2 знакоместа от любого иного варианта отображаемое форматирование поедет.

Может кому надо тоже, эта супер пупер утилита на все времена UnixWay ультраортодоксальна и не умеет сама обновлять время, а тупо её выводит, поэтому

  • watch -tcn 60 clockrip -c green Будет вызывать скрипт и обновлять время раз в минуту
  • watch -tcn 1 clockrip -s -c green Будет вызывать скрипт и обновлять время раз в секунду
  • watch -tcn 1 clockrip -s -fw 😊 Будет вызывать скрипт и обновлять время раз в секунду

Негодники

Вишенка на торте, в этом описании текста больше чем кода в утилите

LINUX-ORG-RU
()

Мистика в браузере и таинтвенный 0.0.0.63

 , , , ,

Сижу в позе ждуна (руки на пузе), ничего не трогаю.
Cмотрю в ютубе про теорию групп в Firefox ESR 115 на Debian 12 Phenom II X6 x86_64 LITTLE_ENDIAN CHAR_BIT == 8

Внезапно, на вкладке где идёт видос происходит переход на 0.0.0.63 и страница отображает

Время ожидания соединения истекло

Время ожидания ответа от сервера 0.0.0.63 истекло.

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

Что это? Чво, меня опять похакали чтоль? Куда звонить и от кого принимать приветы?

UDP: Обходилок нету, просто браузер, просто работает. Из расширений лишь адблок.

LINUX-ORG-RU
()

Кодирование и декодирование base64 на Си

 , , , ,

Опять наговнокодил крч, кодирование/декодирование + возможность использования своего алфавита.

API

int base64_register(unsigned char * alphabet, unsigned char endcode ,struct base64 * base);

int base64_decode(unsigned char * src, size_t src_size,
                  unsigned char * dst, size_t dst_size, size_t * result_size,struct base64 * vatiant);

int base64_encode(unsigned char * src, size_t src_size,
                  unsigned char * dst, size_t dst_size, size_t * result_size,struct base64 * vatiant);

Пример


#include <stdio.h>
#include <string.h>
#include "base64.h"
int main(int argc, char **argv)
{
    /* prepare input */
    unsigned char inp[] = "Hello World!";
    size_t        inp_size = strlen(inp);
    /* prepare ouput */
    size_t        out_size = inp_size * 1.5; // or ((inp_size / 3) * 4) + 4
    unsigned char out[out_size];
    /* prepare variable to save data len (can ignore it and set NULL) */
    size_t        written = 0;
    /* set data, if last parametr is NULL used RFC4648 base64 alphabet */
    int status = base64_encode(inp,inp_size,out,out_size,&written,NULL);
    if(status != BASE64_SUCCESS)
    {
        fprintf(stderr,"Error: code = %c\n",status);
        return status;
    }
    /*out_size > written size, in this case need set '\0' */
    out[written] = '\0';
    printf("data = %s  size = %d\n",out, written);
    return 0;
}

Негодники

Ковыряясь в коде @mittorn понял что я со своей Lua совсем забыл как на Сишечке что-то делать. Реально тупо всё забыл. В качестве тренировки решил хотя бы переписать вот это с Lua на C. И блин у меня на тупо переписывание лоб в лоб ушло несколько дней. И то, я не уверен, всё ли у меня правильно. Вот так вот, касаемо основных инструментов нужна периодическая практика, иначе вжух и зобыл. Эх, ладна, пойду гематогенку съем.

Вдруг кому надо (перед использованием перекреститься, мало ли что!)
Если что сегодня пятница, так что, чур я в домике 🏠

Перемещено leave из talks

LINUX-ORG-RU
()

github затирает статистику о посещениях с linux.org.ru?

 , , , ,

Неделю назад заходит в Insights->Traffic репозитория, там была статистика Referring sites был яндекс, гугл и linux.org.ru, причём с ЛОР было максимальное количество входов порядка 10+ против 7 гугла и 3 яндекса. Не знаю зачем сегодня снова туда залез, смотрю, а информации о ЛОРе нету, лишь счётчик гугла стал 9 и яндекса 4, плюс с ютуба 1 появился, и яндекс второй

Это они жопшники пытающиеся сделать вид что LOR не существует или у них в случайном порядке, но не более четырёх мест отображается? Хотя нет, вроде отсортировано по количеству и там на самом верху должен быть ЛОР, и он там и был раньше.

Если кто не понял, я про это

Там внизу LOR был на самом верху. А потом фигак и исчез.
Просто обратил внимание.

LINUX-ORG-RU
()

Только что меня выкинуло из логина

 

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

Держу в курсе :D

LINUX-ORG-RU
()

Как удобнее держать код в нескольких репах?

 

Ну, во первых держать всё надо у себя это первое, но на всякий ещё хостить, в идеале на нескольких точках ибо, ибо.

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

[remote "all"]
    url = git@gitflic.ru:blogdron/someproject.git
    url = git@github.com:blogdron/someproject.git

сделать

git push -u all master

И всё, теперь каждый git push будет отправлять изменения в два (и более) репозитория. Но, ради эксперимента я взял и удалил первый репозиторий на стороне хостинга, имитируя например его недоступность, вношу изменения и делаю git push

dron@gnu:~/Рабочий-стол/lalala$ git push
fatal: Не удалось прочитать из внешнего репозитория.

Удостоверьтесь, что у вас есть необходимые права доступа
и репозиторий существует.

Ни туда, ни сюда. :( И теперь надо специально отправлять в рабочую репу и/или изменять конфигурацию. Херня какая-то. Как можно игнорировать недоступность репы?

Ещё думалось, зеркалить. Ну, одни дают это делать, другие не дают, херня костыльная короче. Но у всех есть токен API через который можно делать изменения с репозиториями и как вариант написать скрипт, который будет раз в N времени по желанию левой пятки синхронизировать локальные репозитории/включая их создание если их на той стороне нет, с удалёнными отправляя в них изменения. Так каталоги проектов будут чистые и без всякого мусора от разных репозиториев хранения кода, за исключением одного типа основного.

А вы как делаете? Если делаете вообще. У меня сильной надобности нет, скорее спортивный интерес.

LINUX-ORG-RU
()

А мне нравится (безрамочный стиль кнопок в профиле)

 , ,

У этих кнопочек нет рамочек, а кажется были

Вот тут есть рамочки у кнопок

Бросилось в глаза может меня глючит и так и было.
Даже F12 не нажимал увидеть разницу. Как по мне норм и без рамочек :D . Но вдруг это поломка

dron@gnu:~$ firefox-esr --version
Mozilla Firefox 115.13.0esr
dron@gnu:~$ 
LINUX-ORG-RU
()

«Скучно», дайте баг или запилить куда-то фичу

 , , , ,

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

  • Киньте ссылку на проект tar.gz/гит/фигит или типа того.
  • Что не так или что надо
  • Как сейчас и как должно быть

Всё, больше меня ничего не интересует. C и/или Lua
Может утилита какая падает на C, или очередная шизанутая игра на Lua не запускается на новой версии Love2D. Понятия не имею что можно предложить :)

LINUX-ORG-RU
()

mktemp в свежем chroot

 , debootstick, , mktemp,

#Разворачиваем значит чрут
$sudo debootstrap --variant=minbase  bullseye  ./bullseye
#Входим в него
$sudo chroot ./bullseye
#Выполняем 
mktemp 
mktemp: failed to create file via template '/tmp/user/0/tmp.XXXXXXXXXX': No such file or directory

В свежем chroot пустой /tmp хорошо, логически понимаю что в нём нет каталога user/0/.

Вопрос, ранее я с этим не сталкивался, так всегда было или mktemp всегда ожидал каталог user/0/ в /tmp?

И второй вопрос, кто, когда и как инициализирует эти каталоги автоматом?

Я делаю чрут для потыкать что-то и удалить, пользователи кроме рута мне там не нужны чаще всего.

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

Ладно я понял что сначала он каталог не может найти, я его создал, работа продолжилась, но вот потом опять ошибка

sudo debootstick --config-root-password-none bullseye img.img
I: detected target system: amd64 PC
I: using default disk layout: /usr/share/debootstick/disk-layouts/target/pc/disk-layout
I: draft image - partitioning and formatting... done
I: draft image - copying filesystem tree... done
I: draft image - generating fstab... done
I: draft image - updating package manager database... done
I: draft image - installing packages: linux-image-amd64 lvm2 gdisk dosfstools kmod udev grub-pc shim-signed initramfs-tools grub-efi-amd64-signed fdisk init...
I: draft image - setting up bootloader... done
I: draft image - kernel bootargs: quiet rootdelay=3
I: draft image - performing sanity checks... done
I: draft image - generating /etc/hosts (it was empty or missing)... done
I: draft image - adding missing locale definition... done
I: final image - partitioning and formatting... done
I: final image - copying content from draft image... done
I: final image - generating fstab... done
mktemp: failed to create file via template '/tmp/user/0/tmp.XXXXXXXXXX': No such file or directory
tac: failed to create temporary file in '/tmp/user/0': No such file or directory
tmp/chrooted-customization-final.sh: 297: cannot create : Directory nonexistent

E: an error occured.
E: did you try 'debootstick --help-os-support'?
I: restoring a clean state... done

Каталог есть и в чруте и у меня в системе, но он там ещё чрутается. Я пока запутался. И не пойму с debootstick пробелемы или проблемы в mktemp который не может работать просто с каталогом /tmp просто с пустым.

Буду попозже разбираться, но пока может сработает помощь зала. Но уже есть желание не разбираться, а самому сесть писать генерилку загрузочных образов из чрутов, но всё же может эту утилиту можно заставить работать. Опять же суть в том что я допетрить хочу кто виноват, ранее дебутстик же у людей работал? Раньше же в свежем чруте tmp тоже был пуст, значит раньше у mktemp было иное поведение? Вроде логично, вот я и грешу на mktemp. Нипатятна :(

LINUX-ORG-RU
()

Вся жизнь наоборот!

 , , , ,

Больше года назад сломался звук на ПеКа я его и так и эдак, но всё тщетно, суть оказалась в железе. Недолго горевал благо на руках был дохлый и убитый в хлам ноут и билайн смарт 6 обмылок, тоже убитый в доску, найдя способ через пульсу пускать системный звук по сети перепробовал всякие клиенты из фдроида для приёма PCM звука по TCP, всё оказалось так себе и сел я значит писать на love2d программку.

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

Ну и всё, всё хорошо, полудохлый телефон который даже звонит с проблемами обрёл вторую жизнь как звуковая карта, лежит себе 24/7 и принимает звук, причём удобно то что принимает звук сразу и с ноута и с ПеКа. Я молодец все дела. Прошло уже больше года, я играл в игры (иногда), смотрел фильмы, слушал музыку, слушал лекции, доклады и прочее.

И вот сегодня залипая в ютубы/рутубы просто так открыл видео про стеееееррееевоооо и у меня переклинило, звук наоборот… Лево и право перепутаны. Думаю, блин может в приложении что? Я в него уже давно не залезал, подключился к ноуту на прямую… Перепутан звук. Думаю может видео просто кривое и автор мудак, перепроверил, нет и другие стерео-проверки такие же, мудак это я. И вот я понял что больше года назад в тот момент когда я чинил наушники я проверял их через своё приложение в котором эффектом были перекинуты каналы наоборот и я проводки в итоге спаял наоборот.

И только спустя год я это заметил. ЛОООООООООООООООООООООООООООЛ. Вот такие дела :) А я думал я внимательный, хехе. Перепаял, теперь как белый человек у меня слева лево, а справа право!

А линукс тут при том что так или иначе все устройства работали на нём и разрабатывалось всё под него.

LINUX-ORG-RU
()

Каст не всегда работает

 ,

LINUX-ORG-RU
()

Ютуб у меня перестал лагать :)

 , видосики, ,

Обновление:

-Способ более не работает или будет работать не у всех.

Короче в firefox 115 ESR килобиты и вечная подгрузка раз в секунду (ну не всегда, но один фиг периодические ожидания), в firefox 127 такая же херня.

  • about:config network.http.http3 влючен

Просто ради эксперимента открыл chromium

  • Version 126.0.6478.126 (Official Build) built on Debian trixie/sid, running on Debian trixie/sid (64-bit)

Принудительно включил этот tcp over udp

И стало как раньше, скачки 20+ мегабит подгрузки на несколько секунд и мои 1080p видосики не лагают больше.

Оно походу идёт в обход кеширующих серверов ибо у http3 с этим мягко говоря проблемы. Но я даже смотреть не буду откуда именно сейчас трафик мне по нормальному летит. А то накаркаю ещё и каркуши его сломають. Кому интересно сами ковыряйтесь :)

А сначала я хотел CDNы у себя заблокировать дабы оно пыталось трафик откуда то ещё брать, а оно вот так расчехлилось.

LINUX-ORG-RU
()

Сборка модуля ядра

 , , symvers, , сборка модуля

Решил тут на досуге opemu поковырять маленько.

uname -a
Linux gnu 6.8.9-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.8.9-1 (2024-05-15) x86_64 GNU/Linux
lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux trixie/sid
Release:	n/a
Codename:	trixie
dron@gnu:~/Рабочий-стол/sonc$

Сейчас у меня загружено ядро 6.8.9, в Debian для него нет linux-headers в репе. Поэтому скачал

Распаковал, далее (всё успешно)

cp /boot/config-6.8.9-amd64 ./.config
make oldconfig && make prepare

Далее в Makefile модуля подменил путь

Сам Makefile для наглядности

# --force-vermagic
###################################################
MODULE_NAME := op_emu
###################################################
$(MODULE_NAME)-objs := opemu/sse3.o           \
                       opemu/ssse3.o          \
                       opemu/sse41.o          \
                       opemu/sse42.o          \
                       opemu/opemu.o          \
                       opemu/fpins.o          \
                       opemu/trap_hook.o      \
                       opemu/opemu_math.o     \
                       libudis86/syn.o        \
                       libudis86/itab.o       \
                       libudis86/decode.o     \
                       libudis86/udis86.o     \
                       libudis86/syn-att.o    \
                       libudis86/syn-intel.o  \
###################################################
obj-m += $(MODULE_NAME).o
###################################################
KBUILD_CFLAGS += -DDEBUG -g -O2 -march=native \
                                -mtune=native \
                                -mmmx         \
                                -msse         \
                                -msse2        \
###################################################
#KERNEL_PATH ?= /lib/modules/$(shell uname -r)/build
KERNEL_PATH = /home/dron/Рабочий-стол/linux-6.8.9
###################################################
export KBUILD_CFLAGS
###################################################
all:
	make -C $(KERNEL_PATH) M=$(PWD)  modules
#	-rm ./*.order
#	-rm ./*.symvers
#	-rm ./*.mod
#	-rm ./*.o
#	-rm ./*.c
###################################################
clean:
	make -C $(KERNEL_PATH) M=$(PWD) clean
###################################################

Всё ломается на этапе

  CC [M]  /mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/libudis86/udis86.o
  CC [M]  /mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/libudis86/syn-att.o
  CC [M]  /mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/libudis86/syn-intel.o
  LD [M]  /mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.o
  MODPOST /mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/Module.symvers
WARNING: Module.symvers is missing.
         Modules may not have dependencies or modversions.
         You may get many unresolved symbol errors.
         You can set KBUILD_MODPOST_WARN=1 to turn errors into warning
         if you want to proceed at your own risk.
WARNING: modpost: "memcpy" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: "vsnprintf" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: "__fentry__" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: "__x86_indirect_thunk_rax" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: "_printk" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: "__stack_chk_fail" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: "kernel_fpu_begin_mask" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: "kernel_fpu_end" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: "__x86_indirect_thunk_rdx" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: "ftrace_set_filter_ip" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: suppressed 11 unresolved symbol warnings because there were too many)
make[3]: *** Нет правила для сборки цели «/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko», требуемой для «__modfinal».  Останов.
make[2]: *** [/home/dron/Рабочий-стол/linux-6.8.9/Makefile:1854: modules] Ошибка 2
make[1]: *** [Makefile:240: __sub-make] Ошибка 2
make[1]: выход из каталога «/home/dron/Рабочий-стол/linux-6.8.9»
make: *** [Makefile:34: all] Ошибка 2

Как сгенерировать Module.symvers от текущего ядра?

Заранее, тут нету, в смысле нет каталога build что симлинк на /usr/src/linux-headers-6.8.9 котрого тоже нету ибо нет пакета. И где Module.symvers текущего загруженного ядра тогда брать? Типа собирать из исходников со своим конфигом и от туда? А без этого как? Например я хочу собрать модуль для 10ти ядер, которых даже в дистрибутиве нет, что мне каждое собирать? Пока не нагуглил, вот спрашиваю

/lib/modules/6.8.9-amd64$ ls
kernel             modules.builtin.alias.bin  modules.dep.bin  modules.symbols
modules.alias      modules.builtin.bin        modules.devname  modules.symbols.bin
modules.alias.bin  modules.builtin.modinfo    modules.order
modules.builtin    modules.dep                modules.softdep

Давно в таком виде всё это не тыкал, что я упускаю, где что недопонимаю? Сонный уже, колпачок не варит. Вот блин приключения на ровном месте, хехе.

P.S. Чисто для проверки сборки подсунул Module.symvers из /lib/modules/6.9.7-amd64/build, всё успешно собралось, но модуль такой загрузить нельзя понятное дело. Это так, для справки

Косвенно решено:

LINUX-ORG-RU
()

До завтра

 , , ,

У вас осталось меньше 15ти минут. Я бы таймер повесил на главной. Прикольно бы было.

LINUX-ORG-RU
()

M3U плейлисты на вашем ПеКа

 , ,

Сидел свою коллекцию ссылок разбирал, в том числе на видео по разной тематике, оно разбросано по разным плейлистам и хуже того по разным площадкам, вопщем проще было тематические плейлисты из разных мест объединить в один M3U файлик, выкинуть ненужное и смотреть уже на локальном плеере, а не прыгать в браузере туда сюда. Для этой специфической хотелки вот утилитка, может кому надо , это просто обёртка над yt-dlp.

Пример

m3u-tube 'https://youtube.com/playlist?list=PL4FxkpKzI-TpB2seZeP4IZ8_NSad7G9hm&feature=shared' 

Вывод

#EXTM3U
#EXTINF:-1,'Bill Gates - Deposition Part 4 of 12:'
https://www.youtube.com/watch?v=HhdDZk45HDI
#EXTINF:-1,'Bill Gates - Deposition Part 5 of 12:'
https://www.youtube.com/watch?v=n_yI27mVHc4
#EXTINF:-1,'Bill Gates - Deposition Part 6 of 12:'
https://www.youtube.com/watch?v=GDjAYvnKL8c
#EXTINF:-1,'Bill Gates - Deposition Part 7 of 12:'
https://www.youtube.com/watch?v=aqNE7qGHiLQ
#EXTINF:-1,'Bill Gates - Deposition Part 8 of 12:'
https://www.youtube.com/watch?v=v8QbaOvFHyk
#EXTINF:-1,'Bill Gates   Deposition Part 9 of 12:'
https://www.youtube.com/watch?v=odJNphz9GPg
#EXTINF:-1,'Bill Gates   Deposition Part 11 of 12:'
https://www.youtube.com/watch?v=YBPITEcCYb0
#EXTINF:-1,'Bill Gates   Deposition Part 12 of 12:'
https://www.youtube.com/watch?v=is0LVBlYPsM

Справка

[Usage: m3u-tube -u [URL] -o [FILENAME]

This simple util generate M3U playlist from
youtube, rutube playlists or maybe other web sites.
Multiple playlists can be combined into one M3U playlist.
yt-dlp does all the work, m3u-tube just generates the output.

Argsuments:

    -                       Read one or more URL from pipe
    -h --help               This help message
    -u --url     [URL]      One or more playlist URL links
    -i --input   [FILENAME] Filename for read URL links
    -o --output  [FILENAME] Falename for save M3U playlist
    -v --verbose            Show processing log, and enable yt-dlp warnings
    [URL]                   One or more playlist URL links, divide space

    If use multiple URL links, they combine in single M3U playlist.
    Multiple links are separated by a space or new line. Bad links or
    links without playlists ignored with information message.

Examples:

    m3u-tube -i urls.txt -o play.m3u    # create M3U from file with URL links
    m3u-tube 'url' -v > out.m3u         # create M3U from link, show processing
    m3u-tube 'url1' 'url2' 'url3'       # concat three playlists to one M3U
    cat urls.txt | m3u-tube -           # create M3U from pipe data
    cat urls.txt | m3u-tube url1 - url2 # combine pipe and argumens

Notice:

    If playlists not collected... Well, sometimes websites broken,
    You need update yt-dlp to latest or add changes in yt-dlp for support.
    For check what is broken try run it:

    yt-dlp --flat-playlist --print url 'your_url_playlist'

See also:

    yt-dlp(1)


Исходники

git clone https://gitflic.ru/project/blogdron/m3u-tube.git

Всё я спать. В 5 утра огород копать :(
Досвиданья

LINUX-ORG-RU
()

Ежегодная конференция «Свободное программное обеспечение в высшей школе»

 , ,

Только заметил, прямая трансляция.
Может кому интересно. Сейчас что-то про науку

LINUX-ORG-RU
()

Lua Base64

 ,

Наговнокодил вот, может кому пригодится, работает под

  • LuaJit
  • Lua5.1 с дополнительным внешним модулем bit32
  • Lua5.2
  • Lua5.3
  • Lua5.4

Пример:

local base64 = require("base64")
local base = base64.encode("Hello World!")
local text = base64.decode("SGVsbG8gV29ybGQh")
print(base,text)

Свой алфавит кодирования

local base64 = require("base64")

local basename = 'mybase64'
local alphabet = 'ABCDEFGcdefghijHIJKLMN0123456789*?abkOPQRSTUVWXYZlmnopqrstuvwxyz'
local endcode  = '@'

assert(base64.register(basename,alphabet,endcode))
local base = base64.encode("Hello World!","mybase64")
local text = base64.decode("KGNV5Gw*Nqxm5GI?","mybase64")
print(base,text)

Днищекод:

Вроде правильно работает.
Всякую фигню принимал в base64 из сети, вроде норм.
Досвиданья

Перемещено leave из talks

LINUX-ORG-RU
()

Свистопердулька для вашего ПеКа

 , , wallwa, , живые обои

Ой всё! Устал, надоело пока, ничего не работает! Наверное заброшу но буду пытаться!, поэтому вываливаю как есть.
Работает кое-как только под Cinnamon и конечно X11

Валва она же Wallwa это дура на Lua которая позволяет запускать окошечки в режиме «обоев», это скрипт использующий другие программы для свое работы, может жрать ссылки, видеофайлы, картинки и прочее что умеет жрать mpv и показывать как живые обои, запускать просто программы и программы в прозрачном терминале. После запуска приложения хранит их состояния, можно поставить всё на паузу, закрыть и открыть разом, вернуть в обычный режим для позиционирования, позиционировать выжделением мышкой, прозрачность там, центрирование и прочее. Каждой программе даётся имя начинающиеся с @ а далее либо имя программы, либо ссылка или файл. Для запуска программы в прозрачном терминале нужно написать + передименем программы.

Видео презентация на память

Негодники (+пердолинг со сборкой вспомогательных утилит там ещё)

Расписывать и описывать что да как лень, один фиг это не до конца готовое, поэтому просто скопирую сюда выхлоп --help.

Usage: wallwa [URL|FILE|APPLICATION|+APPLICATION]

 This utilite execute GUI application or open mediafile
 or execute CLI application in transparent terminal and
 move any this variants to desktop background like wallpaper.
 Working only under X11 Xorg.

 Wallwa command line options give maximum 2 arguments
 first afrument is string ID started at '@' symbol it
 wallwa item name, after item can be URL,FILE or executable app
 wallwa use mpv for play mediacontent every time in fullscreen mode
 as wallpaper, wallwa use urxvt terminal in transparent mode for CLI.

 If first argument not set, automanicly set and use @default item

Arguments:

    -h  --help         Show this help message
    -i  --info         Show items list
    -l  --load         Load selected item
    -la --load-all     Load all items
    -m  --mouse        Select item position and size uses mouse
    -g  --get          Get selected item as normal window
    -ga --get-all      Get all active items as normal window
    -s  --set          Set selected item to background
    -s  --set-all      Set all active items to background
    -t  --top          In background mode move selected item to up
    -t  --top-all      In background mode restack all items in forward range
    -b  --back         In background mode move selected item to down
    -b  --back-all     In background mode restack all items in backward range
    -k  --kill         Kill selected item
    -ka --kill-all     Kill all active items
    -d  --del          Delete selected item and kill
    -da --del-all      Delete all items and kill
    -p  --pause        Pause selected item
    -pa --pause-all    Pause all active items
    -r  --resume       Resume selected item
    -ra --resume-all   Resume all items from "pause"
    -c  --center       Reposition selected item in screen center
    -ca --center-all   Rereposition all items in screen center
    -f  --full         Resize selected item to fullscreen
    -fa --full-all     Resize all items in fullscreen

    [FILE]             Open mediafile in mpv
    [URL]              Open mediastream in mpv
    application        Execute any* GUI applications in background mode
    +application       Execute any  CLI applications in transparent terminal

    [NUMBER]%                Set opacity for selected item
    [NUMBER]%%               Set opacity for all items
    [NUMBER]x[NUMBER]        Set size for selected item
    [NUMBER]:[NUMBER]        Set pose for selected item
    [NUMBER]x[NUMBER]-center Set item size for selected item
                             and centred item in screen
    *[NUMBER]x[NUMBER]       Relative change size for selected item
    *[NUMBER]:[NUMBER]       Relative change pose for selected item

In relative mode +[NUMBER] add value, -[NUMBER] sub value, [0] no change
For example:
     @itemname *+50:0   #move window to left on 50px
     @itemname *-10x+20 #sub in window width size 10px and add 20px height

More examples:
     This example show case when you have live video wallpaper and htop in
     background mode, you have 2 items @default and @wallpaper and manipulate
     this items resize, move, restack, pause, resume, close and open again, you
     can make many @items and manipulate each individually or all of them at once

     wallwa +htop             #execute htop in transparent terminal as @default item
     wallwa -m                #resize and repose htop window
     wallwa -k                #kill @default item
     wallwa -l                #load again @default item
     wallwa @wallpaper w.mp4  #play video wallpaper in fullscreen mode
     wallwa @default -t       #raise htop above the wallpaper
     wallwa @wallpaper 50%    #set transparent value for wallpaper
     wallwa -pa               #pause @default and @wallpaper
     wallwa -ra               #resume @default and @wallpaper
     wallwa -ka               #close
     wallwa -la               #run again
     wallwa -da               #delete all items and start playing again :D

     If you command for wallwa have multiple words use quotes
     For example you can run another (not urxvt) terminal

     wallwa @myhtop "xterm -fg white -bg black -e htop"

     Wallwa save size and cood position for item you can
     execute another application in current pose and size item

     ./wallwa @myhtop "xterm -fg white -bg black -e htop"
     ./wallwa @myhtop "xterm -fg red -bg blue -e htop"
     ./wallwa @myhtop +htop
     ./wallwa @myhtop +btop
     ./wallwa @myhtop "xterm -e top"

     Current wallwa implemented as Lua script and uses
     other awesome applications for its work such as

     * mpv      for playing any media content
     * urxvt    for transparent terminal for CLI applications
     * ps       for get PIDs
     * slop     for use mouse for repose and resize item window
     * xprop    for set and get window parameters
     * wmctrl   for get WID from PID (no used now)
     * xwidpid  for get WID from PID (used now)
     * xlower   for move window to low stack
     * xdotool  for relative change size and pose
     * xwininfo for information about window visible
     * realpath for give absolute path for files and applications

Notice:

     WALLWA EXECUTE PROGRAMS FROM COMMAND LINE, NO RUN DANGER
     COMMANDS, YOU SELF CHECK VALID URL, PLEASE BE CAREFUL WHAT
     COMMANDS YOU PASS TO RUN. This doesn't just apply to any terminal input.

     wallwa can make "Bad Window" erros, becouse Xorg async.
     If you see "Bad Window" error try

        #reload all items
        wallwa -ka ; #kill all
        wallwa -la ; #load all

        #or delete all items
        wallwa -da

    *Some GUI applications work uncorrect in background mode, for example
     chromium,firefox,tilix,gnome-terminal and maybe other applications
     not work correctly in background mode or no change state to background
     This windows have multiple WID`s and now correctly spawn in background
     but uncorrect behavior with options -g, -s, -b, -t manipulations.
     If window have single WID all works fine

     wallwa is prototype util, maybe reimplemented in future.

Под Cinnamon тоже есть косяки, иногда окно продолжает держать фокус
и нужно кликнуть по рабочему столу куда-то. С другими WM/DE бедные беды
на большиснтве идёт перекрытие рабочего стола, в xfce4 всё проваливается под него.
Там делает кто как у некоторых рабочие столы без _NET_WM_WINDOW_TYPE_DESKTOP пашут.
Не всё так красиво под иксами тоже. Пока думаю, может чего и придумаю. Идеи есть, но…

А иногда всё нормально, может генерировать Bad Window
Может быть кому-то пригодится
Досвиданья :(

LINUX-ORG-RU
()

RSS подписка на новые темы