Jak zmenšit databáze (nejen) Firefoxu

Ti, kdo se šťourají v profilu Firefoxu, vědí, že ukládá svoje data (historie, cookies apod.) do databáze SQLite (soubory s příponou „.sqlite“). Tato databáze má tu nectnost, že „vymazaná“ data fyzicky neodstraňuje, dokud na tabulku (nebo index) nezavoláte SQL příkaz „VACUUM“ (asi něco jako když „smažete“ soubory ve Windows :-)). To má za následek, že soubor databáze časem bobtná (podle toho kolik surfujete, hodně přidávají RSS čtečky) a potenciálně zpomaluje prohlížeč (ne dramaticky – nicméně mně bobtná opravdu hodně :-) – mažu historii a zmenšuju jednou měsíčně – právě kvůli RSS blogů).

Pro její zmenšení můžete použít výborný multiplatformí (postavený na Qt frameworku) program SQLite Database Browser. Stačí otevřít databázi (nejlépe je asociovat příponu .sqlite s tímto programem) a dát File -> Compact database. Má ale chybku v tom, že neumožňuje dávkové zpracování – databází je ve Firefoxu více a navíc i další programy využívají výhod SQLite :-) (schválně zkuste najít na začátku obsahu souborů „SQLite format 3“ – ty ovšem nebobtnají tak rychle, ale někdy je to zajímavé počteníčko ;-)).

Takže jsem si (z lenosti :-)) napsal skriptík, který dávkové zpracování umožňuje. Pro jeho běh budete potřebovat Python (řady 3) (tučňák ho obvykle má v sobě). Pokud máte sklony naučit se programovat, začněte právě Pythonem – snadno se učí a umí opravdu mnoho (právě práce s databází SQLite je strašně snadná a rychlá – proto ho používám; zkuste si napsat jednoduchý program s databází v Javě – vrátil jsem se k Pythonu, nechci tu ale vyvolávat flame).

Fígl pro SQLite

Jedna databáze může obsahovat hodně tabulek a indexů a je příliš pracné psát pro ně příkazy ručně, nehledě na to, že se mohou změnit – název/počet. Fígl je v tom, že každá SQLite databáze obsahuje tabulku sqlite_master, která obsahuje jména všech tabulek a indexů. Stačí tedy jen položit SQL dotaz

SELECT name FROM sqlite_master WHERE type=“table“ (nebo „index“)
Číst dál »

md5 souboru v Pythonu 3 a Qt frameworku 4.7 (C++)

Při svém hledání kódu pro md5 hash souboru v Pythonu jsem narazil na několik, které měly problémy s velkými soubory a/nebo byly pomalé. Následující „zhašoval“ obraz DVD 4.5GB za neuvěřitelných 57 sekund oproti Total Commanderu, který to zvládl za 66 sekund. Paradoxně nejpomalejší byl kód v C++ knihovny Qt – 75 sekund. Oba kódy používají 1MB buffer – ostatní velikosti od 512kB do 5MB se liší o (zanedbatelnou) +1 sekundu.

import hashlib

def md5(fileName):
    md5 = hashlib.md5()
    fd = open(fileName,"rb")
    while True:
        buffer = fd.read(1024)
        md5.update(buffer)
        if len(buffer) < 1024:
            break
    fd.close()
    return md5.hexdigest()

A tady je kód pro Qt framework.

#include <QtGui>
#include <QCryptographicHash>

QString md5(QString fileName)
{
    QString md5Hash = "";
    QCryptographicHash *hash = new QCryptographicHash(QCryptographicHash::Md5);
    QFile *file = new QFile(fileName);
    if (!file->open(QIODevice::ReadOnly | QIODevice::Unbuffered))
    {
        return (md5Hash); //if opening fails, returns empty string
    }
    QByteArray buffer;
    qint64 bufSize = Q_INT64_C(1024*1024); // changing can increase performace
    while(!(buffer = file->read(bufSize)).isEmpty())
    {
        hash->addData(buffer);
    }
    md5Hash = hash->result().toHex();

    file->close();

    delete hash;
    hash = 0;
    delete file;
    file = 0;

    return (md5Hash);
}

Kód v C++ byl inspirován kódem zveřejněným na abclinuxu.cz - můj původní neměl buffer.

Ať vám slouží :-)

P.S. Nemýlím-li se je (v C++) zavolání delete na hash a file nezbytné - jinak by program leakoval. Pokud se mýlím, opravte mne, prosím, v diskusi. Pokud máte tip, jak kód(y) zrychlit, piště prosím tamtéž.

Další foto z Vietnamu

Ahoj,

konecne jsem se po par dnech dostal k netu a k tomu, abych zverejnil
dalsich par fotek. K nalezeni zde:
https://picasaweb.google.com/Lukas.Faltynek/Vietnam4?feat=directlink

Nadseni pro Vietnam stale jeste nevyprchalo. Ted se nachazim v meste
Hoi An, kde vam za hodku usijou kosily na miru. Chteji za ni 10 USD.

Take se zde slavi MDZ, spousta Vietnamek o nem mluvi. Zitra pres noc
spacim busem o 500 km jizne k mori. Celkem se tesim.

Dalsi foto zas za par dni.

Krasne do CR vam vsem.

Pár fotek z Vietnamu

Zdravím všechny z Vietnamu ;-). Protože se mi moc nechce vysedávat u netu a raději se věnuji cestování, dávám zde alespoň dva odkazy, na fotky, které se mi podařilo umístit na net. Text k cestě a další po návratu.

Foto naleznete zde: https://picasaweb.google.com/Lukas.Faltynek/Vitetnam_1?feat=directlink

a

zde: https://picasaweb.google.com/Lukas.Faltynek/Vietnam2?feat=directlink

Otcové a bastardi

Trošku drsný titulek, název knížky Ivy Procházkové. První knížka, kterou jsem od této autorky přečetla se jmenovala Nazí. Moc pěkná, psychologicky laděná kniha, až po jejím přečtení jsem zjistila, že je dílo považdováno za knihu pro mládež. Znám ale plno dospělých, kteří jsou knihou nadšeni.

Otcové a bastardi mě názvem nenalákaly, nalákala mě autorka. A chyba to opět nebyla. Knížka se výborně čte, opět se prolínají psychologické prvky dětského i dospěláckého světa. De facto je to zamotaný příběh, život školáka, který má jen matku co trpí depresemi. Prolnuté příběhem rozvedeného překladatele, prolnuté příběhem školákovy učitelky, prolnuté příběhem školákova dědečka a taky sousedky, která v domě žije. Nechci popisovat detaily, ale objeví se zápletka, dramatické okamžiky a trocha fantasy.

O autorce

Další články o knihách:
Rybí hry dovedou k zamyšlení
Je libo něco ke čtení
Barevná sklizeň – almanach povídek – pohodové čtení na večer
Muži, kteří nenávidí ženy

Soubor nápovědy nefunguje – jak ho „opravit“?

Možná se Vám stalo (mně mnohokrát), že jste si stáhli soubor nápovědy pro Windows (přípona chm), který místo obsahu zobrazuje cosi o Navigaci na webovou stránku :-(.

Soubor chm - chyba zobrazení

Co teď s ním? Šel většinou do koše. A přitom stačilo málo. Klikněte na soubor pravým tlačítkem a vyberte Vlastnosti. Potom klikněte vpravo dole na Zrušit blokování.

Soubor chm - zrušit blokování

A je to :-)

Jak to vypadá na horách?

Pokud se rozhodnete vyrazit na pár dní na hory, Harrachov a okolí dokáže nabídnout mnoho jak pro aktivní sportovce, tak pro ty občasné sportovce. Pokud nemáte potřební vybavení na zimní sporty, v Harrachově si můžete veškeré vybavení vypůjčit. „Lyže, běžky, snowboard, sáňky. Ubytování se dá nalézt jak v luxusních hotelech, penzionech, a nebo i chaloupkách, kde si budete sami topit v krbových kamnech.

Do Harrachova se dostanete klasicky autem, dokonce i autobusem, nebo vlakem. Harrachov je rozdělen na několik „čtvrtí“, lépe řečeno bývalých osad, na zimní dovolenou se hodí všechny lokality, protože lyžaře i běžkaře rozváží skibus.

