LINUX.ORG.RU

Избранные сообщения LINUX-ORG-RU

Happy Programming. Eposode 0x01 - нарисуй слоника ::)

Форум — Talks

Давай повеселимся, реализуй и выложи код который будет рисовать слоника по приложенным данным на своём любимом языке программирования ::) Можно выбрать и не слоника, а другое.

Данные по которым нужно рисовать >>> ★ слоник ★★ бабочка ★★★ крабик ★★★★ лошадка ★★★★★ робот

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

UPDATE: Готовые реализации

>>> Language C => Dron★★★★
>>> Language Ruby => theNamelessOne ★★★★★
>>> Language Bash => ArcFi ★
>>> Language Python3 => unikoid ★★★
>>> Language Python + matplotlib => i-rinat ★★★★★
>>> Language javascript => arax ★
>>> Language javascript v2 => arax ★
elefan.c #моя стартовая инопланетнокривая версия

#include <stdio.h>

enum 
{
    UP,
    DOWN,
    LEFT,
    RIGHT
};

static int elefan[28][2] = {
 
     {RIGHT,2},{DOWN,6},{RIGHT,2},{UP,1},{RIGHT,1},{UP,1},
     {RIGHT,1},{UP,1},{RIGHT,4},{DOWN,1},{RIGHT,1},{DOWN,3},
     {RIGHT,7},{DOWN,1},{RIGHT,3},{DOWN,7},{LEFT,1},{DOWN,6},
     {LEFT,3},{UP,1},{LEFT,2},{UP,1},{LEFT,1},{UP,2},{LEFT,2},
     {UP,1},{LEFT,2},{UP,9}
 };

  static char surface [22][22]; 
  char dot = '@';
  char fon = '.';
  int pose_x =0;
  int pose_y =0;

int main(int argc, char *argv[])
{

/*create surface*/
for (int i = 0; i < 22; ++i) 
{
    for (int y = 0; y < 22; ++y) 
    {
        surface[i][y]=fon;
    };  
};
/*paint elefan*/
for (int i = 0; i < 28; i++)
{
    switch (elefan[i][0])
    {
        case UP:    pose_x-=elefan[i][1];
                    surface[pose_x][pose_y]=dot;
                    break;
        case DOWN:  pose_x+=elefan[i][1];
                    surface[pose_x][pose_y]=dot;
                    break;
        case LEFT:  pose_y-=elefan[i][1];
                    surface[pose_x][pose_y]=dot;
                    break;
        case RIGHT: pose_y+=elefan[i][1];
                    surface[pose_x][pose_y]=dot;
                    break;
        default:    break;
    };
}
/*print elefan*/
for (int i = 0; i < 22  ; i++)
{
       for(int y=0; y < 22; y++)
       {
            putchar(surface[i][y]);
            putchar(fon);//correct surface cube
            
       };
       putchar('\n');
}

    return 0;
}

result

dron@gnu:~$ gcc elefan.c -o elefan ; ./elefan
....@.......................................
............................................
............................................
............@.......@.......................
..........@.@.......@.@.....................
........@.@.................................
....@...@...................................
....................@.@.............@.......
....................................@.....@.
............................................
............................................
............................................
............................................
............................................
............................................
........................................@.@.
....................@...@...................
........................@...@...............
............................................
............................@.@.............
..............................@...@.........
..................................@.....@...
dron@gnu:~$ 

 , , , ,

Dron
()

Нет предела маразму. Обязательная идентификация всех игроков компьютерных игр

Форум — Talks

https://www.kommersant.ru/doc/7364913

https://habr.com/ru/news/865890/

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

Как выяснил “Ъ”, группа сенаторов и депутатов подготовила к внесению в Госдуму законопроект, который обяжет цифровые площадки информировать пользователей о содержании видеоигр, а издателей — идентифицировать игроков с помощью мобильного номера или через портал «Госуслуги».

Линукс тут при том, что линуксоиды и в игры тоже играют. И не так уж мало. В том числе есть OpenSource игры

P.S. Текст законопроекта https://sozd.duma.gov.ru/bill/795581-8

 , ,

praseodim
()

SONC - Клиент для приёма звука по сети

