Na YouTube byly publikovány videozáznamy přednášek a na Flickru fotografie z konference EuroPython 2026.
Byl vydán Debian 13.7, tj. sedmá opravná verze Debianu 13 s kódovým názvem Trixie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Jiří Eischmann se v příspěvku Fiasko jménem W Social na svém blogu věnuje evropské sociální síti W: "W Social je příkladem toho, že se problémy sociální sítí nedají řešit od exekutivního stolu. Když na začátku tohoto roku v Davosu oznámili vznik nové sociální sítě W Social, politici se mohli přetrhnout ve chvalozpěvech. Konečně evropská sociální síť a ještě s ověřením identity. … Jak se ukázalo, když v Davosu W Social oznamovali, neměli kromě
… více »Výrobce hardwarových kryptoměnových peněženek Trezor upozorňuje na bezpečnostní incident u společnosti Brevo, kterou využívá k odesílání newsletterů. Útočník na e-mailové adresy odeslal phishingový e-mail.
Clement "Clem" Lefebvre publikoval souhrn dění v Linux Mintu za srpen 2026. Aplikace XApp mají vlastní webovou stránku xapp-project.org. Představena byl čtečka EPUB s názvem Xepub a kalendář Clockenstein.
Byla vydána nová verze 3.2.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.
Bylo vydáno Ubuntu 24.04.5 LTS, tj. páté opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na poznámkách k vydání.
Švýcarsko testuje přechod z Microsoft 365 na FOSS, konkrétně balík openDesk (Wikipedie) od německé státní společnosti ZenDiS (Wikipedie), s cílem posílit digitální suverenitu.
V italském městě Pordenone probíhá LibreOffice Conference 2026. Zúčastnit se lze i online.
Svobodný (GPLv3) šachový engine Stockfish (Wikipedie) byl vydán ve verzi 19 (𝕏). Přehled novinek v příspěvku na blogu. Stockfish 19 je o 44 Elo silnější než Stockfish 18.
Podobně jako TeX, i Common Lisp má mechanismus pro modifikování parseru (ve smyslu lexikální analýzy) svých programů. Doteď jsem to k ničemu nepotřeboval, ale dnes se to hodilo - překvapilo mne, jak jednoduché bylo pomocí modifikace parseru vytvořit parser pro konfigurační soubor v na první pohled odlišném formátu
Soubor, který jsem chtěl parsovat, měl podobný formát jako třeba /etc/lvm/lvm.conf nebo /etc/logrotate.conf: komentářové řádky uvozené #, informace seskupené pomocí { }, řetězce v uvozovkách.
Abych byl schopen soubor načíst pomocí funkce read, potřeboval jsem tedy zejména nadefinovat chování { a #:
;;; Nemodifikujeme přímo to, co používá lisp, ale separátní kopii
(defparameter *conf-readtable* (copy-readtable)
"Definice parsování pro konfigurační soubory")
; # se bude chovat stejně jako ;
(set-macro-character #\# (get-macro-character #\;)
nil *conf-readtable*)
; { } bude načítat list
(set-macro-character #\{
(lambda (stream char)
(read-delimited-list #\} stream t))
t *conf-readtable*)
Toť vše. Nyní už lze použít běžné prostředky pro načtení souboru - pro jednoduchost třeba s makry balíku series:
(let ((*readtable* *conf-readtable*)) ; bude se používat nová tabulka (collect (scan-file #P "/etc/lvm/lvm.conf"))) => (DEVICES (DIR = "/dev" SCAN = [ "/dev" ] FILTER = [ "r|/dev/cdrom|" ] CACHE = "/etc/lvm/.cache" WRITE_CACHE_STATE = 1 SYSFS_SCAN = 1 MD_COMPONENT_DETECTION = 1) LOG (VERBOSE = 0 SYSLOG = 1 OVERWRITE = 0 LEVEL = 0 INDENT = 1 COMMAND_NAMES = 0 PREFIX = " ") BACKUP (BACKUP = 1 BACKUP_DIR = "/etc/lvm/backup" ARCHIVE = 1 ARCHIVE_DIR = "/etc/lvm/archive" RETAIN_MIN = 10 RETAIN_DAYS = 30) SHELL (HISTORY_SIZE = 100) GLOBAL (UMASK = 77 TEST = 0 ACTIVATION = 1 PROC = "/proc" LOCKING_TYPE = 1 LOCKING_DIR = "/var/lock/lvm") ACTIVATION (MISSING_STRIPE_FILLER = "/dev/ioerror" RESERVED_STACK = 256 RESERVED_MEMORY = 8192 PROCESS_PRIORITY = -18 MIRROR_REGION_SIZE = 512 MIRROR_LOG_FAULT_POLICY = "allocate" MIRROR_DEVICE_FAULT_POLICY = "remove"))Pro hledání konkrétní informace lze pak použít běžné nástroje pro práci se seznamy, což zrovna v Lispu jde docela dobře:
(third ; tag = value ... (member 'proc (getf * 'global))) => "/proc"Samozřejmě, není to dokonalé - pro to co jsem potřeboval jsem ještě musel předefinovat 0, aby byla rozpoznána konvence 0777 (viz umask nakoře) resp 0xffff, a u toho lvm by mohlo být vhodné předefinovat i [, ale je to vcelku přímočaré a zřejmě občas užitečné. A o řád přesnější než grep.
Tiskni
Sdílej:
(Asi jsem snob, ale i na ten lvm.conf bych si radši napsal parser, už kvůli detekci chyb. A pro vlastní aplikace jedině S-expy a READ, proč to komplikovat.
)