pondělí 26. prosince 2011

Sedy, lehy, regulární výrazy 1

sed, awk, grep a jiné pěkné cli nástroje pro zpracování textu umožňují použití regulárních výrazů, což jsou takové masky, kterými můžete definovat řetězec, který v textu hledáte. Základy znám, ale každou chvíli objevím něco nového, co mi uniklo, protože zas tak svědomitě jsem to nestudaval. A tak bych chtěl začít seriálek, ve kterém bych si tyto objevy zapisoval.

Tak například dneska jsem se opět připletl k něčemu, co mě donutilo trochu posunout znalosti. Šlo o parsování xml dokumentu pomocí sedu a tím zajímavým je vytípnutí výrazu mezi dvěmi uvozovkami. Vzhledem k tomu, že regulární výrazy jsou od přírody žravé a tak těžko vytípnete řetězec v uvozovkách něčím jako toto: var=".*" , když je na řádku těch uvozených výrazů více, potřebujete něco lepšího. Pomohou htanaté závorky, kterými je možné definovat povolené znaky, ale pomocí znaku ^ (stříška), je možné výběr invertovat a definovat tak zakázané znaky. Proto uspějete s následujícím výrazem:

echo '<location altitude="307" latitude="50.92139" longitude="15.07974" geobase="geonames" geobaseid="3076124" />' | \
sed -n 's/ *<location .*latitude="\([^"]*\)".*/\1/p'

50.92139

Pokud nevíte, kulaté, zpětným lomítkem escapované závorky definují subvýraz, na který můžete dále odkazovat pomocí výrazu \1, a pokud je takových subvýrazů více, jsou číslovány podle výskytu zleva do prava.


neděle 11. prosince 2011

Spouštěcí skript a opět Launcher

Další poznámky z mého bastlení. Občas je před spuštěním aplikace potřeba z shellu nastavit nějaké ty proměnné prostředí. Pokud nemáte pevně dané umístění aplikace, ale znáte pouze její relativní umístění vzhledem ke spouštěcímu sktiptu, může si skript tuto cestu jednoduše odvodit. Je-li ve stejném adresáři, jako aplikace, kterou spouští, může spouštěč vypadat třeba takto:

#!/bin/sh
export UBUNTU_MENUPROXY=
cd "` dirname "$0"`"
./aplikace "$@" &

Proměnná $0, obsahuje řetězec, kterým byl skript volán, může to být například ./Desktop/adresář/aplikace. Příkaz dirname z cesty odstraní vlastní jméno skriptu, a ponechá cestu. Ať už je cesta relativní, vztahující se k aktuálnímu pracovnímu adresáři, nebo absolutní, příkazem cd "` dirname "$0"`", změníte pracovní adresář na ten, ve kterém se nachází skript, ze kterého příkaz voláte. Absolutní cestu pak můžete získat příkazem pwd.

Následující text doplňuje můj předchozí příspěvek Quicklisty - problém se zdvojováním ikon a souvisí právě s tématem spouštěcího skriptu.
Nazvu například pythonní skript aplikace a spouštěcí skript aplikace-spouštěč. Desktopový spouštěč, umístěný v Unity Launcheru, tedy odkazuje na spuštěcí skript, který dále spustí aplikaci a sám chcípne, protože jsem aplikaci nechal spustit na pozadí příkazem &. Stane se to, že si Launcher nedokáže spojit hlavní okno aplikace se skriptem, který spustil a vytvoří pro okno novou ikonu. Tak si říkám "třeba to jen nestihne.." a přidám na konec skriptu sleep 5. Hle, není úplně hloupý, zabralo to. No jo, ale jen pokud spustím aplikaci poklepáním přímo na ikonu. Při spuštění z menu quicklistu, se ikona opět vesele zdvojuje, stejně jako jsem popsal ve výše zmíněném příspěvku. Dále tedy zařazuji základní myšlénku, že když se budou spouštěč i aplikace jmenovat stejně, bude se i proces jmenovat stejně a to by mohlo něco řešit. Samozřejmě je nemůžu mít v jednom adresáři, tak vytvořím podadresář launcher, spouštěcí skript nacpu tam a doplním příkaz pro přesun do nadřazeného adresáře:

#!/bin/sh
export UBUNTU_MENUPROXY=
cd "` dirname "$0"`"
cd ..
./aplikace "$@" &

A sláva, funguje jak má, i bez sleepu. Cairo Dock ikony také nezdvojuje, ale zase registruje pouze první instanci a další vesele ignoruje. Je to zkrátka legrace :)

Zkoušel jsem předtím operovat i s parametrem StartupWMClass, kterým můžete v desktopovém spouštěči určit třídu okna, která k němu patří, ale to v mém případě řešení nepřineslo.

středa 30. listopadu 2011

Jak se zbavit indikátoru pro přepínání uživatelů