Форум — Talks
- APK сборки НЕ рабочие оказались :( Andoid сборки удалю.
- Для запуска sonc.love можно использовать ПО из дистрибутива или Love2D для Android. 

Пятница развратница! Но это у нормальных людей, так что…
Скромное, нубское приложение на Love2D, застряло не этапе прототипа более года назад, но я пользуюсь им постоянно. Может кому пригодится.

Просто принимает 16bit LE PCM звук отправленный по сети через PulseAudo - module-simple-protocol-tcp

Исходнки

Как выглядит, там на картинке есть, я прям с LOR галереи стащил :D


Есть сборки для Android

Которые даже не проверялись на работоспособность. Нет аппарата, окончательно подох.
Но там ещё lovefile есть который можно запустить как на ПК, так и на Android через Love2d с плеймаркета .


Универсальный lovefile

  • sonc.love

Который можно запустить где угодно где есть Love2D 11+, сам я его и использую.
love файл это zip архив с программой, который может быть запущен программой love (для тех кто не знает)


Ну, в целом всё, баги есть чинить буду по мере возможностей. Процессор долбит прилично, звук заикается из за прохода GC в Lua и потом отстаёт всё сильнее и сильнее, всё как полагается. Это можно исправить, видно будет, как ни будь потихонечку.

И да, гитфлик на даёт качать тем кто не зареган, очень странно…

Так что вот ещё, временно сборки тут


На самом деле я просто хочу узнать оно вообще на android запускается или нет, и apk рабочие или нет, а то я тут насобирал да и вообще многие вещи делаю просто в слепую. Типа как бы оно должно работать, но типа как бы и не совсем обязано :D Эх…

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

Для тех кто не в курсе что такое Love2D

Вот как-то так вот.
Всем бобра. Досвиданья.

 , , , ,

LINUX-ORG-RU
()

Прошивка телефона

Форум — Mobile

Суть собственно в том что для задумки некого проекта мне нужна камера, камера есть на полуживом Beeline Smart 6 для него же будет писаться приложение, но он сейчас лишь включается показывает попытку зарядки (батарейки нет) и выключается, ранее телефон работал как звуковая карта (всё так же без батарейки, внутри проброшены проводки). По идее можно попробовать прошить на заводскую прошивку, у меня конечно её нет, но есть на 4pda при подключении в логах dmesg появляется

[  571.295045] usb 3-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  571.295054] usb 3-4: Product: MT65xx Preloader
[  571.295060] usb 3-4: Manufacturer: MediaTek

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

Чем сейчас MediaTekи прошивают из под линукса? Может получится оживить, ну или добить окончательно.

UDP: Помянем, аппарат помер, физически.

 ,

LINUX-ORG-RU
()

Электронная очередь и трекер занятости оборудования, расписание

Форум — Development

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

Есть ли подобные онлайн трекеры-очереди? Готовые решения

Некоторые самопальщину пишут или извращаются с готовыми не подходящими инструментами

Development ибо типичная dev-ops проблемка, не верю что никто не делил осциллограф, отладочную плату, или еще что то между собой, когда само железо не позволяет разграничить доступ

 ,

I-Love-Microsoft
()

SDL3 - Камера - Заметка

Форум — Development

Короче захотел сделать фотку через SDL3 столкнулся с парой проблем.

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

  1. Появляется ошибка Parameter 'surface' is invalid если не сделать паузу после открытия камеры, решается в установлении паузы в 0,5 секунды после SDL_OpenCamera

  2. Первые кадры с камеры либо просто чёрные, либо очень тёмные. Решается пропуском (в моём случае 7) нескольких первых кадров.

Я забросил в SDL3 уведомительное issue, чтобы было

Продублирую тут тестовый пример и результаты

Информация о системе

Web-camera встроена в ноут, понятия не имею что за камера
description: Notebook
    product: K53U
    vendor: ASUSTeK Computer Inc.
    version: 1.0
Distributor ID:	Debian
Description:	Debian GNU/Linux 12 (bookworm)
Release:	12
Codename:	bookworm
fedor@nixfed:~/drawshoot$ cat SDL3/VERSION.txt 
3.1.3
fedor@nixfed:~/drawshoot$

Тестовый код

Makefile

SDL_DIR=SDL3
SDL_LIB_DIR=$(SDL_DIR)/build
SDL_INC_DIR=$(SDL_DIR)/include

test-1:
	$(CC) main.c -I$(SDL_INC_DIR) -L$(SDL_LIB_DIR) -lSDL3 -o app

test-2:
	$(CC) main.c -I$(SDL_INC_DIR) -L$(SDL_LIB_DIR) -lSDL3 -o app -DENABLE_DELAY

test-3:
	$(CC) main.c -I$(SDL_INC_DIR) -L$(SDL_LIB_DIR) -lSDL3 -o app -DENABLE_DELAY -DENABLE_FRAMEDROP


sdl:
	cd $(SDL_DIR) && mkdir build
	cd  $(SDL_DIR)/build && cmake ..
	cd  $(SDL_DIR)/build && $(MAKE) -j2

clean:
	-$(MAKE) -C $(SDL_DIR) clean
	-rm app

run:
	LD_LIBRARY_PATH=$(SDL_DIR)/build ./app

main.c

#include "SDL3/SDL.h"
#include "SDL3/SDL_camera.h"
#include <stdio.h>

/*just for debug*/
const char * pixel_format_name(SDL_PixelFormat format)
{
    switch(format){
    case SDL_PIXELFORMAT_UNKNOWN:    return      "UNKNOWN";
    case SDL_PIXELFORMAT_INDEX1LSB:  return      "INDEX1LSB";
    case SDL_PIXELFORMAT_INDEX1MSB:  return      "INDEX1MSB";
    case SDL_PIXELFORMAT_INDEX2LSB:  return      "INDEX2LSB";
    case SDL_PIXELFORMAT_INDEX2MSB:  return      "INDEX2MSB";
    case SDL_PIXELFORMAT_INDEX4LSB:  return      "INDEX4LSB";
    case SDL_PIXELFORMAT_INDEX4MSB:  return      "INDEX4MSB";
    case SDL_PIXELFORMAT_INDEX8:     return      "INDEX8";
    case SDL_PIXELFORMAT_RGB332:     return      "RGB332";
    case SDL_PIXELFORMAT_XRGB4444:   return      "XRGB4444";
    case SDL_PIXELFORMAT_XBGR4444:   return      "XBGR4444";
    case SDL_PIXELFORMAT_XRGB1555:   return      "XXRGB1555";
    case SDL_PIXELFORMAT_XBGR1555:   return      "XXBGR1555";
    case SDL_PIXELFORMAT_ARGB4444:   return      "XARGB4444";
    case SDL_PIXELFORMAT_RGBA4444:   return      "XRGBA4444";
    case SDL_PIXELFORMAT_ABGR4444:   return      "XABGR4444";
    case SDL_PIXELFORMAT_BGRA4444:   return      "XBGRA4444";
    case SDL_PIXELFORMAT_ARGB1555:   return      "XARGB1555";
    case SDL_PIXELFORMAT_RGBA5551:   return      "XRGBA5551";
    case SDL_PIXELFORMAT_ABGR1555:   return      "XABGR1555";
    case SDL_PIXELFORMAT_BGRA5551:   return      "XBGRA5551";
    case SDL_PIXELFORMAT_RGB565:     return      "XRGB565";
    case SDL_PIXELFORMAT_BGR565:     return      "XBGR565";
    case SDL_PIXELFORMAT_RGB24:      return      "XRGB24";
    case SDL_PIXELFORMAT_BGR24:      return      "XBGR24";
    case SDL_PIXELFORMAT_XRGB8888:   return      "XXRGB8888";
    case SDL_PIXELFORMAT_RGBX8888:   return      "XRGBX8888";
    case SDL_PIXELFORMAT_XBGR8888:   return      "XXBGR8888";
    case SDL_PIXELFORMAT_BGRX8888:   return      "XBGRX8888";
    case SDL_PIXELFORMAT_ARGB8888:   return      "XARGB8888";
    case SDL_PIXELFORMAT_RGBA8888:   return      "XRGBA8888";
    case SDL_PIXELFORMAT_ABGR8888:   return      "XABGR8888";
    case SDL_PIXELFORMAT_BGRA8888:   return      "XBGRA8888";
    case SDL_PIXELFORMAT_XRGB2101010:   return   "XXRGB2101010";
    case SDL_PIXELFORMAT_XBGR2101010:   return   "XXBGR2101010";
    case SDL_PIXELFORMAT_ARGB2101010:   return   "XARGB2101010";
    case SDL_PIXELFORMAT_ABGR2101010:   return   "XABGR2101010";
    case SDL_PIXELFORMAT_RGB48:         return   "XRGB48";
    case SDL_PIXELFORMAT_BGR48:         return   "XBGR48";
    case SDL_PIXELFORMAT_RGBA64:        return   "XRGBA64";
    case SDL_PIXELFORMAT_ARGB64:        return   "XARGB64";
    case SDL_PIXELFORMAT_BGRA64:        return   "XBGRA64";
    case SDL_PIXELFORMAT_ABGR64:        return   "XABGR64";
    case SDL_PIXELFORMAT_RGB48_FLOAT:   return   "XRGB48_FLOAT";
    case SDL_PIXELFORMAT_BGR48_FLOAT:   return   "XBGR48_FLOAT";
    case SDL_PIXELFORMAT_RGBA64_FLOAT:  return   "XRGBA64_FLOAT";
    case SDL_PIXELFORMAT_ARGB64_FLOAT:  return   "XARGB64_FLOAT";
    case SDL_PIXELFORMAT_BGRA64_FLOAT:  return   "XBGRA64_FLOAT";
    case SDL_PIXELFORMAT_ABGR64_FLOAT:  return   "XABGR64_FLOAT";
    case SDL_PIXELFORMAT_RGB96_FLOAT:   return   "XRGB96_FLOAT";
    case SDL_PIXELFORMAT_BGR96_FLOAT:   return   "XBGR96_FLOAT";
    case SDL_PIXELFORMAT_RGBA128_FLOAT: return   "XRGBA128_FLOAT";
    case SDL_PIXELFORMAT_ARGB128_FLOAT: return   "XARGB128_FLOAT";
    case SDL_PIXELFORMAT_BGRA128_FLOAT: return   "XBGRA128_FLOAT";
    case SDL_PIXELFORMAT_ABGR128_FLOAT: return   "XABGR128_FLOAT";
    case SDL_PIXELFORMAT_YV12:          return   "XYV12";
    case SDL_PIXELFORMAT_IYUV:          return   "XIYUV";
    case SDL_PIXELFORMAT_YUY2:          return   "XYUY2";
    case SDL_PIXELFORMAT_UYVY:          return   "XUYVY";
    case SDL_PIXELFORMAT_YVYU:          return   "XYVYU";
    case SDL_PIXELFORMAT_NV12:          return   "XNV12";
    case SDL_PIXELFORMAT_NV21:          return   "XNV21";
    case SDL_PIXELFORMAT_P010:          return   "XP010";
    case SDL_PIXELFORMAT_EXTERNAL_OES:  return   "XEXTERNAL_OES";
    }
    return "UNKNOWN";
}

int main(int argc, char *argv[])
{
    SDL_InitSubSystem(SDL_INIT_CAMERA);
    int camera_count = 0;
    SDL_CameraID * camera_id = SDL_GetCameras(&camera_count);
    printf("count=%d id=%u %s\n",camera_count,camera_id,SDL_GetError());
    SDL_CameraSpec ** camera_spec;
    int camera_specs = 0;
    camera_spec = SDL_GetCameraSupportedFormats(*camera_id,&camera_specs);
    /*show supported formats and resolutions*/
    for(int i=0; i != camera_specs;i++)
    {
        printf("camera=%-2i "
               "w=%-4d h=%-4d "
               "format=%-14s "
               "frame_n=%-3d "
               "frame_d=%d\n",
               i,
               camera_spec[i]->width,
               camera_spec[i]->height,
               pixel_format_name(camera_spec[i]->format),
               camera_spec[i]->framerate_numerator,
               camera_spec[i]->framerate_denominator);
    }
    /*init camera*/
    SDL_Camera * cam =  SDL_OpenCamera(*camera_id, camera_spec[0]);

    #ifdef ENABLE_DELAY
        SDL_Delay(5000);
    #endif

    printf("[1] %s\n",SDL_GetError());
    SDL_Surface * frame;
    Uint64 t=0;
    SDL_Surface * s;
    SDL_Event event;
    while ( SDL_WaitEvent(&event) >= 0 )
    {
       if(event.type == SDL_EVENT_CAMERA_DEVICE_APPROVED)
       {
            printf("DEVICE_APPROVED!\n");
            break;
       };
       if(event.type == SDL_EVENT_CAMERA_DEVICE_DENIED)
       {
            printf("DEVICE_DENIED!\n");
            return 0;
       };
    }

    #ifdef ENABLE_FRAMEDROP
    for(int i=0;i<7;i++)
    {
        frame = SDL_AcquireCameraFrame(cam, &t);
        SDL_ReleaseCameraFrame(cam, frame);
    }
    #endif

    /*take photo*/
    frame = SDL_AcquireCameraFrame(cam, &t);
    printf("[2] %lu %s\n",t,SDL_GetError());
    /*convert photo*/
    s = SDL_ConvertSurface(frame, SDL_PIXELFORMAT_RGB24);
    /*save result*/
    SDL_SaveBMP(s,"out.bmp");
    printf("[4] %lu %s\n",t,SDL_GetError());
    /*release memory*/
    SDL_ReleaseCameraFrame(cam, frame);
    printf("[4] %lu %s\n",t,SDL_GetError());
    SDL_Quit();
    return 0;
}

