Michal Čihař - Blog Archives for Czech

Mažu všechno staré

A máme tu další z řady jednoduchých skriptíků pro práci s IMAPem. Tentokráte smažeme všechny staré maily, aby složky s mailing listy příliš nebobtnaly.

 #!/usr/bin/python
import sys
import imaplib
import time
import string

def purge_step(age, flag):
    l = m.search(None, flag, 'UNFLAGGED', 'UNDELETED', 'BEFORE', time.strftime('%d-%b-%Y', age))
    for st in l[1]:
        if st:
            sts = st.split()
            while sts:
                m.store(string.join(sts[:1000], ','), '+FLAGS.SILENT', '\deleted')
                del sts[:1000]


if len(sys.argv) != 4:
    print 'Usage: imap_purge folder age unreadage'
    sys.exit(4)

folder = sys.argv[1]

ts_read = time.localtime(time.time() - (int(sys.argv[2]) * 86400))
ts_unread = time.localtime(time.time() - (int(sys.argv[3]) * 86400))

m = imaplib.IMAP4('SERVER')
res = m.login('USERNAME', 'PASSWORD')
if res[0] != 'OK':
    sys.stderr.write("login: %s\n" % str(res))
    sys.exit(1)

res = m.select(folder)
if res[0] != 'OK':
    sys.stderr.write("select: %s\n" % str(res))
    sys.exit(2)

purge_step(ts_read, 'SEEN')
purge_step(ts_unread, 'UNSEEN')

m.expunge()

Mailový klient podruhé

Už jsem tu jednou řešil výběr mailového klientu. Doba už pokročila (a moje požadavky se trochu změnily) a najednou mi připadalo, že je čas na změnu.

No vlastně nějak z požadavků nezůstal kámen na kameni, protože se poněkud změnilo moje používání emailu a souvisejících služeb. Už nepožaduji newsy, protože se nedají rozumně používat z více počítačů najednou (tak aby se přenášel stav co je přečtené a co není).

V rámci poslední čistky jsem zrušil většinu dalších emailových kont, takže si už postačím s jednou identitou na účet.

Takže aktuální požadavky:

  1. Rychlost a neblokující operace. Nesnáším když ověřování PGP podpisu zablokuje celý program.
  2. Podpora IMAPu, pokud možno s offline prací.
  3. PGP (spolupráce s GnuPG a gpg-agentem)
  4. Možnost konfigurace klávesových zkratek.
  5. Práce s mailing listy (přímá odpověď na list)
  6. Snadná práce se složkami
  7. Gtk/Gnome rozhraní (hlavně ne KDE, ze kterých nic nepoužívám a nechci spousty kde procesů).

KMail

Dosud jsem ho používal. S ním se mi v počítači usídlila půlka KDE, občas je neuvěřitelně pomalý, PGP blokuje celý program. Má pár bugů, které mi vadí a nikdo se nemá k jejich opravení a mě se do toho moc nechce.

Sylpheed-claws

Několik lidí mi už Sylpheed doporučovalo, vlastnostmi se mi více líbila odnož/fork claws, tak jsem začal zkoušet a zatím úspěšně používám. Sice mi vadilo pár věcí, ale do CVS už se začínají dostávat opravy :-).

Evolution

Pořád mi připadá jako nějaká obluda, kterou nevyužiji. Má naprosto příšerné klávesové zkratky, které se nedají měnit. Informace o PGP podpisu jsou schované kdesi dole.

Thunderbird

Pořád neumí mailing listy…

Zabte úředního šimla!

Ani nevím proč jsem vždy překvapen množstvím formulářů a úkonů, které musí člověk absolvovat pro provedení, na první pohled jednoduché, změny.

Tentokrát potřebuji nový řidičský průkaz, protože díky zákroku Oční kliniky Lexum vidím bez brýlí (a je to velmi přijemná změna :-)).

Očekávajíc nějaké komplikace, jsem nejdříve navštvívil Portál veřejné správy a posléze i web Ministerstva dopravy , abych věděl co mě čeká. Lehce mě znepokojovala lhůta pěti dnů, ale doufal jsem, že to tak hrozné nebude.

Vybaven potvrzením od odborného lékaře jsem se vydal na příslušný odbor magistrátu s nadějí, že vyřízení nezabere moc času. U informací mě paní vybavila formulářem a vydala mi číslo do pořadníku. Sice kdekoliv jinde si člověk číslo vytiskne sám, zde je to v moci úřední, ale zatím žádná komplikace nenastala.