Pokud v Ubuntu 11.10 s Unity nepoužíváte více uživatelských účtů a nezajímá vás ani účet pro hosta, není od věci uvolnit trochu místa v horním panelu a zakázat indikátor pro přepínání uživatelů. Zvláště na pidiobrazovce netbooku, kde se dá místo využít rozumněji. Stačí editovat jeden soubor:

sudo nano /etc/lightdm/lightdm.conf

přidat na konec řádek:

allow-guest=false

a restartovat LightDM (Ctrl+F1, přihlásit a spustit příkaz: sudo service lightdm restart), nebo rovnou celý systém.

pátek 25. listopadu 2011

Quicklisty - problém se zdvojováním ikon

Quicklisty v doku jsou fajn výmysl. Jak se dají tvořit popsal třeba Vojta Trefný v článku Deset tipů pro zlepšení Unity (a jeden můžete vidět i o pár řádků níž u mého předchozího článku), chybí tam však jedna podstatná věc. Alespoň v případě aktuálního Ubuntu 11.10. Nějaká moudrá hlava vymyslela, že spouštěče v home adresáři se budou chovat jinak, než ty v /usr/share/.. a tak můžete narazit na množení ikon v Unity Launcheru, pokud jen překopírujete spouštěč ze systému do home adresáře a doplníte quicklist. Spustíte aplikaci a místo aby se u ikony udělala šipečka, objeví se nová ikona kus vedle. I se šipečkou :) Ta už další okna sdružuje, ale zkrátka se distancuje od hlavního spouštěče. Pak je třeba naopak něco ubrat a oním problematickým řádkem je tento:

OnlyShowIn=GNOME;Unity;

Takže vůbec vlastně nejde o ty quicklisty :)

čtvrtek 17. listopadu 2011

Další update uspávače pecí

Tak konečně, po skoro půlroce, dodávám další verzi nejskvělejšího linuxového časovače pro uspávání pecí a spouštění čehokoliv - Shutdown GTimer 0.3.6.
Novinek není moc, nejzásadnější je podpora quicklistů, která přenáší uložené předvolby do spouštěče v Launcheru Unity, ale podporuje je již celá řada dalších doků, včetně Cairo Docku. Ten je ale zatím nutno po přidání předvolby restartovat, aby se změna projevila, v Launcheru se aktualizuje ihned. Plánované cli rozhraní tedy zatím nabízí pouze jeden parametr v podobě jména předvolby, která se má po startu načíst. ...

sobota 5. listopadu 2011

Nautilus 3 je opravdu trochu jiný

Nedá se nic dělat, musím si zas postěžovat. Konstruktivně samozřejmě :) Nový Nautilus se chová v mnohém trochu jinak, než jeho předchůdce a rozhodně mi naboural navigaci. Pokud z nějakého důvodu použijete pro práci se soubory výchozího správce souborů GNOME, stále je efektivnější držet se klávesnice, než myši. V dvojkovém Nautilu otevřu adresář a dál se naviguji postupným psaním jména podadresáře (pokud ho znám), kam potřebuji. Nalezený adresář odentruji, tedy otevřu, a psaním pokračuji dále. Když se spletu Backspacem poslední písmeno smažu. A najednou je tu Nautilus 3 a všechno je jinak. Dobře, ne všechno, ale dost na to, aby mě to na..štvalo. Takže začnu psaním vyhledávat adresář, Enterem ho otevřu, píšu další adresář a... prdlačka. Co to kur..nik je? Vyhledávací políčko po otevření adresáře nezmizelo, jak jsem očekával, ale zůstalo i se svým obsahem a tak jsem zadáváním dalších znaků nemohl uspět. Kur..nik, říkám si, a začnu automaticky mačkat klávesu Backspace. Co to kur..nik zase je? Aha, vím, že Backspace v novém Nautilu supluje chybějící navigační ikonu "přejít k nadřazenému adresáři", ale i když jsem v textovém poli vyhledávání? Paráda, takže nemůžu mazat a když otevřu adresář, musím stisknout klávesu Escape (nebo jako retarda chvilku počkat, až to vyhledávací políčko samo zmizí), abych mohl pokračovat. Nezdá se mi to chytré. No co, vždy se dá ještě stisknout Ctrl+L a v adresním řádku nového Nautila je vše při starém. Když jsem (letmo) hledal bugy na toto téma, našel jsem pouze dřívější problémy s tím, že po otevření podadresáře nešlo už psaním vyhledávat vůbec. Nicméně i stávající chování považuji za bug, takže to případně zkusím ohlásit.

Těch drobných změn souvisejících s přechodem na GNOME 3 je víc, ventilovat bych chtěl příště přinejmenším vytváření rozšíření pro Nautilus 3 v Pythonu. Ale ještě tomu musím přijít pořádně na kloub, na stránkách gnome.org je dokumentace.. není :)

středa 19. října 2011

Jak zatočit s login znělkou v Ubuntu