Результаты

  • Ошибка Invalid surface
fedor@nixfed:~/drawshoot$ make test-1 run
cc main.c -ISDL3/include -LSDL3/build -lSDL3 -o app
LD_LIBRARY_PATH=SDL3/build ./app
count=1 id=845253408 
camera=0  w=640  h=480  format=XYUY2          frame_n=30  frame_d=1
camera=1  w=640  h=480  format=XYUY2          frame_n=25  frame_d=1
camera=2  w=640  h=480  format=XYUY2          frame_n=20  frame_d=1
camera=3  w=352  h=288  format=XYUY2          frame_n=30  frame_d=1
camera=4  w=352  h=288  format=XYUY2          frame_n=25  frame_d=1
camera=5  w=352  h=288  format=XYUY2          frame_n=20  frame_d=1
camera=6  w=320  h=240  format=XYUY2          frame_n=30  frame_d=1
camera=7  w=320  h=240  format=XYUY2          frame_n=25  frame_d=1
camera=8  w=320  h=240  format=XYUY2          frame_n=20  frame_d=1
camera=9  w=176  h=144  format=XYUY2          frame_n=30  frame_d=1
camera=10 w=176  h=144  format=XYUY2          frame_n=25  frame_d=1
camera=11 w=176  h=144  format=XYUY2          frame_n=20  frame_d=1
camera=12 w=160  h=120  format=XYUY2          frame_n=30  frame_d=1
camera=13 w=160  h=120  format=XYUY2          frame_n=25  frame_d=1
camera=14 w=160  h=120  format=XYUY2          frame_n=20  frame_d=1
[1] 
DEVICE_APPROVED!
[2] 0 
[4] 0 Parameter 'surface' is invalid
[4] 0 Parameter 'surface' is invalid
fedor@nixfed:~/drawshoot$ 

  • Чёрный снимок вместо нормального
fedor@nixfed:~/drawshoot$ make test-2 run
cc main.c -ISDL3/include -LSDL3/build -lSDL3 -o app -DENABLE_DELAY
LD_LIBRARY_PATH=SDL3/build ./app
count=1 id=3957504800 
camera=0  w=640  h=480  format=XYUY2          frame_n=30  frame_d=1
camera=1  w=640  h=480  format=XYUY2          frame_n=25  frame_d=1
camera=2  w=640  h=480  format=XYUY2          frame_n=20  frame_d=1
camera=3  w=352  h=288  format=XYUY2          frame_n=30  frame_d=1
camera=4  w=352  h=288  format=XYUY2          frame_n=25  frame_d=1
camera=5  w=352  h=288  format=XYUY2          frame_n=20  frame_d=1
camera=6  w=320  h=240  format=XYUY2          frame_n=30  frame_d=1
camera=7  w=320  h=240  format=XYUY2          frame_n=25  frame_d=1
camera=8  w=320  h=240  format=XYUY2          frame_n=20  frame_d=1
camera=9  w=176  h=144  format=XYUY2          frame_n=30  frame_d=1
camera=10 w=176  h=144  format=XYUY2          frame_n=25  frame_d=1
camera=11 w=176  h=144  format=XYUY2          frame_n=20  frame_d=1
camera=12 w=160  h=120  format=XYUY2          frame_n=30  frame_d=1
camera=13 w=160  h=120  format=XYUY2          frame_n=25  frame_d=1
camera=14 w=160  h=120  format=XYUY2          frame_n=20  frame_d=1
[1] 
DEVICE_APPROVED!
[2] 706952397 
[4] 706952397 
[4] 706952397 
fedor@nixfed:~/drawshoot$ 
  • Всё хорошо, ошибок нет, фотография с камеры нормальная
