Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Témata - exkalibr

Stran: [1] 2 3 4
1
Mám na VM linuxu (Mint 20, xFce) rozlišení 800x600px. Ve Fillezille okno moc velké a písmo moc velké hlavně v dialogových oknech, takže nepřečtu zprávu v dialogovém okně, není tam posuvník. Zdá se, že se přes Fillezillu nezvládnu připojit na webdarma - s chybou vadný nebo zastaralý certifikát.

Tak jsem zkoušel gFTP, což jde přihlásit na server, ale nevidím tam možnost Správce míst nebo jak ukládat ty přihlašovací údaje. Nejsou tam záložky.

Co doporučujete, co by bylo použitelné a snadné na ovládání?

2
Někdy se mi stává nepříjemná věc. Např. na Windows XP: Po spuštění systému se mi otevře okno, že Flash player skončil podporu a blablabla... Poté se otevře prohlížeč. A to není jediný program, co to takhle spouští mám taky program pro záznam z obrazovky a po ukončení programu se zase otevře prohlížeč Firefox (asi poslední verze 52 ESR). Nevíte jak to zakázat?

Další problém dnes nastal na VM Mint 20. Během půlhodiny co čekám až bude systém připraven k použití otevřel jsem si v grafickém prostředí xFce terminál a z něj spustil lynx forum.root.cz zadal jsem přihlašovací údaje + zůstat přihlášen a potvrdil cookies Vždy. A najednou mi vyskočil požadavek v grafickém prostředí okno s klíčenkou. No nemohl jsem ukončit ani ten lynx, ani tu klíčenku, tak jsem si v tty1 spustil htop a chtěl zavřít nejprve chrome  ... nechápu proč najížděl chrome! Používám jen FF. A chrome asi chtěl tu klíčenku. A heslo asi už neznám. Pak když se nezdařilo zavřít klíčenku, tak jsem chtěl zavřít ten terminál, ale nejspíš jsem zavřel xpanel a pak už nešlo nic spustit a nešel zobrazit spodní panel s aplikacema.

Nechápu tedy proč v mintu najížděl ten chrom (a v důsledku toho ta klíčenka) když jsem měl spuštěný lynx. Lynx neumí ověřit identitu nebo co?

A nakonec prosím jestli mi poradíte jak zavřít xfce tedy restartovat ty okna z tty, když ale okna jsou na tty7.

3
Vývoj / Podmínka while nefunguje dle očekávání
« kdy: 30. 08. 2023, 15:28:59 »
Proč bash skript spuštěný po startu OS z ~/.profile píše:
"System activity is 20.00 below 10.25%. Starting memory monitoring."?

Pokud je system activity 20.00 tak nemá dojít k volání funkce monitor_memory . Má k tomu volání monitor_memory dojít až když je aktivita pod 10.25 ... Kde PŘESNĚ je chyba?
Kód: [Vybrat]
mpstat_activity_float() {
  local idle=$(mpstat | awk 'NF >= 1 {idle += $(NF)} END {print idle}')
  local activity=$((100 - idle))
  # local activity=$(awk -v idle="$idle" 'BEGIN {print 100 - idle}')
  printf "%.2f\n" "$activity"
}

# Funkce na čekání na snížení aktivity pod určitou úroveň
# Spouští monitor_memory &
function waiting_on_system_ready_monitor_memory() {
  local target_activity=10.25
  local current_activity=$(mpstat_activity_float)
 
  while (( $(echo "$current_activity >= $target_activity" | bc -l) )); do
    sleep 120  # Dvouminutové intervaly
    current_activity=$(mpstat_activity_float)
  done

  echo "System activity is $current_activity below $target_activity%. Starting memory monitoring."
  monitor_memory &
}

# Zajistit čekání na připravenost systému
waiting_on_system_ready_monitor_memory &

