Daniel Vetter se v příspěvku Upstream Graphics: Too Little, Too Late (Grafika v upstreamu: příliš málo, příliš pozdě) na svém blogu věnuje podpoře a problémům grafiky v upstream Linuxu. Jedná se o souhrn jeho stejnojmenné přednášky na Linux Plumbers Conference (videozáznam, pdf).
Na YouTube lze zhlédnout čtrnáctiminutový dokument televize CNBC s názvem The Rise Of Open-Source Software (Vzestup open source softwaru).
Po roce od vydání verze 6.0 byla vydána nová major verze 6.1 multiplatformního virtualizačního nástroje Oracle VM VirtualBox. Přehled novinek v Changelogu. Nově lze například importovat virtuální počítač z infrastruktury Oracle Cloud.
GOG nabízí klasickou cRPG Wasteland 2 do pátku 13. prosince 2019 zdarma. Hra je k dispozici pro Linux (oficiálně Ubuntu LTS) a bez DRM. Stojí za ní inXile Entertainment, navazující na Interplay, od nějž pochází původní Wasteland (1988) či Fallout.
osxfuse, implementace FUSE (Filesystem in Userspace) na macOS, již není open source. Autor se prostě rozhodl zdrojové kódy pod licencí BSD dál nešířit. Diskuse na Hacker News.
Na Humble Bundle běží akce Humble Paradox Management Bundle. Počítačové hry v balíčcích za 1 dolar, 7,91 dolaru a 18 dolarů běží také na Linuxu. Jedná se o série Prison Architect, Cities in Motion, Cities: Skylines a Surviving Mars.
Byl vydán Git ve verzích 2.24.1, 2.23.1, 2.22.2, 2.21.1, 2.20.2, 2.19.3, 2.18.2, 2.17.3, 2.16.6, 2.15.4 a 2.14.6. Opraveno je 9 bezpečnostních chyb: CVE-2019-1348, CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, CVE-2019-1352, CVE-2019-1353, CVE-2019-1354, CVE-2019-1387 a CVE-2019-19604, viz například Ubuntu USN-4220-1.
Google Chrome 79 byl prohlášen za stabilní (YouTube). Nejnovější stabilní verze 79.0.3945.79 tohoto webového prohlížeče přináší řadu oprav a vylepšení. Vylepšeny byly také nástroje pro vývojáře. Opraveno bylo 51 bezpečnostních chyb. Za nalezení nejvážnější z nich bylo vyplaceno 20 tisíc dolarů.
V září Microsoft potvrdil, že portuje klienta Microsoft Teams na Linux. Dnes byla vydána první veřejná verze k testování. Ke stažení jsou balíčky .deb a .rpm. Microsoft Teams je firemní platforma, která umožňuje textovou komunikaci, video hovory, datové úložiště pro ukládání souborů (na těchto souborech lze také spolupracovat) a integraci dalších aplikací do tohoto prostředí. Služba je integrována v předplatném Office 365.
Společnost PFU (divize Fujitsu) představila (prezentace v japonštině) novou generaci Happy Hacking Keyboard, řady klávesnic původně navržené Eiiči Wadou pro unixové systémy začátkem 90. let – bez nutnosti přidání dalších fyzických kláves. Nové modely (Hybrid, Hybrid Type-S a Classic) navazují na řadu Pro 2, stále je tedy vyrábí Topre a používají příslušné kapacitní spínače, všechny se ale nově připojují přes USB-C a „Hybrid“ navíc podporuje i Bluetooth.
Prajem všetkým krásny deň! Minule som riešil jeden skript v bashi a narazil som na veľmi zvláštne správanie. Vyriešil som to síce (v zmysle, že skript funguje), ale nechápem... A pevne verím, že tunajšia komunita mi ozrejmí, čo sa to vlastne deje.
V skripte som chcel zmazať obsah adresára s jednou výnimkou - teda zmazať všetko, okrem jedného podadresára. Cez rm by to mohlo byť takto:
rm -rf adresar/!(podadresar)
Keďže sa však jedná o "extended pattern matching operator" (nechce sa mi to prekladať ), pri niektorých distrách budeme musieť toto najprv povoliť, čiže:
shopt -s extglob rm -rf adresar/!(podadresar)
Potiaľ OK. Keď si však toto celé vrazím do podmienky, napríklad:
if shopt -s extglob rm -rf adresar/!(podadresar) then echo OK fi
Alebo aj takto:
shopt -s extglob && rm -rf adresar/!(podadresar)
Tak nám to skončí na chybe syntaxe. A to dokonca aj na distrách, kde je extglob zapnutý by default. Skript zbehne až vtedy, keď shopt vyhodím mimo podmienky, čiže:
shopt -s extglob if rm -rf adresar/!(podadresar) then echo OK fi
Jasne. Takéto niečo sa dá riešiť lepšie cez find, aspoň to bude fungovať aj v iných interpretroch, ale to je jedno - otázka znie - prečo sa to takto správa?
Tiskni
Sdílej:
Vypadá to, že při vypnutém extglob
se shell nejdřív konstrukci s vykřičníkem interpretovat jako "event" (viz history expansion), takže je syntakticky špatně a žádný příkaz (tj. ani shopt
) se neprovede.
Že se tak chová i ta první varianta, může možná vypadat trochu překvapivě, ale všimněte si, že když to budete takhle po řádcích zadávat interaktivně, shell stejně nezačne žádný příkaz provádět, dokud nemá podmíněný příkaz kompletní.
Zajímavější je tohle:
~> shopt -s extglob ~> if shopt -u extglob && echo dir/!(dir2); then echo OK; fi dir/!(dir2) OK
Tady se díky zapnutému extglob obejde history expansion, ale než se skutečně provede druhý podpříkaz, shopt
mezitím extglob
vypne, takže se konstrukce neexpanduje.
Aha. Čize interpreter skôr než začne vykonávať príkazy za if
skontroluje syntax a vyhodí chybu skôr, ako čokoľvek vykoná. Tomu nasvedčuje aj Váš názorný príklad. Vďaka.
Prečo ale vyhadzuje chybu syntaxe a nie klasické event not found
? Tiež som si teraz všimol, že interaktívne mám extglob
zapnutý by default (Archlinux - nepamätám, že by som to zapínal, čiže predpokladám, že default), ale v skripte je to vypnuté?
Prečo ale vyhadzuje chybu syntaxe a nie klasické event not found?
Aha, neuvědomil jsem si, že to pouštíte jako script. Neinteraktivní shell nezná history expansion, takže tím se z toho stane prostá syntaktická chyba.
Tiež som si teraz všimol, že interaktívne mám extglob zapnutý by default (Archlinux - nepamätám, že by som to zapínal, čiže predpokladám, že default), ale v skripte je to vypnuté?
Pravděpodobně to "defaultně zapnuté" znamená, že se to zapíná někde v ~/.bashrc
nebo /etc/bash.bashrc
, který neinteraktivní shell nenačítá. (A shell options se nedědí.)