fedor@nixfed:~/drawshoot$ make test-3 run
cc main.c -ISDL3/include -LSDL3/build -lSDL3 -o app -DENABLE_DELAY -DENABLE_FRAMEDROP
LD_LIBRARY_PATH=SDL3/build ./app
count=1 id=3940756256 
camera=0  w=640  h=480  format=XYUY2          frame_n=30  frame_d=1
camera=1  w=640  h=480  format=XYUY2          frame_n=25  frame_d=1
camera=2  w=640  h=480  format=XYUY2          frame_n=20  frame_d=1
camera=3  w=352  h=288  format=XYUY2          frame_n=30  frame_d=1
camera=4  w=352  h=288  format=XYUY2          frame_n=25  frame_d=1
camera=5  w=352  h=288  format=XYUY2          frame_n=20  frame_d=1
camera=6  w=320  h=240  format=XYUY2          frame_n=30  frame_d=1
camera=7  w=320  h=240  format=XYUY2          frame_n=25  frame_d=1
camera=8  w=320  h=240  format=XYUY2          frame_n=20  frame_d=1
camera=9  w=176  h=144  format=XYUY2          frame_n=30  frame_d=1
camera=10 w=176  h=144  format=XYUY2          frame_n=25  frame_d=1
camera=11 w=176  h=144  format=XYUY2          frame_n=20  frame_d=1
camera=12 w=160  h=120  format=XYUY2          frame_n=30  frame_d=1
camera=13 w=160  h=120  format=XYUY2          frame_n=25  frame_d=1
camera=14 w=160  h=120  format=XYUY2          frame_n=20  frame_d=1
[1] 
DEVICE_APPROVED!
[2] 1329622684 
[4] 1329622684 
[4] 1329622684 
fedor@nixfed:~/drawshoot$ 

Может быть кому пригодится, досвиданья ::)

 , , , , sdl3

LINUX-ORG-RU
()

Электронный LCD планшет для заметок посоветуйте

Форум — Talks

Тот который для рисования и для записей, кто использует вместо разовых зарисовок, записей и всего такого? Норм? Какие посоветуете, а какие не посоветуете? Часто от руки делаю временные записи, наброски, блок схемы алгоритма или просто записи промежуточных например вычислений, уходит много бумаги. Узнал про такую штуку которая плюс ещё пости пассивная батарейка нужна только чтобы стирать, а писать можно вроде как любым тупым предметом например головой. Моделей тьма от 250 рублей до 2500 и более. Не знаю есть ли между ними шибкая разница, насколько понял только «цветные» брать не нужно ибо там просто подложка градиентом идёт цветным.

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

Только я не понял, там можно делать записи как ручкой 1~2 миллиметра? Или только жирно рисовать? Короче если есть опыт отпишитесь, спасиба =)

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

 , , , ,

LINUX-ORG-RU
()

Теперь у меня есть флееешкааа! 32 Гигабата!

Форум — Talks

Это случилось! Теперь я не могу к месту и без говорить что у меня нет флешки! Это даже немножко грустно :( Но да ладно :)

Раньше у меня была вот такая только самодельная флешка на аж 4 килобайта, пополам с UART на ATmega8, на базе V-USB, но она давно дала дубу.

А теперь я как настоящий хипстер с 32 гигабатами

Сейчас я буду устанавливать все лиунксы


Да жж, ну и что. Во первых пятница! Во вторых Linux-install. А ещё это моя первая флешка за лет…10 наверное! Так что это то о чём нельзя молчать! Принимаю ваши поздравления. Расскажите вашу историю про вашу флешку. Наверняка вам есть что сказать!
НЕпреднамеренное нарушение русского языка вызвано особой стилистической подачей художественного текста

 , , , , эпохальное событие