Když restartuji Ubuntu (virtuální poměrně často) v noci, nejsem z ubuntí znělky zrovna nadšen. Tím méně mé okolí. V zásadě má hlasitější projev, než cokoliv jiného, co poslouchám a vůbec nejsem příznivcem nevyžádaných zvukových projevů počítače. Ubuntu používá přinejmenším od verze 10.10 skrytý spouštěč v podobě následujícího souboru:

pondělí 17. října 2011

Cairo Dock 2.4 místo Unity Launcheru?

Před pár dny jsem restartoval  mou domácí pec (samozřejmě nedobrovolně) a po spuštění systému nereagoval Cairo Dock na můj skript, kterým přes tlačítko myši ovládám jeho viditelnost. Zároveň se nad dokem objevila notifikace o změnách v nové verzi, mezi nimiž svítilo i DBus, což dávalo tušit, kde je problém. A změna metody ShowDock konečně přinesla to, co mi v Cairo Docku chybělo hodně dlouho - přepínat mezi stavy Show/Hide. Do verze 2.4 bylo možné dok schovat, nebo zobrazit, ale už né jednoduše stav prohodit, nebo alespoň zjistit, v jakém stavu se aktuálně nachází. Nově bere metoda místo boolean parametru integer a krom jasných 0 a 1 akceptuje i číslo 2, které změní sučasný stav na opačný. Volání metody z příkazového řádku vypadá takto:

úterý 11. října 2011

Počítání sezení s ConsoleKit em

Řešil jsem problém, který spočívá v tom, že pokud je v systému přihlášeno více uživatelů než jeden, vyskočí při pokusu o vypnutí/restartování systému požadavkem na službu ConsoleKit (nevím na koho mocnějšího se obrátit :) okno, které chce akci autorizovat heslem superuživatele. Stačí se v některém terminálu přihlásit jako root pomocí příkazu sudo su (rozumnější sudo -i, sudo -s, nezakládají další session) a můj Shutdown GTimer nesplní svůj úkol. A vzhledem k tomu, že okno System policy po chvíli samo zmizí (alespoň v některých verzích Ubuntu), tak pokud není uživatel očima na monitoru, ani se nedozví proč. V nové verzi by měl být Shutdown GTimer schopen předem na tuto skutečnost upozornit. Tato systémová politika je funkční přinejmenším od Ubuntu 10.04 výš, verze 8.04, kde vypnutí systému ještě řeší HAL, toto omezení neplatí, alespoň pokud jste v rámci GNOME session přihlášeni v emulátoru terminálu jako root.

Služba ConsoleKit je správcem sezení (sessions) a tudíž je to zase ona která dodá informaci, kolik sezení je aktivních a tím zda se dá systém vypnout bez požehnání vyšší moci. Tedy služba dodá seznam, který je nutno spočítat. Šel jsem na to klasicky přes DBus, v příkazovém řádku je dotaz možno formulovat takto:

dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.GetSessions | grep Session | wc -l
nebo takto (vzhledem k tomu, že pro každé sezení založí ConsoleKit uzel (node), který odkazuje na metody a signály určené pro jeho správu):
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit org.freedesktop.DBus.Introspectable.Introspect | grep Session | wc -l

Pro ConsoleKit jsou ovšem v systému pro příkazový řádek přímo příkazy, které se používají jednodušeji a výstup je již formátován, bez xml značek. Příkaz ck-list-sessions vypíše všechna sezení, včetně jejich atributů. Z výpisu lze vyfiltrovat počet sezení takto:

ck-list-sessions | grep ^Session | wc -l

ConsoleKit toho z příkazového řádku nabízí více, můžete si třeba zkontrolovat historii sezení a zjistit, že se vám díky nedostatečně zabezpečenému ssh serveru někdo několikrát naboural do systému :D Více třeba zde:
http://wiki.ubuntu.cz/ConsoleKit 

V Pythonu to samozřejmě řeším bez shellu, ale princip je stejný, navíc tam mám možnost se pověsit na signály, které jsou ConsoleKitem generovány při přidání, či odebrání sezení a na jejich základě aktualizovat stavovou informaci. Pro další verzi Shutdown GTimeru si ale vystačím s detekcí více sezení při aktivaci odpočtu v režimu Vypnutí a Restartu, málokdo asi při tomto použití ocení upozornění o změně situace v průběhu odpočtu. Ještě mě teď napadlo, že pokud spustíte Shutdown GTimer jako root, zmíněné omezení samozřejmě neplatí a tudíž musím v kódu podchytit i tuto situaci. Tak snad brzy, první nástřely jsou již v svn.


sobota 8. října 2011

Identifikace USB disků podle typu připojení

