Na blogu programovacího jazyka Swift byl publikován příspěvek Psaní aplikací pro GNOME v programovacím jazyce Swift. Používá se Adwaita pro Swift.
egui je GUI knihovna pro programovací jazyk Rust běžící na webu i nativně. Vydána byla verze 0.27.0.
Byla vydána nová verze 6.1 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.13. Thunderbird na verzi 115.9.0.
Linka STOPonline.cz v roce 2023 přijala 3700 hlášení závadného obsahu na internetu, 22 bylo předáno PČR, 23 bylo předáno ISP a 944 závadových domén zobrazujících dětskou nahotu či pornografii bylo nahráno do mezinárodního systému ICCAM, který je spravován asociací INHOPE.
Byla publikována podrobná analýza v upstreamu již opravené bezpečnostní chyby CVE-2024-1086 v Linuxu v nf_tables.
Byla vydána nová verze 4.1 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v obsáhlých poznámkách k vydání.
Úkolníček Taskwarrior (Wikipedie) pro správu úkolů z příkazového řádku byl vydán ve verzi 3.0.0.
Společnost Canva stojící za stejnojmenným webovým grafickým editorem koupila společnost Serif stojící za grafickým editorem Affinity.
Byla vydána betaverze Fedora Linuxu 40, tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 16. dubna. Z novinek (ChangeSet) lze vypíchnout podporu frameworku pro strojové učení PyTorch. Fedora KDE Plasma Desktop přichází s Plasmou 6 a běží nad Waylandem. Fedora Workstation přichází s GNOME 46.
Před měsícem společnost OpenAI představila AI model Sora pro generování realistických videí z textového popisu. Včera zveřejnila 7 videí od umělců, kterým umožnila přístup k tomuto modelu.
lspci
. Ne vždy nalezne člověk tento příkaz v příslušném repozitáři a kompilovat jej ručně bývá na dlouhé lokte,zvláště pro nějakou tu exotičtější architekturu. Ano, většinou má jádro připojené /sys, ale hrabat se v něm ručně taky není příliš user-friendly. Jako rychlou náhražku tu proto mám následující narychlo napsaný skript (závislosti: jádro se sysfs připojené na /sys, /bin/sh, /bin/sed a chcete-li lidsky čitelná jména, pak /usr/bin/host a DNS konektivita):
#!/bin/sh PCIID_DNS=pci.id.ucw.cz HOST_BIN=/usr/bin/host SED_BIN=/bin/sed ( cd /sys/bus/pci/devices/ for ID in * ; do ID_OK=$(echo $ID | $SED_BIN 's/^0000://') VENDOR=$($SED_BIN 's/^0x//' < $ID/vendor ) DEVICE=$($SED_BIN 's/^0x//' < $ID/device ) CLASS=$($SED_BIN 's/^0x//' < $ID/class ) CLASS_H=$(echo $CLASS | $SED_BIN 's/^\(..\)....$/\1/') CLASS_L=$(echo $CLASS | $SED_BIN 's/^..\(..\)..$/\1/') if [ -x "$HOST_BIN" ] && [ "$1" != "-n" ] then VENDOR_HH=$($HOST_BIN -t TXT $VENDOR.$PCIID_DNS) if test "$?" -eq "0" ; then VENDOR_STR=$(echo $VENDOR_HH | $SED_BIN 's/.*descriptive\ text\ \"i=//' | $SED_BIN 's/\"$//') else VENDOR_STR="???" fi DEVICE_HH=$($HOST_BIN -t TXT $DEVICE.$VENDOR.$PCIID_DNS) if test "$?" -eq "0" ; then DEVICE_STR=$(echo $DEVICE_HH| $SED_BIN 's/.*descriptive\ text\ \"i=//' | $SED_BIN 's/\"$//') else DEVICE_STR="???" fi CLASS_HH=$($HOST_BIN -t TXT $CLASS_L.$CLASS_H.c.$PCIID_DNS) if test "$?" -eq "0" ; then CLASS_STR=$(echo $CLASS_HH | $SED_BIN 's/.*descriptive\ text\ \"i=//' | $SED_BIN 's/\"$//') else CLASS_STR="???" fi echo "$ID_OK $CLASS_STR: $VENDOR_STR $DEVICE_STR [$VENDOR:$DEVICE]" else echo "$ID_OK $CLASS_H$CLASS_L $VENDOR:$DEVICE" fi done )
Výstup pak vypadá třeba nějak takto (skoro jako "lspci -nn"):
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub [8086:27a0] 00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller [8086:27a2] 00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller [8086:27a6] 00:1b.0 Audio device: Intel Corporation NM10/ICH7 Family High Definition Audio Controller [8086:27d8] 00:1c.0 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 1 [8086:27d0] 00:1c.1 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 2 [8086:27d2] 00:1c.2 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 3 [8086:27d4] 00:1c.3 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 4 [8086:27d6] 00:1d.0 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #1 [8086:27c8] 00:1d.1 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #2 [8086:27c9] 00:1d.2 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #3 [8086:27ca] 00:1d.3 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #4 [8086:27cb] 00:1d.7 USB controller: Intel Corporation NM10/ICH7 Family USB2 EHCI Controller [8086:27cc] 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] 00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge [8086:27b9] 00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] [8086:27c4] 00:1f.3 SMBus: Intel Corporation NM10/ICH7 Family SMBus Controller [8086:27da] 06:01.0 Ethernet controller: Broadcom Limited BCM4401-B0 100Base-TX [14e4:170c] 06:02.0 Network controller: Qualcomm Atheros AR922X Wireless Network Adapter [168c:0029] 06:04.0 CardBus bridge: ENE Technology Inc CB-712/4 Cardbus Controller [1524:1412] 06:04.1 FLASH memory: ENE Technology Inc ENE PCI Memory Stick Card Reader Controller [1524:0530] 06:04.2 SD Host controller: ENE Technology Inc ENE PCI Secure Digital Card Reader Controller [1524:0550] 06:04.3 FLASH memory: ENE Technology Inc FLASH memory: ENE Technology Inc: [1524:0520] 06:04.4 FLASH memory: ENE Technology Inc SD/MMC Card Reader Controller [1524:0551]
Pokud ovšem v systému nemáme /usr/bin/host (nebo pokud skript spustíme s volbou „-n
“ jako prvním parametrem), vypíše pouze numerická ID, asi takhle (prostřední číslo je „class“):
00:01.0 0604 11ab:6820 00:02.0 0604 11ab:6820 00:03.0 0604 11ab:6820 01:00.0 0280 168c:002e 02:00.0 0280 168c:003c 03:00.0 0200 10ec:8168
Pokud tento výpis uložíme do souboru, můžeme z něj dostat „lidsky čitelný“ výstup pomocí následujícího skriptu (třeba na jiném počítači, které /usr/bin/host nainstalované má...):
#!/bin/sh if test $# -eq 0; then echo "$0 <file>" 1>&2 exit 666 fi PCIID_DNS=pci.id.ucw.cz HOST_BIN=/usr/bin/host SED_BIN=/bin/sed while read line ; do ID=$(echo $line| awk '{print $1}') CLASS=$(echo $line | awk '{print $2}') VENDEV=$(echo $line | awk '{print $3}') VENDOR=$(echo $VENDEV | sed 's/^\(....\):....$/\1/') DEVICE=$(echo $VENDEV | sed 's/^....:\(....\)$/\1/') CLASS_H=$(echo $CLASS | $SED_BIN 's/^\(..\)..$/\1/') CLASS_L=$(echo $CLASS | $SED_BIN 's/^..\(..\)$/\1/') VENDOR_HH=$($HOST_BIN -t TXT $VENDOR.$PCIID_DNS) if test "$?" -eq "0" ; then VENDOR_STR=$(echo $VENDOR_HH | $SED_BIN 's/.*descriptive\ text\ \"i=//' | $SED_BIN 's/\"$//') else VENDOR_STR="???" fi DEVICE_HH=$($HOST_BIN -t TXT $DEVICE.$VENDOR.$PCIID_DNS) if test "$?" -eq "0" ; then DEVICE_STR=$(echo $DEVICE_HH| $SED_BIN 's/.*descriptive\ text\ \"i=//' | $SED_BIN 's/\"$//') else DEVICE_STR="???" fi CLASS_HH=$($HOST_BIN -t TXT $CLASS_L.$CLASS_H.c.$PCIID_DNS) if test "$?" -eq "0" ; then CLASS_STR=$(echo $CLASS_HH | $SED_BIN 's/.*descriptive\ text\ \"i=//' | $SED_BIN 's/\"$//') else CLASS_STR="???" fi echo "$ID $CLASS_STR: $VENDOR_STR $DEVICE_STR [$VENDOR:$DEVICE]" done < $1
A výstup z něj bude vypadat třeba takto:
00:01.0 PCI bridge: Marvell Technology Group Ltd. ??? [11ab:6820] 00:02.0 PCI bridge: Marvell Technology Group Ltd. ??? [11ab:6820] 00:03.0 PCI bridge: Marvell Technology Group Ltd. ??? [11ab:6820] 01:00.0 Network controller: Qualcomm Atheros AR9287 Wireless Network Adapter (PCI-Express) [168c:002e] 02:00.0 Network controller: Qualcomm Atheros QCA986x/988x 802.11ac Wireless Network Adapter [168c:003c] 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168]
Tiskni Sdílej:
/usr/share/misc/pci.ids
, ale existuje i ta možnost pomocí DNS. A jelikož jsem byl línej parsovat ten soubor, použil jsem druhou možnost. Mimochodem, není vůbec náhoda, že ten DNS je v doméně .cz, protože za tím stojí (snad se neurazí, když řeknu) linuxová legenda Martin Mareš .