LINUX-ORG-RU
()

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

Форум — Talks

Студия Колобо.. кхм. Конгломерат корпораций "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
()

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

Форум — Talks

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

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

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

 , , , ,

LINUX-ORG-RU
()

linux.org.ru

Новости — Linux.org.ru
Группа Linux.org.ru

Зарегистрирован домен linux.org.ru

maxcom
()

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

Форум — Talks

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

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

Опубликована программа XX конференции разработчиков свободных программ

Новости — Конференции и встречи
Группа Конференции и встречи

Юбилейная XX конференция разработчиков свободного программного обеспечения (OSSDEVCONF) состоится 4–6 октября в Институте программных систем РАН в Переславле-Залесском Ярославской области. На мероприятии соберутся разработчики и энтузиасты СПО.

Основные тематики представленных докладов:

  • Разработка дистрибутивов
  • Языки программирования
  • Разработка системных инструментов и библиотек
  • Мобильные технологии
  • Вопросы лицензий СПО

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

Регистрация на очное участие слушателем открыта до 2 октября включительно.

>>> Программа конференции

 , , ,

Bircoph
()

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

Форум — Development

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

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

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

Форум — Talks

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

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

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

 , , баги, ,

LINUX-ORG-RU
()

Какой протокол передачи данных самый быстрый в локальной сети?

Форум — Admin

Сильнее всего интересует на каком протоколе работает KDE Connect? При копировании файлов данная утилита он выдает ~50мб/с. Изначально я думал что она работает на ssh, но когда я поднял сервер на OpenSSH у меня вышло максимум 5мб/с… Знатоки предположили, что программа построена на SFTP, но SFPT не поддерживает буферизацию(имею ввиду, что через него нельзя открыть файл, полностью не скачав его), когда с помощью KDE Connect можно открывать файл, не скачивая его. В итоге вопрос следующий: на каком протоколе построен KDE Connect или же какой протокол использовать, чтобы получить такую же скорость передачи, имея возможность открывать файлы с сервера?

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

 , , , ,

Vishera845
()

Как работает катушка индуктивности и школьный обман

Форум — Science & Engineering

По мотивам Теория параболического зеркала для э/м излучения

Линукс тут при том, что данное изучение материала возникло из желания (и способствует в продвижении его реализации) научно посчитать антенну для модема, через который мой линукс выходит в интернет.

----

Занялся я изучением данного вопроса, и (видимо закономерно) обнаружил один жуткий обман, который сначала рассказывают в школе, а потом молчаливо одобряют наверно и в большинстве вузов в т.ч. физической направленности. И суть этого обмана отражена в традиционной форме записи уравнений Максвелла, где слева стоят роторы а справа производиные по времени и ток. Подозреваю, что это (нижеописанное) баян, но только для определённого круга лиц, а вот мне данная «картина мира» долго мешала понять как всё это работает на самом деле.

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

Так вот, это самое что ни есть враньё. Более того, тут не просто плохая интерпретация формул, а ещё и неправильные расчёты в итоге, если мы захотим хорошей точности по времени. Суть вот в чём: «породить циркуляцию/ротор» ничто просто так не может - ведь любые изменения э/м поля это его производные по времени, и именно эти производные и есть то, что мы должны считать чтоб узнать что будет потом. Причём почти везде такой подход вопросо не вызывает и принимается за очевидный, но тут почему-то всё перевернули с ног на голову. Так вот: переменное магнитное поле в сердечнике - это не причина, а следствие наведённого э.д.с. А кто же тогда это э.д.с навёл, если не магнитное поле?