Nedávno jsem narazil na problém jednoho uživatele, který chtěl svým dvěma nesystémovým pevným diskům změnit po startu systému přes hdparm chování, ale ty se mu pokaždé připojují jinam v /dev/sd*., a tak neví jak napsat skript, který by je přesně identifikoval. Chvíli jsem se na tím zamyslel, jak napsat nějaké univerzální řešení pro vypsání všech interních pevných disků, které zároveň nejsou systémové. Vzhledem k tomu, že na mých počítačích se nachází krom zmíněných pouze USB disky, napadlo mě tyto identifikovat podle způsobu připojení a z výpisu je vyřadit. Pak už zbývá jen identifikovat disk, na kterém běží systém. Dospěl jsem se svými znalostmi k následujícímu:

find /dev -regex /dev/sd. | while read dev; do if ! udevadm info -n $dev -q path | grep -q usb; then mount | grep -q "$dev. on / " || hdparm -S60 $dev ; fi; done

Tento příkaz nastaví diskům podle předchozí specifikace dobu pro uspání při nečinnosti na 5 minut (hdparm -S60 - 60x5 sekund=5minut). Kdyby to někdo z příkazu nepobral - find najde přípojné body všech disků, výstup se čte řádek po řádku a pro každý disk se nejprve zkontroluje ve výstupu udevadm -n zda je připojen na USB sběrnici a pokud není, další pomínka v podobě výstupu příkazu mount pošle příkaz hdparm -S60 pouze na disky, na kterých není kořenový adresář běžícího systému.

Seznam pouze USB disků pak můžete dostat takto:

find /dev -regex /dev/sd. | while read dev; do udevadm info -n $dev -q path | grep -q usb && echo $dev; done

Pokud chcete s disky cokoliv rovnou provést, nahradíte echo konkrétním příkazem, stejně jako v minulém příkladě.

Další možností by mohlo být vypsání všech připojených filesystémů USB disků i s přípojnými body, včetně parametrů:

find /dev -regex /dev/sd. | while read dev; do udevadm info -n $dev -q path | grep -q usb && mount | grep $dev; done


pondělí 12. září 2011

Sluchátka Creative EP-630 - ujdou

Špuntová sluchátka jsem dlouho odmítal kvůli jejich špuntovosti, nicméně nedávno jsem jim dal znovu šanci a nakonec i milost. Nesmíte s nimi běhat a jíst, ale jinak jsou snesitelná a ve veřejné dopravě jsou daleko účinnější, oproti klasickým peckovým sluchátkům. Zkusil jsem Creative EP-630, které jsem dostal za nějakých 150Kč, zatímco normálně se dají koupit kolem 400Kč, a nemohu říct, že by mě zklamala. Recenze se na ně dají sehnat veskrze pozitivní a musím i já přiznat, že za tu cenu (i tu běžnou) jsou velmi dobrá. Nízké kmitočty umí hrát údajně od 6Hz a faktem je, že basy trochu preferují, je jich hodně a jsou lehce rozplizlé, osobně bych uvítal méně dunivé a o něco pevnější basy, ale není to taková tragédie. Střední kmitočty a vokály podávají tyto Creativy příjemně a výšky jsou solidní, stejně jako prostor. Pokud jim předhodíte mainstreamové nahrávky, keré trpí nemocí z komprese, budete nejspíš spokojeni. V porovnání s mými domácími Senheiser HD 595, které stojí víc než desetkrát tolik, produkují EP-630 na těchto pomrvených nahrávkách opravdu příjemnější zvuk. Ty Senheisery si zkrátka moc nevymýšlí a tak se dozvíte i to, co nechcete. Dnešní nahrávky zní většinou lépe na sluchátkach, která kašlou na nějaký analytický přednes. Na kvalitních sluchátkách (reprobednách) budete z většiny nahrávek zklamáni, či spíše znechuceni (pokud nejste hluší), je to záležitost masteringu, který se soustřeďuje na hlasitost a při tom kurví dynamiku. Především u rocku, nedej bože metalu, je to peklo, všechno se to slije do nechutné agresivní sračky. Po pár minutách poslechu takových nahrávek mám pocit, že musím sluchátka servat z hlavy a hodit s nimi o zeď. Popravdě bych raději o zeď hodil těmi hovady, co takové nahrávky vyrábí. Sluchátka mohou utrpení trochu zmírnit a té agresivity ubrat a u EP-630 takový pocit mám, i ty nejhorší nahrávky podávají tak nějak snesitelněji a čitelnost jednotlivých nástrojů i vokálů je solidní. Ovšem ve chvíli, kdy jim předhodím opravdu kvalitní nahrávku, především akustické nástroje, je to slabší. Tedy v porovnání se zmiňovanými Senheisery HD 595, které hrají kvalitní nahrávku například Dire Straits (album Dire Straits), nebo Rebeccu Pidgeon (The Raven), naprosto lahodně, EP-630 dodají nepříjemnou bahenní příchuť. Zkrátka pro přenosná zařízení nevalných kvalit a nechutně komprimované nahrávky, jsou velmi dobrá a to bude jejich úkol.

P.S. Kompresí nemyslím ztrátové komprimační algoritmy MP3 a podobné, ale kompresi dynamiky, která vede k celkové vyšší hlasitosti nahrávky a je produktem nahrávacího studia, které ji vytvořilo. To že to stáhnete z CD do bezztrátového formátu FLAC, vám nepomůže, podělaný je už zdroj.

pondělí 8. srpna 2011

Bash - synchronizace historie mezi terminály

Máte otevřeno více terminálů a rádi byste v jednom spustili příkaz, o kterém víte, že jste ho použili v terminálu jiném. Každé sezení Bashe má ve výchozím nastavení (nejen) Ubuntu historii vlastní, která se ukládá až při jeho ukončení. Občas se hodí nějakou tu historii mezi terminály sdílet, nebo zajímavou historii uložit, protože pokud vám běží terminál třeba měsíc v kuse a pak kvůli výpadku proudu, nebo selhání grafického ovladače klekne bez uložení, můžete přijít o cenné kousky kódu (matlali jste je podle manuálu půl hodiny..), které jste z blbosti hned nearchivovali. Popíšu tedy nějaké ty možnosti, o kterých vím...

neděle 7. srpna 2011

Nedomrlá menu aplikací v Unity

Vývojáři Unity mají před sebou ještě moře práce a nehledě na koncepci, musí vyřešit mnoho čistě technických záležitostí kolem funkčnosti jejich díla. Prozatím tu máme dost prostoru pro různá alternativní řešení a obcházení problémů více, či méně elegantní cestou. Pokud nám to za to stojí. Mám tu další z těch méně elegantních (i když jak se to vezme), týkající se nepěkného chování menu některých aplikací v AppMenu, tedy onom globálním menu Unity panelu.

čtvrtek 21. července 2011

Start raketoplánu je fakt mazec

Je to úplně mimo téma tohoto blogu, ale konckonců proč ne. Dneska přistál Atlantis naposled, přímý přenos jsem prošvihl, ale trochu jsem se porozhlédl po videiích NASA. Následující video začíná jako slaďáček, ale před polovinou se to rozjede :)

středa 20. července 2011

Unity Launcher - zasekává se hajzl. A jiné pakárny.


Nejsem sám, komu se Launcher v Unity každou chvíli zasekne a nechce zmizet, když má. Je to pakárna, restart Unity je k ničemu, ale všiml jsem si, že někdy se po čase zas ukázní. Po chvíli pátrání jsem zjistil, že stačí maličkost:
Když se Launcher zasekne, stačí demaximalizovat všechna maximalizovaná okna a on se 'odsekne'.
No není ten Launcher dokonalý? Zahrnuje i logickou hru! Vývojáři Ubuntu nechtějí své uživatele nechat hloupnout a tak jim do cesty staví různé překážky, jejichž překonávání je udrží v konvici. Koneckonců kdo by stál o uživatele, kteří takovou banalitu neprokouknou a nejsou schopni si napsat skript, který jim problém na jedno kliknutí vyřeší. Moc Unity nepoužívám, ale pokaždé skončím s "To je šmejd!" (trochu jsem výrok zkultivoval, nejsem přeci žádný sprosťák), zvláště po použití CCSM, což ve většině případů způsobí pád Unity, přestane mi fungovat rohový spouštěč pluginu Scale (to je fakt na prášky) a někdy i panel. Unity, a vůbec celé Ubuntu posledních pár vydání, je prolezlé podobnými chybami, které zásadně znepříjemňují používání desktopu. To máme problémy s gnome-settings-daemon, jehož kolabs může některým uživatelům vyhnat oběd zpět na stůl, tuhle nefunguje myš, tamhle ani klávesnice, to vyžene uživatelovu náladu do nebeských výšin, do Dashe, jehož koncepce je i tak těžko pochopitelná, si nedáte oblíbený prohlížeč Opera, chyba Compizu ohledně témat kurzorů se táhne léta, aby to v U10.10 opravili a v U11.04 zas vrátili do nepoužitelnosti (nehledě na to, že celý ten koncept je naprosto zhovadilý, ale to je dáno odkazy minulosti a třeba to časem vyřeší náhrada X). Je to nechutný slepenec plný kompromisů a omylů.
Unity má i některé světlé stránky (abych nebyl tak zlý), ale pár takových kokotin, které jsem zmínil, dokážou přebít nejednu radost.

Ovšem tento týden zcela s přehledem vede Gnome Shell, který mi ukázal svou verzi obrazovky smrti. Smrtící obrazovka je pohřebně černá, oznámí, že je problém, který se nepodařilo vyřešit a nabídne jediné tlačítko, které vás odhlásí ze systému. To celé ve fullscreenu, aby to víc vyděsilo - máte rozdělanou práci, podlehnete panice. Naštěstí je to jen bubák pro mouly, kterého zaženete klávesovou zkratkou pro zavření okna a v klidu si uklidíte. Já jsem bubáka pro jistotu zahnal i volbou v přihlašovací obrazovce, protože Gnome Shell celkem stoprocentně není něco, co bylo dizajnováno pro netbook s vertikálním rozlišením 600 bodů a touchpadem. Vůbec bych ho na netbooku nehodnotil jako cokoliv přínosného. Ale je hezčí než Unity. Které je použitelnější na netbooku.

