Byla vydána (𝕏) nová verze 24.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 24.7 je Thriving Tiger. Přehled novinek v příspěvku na fóru.
Binarly REsearch upozorňuje na bezpečnostní problém PKFail (YouTube) v ekosystému UEFI. Stovky modelů zařízení používají pro Secure Boot testovací Platform Key vygenerovaný American Megatrends International (AMI) a jeho privátní část byla při úniku dat prozrazena. Do milionů zařízení (seznam v pdf) po celém světě tak útočníci mohou do Secure Bootu vložit podepsaný malware. Otestovat firmware si lze na stránce pk.fail. Ukázka PoC na Linuxu na Windows na YouTube.
Mobilní operační systém /e/OS (Wikipedie) založený na Androidu / LineageOS, ale bez aplikací a služeb od Googlu, byl vydán ve verzi 2.2 (Mastodon, 𝕏). Přehled novinek na GitLabu. Vypíchnuta je rodičovská kontrola.
Společnost OpenAI představila vyhledávač SearchGPT propojující OpenAI modely umělé inteligence a informace z webů v reálném čase. Zatím jako prototyp pro vybrané uživatele. Zapsat se lze do pořadníku čekatelů.
Distribuce Linux Mint 22 „Wilma“ byla vydána. Je založená na Ubuntu 24.04 LTS, ale s desktopovým prostředím Cinnamon (aktuálně verze 6.2), příp. MATE nebo Xfce, balíkem aplikací XApp, integrací balíčků Flatpak a dalšími změnami. Více v přehledu novinek a poznámkách k vydání.
Příspěvek na blogu Truffle Security: Kdokoli může přistupovat ke smazaným a privátním repozitářům na GitHubu.
Byla vydána nová verze 14 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v cgitu. Vypíchnout lze podporu rozšíření v Lua.
Byla vydána verze 1.80.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Apple oznámil, že v beta verzi spustil své Apple Maps na webu. Podporován je také webový prohlížeč Chrome. Ne však na Linuxu.
Portál Stack Overflow po roce opět vyzpovídal své uživatele, jedná se především o vývojáře softwaru, a zveřejnil detailní výsledky průzkumu. Průzkumu se letos zúčastnilo více než 65 tisíc vývojářů. Z Česka jich bylo 710. Ze Slovenska 246.
Dobrý den,
potřebuji poradit s následujícím problémem, mám předpřipravenou stránku v HTML, data jsou reprezentována tabulkou jejímž obsahem jsou odkazy na uložené soubory. Ty jsou vytvářeny (automaticky) v nočních hodinách. Pro nový soubor vždy ráno kolega odstraní komentář a odkaz je pak funkční. Názvy souborů vypadají obecně takto NAZEV_MMDD.html. Rád bych celý proces zjednodušil pomocí skriptu tak, aby skript po spuštění zkontroloval jaké soubory již v adresáři jsou a u nich pak provedl zrušení komentáře.
Ukázka kódu (obsahu buňky):
<TD> <A !--HREF="2008/NAZEV_0528.html"--> 28 </A> </TD>
Nahrazování pomocí SEDu mi poměrně jde, ale nevím jak udělat porovnání oproti výpisu z např. LS a konkrétní hodnoty otestovat. Dokonce jsem přemýšlele o tom odstraňovat komentáře z "čistého" souboru a generovat tak HTML vždy celé.
Děkuji předem všem! jsk
Řešení dotazu:
Nahrazování pomocí SEDu mi poměrně jde, ale nevím jak udělat porovnání oproti výpisu z např. LS a konkrétní hodnoty otestovat.
Možná by se více hodilo použít GAWK, který umít pracovat s více soubory (pomocí getline) - výstup ls
uložit bokem (popř. upravit, aby se to dobře porovnávalo) a pak načítat v GAWKu.
/<td> <a !--HREF=/ { soubor = ... # získat název soubor while ((getline radka < "seznam") > 0) { if (soubor==radka) { print("<td ... ") } } close("seznam") }
Je to jenom hrubý nástřel, navíc GAWK umít číst data i z roury, takže by šlo to ls
asi nějak provést i "zevnitř" toho skriptu.
Dobry den.
Neni mi uplne jasne zadani.
Jde o to prevest vypis 'ls NAZEV_[0,1][0-9][0-3][0-9].html | sort' do html?
Nebo je potreba kontrolovat jmena souboru podle nejakeho seznamu?
marek
Děkuji za reakci,
podle výpisu (třeba i DIR) odkomentovat odkazy v rozcestníku (indexXY.htm) na soubory ve výpisu, pro funkčnost asi nebude nutné vytvářet soubory výpisů, ale pro archivaci je steně budu dělat (v názvu nechám datum).
Díky jsk
Dobry den.
Stale mi neni jasne proc odkomentovavat?
Proc proste nezobrazit vsechny soubory, co jsou v tech adresarich?
Vim ze to neni odpoved na Vas dotaz, ale presto mi to neda...
Tady je priklad jak jednoduse generovat vypis adresare.
Marek
#!/bin/bash (cat << EOF <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd" > <html lang="cs"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Generování HTML</title> </head> <body > <table> <tr> EOF ls 2008/NAZEV_[0,1][0-9][0-3][0-9].html | sort | sed -e's/^\(.*\)$/<td> <a href="\1" > <\/td>/' cat << EOF </tr> </table> </body> </html> EOF ) > indexXY.html
Skvělé a poučné, díky!
Soubory jako výstup z Vašeho skriptu slouží jako rozcestníky pro uživatele. Standardně se zobrazují v IFRAME formou dvouřádkového kalendáře (čísla dnů se zvýrazněním pro SO a NE - orientace) pro každý měsíc. Dole je LEDEN a nahoře PROSINEC, po měsíci se posunuje </DIV>, který měsíce zbývající do konce roku skryje podle předpisu v CSS. Formát je poměrně je poměrně oblíbený (uživatelstvo) a lehce se edituje vyskytne-li se k jednomu dni více souborů. I vzhledem k tomu, že pro vystavování dat v intranetu nemohu využít server a db hledám řešení, která nám ušetří čas. Pokud by jste mne navedl na něco elegantnějšího než je odkomentovávání, byl bych Vám velice vděčný.
Děkuji jsk
PS: na vlastní vynález 'odkomentovávání' jsem byl před dvěma lety docea hrdý
<? define('BASE', './'); // musi koncit lomitkem // z kazdeho roku vyrobi 2D pole $a[mesic][den] = .../rok/soubor function load_year($year) { $d = opendir(BASE.$year); $a = array(); while($i = readdir($a)) { if (preg_match('/[^_]+_([0-9][0-9])([0-9][0-9])\.html/', $a, $p)) { $a[$p[1]][$p[2]] = BASE.$year.'/'.$i; } } closedir($d); return $a; } // najde roky function load_all() { $d = opendir(BASE); $a = array(); while ($i = readdir($d)) { if (is_dir($i)) { $a[$i] = load_year($i); } } closedir($d); ksort($a); return $a; } // pak uz jen vykreslit html... echo "<html>...blablabla...\n"; foreach(load_all() as $y_i => $y) { echo "<h2>Rok ".$y_i."</h2>\n"; foreach($y as $m_i => $m) { echo "<h3>Měsíc ".$m_i."</h3>\n| "; $d_max = intval(date("t", mktime(0, 0, 0, $m, 1, $y))); // dny vykreslime vsecky, i ty, ktere nejsou odkazem for($d = 1; $d < $d_max; $d++) { if (array_key_exists($d, $m)) { echo "<a href='".$m[$d]."'>".$d."</a> |"; } else { echo $d." |"; } } } } // neco na konec echo "...blablabla...</html>\n"; ?>ps: netestoval jsem to a píšu to z hlavy... no prostě klasickej produkční kód
Díky moc, máš recht s lidma to bývá zatraceně těžké. Už mi to něco ukazuje, zítra na to "vletím" a až to zmáknu pošlu Ti to k posouzení, tedy jestli můžu.
Tadle Poradna JE FAKT SKVĚLÁ, co se tu lze všechno naučit! Skoro se divím, že se wokna ještě prodávají (já v nich jedu vlastně na >80% ).
jsk
jsk
perl -pe 's/!--(.*?)--/$1/ if /!--HREF="(.*?)"--/ && -f $1' soubor.html
Děkuji za reakci, ale perlu moc nehovím.
Pokud by jste mi to okomentoval moc by mi to pomohlo, zatím jsem 'dal' zakomentované části na samostané řádky a ty chci porovnávat/měnit oproti výpisu z adresáře kde jsou soubory uloženy. Příklad struktury, ../2008/01/NAZEV_MMDD.html, podle toho zda pro příslušné datum soubor existuje chci měnit stránku ze které je na soubory odkaz.
Zatím mi to moc nejde.
Díky za pomoc. jsk
cd dotycny_adresar
for i in *.html ; do
sed -i "s#<A \!--HREF=\"$i\"-->#<A HREF=\"$i\">#g" jiny/nebo/stejny/adresar/index.html
done
Je to ponekud primitivne primocare, ale pro pricetny pocet souboru to nemusi byt problem
Díky moc, asi mám (,
ale zatím mi to nepracuje úplně tak jak bych chtěl, hlavně si nejsem jistý jak to udělat když soubor, z kterého se odkazuji na NAZEV_MMDD.HTML, je v jiném adresáři (o dvě úrovně výše). Asi bych to mohl kopírovat, ale nebylo by to asi ani trochu košer že?
Jestli se na to budete ještě dívat, pak ten kometář je před A (s#<!--A). Nerejpu jen jsem se několikrát na něčem podobném dlouho zasek.
Děkuju, dlouho jsem nic nenapsal a předtím to bylo také nebylo nic světoborného.
jsk
#! /bin/bash
# spustit s parametrem pro adresar
for i in $1/*.HTML ; do
sed -i "s#<\!--A HREF=\"$i\"-->#<A HREF=\"$i\">#g" index.html
done
spusteni potom:
uprava.sh 2008/05
Děkuji, je to ONO, hodně jsem se poučil, jen mi to nefunguje jako script, pouze z řádky. Nevíte co dělám špatně? Normálně mi *.sh běhá; používá cygwin.
jsk
Už to běží, jen jsem soubor uložil v unixovém formátu a utf-8.
jsk
Určitě má, stahuju to Httrackem nebo Teleportem a pak různě rozebírám a skádám pomocí sedu grepu apod. pod cygwinem. Každopádně děkuji za uklidnění, protože bych o dovolené nerad trnul, že mi budou volat co s tím mají dělat a obávám se, že bych se stejně ani nedozvěděl o co jde.
jsk
Dobrý den a díky,
začal jsem si na ty mezery dávat pozor, ale vyřešilo se to i tím, že jsem daný kód použil jako součást většího skriptu.
Potřeboval bych poradit ještě s jednou věcí, nemám příliš zkušeností s psaním skriptů a tak není mi příliš jasné, zda je lepší psát více kratších skriptů nebo skripty delší. Poslední skript má něco přes 700 znaků, samozřejmě, že část zabírají názvy a cesty. Myslel jsem si že lépe je jít cestou většího počtu skriptů, ale pak mám problém s jejich spouštěním. Potřebuji je spouštět automaticky v určitý čas, ale v cygwinu mi to moc nejde s cronem a řešení přes baťáky se mi moc nezdá. Vlastně nevím jak se píše obdoba bat souboru, který jiné skripty spouští.
Předm děkuji.
jsk
Už vím,
bash skript1.sh && sh skript2.sh
Ale stále nevím jestli jeden velký skript nebo více skriptů malých.
jsk
Budu se asi muset omezit hlavně zdola, momentálně sedím před 24" LCD na 15" nb to pak vypadá trochu jinak.
Pokusím se dělat více malých souborů, když už vím jak je dávat dohromady, aspoň se mi budou lépe psát komentáře. Díky.
jsk
Tiskni
Sdílej: