abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 22:00 | Nasazení Linuxu
Stabilní aktualizace Chrome OS 69 (resp. Chromium OS), konkrétně 69.0.3497.95, přináší mj. podporu linuxových aplikací. Implementována je pomocí virtualizace, a proto je tato funkce také omezena na zařízení s dostatkem paměti a podporou hardwarové akcelerace, tudíž nejsou podporovány chromebooky s 32bitovými architekturami ARM, či Intel Bay Trail (tzn. bez Intel VT-x).
Fluttershy, yay! | Komentářů: 0
včera 21:32 | Zajímavý projekt
Došlo k uvolnění linuxové distribuce CLIP OS, vyvíjené francouzským úřadem pro kybernetickou bezpečnost ANSSI, jako open source. Vznikla za účelem nasazení v úřadech, kde je potřeba omezit přístup k důvěrným datům. Je založená na Gentoo.
Fluttershy, yay! | Komentářů: 0
včera 16:00 | Komerce

Zjistěte více o bezpečné a flexibilní architektuře v cloudu! IBM Cloud poskytuje bezpečné úložiště pro Vaše obchodní data s možností škálovatelnosti a flexibilitou ukládání dat. Zároveň nabízí prostředky pro jejich analýzu, vizualizaci, reporting a podporu rozhodování.

… více »
Fluttershy, yay! | Komentářů: 11
včera 12:22 | Nová verze

V dubnu letošního roku Mozilla představila webový prohlížeč pro rozšířenou a virtuální realitu Firefox Reality (GitHub). V úterý oznámila vydání verze 1.0. Ukázka na YouTube. Firefox Reality je k dispozici pro Viveport, Oculus a Daydream.

Ladislav Hagara | Komentářů: 2
včera 12:00 | Komunita

V srpnu loňského roku společnost Oracle oznámila, že Java EE (Enterprise Edition) bude uvolněna jako open source. O měsíc později bylo rozhodnuto, že tato open source Java EE bude přejmenována a předána Eclipse Foundation. Nové jméno bylo oznámeno v únoru letošního roku. Z Java EE se stala Jakarta EE. Eclipse Foundation včera oznámila dosažení dalšího milníku. Zdrojové kódy aplikačního serveru GlassFish jsou již k dispozici v git repozitářích Eclipse Foundation (GitHub).

Ladislav Hagara | Komentářů: 0
19.9. 23:55 | Komunita

LTS (Long Term Support) podpora Ubuntu 12.04 LTS (Precise Pangolin) skončila po 5 letech od jeho vydání, tj. v dubnu 2017. V březnu 2017 ale Canonical představil placenou ESM (Extended Security Maintenance) podporu, díky které je Ubuntu 12.04 podporováno do dubna 2020. Dnes Canonical potvrdil ESM podporu také pro Ubuntu 14.04 LTS (Trusty Tahr), jehož LTS podpora skončí v dubnu 2019.

Ladislav Hagara | Komentářů: 0
19.9. 15:00 | Nová verze

Byla vydána verze 3.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí HTML, CSS a JavaScriptu Electron (YouTube, GitHub). Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.

Ladislav Hagara | Komentářů: 0
19.9. 14:44 | Nová verze

Po půl roce vývoje od vydání verze 6.0.0 byla vydána verze 7.0.0 překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, clang-tools-extra a LLD.

Ladislav Hagara | Komentářů: 0
19.9. 13:44 | Nová verze

Byla vydána verze 3.0.0 knihovny pro vykreslování grafů v programovacím jazyce Python Matplotlib (Wikipedie, GitHub). Přehled novinek a galerie grafů na stránkách projektu. Zrušena byla podpora Pythonu 2.

Ladislav Hagara | Komentářů: 0
19.9. 00:22 | Komunita

V Norimberku probíhá do pátku ownCloud conference 2018, tj. konference vývojářů a uživatelů open source systému ownCloud (Wikipedie) umožňujícího provoz vlastního cloudového úložiště. Přednášky lze sledovat online. Videozáznamy jsou k dispozici na YouTube. Při této příležitosti byl vydán ownCloud Server 10.0.10. Z novinek lze zdůraznit podporu PHP 7.2. Vydán byl také ownCloud Desktop Client 2.5.0. Vyzkoušet lze online demo ownCloudu.

Ladislav Hagara | Komentářů: 1
Na optické médium (CD, DVD, BD aj.) jsem naposledy vypaloval(a) data před méně než
 (13%)
 (15%)
 (20%)
 (23%)
 (25%)
 (4%)
 (1%)
Celkem 376 hlasů
 Komentářů: 33, poslední 16.9. 11:55
Rozcestník

Filtrujme čtivé texty z Projektu Gutenberg 5

20. 4. 2016 | Karel Kulhavý | Návody | 1995×

V minulém díle jsme viděli, jak i u jednoduchého unixového příkazu může vzniknout nečekaný problém při použití, zcela mimo doménu jeho působnosti. Existuje elegantní prevence takových omylů?

Další možnost prevence je před zpracováním dat vytvořit vědeckou hypotézu o nich (žádný řádek nezačíná mezerou), a tu se pak pomocí experimentu snažit potvrdit nebo vyvrátit. Poslední dvě uvedené metody jsou ale komplexní a komplexitu práce s IT ještě zvyšují.

Tento modelový incident je dle mého názoru pěknou ukázkou jevu, jak komplexní řešení (IT) problému (tužka a papír jsou příliš pomalé, neohrabané při posílání na dálku atd.) zanáší náš život komplexitou. Americký vědec, antropolog Dr. Joseph Tainter, profesor na Department of Environment and Society na Utah State University (vystudoval University of California Berkeley, známou např. OS BSD) tento jev zkoumá. Ve svých videopřednáškách (mirror) na YouTube vysvětluje, jak tato akumulace komplexity nakonec běžně způsobuje pády civilizací, které původně z této komplexity, sloužící k řešení problémů, profitovaly. A že z tohoto hlediska je naše civilizace v úplně typické fázi před kolapsem.

Po odbočce k civilizačnímu nadhledu tento problém vyřešíme přídavným příkazem sed, který mezery na začátku řádku odfiltruje. Stříška značí začátek řádky. Při práci se sed, grep, awk apod. je třeba dávat pozor, že u každého příkazu je jinak, před které tyhle speciální znaky se dávají obrácená lomítka a před které ne, a také že shell ta obrácená lomítka někdy sní a někdy ne. Pokud je sní, musí se dát dvojitě. V našem případě jsme obrácená lomítka naštěstí nepotřebovali vůbec.

sed -e 's/^ //g' clean.txt > clean2.txt

A teď už může přijít zlatý hřeb: jak bývá dle mé zkušenosti typické pro Unix a Linux, s vynaložením neúměrného množství úsilí se nám konečně podařilo udělat jednoduchou věc, na kterou specificky existuje příkaz – odfiltrovat sedmý sloupec ze souboru:

cut -f 7 -d ' ' clean2.txt

4608764
4315118
597079
274
220594
512351
629627
346597
183018
80
328835
60059
427785
871780
3916362
[...]

Na zlatý hřeb už jen pověsíme pár dalších příkazů a objeví se nám statistika. -n říká, že čísla se mají řadit číselně a ne abecedně, 10 je tedy po 2 a ne před ní. uniq je z anglického unique, tedy „jedinečný“ – bere seřazený vstup, kde opakující se vstupy jsou v kuse za sebou, a z těch pustí vždy jen jeden. Přepínač -c ale způsobí, že se k tomu ještě navíc spočítá, kolik jich bylo. Dalšímu sortu řekneme, aby obrátil pořadí pomocí -r. Přepínač -k1 znamená klíč v prvním sloupci, tedy řadíme podle počtu opakování. A head -n 20 je tu proto, aby se nám hezky useklo jen prvních 20 řádek článku.

$ cut -f 7 -d ' ' clean2.txt  |sort -n |uniq -c | sort -nrk1 | head -n 20
     23 11009
     15 12911
     13 21607
     12 12888
     12 12867
      9 1405
      9 12927
      9 12900
      9 12897
      9 12887
      8 21586
      8 12891
      8 12858
      7 12912
      7 12879
      7 12864
      6 59
      6 12906
      6 12905
      6 12890

Teď by se mohlo zdát, že příkaz konečně proběhl, jak jsme chtěli, a nežádané komplexity IT jsme byli ušetřeni. Ale kde! Zdání klame! I zde si vychutnáme další neočekávaný úder z hlubin Tainterovy studijní oblasti. Ale jak budeme vůbec vědět odkud, když vše funguje, jak má? Úder přichází ze strany internacionalizace. Před určitým počtem let byl sen, že počítače budou moci mluvit světovými jazyky, a tak si dnes můžete nastavit, že vám bash bude psát chybové hlášky třeba vietnamsky nebo čínsky:

( for a in $(locale -a|grep -i utf); do LC_ALL="$a" . owhxeddo; done ) 2>&1 | sort | uniq

Pilní čtenáři si mohou příkaz spustit za domácí úkol, ti ostatní se dozví, jak vypadají chybové hlášky ve všemožných jazycích, v příštím díle.

       

Hodnocení: 50 %

        špatnédobré        

Nástroje: Tisk bez diskuse

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

20.4.2016 12:34 Jouda
Rozbalit Rozbalit vše Re: Filtrujme čtivé texty z Projektu Gutenberg 5
Možná tomu správně nerozumím. Opravdu bylo věnováno tolik úsilí, aby byla nalezena složitá náhrada za toto? awk '{ print $7}' ./inputifile.txt | sort -nr | uniq -c

Bojím se, o čem budou další díly, když triviálnímu triviálnímu součtu nad jedním sloupcem spolklo tolik řádek "úvah".
20.4.2016 22:07 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Filtrujme čtivé texty z Projektu Gutenberg 5

Kéž by… To úsilí bylo věnováno tomu, aby autor tím krkolomným postupem dosáhl toho, co by měl zadarmo, kdyby tři díly zpátky místo "-ls" napsal "-printf '%s\n'".

Na druhou stranu, jak s oblibou říká moje tchýně, vychovávat je nejlépe osobním příkladem a nelze-li jinak, pak alespoň odstrašujícím. Takže, děti, tady názorně vidíte, jak to dopadá, když se místo použití vhodných nástrojů budete snažit parsovat výstup určený pro lidského čtenáře. :-)

21.4.2016 10:42 Jouda
Rozbalit Rozbalit vše Re: Filtrujme čtivé texty z Projektu Gutenberg 5
Po přečtení tohoto dílu jsem se tak daleko do minulosti jít neodvážil. Nejspíš se ani neodvážím k otevření dalších budoucích dílů. Je to skoro jako scénář pro seriál TV Nova. :)
Jesus Jimenez avatar 21.4.2016 12:11 Jesus Jimenez | skóre: 28
Rozbalit Rozbalit vše Re: Filtrujme čtivé texty z Projektu Gutenberg 5
Však autor něco podobného zmiňuje sám :)

A teď už může přijít zlatý hřeb: jak bývá dle mé zkušenosti typické pro Unix a Linux, s vynaložením neúměrného množství úsilí se nám konečně podařilo udělat jednoduchou věc, na kterou specificky existuje příkaz – odfiltrovat sedmý sloupec ze souboru

Doaenův zákon průtahů: Čím pomaleji pracuješ, tím méně naděláš chyb. -- Murphy
25.4.2016 14:59 Jouda
Rozbalit Rozbalit vše Re: Filtrujme čtivé texty z Projektu Gutenberg 5
Ve mě to spíš budí dojem, že neumí používat nástroje k tomu, k čemu jsou. Ono to možná není typické pro UX a LX. Spíš pro autora. :D
kyknos avatar 25.4.2016 17:37 kyknos | skóre: 18 | blog: Quid novi? | Ranša Rosa
Rozbalit Rozbalit vše Re: Filtrujme čtivé texty z Projektu Gutenberg 5
jasne, clock je hrozna lama :D
So the Nationalists and the Socialists have the same policy on Brexit. They should get together and form a...
21.4.2016 13:52 kolemjdouci
Rozbalit Rozbalit vše Re: Filtrujme čtivé texty z Projektu Gutenberg 5
Ja myslim, ze se v dalsich dilech objevi Vesmirni lide. To z toho odstavce o komplexite, ktery konci varovanim pred kolapsem, jasne cisi ...
21.4.2016 06:41 x
Rozbalit Rozbalit vše Re: Filtrujme čtivé texty z Projektu Gutenberg 5
Tenhle seriál žeru! Esence unixového stylu humoru. Clock ve své životní formě. Worse is better!
22.4.2016 11:56 koroptev
Rozbalit Rozbalit vše Re: Filtrujme čtivé texty z Projektu Gutenberg 5
nastavuje zrcadlo, dekonstruuje stereotypy!

Založit nové vláknoNahoru

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.