Číst dál »

Živě z Vietnamu – ze zimy do léta – pár řádek před cestou

Po cestě je každej frajerem. „Nic to není. Zvládne to každej. Je to brnkačka. Fantasticky prožité týdny.“ A kdo ví, co se ještě říká. Před pár měsíci jsem měl v uších to samé, tak jsem se zamyslel a řekl si, že bych měl na pár týdnů také vyrazit. Na netu mi do oka padla laciná letenka do Dillí. Za necelých osm táců zpáteční. No nekupte ji. Málem jsem ji koupil. Ne pro cestu do Indie, ale do Nepálu. Není to od sebe daleko. Na Anapurnách bych byl raz dva a pak se kochal krásami velehor. Nebo základní tábor Mt. Everestu. I to jde celkem pohodlně zvládnou. Minimálně prstem v atlase s turistickým průvodcem při ruce.

Vzhledem k letním vysokým teplotám se cesta do sněhem pokrytého Nepálu plánovala výborně. S přicházejícím podzimem se mi chladná rána začala zajídat a tak jsem cíl cesty změnil na Thajsko. Přečetl jsem si pár cestopisů, pár lidí se v nich zmiňovalo o Vietnamu. Zemi s zatím ne úplně rozvinutou turistikou. Vietnam chválili. V neposlední řadě navštívila minulou zimu jih Vietnamu Klárka. Ukázala mi fotky, řekla k němu pár slov a bylo jasno, jedu do Vietnamu.

Vybrat a koupit si letenku je otázka maximálně pár dní. Pak si už stačí zkontrolovat očkování, vydělat něco peněz a čekat na den odletu. Jak to bude dál, uvidím.

Poslední týden jsem na Vietnam vůbec nemyslel. S rodinou jsem si týden užíval zimních prázdnin na horách.

Lyžoval.
Číst dál »

Barevná sklizeň – almanach povídek – pohodové čtení na večer

Vyklopím to rovnou, útlou, do barev podzimu obalem laděnou sbírku povídek Barevná sklizeň mi pár dní před Vánoci darovala Klárka. Autorka výborných fejetonů, postřehů ze života a cestopisných článků a hádanek na tomto blogu.

Udělala mi radost a to hned dvakrát. Za prvé knihou samotnou. Povídky mám moc rád. Na rozdíl od románů, například v minulosti zde doporučované skvělé trilogie Milénium Stiega Larssona, čtení povídek nemusíte věnovat tolik času, abyste se dozvěděli pointu. Za druhé pak faktem, že jednou z autorek zařazených děl je Klárka. Gratuluji.

Autorsky tvoří obsah almanachu díla deseti prozaiček. Žádný tvůrčí muž se nevměstnal. Každé z autorek je v knize věnovaný delší či kratší souvislý blok s jednou, nebo více povídkami. Jedinou výjimku tvoří závěrečná blok Gabriely Oaklandové, která se představuje básní. Některé z autorek se na začátku svého bloku představí akrostichem, jehož obsahem je jméno autorky. Nejvíce se mi líbil akrostich Kateřiny Borkové.
Číst dál »

Nedělní hádanka – Herkules a věk královských dcer

Před nějakým časem nám v komentářích Jiří Šindýlek, který stojící za sbírkou elektronických hlavolamů, zanechal hezkou hádanku o Herkulovi a věku královských dcer.

Hádanka vyšla v roce 1987 v blíže nespecifikovaných novinách. Zadání je následující:

Herkules jednou na svých cestách přišel ke králi, který měl tři dcery. Protože se mu líbily a chtěl si jednu z nich vybrat, dal mu král tuto hádanku:

Dostaneš moji dceru, když mi přesně řekneš kolik je každé z nich let a nesmíš se zmýlit ani o rok.

„Dostanu nápovědu ?“, zeptal se Herkules.

Ano! Podívej se na tento les je v něm tolik stromu, že když napíšeš toto číslo dvakrát za sebou, dostaneš šesticiferné číslo, jestliže jej vydělíš počtem stromů v lese, dostaneš číslo, které je součinem věků mých tří dcer.

A to už Ti musí stačit Herkule!

Kolik bylo první, druhé a třetí dceři?