А навёл его ток, полностью автономно и без участия магнетизма вообще, смортим внимательней уравнение: rot B = dE/dt + j или dE/dt = rot B - j (коэфициенты опущены для простоты), т.е. если куда-то течёт ток - то там сразу же наводится противодействующее току э.д.с. Не обязательно в катушке, можно и в обычной прямой проволоке. Почему в проволоке этот эффект намного слабее, чем в катушке? Потому что проволока одна, и наведённое поле стремится расползтись в стороны, где его ещё нет, и таким образом возле тока остаётся слабым, а вот в катушке рядом много проволок и все наводят поле концентрированно в маленьком пространстве. Чтобы увидеть механизм расползания, сделайте из двух уравнений один дифур второго порядка - там будет вторая производная по времени равна второй производной по пространству (по сути это радиоизлучение). Надо заметить - это э.д.с. наводится любым током, как переменным, так и постоянным, и сколь угодно долго по времени. Но есть ещё один фактор: то самое магнитное поле в сердечнике - оно начинает наводиться благодаря dB/dt = -rot E, растёт со временем и начинает наводить своё э.д.с, уже не мешающее току, а помогающее. Со временем это приводит сначала к занулению dE/dt, затем к смене его знака и началу уменьшения E (а магнитное поле всё ещё растёт), и скорее всего увеличению тока (т.к. уменьшается мешающее э.д.с).

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

 , , ,

firkax
()

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

Форум — Linux-hardware

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

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

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

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

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

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

 , , , ,

LINUX-ORG-RU
()

TimeShift (2007) в 2024 году

Галерея — Скриншоты

TimeShift — компьютерная игра, научно-фантастический шутер от первого лица, разработанный компанией Saber Interactive (подразделением из Санкт-Петербурга) для платформ PC, Xbox 360 и PlayStation 3.

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

На winedb у игры стоит статус Garbage. Но как оказалось, её вполне можно сделать играбельной под вайном! Для этого надо просто обновить её до версии 1.2 и поставить фикс для многоядерных процессоров. То есть по сути, проблема была не в вайне, а в самой игре, которая ломается, если в неё играть на современном процессоре.

Сразу после установки фикса у меня игра не запустилась. Не пугайтесь, если увидите то же самое. Просто перезапустите игру, и после этого все должно быть нормально. Также игра будет долго компилировать шейдеры при первом запуске, так что не удивляйтесь долгому запуску. Кроме этого возможно сильное падение производительности по сравнению с виндой — не удручайтесь, просто поставьте разрешение экрана поменьше, настройки пониже, и все будет работать.

Обращаю ваше внимание, что в стиме продается игра без патча. Таким образом, чтобы поиграть в TimeShift под линуксом необходимо поставить патч, если игра из стима, и не ставить патч, если игра из гога. После этого необходимо поставить фикс для процессоров. Этот фикс заменяет exe-файл игры.

ссылка на патч

ссылка на фикс

Тестировалось это все на вайне версии от Kron4ek:

./wine --version
wine-5.12-14075-gdf982e6865c

Скачать можно вроде здесь.

Библиотеки у меня стоят следующие:

bash-5.1$ ls
d3d10_1.dll         x3daudio1_2.dll     xactengine2_6.dll  xapofx1_1.dll
d3d10core.dll       x3daudio1_3.dll     xactengine2_7.dll  xapofx1_2.dll
d3d10.dll           x3daudio1_4.dll     xactengine2_8.dll  xapofx1_3.dll
d3d11.dll           x3daudio1_5.dll     xactengine2_9.dll  xapofx1_4.dll
d3d9.dll            x3daudio1_6.dll     xactengine3_0.dll  xapofx1_5.dll
d3dcompiler_43.dll  x3daudio1_7.dll     xactengine3_1.dll  xaudio2_0.dll
d3dcompiler_47.dll  xactengine2_0.dll   xactengine3_2.dll  xaudio2_1.dll
d3dx10_43.dll       xactengine2_10.dll  xactengine3_3.dll  xaudio2_2.dll
d3dx9_36.dll        xactengine2_1.dll   xactengine3_4.dll  xaudio2_3.dll
d3dx9_42.dll        xactengine2_2.dll   xactengine3_5.dll  xaudio2_4.dll
dxgi.dll            xactengine2_3.dll   xactengine3_6.dll  xaudio2_5.dll
x3daudio1_0.dll     xactengine2_4.dll   xactengine3_7.dll  xaudio2_6.dll
x3daudio1_1.dll     xactengine2_5.dll   xapofx1_0.dll      xaudio2_7.dll

 , , ,

vbcnthfkmnth123
()

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

Форум — Talks

Сидел свою коллекцию ссылок разбирал, в том числе на видео по разной тематике, оно разбросано по разным плейлистам и хуже того по разным площадкам, вопщем проще было тематические плейлисты из разных мест объединить в один 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
()