S vyplněným formulářem po chvíli nabíhám k okénku, kde se ovšem dozvídám, že potvrzení od odborného lékaře nestačí. Musím mít potvrzení od praktického, který prý má kompletní informace o mém zdravotním stavu. To, že praktický lékař jenom přepíše informaci a vyinkasuje za tento úkon tučnou odměnu je samozřejmé. S tímto potvrzením ovšem ještě nemůžu na úřad, ale musím absolvovat správní řízení. Tato správní řízení v Praze dělají jen dva lidé a poněkud nestíhají. Takže si raději mám nejdřív domluvit s nimi a pak teprve získat potvrzení, které nesmí být starší než 30 dnů. Ze správního řízení teprve vypadne ten správný papír, se kterým můžu zažádat o nový řidičák.

Prostě proběhne transformace papíru na jiný, na tomto koloběhu se bude podílet několik lidí, kteří si určitě ode mě vyberou ještě nějaký peníz. Už chápu, proč musíme mít tolik úředníků.

Top 10 překladů

Nejedná se o žádné objektivní porovnání, jenom překlady phpMyAdmina :-). Když jsem se opět po nějaké době podíval na statistiky překladu, byl jsem příjemně překvapen přítomností slovenštiny mezi 10 nejkompletnějšími překlady. No je vidět, že se tamní překladatel na rozdíl od číňanů, němců nebo poláků nefláká.

 1	english			100.0%	
2	french			99.7%	
3	czech			99.6%	(už jsem to dopřeložil :-))
4	italian			98.7%	
5	swedish			98.4%	
6-11	finnish			98.2%	
6-11	spanish			98.2%	
6-11	norwegian		98.2%	
6-11	slovak			98.2%
6-11	belarusian_latin	98.2%	
6-11	belarusian_cyrillic	98.2%

Pro zájemce je kompletní a aktuální seznam tady .

Předpokládám, že pokoušet se tu hledat překladatele do Korejštiny, Malajštiny, Afrikánštiny, Perštiny nebo Chorvatštiny asi nemá smysl, ale kdyby někdo chtěl pomoci s jazykem, který zaostává, nebo třeba chtěl překládat dokumentaci do češtiny, bude vítán :-).

Předvolební agitka

Cestou do práce jsem si všimnul jednoho z předvolebních billboardů. Nějak moc nechápu, proč nás s tím otravují půl roku před volbami, ale co už se dá dělat, asi potřebují utratit hodně peněz…

Na tomto billboardu byl pan inženýr (ne že bych to věděl, ale titulem se tam chlubil) M. Kalousek a u něho nápis „Nejčestnější muž ve státě“. No nevím, ale takto by mě nenapadlo nazvat žádného politika, natož tohoto.

Přehled složek v IMAPu

Už opět nastala situace, že mi napsání vlastního skriptu připadalo jednodušší než hledání hotového nástroje :-). Pokud se tedy někdo potřebuje podívat na stav složek na IMAPu, může použít následující skriptík.

 #!/usr/bin/python
import sys
import imaplib

m = imaplib.IMAP4('SERVER')
res = m.login('USERNAME', 'PASSWORD')
if res[0] != 'OK':
    sys.stderr.write("login: %s\n" % str(res))
    sys.exit(1)

typ, list = m.list()
if typ != 'OK':
    sys.stderr.write("list:")
    sys.exit(2)

for item in list:
    vals = item.split()
    name = vals[2][1:][:-1]
    typ, val = m.status(name, '(UNSEEN RECENT)')
    if typ != 'OK':
        sys.stderr.write("status:")
        sys.exit(2)
    print val[0]

Setup phpMyAdmina

Další dílko, které vznikno během víkendu je nastavovací skript pro phpMyAdmina. Začalo to jednoduchým generováním konfigurace serverů a skončilo to prozatím u 60 kB skriptu, který umí nastavit vše, co jsem považoval za důležité :-).

Vůbec z posledního vývoje začínám mít pocit, že další verze opět zvýší jiné číslo než bylo původně zamýšleno (2.7.0, které brzy vyjde mělo být původně 2.6.5), nějak se tam začíná objevovat čím dál více změn k lepšímu :-).

EPG v DVB česky

