Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie).
V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 12.0 (Mastodon). Forgejo je fork Gitei.
Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 155 (pdf) a Hello World 27 (pdf).
Hyprland, tj. kompozitor pro Wayland zaměřený na dláždění okny a zároveň grafické efekty, byl vydán ve verzi 0.50.0. Podrobný přehled novinek na GitHubu.
Patrick Volkerding oznámil před dvaatřiceti lety vydání Slackware Linuxu 1.00. Slackware Linux byl tenkrát k dispozici na 3,5 palcových disketách. Základní systém byl na 13 disketách. Kdo chtěl grafiku, potřeboval dalších 11 disket. Slackware Linux 1.00 byl postaven na Linuxu .99pl11 Alpha, libc 4.4.1, g++ 2.4.5 a XFree86 1.3.
Ministerstvo pro místní rozvoj (MMR) jako první orgán státní správy v Česku spustilo takzvaný „bug bounty“ program pro odhalování bezpečnostních rizik a zranitelných míst ve svých informačních systémech. Za nalezení kritické zranitelnosti nabízí veřejnosti odměnu 1000 eur, v případě vysoké závažnosti je to 500 eur. Program se inspiruje přístupy běžnými v komerčním sektoru nebo ve veřejné sféře v zahraničí.
Vláda dne 16. července 2025 schválila návrh nového jednotného vizuálního stylu státní správy. Vytvořilo jej na základě veřejné soutěže studio Najbrt. Náklady na přípravu návrhu a metodiky činily tři miliony korun. Modernizovaný dvouocasý lev vychází z malého státního znaku. Vizuální styl doprovází originální písmo Czechia Sans.
Vyhledávač DuckDuckGo je podle webu DownDetector od 2:15 SELČ nedostupný. Opět fungovat začal na několik minut zhruba v 15:15. Další služby nesouvisející přímo s vyhledáváním, jako mapy a AI asistent jsou dostupné. Pro některé dotazy během výpadku stále funguje zobrazování například textu z Wikipedie.
Více než 600 aplikací postavených na PHP frameworku Laravel je zranitelných vůči vzdálenému spuštění libovolného kódu. Útočníci mohou zneužít veřejně uniklé konfigurační klíče APP_KEY (např. z GitHubu). Z více než 260 000 APP_KEY získaných z GitHubu bylo ověřeno, že přes 600 aplikací je zranitelných. Zhruba 63 % úniků pochází z .env souborů, které často obsahují i další citlivé údaje (např. přístupové údaje k databázím nebo cloudovým službám).
Open source modální textový editor Helix, inspirovaný editory Vim, Neovim či Kakoune, byl vydán ve verzi 25.07. Přehled novinek se záznamy terminálových sezení v asciinema v oznámení na webu. Detailně v CHANGELOGu na GitHubu.
Conky je výborný nástroj na monitorování svého operačního systému nebo čehokoliv jiného. Dnes si ukážeme, jak do Conky přidat výpis kurzu měn.
Nejprve si vytvoříme pythonovský skript, který načte kurzy měn z webu ČNB a vrátí výstup, kterému bude Conky rozumět.
#!/usr/bin/env python
import urllib
countries = ('EMU', 'USA')
url = 'http://www.cnb.cz/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.txt'
fp = urllib.urlopen(url)
lines = fp.readlines()
fp.close()
for line in lines:
parts = line.split('|')
if parts[0] in countries:
print parts[3] + ': ${alignr}' + parts[4].rstrip()
Tento skript uložíme například do souboru /usr/bin/conky-currency a dáme mu právo spuštění pro všechny.
Nyní již pouze změníme konfiguraci Conky, aby informace ze skriptu použilo. Na konec souboru ~/.conkyrc vložíme tyto řádky:
CURRENCIES ${hr 2}
${execpi 36000 conky-currency}
Připojený obrázek obsahuje také úpravy z tohoto návodu.
Skript z pohledu výkonnosti a paměťové náročnosti rozhodně není ideální. Je napsán tak, aby byl snadno čitelný.
Tiskni
Sdílej:
Stacilo by to stahnout jednou denne zhruba ve 14.45 jindy kurzy CNB neaktualizuje, nemluve o tom ze treba o videndu se nemusi zmenit vubec ;)
Není
...jednou denne zhruba ve 14.45 jindy kurzy CNB neaktualizuje...
a
Mozna by bylo dokonce lepsi snizit to na 5 hodin, aby uzivatel nemel moc stare informace.
v rozporu?
preco sa to neriesi cronom? som lama, iba sa pytam.
Copak? Obchoduješ na burze nebo jsi jenom posedlý monitorováním
http://www.google.com/finance?q=EURCZK případně třeba
http://www.google.com/finance?q=USDCZK mi plně vyhovuje.
Prosim, bylo by mozne zverejnit kompletni konfigurak Conky z toho obrazku? Diky...
use_xft yes
xftfont Liberation Sans:size=8
update_interval 1
total_run_times 0
double_buffer yes
text_buffer_size 1024
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
minimum_size 185 0
maximum_width 185
default_color white
draw_shades no
color0 white
color1 729FCF
color2 white
alignment top_right
gap_x 25
gap_y 50
no_buffers no
net_avg_samples 2
override_utf8_locale yes
TEXT
SYSTEM ${hr 2}
${voffset 2}${color0}${font OpenLogos:size=16}u${font}${color} Kernel: ${alignr}${color2}${kernel}${color}
${color0}${font StyleBats:size=16}A${font}${color} CPU1: ${color1}${cpu cpu1}%${color} ${alignr}${color2}${cpubar cpu1 8,60}${color}
${color0}${font StyleBats:size=16}A${font}${color} CPU2: ${color1}${cpu cpu2}%${color} ${alignr}${color2}${cpubar cpu2 8,60}${color}
${color0}${font StyleBats:size=16}g${font}${color} RAM: ${color1}$memperc%${color} ${alignr}${color2}${membar 8,60}${color}
${color0}${font StyleBats:size=16}j${font}${color} SWAP: ${color1}$swapperc%${color} ${alignr}${color2}${swapbar 8,60}${color}
${color0}${font StyleBats:size=16}q${font}${color} Uptime: ${alignr}${color2}${uptime}${color}
DATE ${hr 2}
${alignc 45}${color2}${font Arial Black:size=30}${time %H:%M}${font}${color}
${alignc}${time %A %d %Y}
HD ${hr 2}
${execp ~/.scripts/hd_default.py}
NETWORK ${hr 2}
${if_existing /proc/net/route wlan0}
${voffset -6}${color0}${font PizzaDude Bullets:size=14}O${font}${color} Up: ${color1}${upspeed wlan0}${color} kb/s ${alignr}${upspeedgraph wlan0 8,60 346Rhythmbox not running}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}U${font}${color} Down: ${color1}${downspeed wlan0}${color} kb/s ${alignr}${downspeedgraph wlan0 8,60 346Rhythmbox not running}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}N${font}${color} Upload: ${alignr}${totalup wlan0}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}T${font}${color} Download: ${alignr}${totaldown wlan0}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}Z${font}${color} Signal: ${wireless_link_qual wlan0}% ${alignr}${color2}${wireless_link_bar 8,60 wlan0}${color}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}a${font}${color} Local ip: ${alignr}${color2}${addr wlan0}${color}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}b${font}${color} Public ip: ${alignr}${color2}${execi 1 ~/.scripts/ip.sh}${color}
${else}${if_existing /proc/net/route eth0}
${voffset -6}${color0}${font PizzaDude Bullets:size=14}O${font}${color} Up: ${color1}${upspeed eth0}${color} kb/s ${alignr}${upspeedgraph eth0 8,60 346Rhythmbox not running}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}U${font}${color} Down: ${color1}${downspeed eth0}${color} kb/s ${alignr}${downspeedgraph eth0 8,60 346Rhythmbox not running}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}N${font}${color} Upload: ${alignr}${color2}${totalup eth0}${color}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}T${font}${color} Download: ${alignr}${color2}${totaldown eth0}${color}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}a${font}${color} Local ip: ${alignr}${color2}${addr eth0}${color}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}b${font}${color} Public ip: ${alignr}${color2}${execi 1 ~/.scripts/ip.sh}${color}
${endif}${else}${if_existing /proc/net/route ppp0}
${voffset -6}${color0}${font PizzaDude Bullets:size=14}O${font}${color} Up: ${color1}${upspeed ppp0}${color} kb/s ${alignr}${upspeedgraph ppp0 8,60 346Rhythmbox not running}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}U${font}${color} Down: ${color1}${downspeed ppp0}${color} kb/s ${alignr}${downspeedgraph ppp0 8,60 346Rhythmbox not running}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}N${font}${color} Upload: ${alignr}${color2}${totalup ppp0}${color}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}T${font}${color} Download: ${alignr}${color2}${totaldown ppp0}${color}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}a${font}${color} Local ip: ${alignr}${color2}${addr ppp0}${color}
${endif}${else}${voffset 4}${color0}${font PizzaDude Bullets:size=12}4${font}${color} Network Unavailable
${endif}
WEATHER ${hr 2}
${if_existing /proc/net/route wlan0}
${execpi 10800 conkyForecast -t ~/.scripts/conkyForecast.template}
${else}${if_existing /proc/net/route eth0}
${execpi 10800 conkyForecast -t ~/.scripts/conkyForecast.template}
${endif}${else}${if_existing /proc/net/route ppp0}
${execpi 10800 conkyForecast -t ~/.scripts/conkyForecast.template}
${endif}${else}${voffset 4}${color0}${font PizzaDude Bullets:size=12}4${font}${color} Weather Unavailable${endif}
CURRENCIES ${hr 2}
${execpi 36000 /home/dundee/workspace/python/conky-currency.py}