4
Chtěl bych si po létech splnit svůj sen a napsat php  aplikaci s přihlašováním pro uživatele. V minulosti jsem to už zkoušel a nedopadlo to moc dobře. Buď jsem měl od počátku špatný design, např. jsem měl v paměti moc dlouhé stringy a buffery (náročnost na paměť) nebo to bylo objektově moc zatížené na CPU. Ale já potřebuju napsat aplikaci, která nebude náročná na paměť, CPU, hity a I/O operace. Jen podotýkám že nemám na to školu, jen se po dlouhé době vracím k php. Aplikaci chci udělat co nejjednodušší, takže se vyhnu vzkazníku nebo dlouhým výpisům dat z mysql. Zezačátku mám zájem sbírat od uživatelů data a to bude probíhat v několika úrovních. Teprve až vstupní data zkompletuji a vyhodnotím, zapíšu do hlavní tabulky, chci aby uživatelé měli k dispozici všechny funkce aplikace. Ale zdá se, že bude těžké takovou databázi na freehostingu exportovat a zálohovat, protože ta možnost tam není a export/import je náročný kvůli limitům. Tak si říkám (1. otázka) jak na designovat to mysql. Dát tam třeba 20 tabulek na ty vstupní data, aby to bylo oddělené od tabulky s uživateli a od tabulky se  zkompletovanými daty? To by snížilo množství dat v jednotlivých tabulkách a bylo by pro mě snažší  sledovat co se děje v jednotlivých tabulkách. Oddělil bych jednotlivé fáze vyplňování dat, které budou obsluhovány jinými php skripty. 2. nejspíš bych co se dá nahrál mimo freehostingový server (obrázky, js, css). Slyšel jsem že existují cache. Existují free cache servery a nemyslím proxy, které byste mi mohli doporučit? Pak jsem slyšel že existuje technika lazycache že se má vše nahrát do jednoho souboru. Asi myšleno aby js nebyl roztahaný do více souborů. Což právě v mém případě je tak - každá úroveň vyplňování dat a řekněme že jich bude 20 bude obsahovat 20 js souborů a 20 php skpritů. To asi není ideální, že? Takže všechno sloučit dohromady? Ale jak bych to pak mohl vyvíjet, když bych se v tom nevyznal. Zřejmě na to musí být nějaká aplikace, ve které by se to php, js, css dalo vyvíjet (na linuxu). A nakonec si říkám, že bych nejraději použil nějaký skriptovací jazyk, abych mohl ty php soubory a takový věci jako css a js v jednom souboru vygenerovat, ale netuším jaký skriptovací jazyk se na to hodí. Napadlo mě "pomalé" php, mohl bych jednotlivé data načítat z txt souborů s konfigurací a pak je zkompletovat do .php . Co tím myslím: při vyplňování a odesílání dat se opakují ty samé vzorce na většině stránek. člověk potřebuje znát názvy políček, jak jdou za sebou na formuláři, typ políček, názvy sloupců v mysql pro insert a názvy sloupců pro vyhledávání nebo pro změnu dat... Takže když bych si to uložil jako soubor k načtení a naparsování, tak bych si to snad mohl zjednodušit ale bylo by to zase složité. Celkově se toho děsím protože nevím jaká cesta je správná ale chtěl bych si nějak ušetřit práci.

5
Software / Info o obrázku v nomacs, gThumb a Ristretto
« kdy: 08. 08. 2023, 16:20:32 »
TZdravím. Než jsem přešel na linux s xFce4 používal jsem kdysi dávno ACDsee 2.4 a později FastStone Viewer k prohlížení obr. na Windows. Důležité pro mě bylo mít seznam a vlevo dole pod stromem byl náhled obrázku. Když jsem chtěl změnit obrázek zmáčkl jsem F2.

gthumb používá F2 ale není vidět původní název obrázku. Takže nevím jak zkopírovat původní jméno obrázku a vložit do pole, abych mohl editovat název.

nomacs - tam zase nemohu přijít na to jak zobrazit informace o souboru kdy byl obrázek vytvořen případně změněn nebo v budoucnu by se mi také mohlo hodit jakou má velikost a rozlišení.

Ristretto jsem ještě moc nepoužíval.

U nomacsu a gthumb mám občas problém že se dostanu do mou prohlížení, kdy to tak trochu vypadá jako prohlížecí pás, ale nevidím klasický seznam souboru ve kterém se dají soubory přejmenovat nebo kontrolovat datum vytvoření případně si to seřadit podle času...

Ještě mám nainstalovaný wionior zatím ani moc nepoužívám.

Můžete mi dát nějaké rady jak toto ovládat?