Edit: Tak se ukázalo, že obrazovka smrti Gnome 3 umí být i světlá a vybafne i v Unity. Černá vyběhla v Gnome Shellu, světlá v Unity po té, co jsem změnil nastavení CCSM. Zde je důkaz:





Tak to bylo asi tak všechno, co jsem vám chtěl říct.. o swingu ;)


neděle 10. července 2011

Unity Dash a Opera

Je už velmi dlouho známo, že Opera nekamarádí s Dashem v ubuntím Unity. Tedy ve verzi 11.04. Když se podíváte po webu, najdete bug reporty, najdete návody spokojených uživatelů Firefoxu a Chrome, ale fandům Opery nikdo nepomůže. Tedy k tomuto jsem se dobral já, možná jsem nebyl dost trpělivý. Přestal jsem hledat a na chvíli se pro změnu zamyslel, zjistil jsem totiž, že často se dá tímto způsobem ušetřit nejedna minuta :) Jak to s tím tedy vlastně je?

sobota 9. července 2011

Extrakce audio stopy nejen z flash videa

Potřebuju asi z padesáti videí z youtube vytáhnout zvuk do samostatného souboru ve formátu mp3. Všechny videosoubory jsou v kontejneru flv, ale některé obsahují flv video se zvukem v kompresi mp3 a zbytek h264 video se zvukem v kompresi aac. Musím tedy projít jednotlivé soubory, pokud bude zvuk ve formátu mp3 jen uložit audiostopu a zbytečně ji nekomprimovat znovu (to je vždy na úkor už tak bídné kvality), a ostatní audiostopy překomprimovat do formátu mp3. Ještě že máme ten příkazový řádek. Následující se ale netýká pouze flash videa, s ostatními kontejnery je to stejné...

středa 6. července 2011

Aktualizace Svátkového appletu

Udělal jsem nové verze appletu zobrazujícího v panelu aktuální svátek. Původní Gnome Nameday Applet dostal bratčíčka Unity Nameday Applet, oba dostaly něco nového, včetně  samostatné stránky jim věnované a dostupné ze záložky v záhlaví tohoto blogísku. Hlavním trhákem je nová funkčnost kolečka v obou verzích, tak neváhejte a točte ;)

pátek 10. června 2011

Shutdown GTimer 0.3.x

Poslední týdny se převážně rochním v Pythonu a GTK+ a vylepšuji Shutdown GTimer. Kód je to ani ne na tisíc řádků a profík by to sesmolil za chvíli, já se postupným objevováním nových vlastností jak Pythonu, tak GTK, a neustálým přepisováním kódu pomalu šinu ke světlejším zítřkům. Nicméně, když jsem vyzkoušel konkurenci, která se objevila na OMG Ubuntu!, trochu mě to povzbudilo :)


pondělí 16. května 2011

Stažení webu pro offline použití pomocí wget

Pokud se patlám třeba s Pythonem a PyGTK, potřebuji mít dokumentaci neustále po ruce. S netbookem nejsem vždy online, a tak stahuji weby s dokumentací na svůj disk. Například takto:

wget --recursive --page-requisites --adjust-extension --convert-links --domains developer.gnome.org --no-parent http://developer.gnome.org/pygtk/stable/

Abych k tomu alespoň něco napsal:

--recursive / -r        - stahuje rekurzivně
--page-requisites / -p  - stáhne všechny soubory potřebné pro správné zobrazení stránky
--adjust-extension / -E - postará se o to, aby stažené soubory měly patřičné koncovky. Pokud souboru chybí koncovka .html, přidá ji, soubory s css styly dostanou koncovku .css. Pokud ale budete stažený web aktualizovat rozdílovou metodou, budou se upravené soubory vždy stahovat znovu, i když se jinak nezměnily.
--convert-links / -k    - zkonvertuje odkazy v dokumentech na lokální, pokud existují
--domains= / -D         - seznam domén, které mají být následovány
--no-parent / -np       - nesledovat při rekurzi nadřazené adresáře
a nakonec adresa webu, který chci stáhnout


sobota 14. května 2011

Vizuální notifikace při připojení/odpojení zařízení - udev-notify

Nedávno jsem tu psal něco o udev a stěžoval si, že Ubuntu neumí informovat o připojení/odpojení periferních, nejčastěji USB, zařízeních. Takováto zpětná vazba není k zahození, hned víte, že si systém vašeho zařízení všiml, nebo naopak nevšiml a víte na čem jste. Přínos přinejmenším z psychologického hlediska tu tedy potenciálně je a můžete si ho dopřát na dvě kliknutí myšítkem, když budete chtít, díky Krasimiru S. Stefanovovi (alias lokster), který k tomuto účelu napsal démonický skript v Pythonu.

úterý 10. května 2011

Jak si zkopírovat flash videa z cache, když už nejsou v /tmp

Update: Klidně si to přečtěte, teorie tu je a princip se nezměnil, jen se změnil způsob chování prohlížečů a ten jsem zohlednil zde.

To není horká novinka, ale protože jsem se k tomuto tématu zrovna náhodou připletl, připomělo mi to zapsat si poznámku, která se může příležitostně hodit. Tedy postup, jak si videa přehraná ve webovém prohlížeči aktuálním desítkovým Flash Playerem zkopírovat z cache k dalšímu použití, bez použití pluginu v prohlížeči. A aby to nebylo tak jednoduché, trochu to laicky rozvedu :)

pátek 29. dubna 2011

Problém Gigabyte EP45-UD3P s HW virtualizací

Jen taková poznámka, kdyby to někdo hledal, i když to již není aktuální hardware. Po upgrade počítače, se mi začalo stávat, že spuštění virtualizovaného systému ve VBoxu zapříčinilo totální zatuhnutí systému, nešlo se ani dostat do konzole přes SysRq zkratky. Po restartu systému fungoval VBox jak měl, ale když jsem před jeho startem počítač uspal (a samozřejmě opět probudil), bylo jisté, že to skončí špatně. Chvíli jsem to házel na hloupého Radeona a Qt, ale nakonec jsem zjistil, že problém je v hw virtualizaci, či spíš v její podpoře mou základní deskou Gigabyte EP45-UD3P první revize. Vypnul jsem virtualizaci v Biosu a je pokoj, ostatně pro mé drobné virtualizování nemá žádný reálný přínos.

neděle 17. dubna 2011

Shutdown GTimer 0.2.x - evoluce uspávače pecí UPDATE 19.4.11

Zas mě to po delší době chytlo a začal jsem se opět vrtat v Pythonu a GTK+, abych z mého uspávacího timeru konečně udělal užitečnou aplikaci. Novinkou je, krom přidání Restartu a LogOutu, konečně spouštění příkazů shellu, které umožní po nastavené době provést defakto jakoukoli akci, buď samostatně, nebo v kombinaci s těmi  základními. Také nově aplikace zobrazuje více časových informací a dá se využít nejen k provedení akce za určitou dobu, ale i v určitou dobu. Zůstává poměrně neobvyklá filosofie ovládání, která umožňuje i po spuštění odpočtu nastavovat všechny jeho parametry úplně stejně, jako by neběžel, takže posunutí času o deset minut může být otázkou jednoho pootočení kolečka myši.  Rozeberu to v následujících řádcích trochu detailněji a snad i srozumitelně..

neděle 3. dubna 2011

Vlastní akce po připojení zařízení - udev

udev umožňuje dynamickou správu připojených zařízení. Běží v systému jako démon a čeká na události, které generuje sám mocný kernel při připojení a odpojení zařízení. Připojíte externí USB disk a udev pro něj vytvoří přípojný bod(y) v systémovém adresáři /dev a tím zpřístupní systému. Po odpojení opět přístupový bod(y) zlikviduje. To, že se v Ubuntu po připojení USB disku připojí souborové systémy do aresáře /media a otevře okno Nautila, je už práce Gnome, jiná uživatelská prostředí si to samozřejmě řeší individuálně, ale udev je základ.

středa 30. března 2011

PC skříň Nexus Prominent 9 - minirecenze

Koncem minulého roku jsem zakoupil novou skříňku pro mou PeC. Padla mi do oka a tak jsem ji bez dlouhého rozmýšlení objednal, neb má dosavadní skříňka, ač pěkná, měla nějaké ty nedostatky a měl jsem ji kam udat. Prominenta 9 mám rád, má pár dobrých vlastností, ale kritiky mám také poměrně dost. Nebude to klasická recenze, ale jen takové shrnutí mých zkušeností. A také to výjimečně vůbec nesouvisí s Linuxem...

pátek 25. března 2011

(Ne)pořádek v Gnome Panelu při změnách rozlišení

Gnome Panel je fajn záležitost, dá se na něj nacpat kde co, ale při změně rozlišení obrazovky se jeho obsah strašně rád přemisťuje z místa na místo. Pokud měníte rozlišení častěji, ať už proto, že používáte více monitorů, nebo spouštíte nějaký fullscreen program v jiném, než nativním rozlišení, máte možnost buď neustále uklízet, nebo se na to vykašlat a koukat na ten bordel. Ručně to stále přemisťovat nehodlám, druhá možnost mě přestala bavit, a tak jsem napsal skript, který to udělá za mě..
Poslední update 28.3.11 - doplnění skriptů

sobota 19. března 2011

Proč zlobí změna kurzoru myši (nejen) v Ubuntu 10.04?

Několik verzí se s Ubuntu táhla chyba sovisející se změnou vzhledu myši a Compizem. Ve verzi 10.10 Maverick je Compiz opraven, v 10.04 LTS ještě zcela nepochopitelně ne. Compiz ale není jediným faktorem v této problematice, která se tak týká i Mavericka. Zkuste si změnit téma kurzoru v Gnome a pak najet na myší například nad SMPlayer, nebo Operu. Tento článek se snaží ukázat, kde je problém a co se s tím dá dělat.

neděle 13. března 2011

Ripování a encoding CD, editace tagů

Konečně jsem se dostal k tomu, abych si převedl svá CD s muzikou do počítače. V situaci, kdy počítač stějně neustále běží, není hlučný, mám k němu dálkové ovládání a zvuk jde ven optikou, není už pro mě klasický CD přehrávač žádným přínosem, neb kvalita reprodukce je srovnatelná (nejsem sice úplně hluchý, ale netopýr také ne) a pohodlí nesrovnatelné.
Kdysi jsem na Windows používal Exact Audio Copy, které by na linuxu mělo běžet pod wine, ale to mi vyhlásilo chybu a tak jsem ho nechal, stejně mě víc zajímají jeho linuxoví konkurenti. Ripovat audio CD s převodem do požadovaného formátu, umí v podstatě každý slušnější hudební přehrávač, jako je Rhythmbox, Amarok a podobně, ale zkusil jsem i dva jednoúčelové prográmky...

pátek 18. února 2011

Skriptem na myš

O té doby, co mám ATI grafiku, řeším samé kraviny :) Ovladače Catalyst jsou na linuxových systémech problematické odjakživa a pokud chcete provozovat dva monitory, problémy se ještě znásobí. Mám tedy dva monitory, mezi nimiž přepínám podle potřeby, konfiguraci jsem vychytal jak to šlo, ale jelikož počítač nevypínám, pouze uspávám, nakonec mě Catalysty dostanou a alespoň mi začnou při přepnutí monitorů ukazovat červený čtverec s číslem identifikujícím monitor. To by nebylo tak strašné, pokud by ten čtverec po chvilce zmizel, tak jak má, jak to původně i tvůrci Catalystů zamýšleli. Jenže on nezmizí, on je tam na furt! Tedy dokud nespustím ACCC, nekliknu na položku Display Manager a pak na jakoukoli jinou. To je vo mrtvici. Ani aticonfig nezná heslo, kterým by se dal odporný červený číselný čtverec z příkazové řádky vypnout. Nebo jsem se blbě díval.. ale tomu nevěřím. No nic, přeci kvůli tomu nebudu dokola klikat jak opoce...

neděle 6. února 2011

Dva monitory a X RandR

Poslední aktualizace 9.2.11
Již jsem tu psal o přepínání monitorů na grafice Nvidia, jejíž proprietární ovladače zatím nepodporují nástroj pro správu monitorů, který (nejen) Ubuntu obsahuje v základní instalaci. Jedná se o program X RandR (Xorg RandR), který je rozhraním RandR pro příkazový řádek. Jeho pomocí můžete měnit konfiguraci připojených monitorů, měnit rozlišení, rotaci a další věci, které můžete dělat z grafických center ovladačů grafiky, za běhu, bez restartu X serveru. Otevřené ovladače, i uzavřené ovladače AMD/ATI, RandR podporují a tak není potřeba shánět nic dalšího, jako v případě Nvidie, která implementaci stále odkládá.

neděle 30. ledna 2011

Akcelerace HD videa s ATI - XvBA / VA API

Nedávno jsem udělal drobný upgrade PeCe, když jsem z druhé ruky zakoupil celkem výhodně balík komponet, kerý měl jen jedinou vadu - byla v tom grafická karta ATI Radeon HD4870. Chvíli jsem se rozmýšlel, ale pak si řekl, že alespoň bude sranda a podívám se, jestli je ATI pod Linuxem opravdu takový průšvih, nebo už se dá i používat. První dojmy po instalaci byly zoufalé, ale nakonec jsem se i ohledně přehrávání videa dostal ke stavu uspokojivému, a to i díky poslednímu Catalystu 11.1. Řeč bude o výměně kernelu, ovladače grafiky a především o zprovoznění akcelerace videa.

sobota 15. ledna 2011

Spouštěč aplikace s resuscitací po pádu

V minulém příspěvku jsem zmínil skript, který používám pro spouštění aplikací, u kterých chci mít jistotu, že poběží, když je budu potřebovat. V mém případě jde opět především o Gnome-Do, které má tendeci občas havarovat a neni moc příjemné, když stisknete klávesovou zkratku a nic se nestane. Skript jsem upravil, aby byl co nejjednodušeji a nejuniverzálněji použitelný, třeba se bude někomu hodit. Přinejmenším je to zajímavé cvičení. ...