Szkriptek: Python, Perl, Bash, ...

PDF fájl optimalizálása [megoldva]

Sziasztok.

Nagy méretű PDF optimalizálását szeretném megvalósítani, vagyis a nem használt elemeket törölni, a szürkeárnyalatos és fekete-fehér képeket 150-300 DPI-ben maximalizálni.
Külön kérdésem az, miként lehet parancssorban megoldani azt, hogy a képek
zip, jpeg vagy jbig2, esetleg ccitt-group4 tömörítést kapjanak.

Alapötletként meghagytam a képek eredeti felbontását szerkesztéskor, hogy eps-ként történő beillesztéskor még tudjam szabadon változtatni a képméretet túlzott jelveszteség nélkül. Miután rendesen kitaláltam a körbevágásokat és a méreteket, a pdf elkészült... Szép nagy lett, alig 200 MB úgy 30 helyett.

A cél nyomdakész pdf előállítása, a képminőségek megtartásával -- lehetőleg mindet vektorosan hagyva (vagyis jpeg tömörítés hanyagolva, ha jól érzem).
(A win és mac megoldásokat hanyagolnám.)

package.json nem található a /root/ helyen

Ez alapján próbálom egy ubuntu szerverre feltenni a mediasoup szervert https://mediasoup.org/documentation/v3/mediasoup/installation/   .

Telepítés végén ezt kapom:  

make: Leaving directory '/root/node_modules/mediasoup/worker'
npm WARN saveError ENOENT: no such file or directory, open '/root/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/root/package.json'
npm WARN root No description
npm WARN root No repository field.
npm WARN root No README data
npm WARN root No license field.

Elméletileg a node.js megfelelő verziójú ( v12.22.10) .

Merre induljak el, hogy a package.json megfelelő helyre kerüljön?

Az is lehetséges, hogy ezt az npm hozza létre, folyamatosan olvasok, csak nem tudom, hogy jól értelmezem-e a dolgokat.
 

cython malloc-olt memória felszabadítása python-ból

Sziasztok!

Használnék egy python könyvtárat ami mögött cython alapú malloc alapú memóriaallokációt végző kód van:

https://gitlab.com/radish/PyV4L2Camera/-/blob/master/PyV4L2Camera/camer…

Az így lefoglalt memóriát átadja a "sima" python kódomnak:

https://gitlab.com/radish/PyV4L2Camera/-/blob/master/PyV4L2Camera/camer…

A visszaadott referenciát (fixme?) próbáltam 'del'-el felszabadítani, de ettől eltekintve elleakel a picsába a memóriát.

Telepítettem pip-el a cython-t (a legújabbat 3.0.0.a10-et) amiben _elvileg_ van mód a stdlib free wrappelésére:

https://cython.readthedocs.io/en/latest/src/tutorial/memory_allocation…

Viszont ez nem működik

ModuleNotFoundError: No module named 'cython.cimports.libc.stdlib'

elhal.

Ez vajon miért lehet?

Ez alapján létezik/het ilyen include van is benne wrapper a free-re:
https://github.com/cython/cython/blob/3.0.0a10/Cython/Includes/libc/std…

Lehet nem így kell behúzni?

Esetleg ha valaki tud más megoldást a felszabadításra az is jó lehet.
Most kb. annyi ötletem van,  mocskolok cythonban egy deallokáló rutint...

gimphez írt script írása oly módon, hogy a grafikus gimp el se induljon

Sziasztok.

Van sok-sok képem, amiken egy 8 lépcsős effektsorozatot akarok végrehajtani oly módon, hogy még a rétegeket is kezelem.
A kimenet egy gimp fájl lenne, amin manuálisan hajtanék végre egy CURVE görbemódosítást. (Ezután menteném el a végleges fájlt)

Célom az, hogy az első 8 lécsős feladat után kelljen egerészéssel és gyorsgombokkal szórakoznom.

Kérdés: hogyan írok gimp-scriptet, ami lefut parancssorban?

[megoldva] Adott terminál indítása gombkombinációval

Ubuntun kérdezem a teendőt. Normál módon Ctrl+Alt+T intítja a gnome-terminált.

Szeretnék egy olyan indítást, ami nem az alapértelmezett változtatot indítja, hanem egy (általam már korábban beállított) másikat (ami másik színű, mondjuk bordó – "prod"). Az is jó volna, ha ilyenkor egy megadott könyvtárban állna. Tehát valami olyasmire vágyom, hogy Ctrl+Alt+P ne az "alap"-ot indítsa, hanem a "prod"-ot.

comment sor figyelmen kívül hagyása

Egy fájlban ott figyel mondjuk a valami="blabla". Amíg ez van, addig jó. De ha kikommentelik: (Ez a jó szó?)  #valami="blabla" vagy # valami="blabla" akkor figyelmen kívül kéne hagyni. Eddig többek között azt próbáltam hogy grep -E '^#valami' file Ez jó akkor, ha a # jel után közvetlenül ott a szöveg. Viszont az hogy hány darab # jel van, illetve hogy mennyi szóköz van utána, az változhat. A lényeg hogy ebben az esetben a valami értéke a nagy semmi. Azt kell tudni hogyha az első karakter # akkor a valami="blabla" érvénytelen. Nem lehet feldolgozni. Ezt hogy tudnám megoldani? Egy szkriptből ellenőrizném ezt az értéket. Ha valaki esetleg megajándékozna egy megoldással kérem írja le hogy mi mit csinál, hogy meg is értsem, hogy a jövőben már ne zargassak senkit ilyen jellegű problémával. Köszönöm.