Už delší dobu mám k počítači připojený DVB-T přijímač a zhruba stejnou dobu mě štve nedostupnost rozumně fungující aplikace. Program dodaný výrobcem a fungující pod Windows padá naprosto neuvěřitelně, Linuxové alternativy jsou zatím dost ve vývoji. Existuje Klear , což se aplikace přímo pro DVB a Kaffeine , který je multimediálním přehrávačem s přidanými funkcemi pro DVB.

Ani v jednom ovšem nefunguje česky EPG (Electronic Program Guide), tedy zobrazení programu. Když se naskytl volnější víkend, tak jsem se rozhodl s tím něco udělat a tady je výsledek. Klear s těmito patchi už češtinu zvládá bez problémů. Sice ještě pořád zbývá 30 nepodporovaných kódování, ale to ať zkoumá někdo, kdo to může vyzkoušet :-).

PS: Proč není povolena značka ABBR?

Suspend s nvidií a 2.6.14

Kernel 2.6.14 konečně vyřešil můj problém s memory leakem kdesi v ACPI, takže nezbylo než upgradovat :-). Ovšem nvidiacký modul se poté zuřivě bránil suspendu do paměti, přestože to dříve fungovalo.

Samozřejmě řešení je jednoduché, stačí se podívat, jaké eventy se posílají:

 /*
 * There are 4 important states driver can be in:
 * ON     -- driver is working
 * FREEZE -- stop operations and apply whatever policy is applicable to a
 *           suspended driver of that class, freeze queues for block like IDE
 *           does, drop packets for ethernet, etc... stop DMA engine too etc...
 *           so a consistent image can be saved; but do not power any hardware
 *           down.
 * SUSPEND - like FREEZE, but hardware is doing as much powersaving as
 *           possible. Roughly pci D3.
 *
 * Unfortunately, current drivers only recognize numeric values 0 (ON) and 3
 * (SUSPEND).  We'll need to fix the drivers. So yes, putting 3 to all different
 * defines is intentional, and will go away as soon as drivers are fixed.  Also
 * note that typedef is neccessary, we'll probably want to switch to
 *   typedef struct pm_message_t { int event; int flags; } pm_message_t
 * or something similar soon.
 */

A příslušně opravit nvidiácké zdrojáky:

 --- orig/nv/nv.c  2005-07-19 01:58:40.000000000 +0200
+++ mod/nv/nv.c        2005-11-15 15:28:46.500089000 +0100
@@ -3624,12 +3624,13 @@
 
     switch (state)
     {
-        case PM_SUSPEND_MEM:
+        case PM_EVENT_SUSPEND:
+        case PM_EVENT_FREEZE:
             nv_printf(NV_DBG_INFO, "NVRM: ACPI: received suspend event\n");
             status = rm_power_management(nv, 0, NV_PM_ACPI_STANDBY);
             break;
 
-        case PM_SUSPEND_ON:
+        case PM_EVENT_ON:
             nv_printf(NV_DBG_INFO, "NVRM: ACPI: received resume event\n");
             status = rm_power_management(nv, 0, NV_PM_ACPI_RESUME);
             break;

Úpadek abclinuxu?

Po přečtení zápisu že Yeti zmizel , jsem si uvědomil, že ani já tu už netrávím tolik času jako dříve. A právě proto jsem ani jeho nepřítomnost nezaregistroval.

Co se v poslední době změnilo, že už jenom v RSS prohlédnu zprávičky, články a blogy, občas nějaký, podle titulku zajímavý, přečtu a na diskuze se už většinou ani nepodívám? Možná už mě nebaví pořád dokola odpovídat na ty samé dotazy, i když to asi nebude ten hlavní důvod (stejně se tomu v mailech nevyhnu). Poslední dobou se tu objevuje stále více provokatérů a nějak nehodlám ztrácet čas (kterého je vždy málo) u naprosto nesmyslné diskuze (i když nějaký ten flame občas neuškodí :-)). Nebo si třeba jenom potřebuju odpočinout (poslední dobou mám stejně nucený částečný odpočinek od počítačů).

Nejspíš to bude kombinace všeho a prostě jiné možnosti trávení času jsou prostě najednou mnohem atraktivnější. Prostě velmi dobře chápu motivaci někoho to tu zabalit, ale já nerad dělám tak silné čáry za minulostí, takže jenom pomalu ustupuji ze získaných pozic :-).