A potom ještě bych měl dotaz na program Krita, který mi doporučil ChatGPT. Sice jsem chtěl asi něco jiného. Hledal jsem program, kterým bych mohl zaznamenat pohyb a akce stylusem na tabletu když kreslím na canvas na webové stránce. Něco moc efektivního a nenáročného na paměť, protože prohlížeč a webová stránka už mi žere poslední zbytky paměti (ten dnešní JS je neskutečně náročný na paměť pokud to jde tak blokuju 99% serverů co přeposílá .js soubory). Nicméně tedy jsem vyzkoušel tu krétu a připomíná mi to vzhledem a funkemi Photoshop, asi přívětivější na ovládání než Gimp. Kdybyste měl někdo čas vysvětlit k čemu fungují nebo jak se ovládají ty štětce vpravo dole (mám mint 20 takže možná ne zcela aktuální verzi) tak budu rád. Běžně na PS jsem používal zkratku x na přepínání barvy popředí a pozadí a to tam nevidím nevidím tam tato dvě barvy jako v PS. Nebo nechápu kde a jak se používá nástoj stamp - razítko. Z PS znám funkci "s" .. a alt+s na určení zdrojové oblasti odkud se bude kopírovat. Asi teď chápu jen angl. zkratky [ , ] na změnu velikosti kurzoru, ale zatím jsem nenašel nastavení pro štětce. Ale vypadá to zajímavě ten program.

6
Menu na stránce webnode.cz má několik úrovní ul. Na každé úrovni ul je třída class level-1 až např. level-3. Je tam seznam položek li a ty které obsahují vnořené menu mají navíc třídu wnd-with-submenu. V pythonu mám rekurzivní funkci, která prochází ty menu resp. ul. Přesněji řečeno první úroveň jsem udělal jako hlavní smyčku tj. ne rekurzivně. Tím projdu první úroveň. Když narazím na podmenu spouštím rekurzivní funkci. Nyní zde je problém s tím xpath. Zdá se to být nevyřešitelné.

Celý html kod sem dávat nechci, je to dlouhé a nepřehledné, zkusím objasnit pseudo kodém. Místo tagu a se spany a názvem článku použiju link A, link B, link c atd... A připomínám, že nyní řeším tu 2. úroveň.
Kód: [Vybrat]
ul level 2
li link 2A
/li
li link 2B
/li
li link 2C (obsahuje menu)
   ul level 3
   li link 3A /li
   li link 3B /li
   li link 3C /li
   /ul
/li
/ul level 2

Takže já spouštím tu funkci a vidím obsah toho ul level 2. Začnu procházet ty jednotlivé položky menu li ale rozlišuje se jestli je to li bez třídy nebo to li kromě linku obsahuje taky vnořený seznam. Tento vnořený seznam nesmí být ve výsledku.

Zkoušel jsem několik možností a ani jedna nefungovala správně:

Kód: [Vybrat]
# li_obj = ul_obj[0].xpath('.//li[@class="wnd-with-submenu"]')
Toto vypíše jen články s vnořeným menu.

Kód: [Vybrat]
li_obj = ul_obj[0].xpath('.//li[@class="wnd-with-submenu" or not(@class)]')
Toto myslím vypisuje i ty li které jsou zanořené v tom vnořeném ul. Nefungovalo podle potřeby.

Kód: [Vybrat]
li_obj = ul_obj[0].xpath('.//li[not(.//ul[@class="level-3"]//ancestor::li[@class="wnd-with-submenu"])]//a')
[code]
Toto mělo vypsat všechny li v seznamu ul (2. level), bez toho zanořeného menu. Toto však nefunguje. Místo toho se stane to, že to vypíše články bez vnořeného menu, první vnořený článek nevypíše, a ostatní vnořené články vypíše. To je chyba. [b]Vnořené články se nemají vypisovat vůbec[/b] (na to budu volat funkci).

Domnívám se, že výraz [b]not(.//ul) je interpretován tak, že zcela vyloučí ty položky, který obsahuje li 2 level, místo aby poskytlo pouze ten odkaz z této položky li 2 level[/b].

Zkrácený html kód...

[code]
<li class="wnd-with-submenu">
<a class="menu-item">LINK LEVEL 1</a>
<ul class="level-2">
<li>
<a>link level 2 A</a>
</li>
<li>
<a>link level 2 B</a>
</li>
<li class="wnd-with-submenu">
<a>LEVEL 2 C with SUBMENU</a>
<ul class="level-3">
<li>
<a>link level 3 D DON'T!!</a>
</li>
</ul>
</li>

Pak to pokračuje další položkou level 2 a další submenu ...

Ještě stručněji:
li class="wnd-with-submenu"
   LINK LEVEL 1
   ul class="level-2"
      li
         link level 2 A
      /li
      li
         link level 2 B
      li
      li class="wnd-with-submenu"
         link LEVEL 2 C with SUBMENU
         ul class="level-3"
      li
         link level 3 D NEVYPISOVAT!!
      /li
   /ul
/li

7
Tato syntaxe pro awk nefunguje (doporučoval chatGPT):
Kód: [Vybrat]
menu=$(awk '/<div id="menu-slider">/,/<\\/div>/' temp.html | awk '/<nav id="menu"/,/<\\/nav>/')
echo "Menu:"
echo "$menu"

Párový tag uvnitř obsahuje kod na více řádků, který chci získat. No nedaří se.

Píše podobnou hlášku:
Kód: [Vybrat]
$./extract-webnode-menu-structured.sh
awk: cmd. line:1: /<div id="menu-slider">/,/<\\/div>/
awk: cmd. line:1:                                    ^ unexpected newline or end of string
awk: cmd. line:1: /<nav id="menu"/,/<\\/nav>/
awk: cmd. line:1:                            ^ unexpected newline or end of st

8
Jak nakonfigurovat barvu textu v terminálu např. barva článku byla bílá? A barva odkazů aby byla velmi světle zelená (skoro bílá)? Zkrátka abych dostal vysoký kontrast?

A ještě mám dotaz jestli se dá z lynxu vytáhnout seznam odkazů v menu na stránce kterou si prohlížím. Je to stránka na webnode.cz kde mají menu stránek. V normální prohlížečích menu není vidět, je rozsáhlé a dá se zkopírovat ze zdrojového kodu, ale napadlo mě, že by mohlo být dobré mít seznam odkazů, že bych si mohl postahovat a zazálohovat svoje články na webnode.cz Ale nevím právě jak získat ten seznam článků. No řeknu vám to tak, mám stránku kde je velmi mnoho odkazů a je to nepřehledné menu. Takže já třeba nemohu procházet normálně a najít i staré články, které bych už vymazal a chtěl bych to nějak projít a překontrolovat. A přes zdroják ve firefoxu ctrl+U je to tam jen kod, nepřehledné.

9
Vývoj / Bash script na monitorování aktivity CPU
« kdy: 20. 07. 2023, 10:24:32 »
S pomocí chatGPT se mi povedlo vytvořit tuhle utilitku pro .bashrc a .profile
Vypisuje aktuální stav v procentech. Nepovedlo se mi to udělat na setiny, protože to na Mintu 20 hlásilo chybu (už si nepamatuji jakou, myslím že to byla chyba tokenu). Utilitku využívám jen prvních 25-30 minut protože mám linux spuštěný jako VM pod Windowx XP a začít pracovat s prohlížečem mohu až uplynutí času. Takže jak se objeví zelená barva textu s aktivitou procesoru v procentech, tak vím, že mohu začít pracovat. Do budoucna uvažuji že bych přidal ještě údaj kolik zbývá volné paměti a automaticky by se mohl spustit úklid (uvolnění paměti) když kriticky dochází. Jinak to dělám ručně ten úklid ale je lepší to spustit nejpozději když je 250M volné.

Kód: [Vybrat]
# Funkce barevně vypíše aktivitu
declare -f mpstat_activity
mpstat_activity() {
  local idle=$(mpstat | awk 'NF >= 1 {idle += $(NF)} END {print idle}')
  local activity=$((100 - idle))

  if ((activity < 10)); then
    echo -e "\e[32m${activity}%\e[0m"  # Zelená 32
  elif ((activity < 12)); then
    echo -e "\e[33m${activity}%\e[0m"  # Žlutá; je špinavě žlutá
  elif ((activity < 14)); then
    echo -e "\e[33m${activity}%\e[0m"  # Oranžová 33
  else
    echo -e "\e[31m${activity}%\e[0m"  # Červená 31
  fi
}

PS1='$(mpstat_activity) $ '

# Spustit po startu na pozadí
declare -f mp
mp() {
  local duration=1800  # Délka trvání v sekundách (30 minut)
  local interval1=240  # Interval prvních 9 minut (4 minuty)
  local interval2=180  # Interval dalších 12 minut (3 minuty)
  local interval3=90   # Interval po uplynutí toho času (1.5 minut)
  local start_time=$(date +%s)

  mpstat_activity  # První volání

  while true; do
    local current_time=$(date +%s)
    local elapsed_time=$((current_time - start_time))

    if ((elapsed_time <= interval1)); then
      sleep "$interval1"
    elif ((elapsed_time <= interval1 + interval2)); then
      sleep "$interval2"
    elif ((elapsed_time <= duration)); then
      sleep "$interval3"
    else
      break  # Trvání skončilo, ukončení smyčky
    fi

    mpstat_activity
  done
}

# Funkce pro ukončení
declare -f mp_exit
mp_exit() {
  unset -f mp  # Odstranění funkce `mp` ze zásobníku
  echo "Monitoring procesoru ukončen."
}

# Přidání příkazů mp a mp_exit do .bashrc
alias mp='mp'
alias mp_exit='mp_exit'

mp &

10
Nedaří se mi v sedu nastavit rozsah pro určité znaky. Zkouším něco takového např. [\uFB50-\uFFFF] Jde to vůbec nebo jaká je alternativa, když to chci zapsat, nejlépe takto v tomto kodovaní?

11
Vývoj / Mapování znaků v bashi
« kdy: 02. 07. 2023, 20:02:29 »
Chtěl jsem v bashi napsat mapování, abych mohl převést znaky v řetězci UTF8. Nedařilo se mi vytvořit to potřebné pole pokud jsou zahrnuty nějaké speciální znaky jako  "׃" , "   ֯" .

  local replacements=(
['\u05C3 ']=' '
['\u05AF ']=' '
)

Když spustím takový skript v bashi vždy dostanu hlášku syntaktická chyba: očekáván operand (chybný token ... a zobrazí se znak či hodnota, která je na posledním elementu).

Zjistil jsem sice že to jde udělat pomocí regulárních výrazů, ale problém v tom případě je, že by to bylo značně pomalé na výkon. Klasická náhrada znaků pomocí mapování by myslím měla být výrazně výkonnější.

Pracuji na mint20. Dá se tento problém nějak obejít nebo je to v bashi neřešitelné a musím použít python, perl? Já už si na bash začínám zvykat a učit si jiný jazyk, kterému vůbec nerozumím se mi moc nechce.

12
Vývoj / Náhrada kódu v bashi nefunguje
« kdy: 27. 06. 2023, 16:49:12 »
Kdo používáte chatGPT, řeším následující problém. Zkopíruju diskusi z html stránky ve Firefoxu, vložím to do WYSIWIG editoru na blogspot.com . Odstranit fotky u hlavičky zpráv uživatele, případně to nahradit za jiný kód. Nyní zkouším 1) najít html kód - funguje 2) odstranit html kód - nefunguje.