epoch idők feldolgozása színesben gyorsabban

Egy txt fájlban csak epoch idők vannak egymás alatt. Fel tudom dolgozni őket. De én színesben szeretném, és akkor már lassú, mert így már 4-szer kell konvertálnia a date parancsnak. Mivel mind az 5 oszlop más színű.
Azon is agyalok, hogy miként lehetne áttekinthetőbbé tenni. Ezt:

4 - 1642687800 - 2022-01-20 - 15:10:00 - csütörtök
4 - 1642711200 - 2022-01-20 - 21:40:00 - csütörtök
4 - 1642719000 - 2022-01-20 - 23:50:00 - csütörtök
5 - 1642774200 - 2022-01-21 - 15:10:00 - péntek
5 - 1642797600 - 2022-01-21 - 21:40:00 - péntek
5 - 1642805400 - 2022-01-21 - 23:50:00 - péntek

Valami ilyesmire:

4 - 1642687800 - 2022-01-20 - csütörtök   15:10:00
4 - 1642711200                                           21:40:00
4 - 1642719000                                           23:50:00
5 - 1642774200 - 2022-01-21 - péntek       15:10:00
5 - 1642797600                                           21:40:00
5 - 1642805400                                           23:50:00

Esetleg...

2022-01-20 - csütörtök
4 - 1642687800 - 15:10:00
4 - 1642711200 - 21:40:00
4 - 1642719000 - 23:50:00

2022-01-21 - péntek
5 - 1642774200 - 15:10:00
5 - 1642797600 - 21:40:00
5 - 1642805400 - 23:50:00

Jelenleg ez működik. 

while read -r Epoch; do
    HN="$(date --date @"${Epoch}" +'%u')"
    yhn="$(date --date @"${Epoch}" +'%F')"
    op="$(date --date @"${Epoch}" +'%T')"
    nap="$(date --date @"${Epoch}" +'%A')"
    echo "${NC}${HN} - ${Yellow}${Epoch} - ${Green}${yhn} - ${Cyan}${op} - ${White}${nap}"
done <<< "epoch.txt

A date parancsba nem tudom beilleszteni a színeket. Persze gyorsabb színek nélkül, de így is összefolyik. Létezik valami megoldás?

Dátum szerinti fájlnév

Sziasztok.

Adott egy parancssori program, aminek a kimenetét minden nap új fájlba írom.
Minden egyes fájlnév az aktuális dátumot tartalmazza kötőjellel, majd hozzátolok egy .log kiterjesztést.
Az a kérdésem, hogy frappánsan és röviden hogyan lehetne nevezni az ilyen loggolást?
Dátum szerinti fájlnév? Vagy van egy sokkal szebb, amit még sosem olvastam sehol?

ciklus és megjelenítés

Szeretném megoldani ezt a feladványt. A hét napjait szeretném kiíratni megfelelő formában. Tehát számokat adok meg. Teszem azt 3, akkor szerda. Ha 2-5 akkor kedd-péntek. Ha 1,3,7, akkor hétfő, szerda, vasárnap.

Végül is majdnem jó amit csináltam, csak annyi a baj, hogy az utolsó nap után is kiírja vesszőt, vagy a kötőjelet. Persze ciklusban van. mi mást csinálna. A sed meg mindenhonnan leszedi az utolsó két karaktert, így lőttek az elválasztóknak.

#!/bin/bash

HN="$1"
# HN lehet: 1,2,7    # HN lehet: 2-5   # HN lehet: 3
dayS () {
	case "${HNnum}" in
       "1") HNw="Monday";;
       "2") HNw="Tuesday";;  
       "3") HNw="Wednesday";; 
       "4") HNw="Thursday";; 
       "5") HNw="Friday";; 
       "6") HNw="Saturday";; 
       "7") HNw="Sunday";;
	esac
}

separate=$(echo "${HN}" | cut -c2-2)
    
case "${separate}" in
    "") 
        (( HNnum = HN ))
            dayS
            echo "${HNw}"
    ;;
    "-" | ",")
        mapfile numberArray <<< "$(echo "${HN}" | tr "${separate}" "\n")"  # szétbontva tömbbe rakjuk az adatokat.
        len=${#numberArray[@]} # itt megtudjuk hány számot is raktunk be.
        for (( i=0; i<=$((len-1)); i++ )); do 
            (( HNnum = "${numberArray[$i]}" ))
            dayS
            printf '%s' "${HNw}${separate}" #| sed 's/..$//'
        done
    ;;
esac

Persze ragoznám még, mert ha 6,7 akkor írja ki hogy hétvége. Ha 1-5, akkor hétköznap, meg lehetne páratlan napok, páros napok. Vagy teljesen más úton kéne elindulni?  Hm. A beszúró ablakban a case-t még jól mutatta, de itt most nem.