V pátek 6. a sobotu 7. března proběhl v pražském sídle Nejvyššího kontrolního úřadu (NKÚ) Hackathon veřejné správy 7.1. Publikovány byly vytvořené aplikace. V kategorii projektů rozvíjených z krajského kola zvítězil tým „Mackokládi“. Čtyři středoškoláci ze Dvora Králové uspěli s aplikací KompaZ. Jde o digitálního průvodce, který pomůže s rychlou a srozumitelnou orientací v životních i krizových situacích „krok za krokem“. Aplikace
… více »QGIS, svobodný desktopový GIS, byl vydán v nové hlavní verzi 4.0. Změny zahrnují několik nových analytických a editačních funkcí, rozšíření podpory 3D, více možností úprav uživatelského rozhraní či mnoho dalších zlepšení použitelnosti. Řada 3.44 má aktualizace plánovány do září.
Dan Blanchard vydal knihovnu pro Python chardet v nové verzi 7.0.0. S novou verzí byla knihovna přelicencována z LGPL na MIT. Souhlasili s tím všichni přispěvatelé? Dan Blanchard souhlasy vůbec neřešil. Zaúkoloval umělou inteligenci (Claude), aby knihovnu zcela přepsala a výslovně jí nařídil, aby nepoužila žádný LGPL kód. Dan Blanchard tvrdí, že se jedná o clean room design. Protistrana argumentuje, že umělá inteligence byla trénována
… více »Andy Nguyen si na svou herní konzoli PlayStation 5 (PS5) pomocí exploitu Byepervisor nainstaloval Linux (Ubuntu). V Linuxu si spustil Steam a PS5 tak proměnil v Steam Machine. Na PS5 může hrát hry, které jsou vydané pouze pro PC a jsou na Steamu [Tom's Hardware].
Správce sbírky fotografií digiKam byl vydán ve verzi 9.0.0. Jedná se o větší vydání provázené aktualizacemi knihoven. Mnoho dílčích změn se vedle oprav chyb týká uživatelského rozhraní, mj. editace metadat.
Byla vydána verze 2026 distribuce programu pro počítačovou sazbu TeX s názvem TeX Live (Wikipedie). Přehled novinek v oficiální dokumentaci.
Jihokorejská Národní daňová služba (NTS) zabavila kryptoměnu Pre-retogeum (PRTG) v hodnotě 5,6 milionu dolarů. Pochlubila se v tiskové zprávě, do které vložila fotografii zabavených USB flash disků s kryptoměnovými peněženkami spolu se souvisejícími ručně napsanými mnemotechnickými obnovovacími frázemi. Krátce na to byla kryptoměna v hodnotě 4,8 milionu dolarů odcizena. O několik hodin ale vrácena, jelikož PRTG je extrémně nelikvidní, s denním objemem obchodování kolem 332 dolarů a zalistováním na jediné burze, MEXC [Bitcoin.com].
Komunita kolem Linuxu From Scratch (LFS) vydala nové verze knih s návody na instalaci vlastního linuxového systému ze zdrojových kódů Linux From Scratch 13.0 a Beyond Linux From Scratch 13.0. Pouze se systemd.
Byla vydána nová stabilní major verze 25.12 linuxové distribuce primárně určené pro routery a vestavěné systémy OpenWrt (Wikipedie). Jedná se o nástupce předchozí major verze 24.10. Přehled novinek v poznámkách k vydání. Podporováno je více než 2200 zařízení.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za únor (YouTube). Odstraněn byl veškerý kód napsaný ve Swiftu. JavaScriptový engine LibJS byl reimplementován v Rustu.
Má-li být graf statický, je jednou z možností nastartovat nějaký kancelářský balík a uložit ručně vytvořený graf jako obrázek. Pro tvorbu dynamických grafů běžná distribuce Linuxu zdánlivě nic rozumného nenabízí. Pro jednodušší grafy lze ale celkem snadno použít program gnuplot, který je běžnou součástí různých distribucí už dlouhá léta.
gnuplot je určený spíše na vizualizaci vědeckých dat. Jenže co si budeme vykládat - veškerá matematická věda nakonec stejně skončí u počítání peněz. Použitelnost programu gnuplot je pro grafy ekonomického zaměření ale poněkud omezená. Nos budou nad výstupy programu gnuplot ohrnovat především lidé s otiskem telefonního sluchátka na uchu - obchodníci, marketingoví specialisté a jim podobná sorta podnikové fauny. Grafy z gnuplot jim budou připadat málo barevné, málo koláčové, málo interaktivní, málo jásavé a celkově hnusné. Ovšem pomineme-li nároky této specifické kategorie lidí, dá se gnuplot použít i na velikou spoustu ekonomických a statistických grafů.
Typické použití programu gnuplot můžete vidět na příkladu grafu charakteristiky solárního článku.

gnuplot nastartujte nejlépe v X-terminálu příkazem
gnuplot. Dostanete se na povelovou řádku - i když ta není
zdaleka tak komfortní jako třeba povelová řádka bash, můžete v ní
procházet příkazy v historii a editovat je (marně ale budete toužit po
příkazové řádce ve stylu svého oblíbeného editoru vi). Můžete hned
vyzkoušet první graf:
plot sin(x);
|
gnuplot si volí meze grafu podle vlastního uvážení. Pokud vám nevyhovují meze vybrané programem, můžete zadat hranice grafu vlastní:
plot [-3.14:3.14] sin(x);
|
Hranice lze zadat jak pro vodorovnou, tak pro svislou osu. Hranice se
zadávají v hranatých závorkách hned za příkazem plot, ještě před
zadáním vykreslovaných funkcí. První zadaná hranice platí pro
vodorovnou osu - v našem příkladu se zobrazuje sinusovka od -3.14 do
+3.14. Další v hranatých závorkách zadaná hranice platí pro osu
svislou.
gnuplot umí pracovat i s proměnnými a funkcemi. Složitější funkce lze naprogramovat předem a použít později například na výpočty, iterace a jiné různé psí kusy:
pi=3.1415926535;
|
Spíše než funkce nás bude zajímat zobrazování dat z externích zdrojů.
Vytvořte si textový soubor se jménem x.data s následujícím (či
podobným obsahem):
1 40 5
|
V gnuplot si pak vyzkoušejte několik jednoduchých grafů:
plot "x.data";
|
První příkaz vykreslí do grafu několik puntíků - i když je v tomto
případě jednoduché vysledovat podle dat, co gnuplot kreslí, ve
složitějších grafech to není tak snadné. Parametrem using můžete
lépe specifikovat, jak má gnuplot datový soubor interpretovat.
Příkaz plot s parametrem using 1 nakreslí prostý
výčet hodnot z prvního sloupce souboru, plot s parametrem using
2 nakreslí výčet hodnot z druhého sloupce souboru. Parametr
using 1:2 použije první sloupec jako vodorovnou
souřadnici a druhý sloupec jako svislou souřadnici.
Nakonec jsem si nechal trochu složitější příklad grafu, který lze využít například pro zobrazení průměrů, související standardní odchylky a podobných statistických záležitostí:
plot "x.data" using 1:2 with lines, "x.data" using 1:2:3 with errorbars;
|
Příkazem plot nemusíte vykreslovat do grafu pouze jednu hodnotu - v
tomto případě se nakreslí normální čárový graf a do každého zadaného
bodu se nakreslí ještě svislá čára, jejíž délka je určená třetím
zadaným parametrem (using 1:2:3).
Stejně dobře, jako funguje gnuplot v interaktivní režimu, může pracovat v režimu dávkovém, a graf vykreslovat místo na obrazovku přímo ve formátu například GIF na standardní výstup. Toho se dá využít a přesměrovat výstup přes http server přímo na http klienta.
Starší verze programu gnuplot umějí pracovat ještě s formátem GIF, novější verze (určitě verze 4) už formát GIF nepodporují a alespoň podle manuálu při požadavku o formát GIF generují místo toho formát PNG.
Bohužel starší verze programu gnuplot neumožňují při generování PNG formátu zadat ani tak základní věc, jako je požadovaná velikost grafu. Vzhledem k tomu a vzhledem k velkému množství historických grafů používám vesele formát GIF ve verzi 3.7 a možnosti, které mi nabízejí novější verze, jsem s lehkým srdcem oželel. Ve verzi 4 se podpora PNG formátu něco málo změnila a použitelným se tak stal i formát PNG. Protože ale nemám nikde nainstalovanou verzi 4, použiji v příkladech raději formát GIF a nebudu riskovat, že něco z příkladů nebude fungovat, protože to nebylo kde vyzkoušet.
Pro volání programu gnuplot si vytvořte jednoduchý skript v PHP. Skriptu se v proměnné TEXT posílá jediný parametr - jméno souboru, ve kterém je uložený příkazový soubor pro gnuplot.
<?
Header("Content-type: image/gif");
Header("Pragma: no-cache");
Header("Cache-Control: no-cache");
Header("Expires: ".GMDate("D, d M Y H:i:s")." GMT");
$TEXT = basename ($TEXT);
$TEXT = "/tmp/".$TEXT;
# Nelze použít funkci PassThru() - nebafruje a je pomalá.
$fd = popen("gnuplot $TEXT", "r");
while ( ($X = fread($fd, 8192)) ) {
print $X;
}
fclose ($fd);
# Datové a příkazové soubory NEMAZAT, jinak nelze
# graf vytisknout v MSIE!
?>
|
Jako ukázkový příklad jsem zvolil Z-graf pro sledování měsíčního plánu výroby. Data i s příkazy pro tvorbu tabulek jsou přibalena v souboru gnuplot.sql. Předpokládám databázi PostgreSQL.

Celý graf byl vytvořený následujícím skriptem. Kvůli jednoduchosti není ve skriptu prakticky žádné ošetření chyb. Snažil jsem se do skriptu napsat něco málo komentářů, takže by vám jeho pochopení nemuselo dělat větší potíže.
<!DOCTYPE HTML
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<?
# Připojení k databázi
$DB = pg_connect ("host=dbserver dbname=pokusy");
# Dotaz vyhledávající potřebná data v tabulkách.
$ri = pg_exec ($DB, "
set datestyle to 'german';
select
to_char(datum, 'DD.MM.') as datum,
vyroba as denni_vyroba,
extract('dow' from datum) as dow,
int4(datum - '1.4.2004'::date + 1) as den,
(select sum(vyroba)
from pk_vyroba v2
where v2.datum>=v1.datum-'30 days'::interval
and v2.datum<=v1.datum
) as klouzavy_soucet,
(select sum(vyroba)
from pk_vyroba v3
where v3.datum<=v1.datum
and v3.datum>='1.4.2004'::date) as vyrobeno
from pk_vyroba v1
where v1.datum>='1.4.2004'
order by datum;
");
# Data máme v paměti - uložíme si je do dočasného souboru,
# ze kterého je pak bude lovit gnuplot.
$Fd1 = tempnam ("/tmp", "graf.dt.");
$fd = fopen ($Fd1, "w");
for ($i=0; $i<pg_numrows($ri); $i++) {
$data = pg_fetch_object ($ri, $i);
# Do datového souboru zapíšeme všechny hodnoty.
fwrite ($fd, $data->den." ".
$data->denni_vyroba." ".
$data->vyrobeno." ".
$data->klouzavy_soucet."\n");
}
fclose ($fd);
# Nyní vytvoříme soubor s příkazy pro gnuplot
$Fprg = tempnam ("/tmp", "graf.pr.");
$fd = fopen ($Fprg, "w");
fwrite ($fd, "
set terminal gif transparent size 480, 340 \\
xffffff x000000 xa0a0a0 x909000 x000000 xaa9090
set output;
set grid;
set key left reverse;
set bmargin 4; set xtics rotate (\\
");
# Popisky na vodorovné ose - kreslí se pouze někde.
# V příkazovém souboru vypadají popisky asi takto:
# set xtics rotate (\
# "1.4.2004" 1,\
# "2.4.2004" 2,\
# "3.4.2004" 3);
for ($ODDELOVAC="", $i=0; $i<pg_numrows($ri); $i++) {
$data = pg_fetch_object($ri, $i);
if ($data->dow==0 || $data->dow==6) continue;
fwrite ($fd, "$ODDELOVAC\"$data->datum\" $data->den");
$ODDELOVAC=",\\\n";
}
fwrite ($fd, ");");
# Nalezení plánovaného objemu výroby v databázi
$ri = pg_exec ($DB, "select
int4(datum-'1.4.2004'::date+1) as den, plan
from pk_plan;");
$data = pg_fetch_object ($ri, 0);
fwrite ($fd, "plot [1:30] \
\"$Fd1\" using 1:2 title \"Denní výroba\" with linespoints,\
\"$Fd1\" using 1:3 title \"Vyrobeno\" with linespoints,\
\"$Fd1\" using 1:4 title \"Klouzavý úhrn\" with linespoints,\
\"-\" using 1:2 title \"Plán\" with lines;
0 0
$data->den $data->plan
e
");
fclose ($fd);
print "<img src=\"graf.php3?TEXT=".URLencode($Fprg)."\">\n";
pg_close($DB)
?>
</body>
</html>
|
Ve druhém a posledním dílu článku naleznete několik šikovných fíglů, které vám mimo jiné pomohou graf vybarvit, opatřit popiskami atp.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Mam totiz takovy silny pocit, ze patent na LZW, kterym se Unisys zastitoval, uz pred par mesici vyprsel.
A Unisys vyzadoval platby za kazde pouziti softwaru, jehoz autori neodvedli licencni poplatky. Takze se to teoreticky tykalo vsech Open Source projektu vcetne GIMPu.
gnuplot> set term png size 400,300 Terminal type set to 'png' Options are 'nocrop medium size 400,300 ' gnuplot>
Gnuplot používáme k prezentaci dat Hydronetu. Ovšem grafy se teď nekreslí na požádání uživatele, gnuplot je volaný co pár minut z crona. Způsob popsaný v článku je určitě lepší, protože si uživatel bude moci navolit, jak má graf vypadat. Díky za článek, to se bude hodit!
Rko je IMHO fakt o dost lepší, než GNU Plot ... možnosti formátování grafů mi přijdou jako neskutečné. Umí export do kde čeho a podle mě se dá i jaksi "lépe uchopit", než třeba GNU Plot. Nezanedbatelnou možností je možnost dělání statistik. Je fakt, že si ale žádá o něco více systémových prosředků...
Zajímal by mě názor někoho dalšího, kdo má s objema produkty zkušenosti...
Jáchym