Takže na blogspotu přepnu na html pohled, označím všechen kód s tagama, zkopíruji to do souboru puvodni_kod.html . Následně si najdu značky s obrázkem, který je zabalený ve wrapperu...

hledaný kód začíná takto:
Kód: [Vybrat]
</div></div></div><span class="flex-grow flex-shrink-0" style="font-family: arial;"></span><div class="flex p-4 gap-4 text-base md:gap-6 md:max-w-2xl lg:max-w-[38rem] xl:max-w-3xl md:py-6 lg:px-0 m-auto"><div class="flex-shrink-0 flex flex-col relative items-end"><div class="w-[30px]"><div class="relative flex"><span style="background: none; border: 0px none; box-sizing: border-box; display: inline-block; font-family: arial; height: initial; margin: 0px; max-width: 100%; opacity: 1; overflow: hidden; padding: 0px; position: relative; width: initial;"><span style="background: none; border: 0px none; box-sizing: border-box; display: block; height: initial; margin: 0px; max-width: 100%; opacity: 1; padding: 0px; width: initial;"><img alt="" aria-hidden="true" src="data:image/
a končí takto:
Kód: [Vybrat]
.png&amp;w=96&amp;q=75" style="border: medium none; box-sizing: border-box; display: block; height: 0px; inset: 0px; margin: auto; max-height: 100%; max-width: 100%; min-height: 100%; min-width: 100%; padding: 0px; position: absolute; width: 0px;" /></span></div></div></div><div class="relative flex w-[calc(100%-50px)] flex-col gap-1 md:gap-3 lg:w-[calc(100%-115px)]"><div class="flex flex-grow flex-col gap-3"><div class="min-h-[20px] flex items-start overflow-x-auto whitespace-pre-wrap break-words flex-col gap-4"><div class="empty:hidden">

Vložím to do souboru tags_to_remove_from_code.txt

Spustím skript remove-user-wrapper.sh
Kód: [Vybrat]
#!/bin/bash

# Název souboru
input_filename="puvodni_kod.html"
output_filename="novy_kod.html"

# Načtení obsahu souboru
file_content=$(cat "$input_filename")

# Řetězec s HTML tagy ke odstranění
# Při načítání obsahu ze souboru pomocí $(< "$input_filename") nemusíte escapovat uvozovky v textu. Tento způsob načítání souboru v shell skriptu umožňuje zachovat původní formátování a speciální znaky v textu bez potřeby escapování. Stejně tak při načítání řetězce ke odstranění pomocí $(< "hledany_kod.txt") nemusíte escapovat uvozovky ani jiné speciální znaky, pokud jsou přítomny v textu v souboru "hledany_kod.txt".
string_to_remove=$(< "tags_to_remove_from_code.txt")
# Přesto nebyl nahrazen a chatGPT přesto píše že mám escapovat speciální znaky [ ] \ . * ^ $
escaped_search_pattern=$(sed 's/[][\\.*^$]/\\&/g' <<< "$search_pattern")

if [[ $file_content =~ $escaped_search_pattern ]]; then
  echo "Výraz byl nalezen."
else
  echo "Výraz nebyl nalezen."
  exit
fi

# Odstranění řetězce ze souboru
# 2x slash // znamená, že se bude opakovat hledání na všechny
new_content="${file_content//$string_to_remove/}"
# #*</div></div></div> ...  odstraň nejdelší shodujícího se vzoru ze začátku řetězce
string_to_remove="${string_to_remove#*</div></div></div>}"
# Odstranění počátečního řetězce ze souboru
new_content="${file_content/$string_to_remove/}"

# Přepsání souboru s novým obsahem
echo "$new_content" > "$output_filename"

Kód: [Vybrat]
$ ./remove-user-wrapper.sh
Výraz byl nalezen a provedla se záměna.

Ale v nově vytvořeném či přepsaném souboru novy_kod.html stále vidím ten řetězec který měl být odstraněn. Víte v čem může být problém? V případě, že byste přišli na to jak provést tu záměnu a odstranění, pak budu řešit jak to nahradit za jiný kód (například nadpis s popiskem User:)

PS: Soubor jsem vytvořil v nano, myslím, že kódování a BOM snad v tom roli nehraje. Je to na linuxu.

13
Software / Záznam videa se zvukem z kamery s ffmpeg
« kdy: 18. 06. 2023, 22:34:31 »
Ahoj, mám takovou primitivní kameru připojenou k PC, je to jen obyč. senzor čip, RGB, žlutý vodič, bílá ledka, žádné další čipy nebo součástky uvnitř. V první řadě musím říct, že jsem měl problém zaznamenávat ve Windows zvuk tak aby byl synchronizovaný s obrazem a to jsem používal freeXWebcam Recorder nebo tak nějak se to jmenuje. Na linuxu nehledám grafický program, potřebuju to terminálově a nejdříve jsem to zkoušel s chatGPT, ale výsledek byl a je vždy stejný. Nahraje se jen obraz a na audio stopě něco je, ale je to takové náhodné prásk na zlomek vteřiny jako zvuk z audia a pak dlouho nic. Takže v podstatě žádný zvuk. A mě stačí obyč kvalita zvuku 32Kb, je to jen pro mikrofon a webkameru (obojí je zvlášť). Zkoušel jsem různé možnosti a vždy jsem měl v podstatě jen video.

Kód: [Vybrat]
# VIDEO FUNKCNI ALE NE ZVUK:
ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -f alsa -i hw:0 -c:v h264 -r 15 -ar 44100 -b:a 192k -c:a libmp3lame output.mp4


# ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -f alsa -i hw:0 -r 15 -ar 44100 -c:v h264 -c:a mp3 output.mp4


#ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -f alsa -i hw:0 -r 15 -ar 4000 -c:v h264 -c:a libvorbis output.mp4

#ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -f alsa -i hw:0 -r 15 -ar 4000 -c:v h264 -c:a aac output.mp4

# Audio:
# -ar 44100 -c:a mp3
# -c:a libvorbis

# Video:
# -c:a aac
# -c:v libx264

# Vyšší bitová rychlost
# -b:a 192k
user@user-vm:~/WebCam$

14
Vývoj / Nechápu limity a raty u OpenAI
« kdy: 18. 06. 2023, 12:12:37 »
Dokumentaci jsem zkoumal, ptal se OpenAI a už to s ním řeším podruhé ale prostě to stále nechápu. Snad poradí člověk. Jde mi o to, že se snažím rozjet aplikaci, kterou mi napsal, abych mohl přes soubor odeslat delší požadavek jako rekapitulace studie co má 200 stránek A5 a ve výsledku je z toho asi 30 zpráv od ChatGPT. Tyhle data přepracuji do článku kde slučuji tři zprávy, ale článek je dlouhý. A budu po něm chtít, aby mi to rekapitulovat. Normálně bych to posílal třeba 10-15 zpráv přes ChatGPT. Ale je možné takto dlouhou věc zdarma poslat přes api, které jsem si s jeho pomocí napsal pro perl? Mám tedy takovýto jednoduchý požadavek.
Kód: [Vybrat]
{
  "model": "text-davinci-002",
  "prompt": "Once upon a time",
  "temperature": 0.5,
  "max_tokens": 50
}
Prompt budu muset ve skutečnosti načíst ze souboru jako
Kód: [Vybrat]
my $request_prompt = read_file($request_prompt);
my $escaped_prompt = encode_json($request_prompt);
Ale háček je v délce zprávy.
Tabulka obsahuje
ModelTPM Limit (Tokens per Minute)RPM Limit (Requests per Minute)
davinci250,00060
curie2560
babbage10020
ada20020

Dotaz na ChatGPT zněl:
Na kolik tokenů mám tedy nastavit max limit v tomto příkladu ZDARMA? (následoval výše uvedený kód toho json objektu)
Na dotaz: "Spočítejte jak dlouho by trvalo vygenerování odpovědi na předchozí dotaz."
ChatGPT mi napsal:
"1 token za minutu * 50 tokenů = 50 minut"

Mám toto brát vážně nebo to prostě jen nechápe? Netuším jak dlouhý je ten článek, ale zdá se, že počet odeslaných tokenů a počet přijatých tokenů se sčítají. Jako mě by asi nevadilo čekat na to třeba 20 minut. Proč ne. Ale jinak to nemá smysl, mohu mu to zadat ručně.

15
Už nějakou dobu jsem zkoušel používat ChatGPT k tomu aby mi uspořádal pole s knihami. Ovšem nějak se nedařilo, bylo to dost neefektivní.

První pole obsahuje seznam knih, správně seřazený (pole s klíči). Druhý seznam je datový, který obsahuje více informací a bohužel není seřazený podle názvu knih.

Chtěl jsem tedy po chatGPT aby načetl nejprve ten první soubor s klíči a podle toho pole pak seřadil to datové pole. Nejprve mi navrhl funkci, kde pole nebo soubor se načítá uvnitř. Taky byl problém, ten se nepovedlo vyřešit, že když klíč v datovém souboru či poli neexistoval, nevypsal se název pole. A to nešlo za nic na světě realizovat.

Tak jsem napsal samostatný kód, který nejprve porovná ty klíče, zda se nachází v datovém souboru nebo ne. Taky jsem se učil jak vlastně dostat celé pole do funkce, tak jsem to navrhl takto, že se soubor s klíči načte před funkcí sort_books. Pak ale stále ještě byl problém s efektivitou, že se snad 26 knih dlouho třídí. Asi 2.5s na mém AMD FX 8300 je dost dlouhá doba.

Asi není úplně ideální spouštět ten jq 26x ve smyčce a navíc se tam 26x načítá pole pomocí map. Máte někdo nějaký nápad jak to ještě urychlit a dostat ten čas například na 0.26 nebo 0.026 s?

PS:ChatGPT stále nechápe syntaxi jq... a vyvozuje nesprávné závěry.
Syntaxe datového souboru.json

Kód: [Vybrat]
{ "books": [{ "english_title": "nejaka kniha", "czech_title": "ceskynazev", "category": "beletrie", "chapter_count": 14 }, ...]}
Syntaxe klíčů:
[
  {"132153": {"no": 1, "title": "Nejaka kniha"}},
  {"456832": {"no": 2, "title": "Dalsi kniha"}},
...
]

Stran: [1] 2 3 4