Michal Čihař - Blog Archives for Czech

Znakové sady v MySQL a phpMyAdminovi

MySQL od verze 4.1 podporuje nativně práci s různými znakovými sadami. Bohužel mnoho aplikací a dat v databázích vzniklo dříve a tuto podporu nevyužívají. Pak se uživatel může potýkat s mnoha problémy. Dnes se podíváme na to, jak ty nejčastější vyřešit.

MySQL a znakové sady

Ve verzi 4.1 přibyla v MySQL podpora pro znakové sady a řazení. Ty se nastavují v několika úrovních – výchozí pro server, databázi a tabulku a nastavení pro jednotlivé sloupce. Pokud máme databáze ze starší verze MySQL, nemají přiřazen žádný způsob řazení a použije se výchozí pro server. Výchozí pro MySQL je latin1_swedish_ci , což je pro české podmínky poněkud nevhodné. Jméno řazení se skládá ze tří částí oddělených podtržítkem – první určuje znakovou sadu, druhá jazyk a třetí variantu porovnáván. Varianty porovnávání jsou tři:

ci
case insensitive – nerozlišuje velikost písmen
cs
case sensitive – rozlišuje velikost písmen
bin
binary – řadí podle hodnoty znaku a ne lexikograficky

Pro češtinu máme k dispozici tyto varianty: ucs2_czech_ci, utf8_czech_ci, cp1250_czech_cs, latin2_czech_cs.

Podpora znakových sad v phpMyAdminovi

Do phpMyAdmina přibyla podpora tyto vlastnosti MySQL ve verzi 2.6.3. Nastavit můžete výchozí porovnání pro databázi , tabulku a stejně tak i pro jednotlivé sloupce, které vidíme na přehledu tabulky .

Na úvodní stránce si také můžeme vybrat porovnávání použité pro zobrazování výsledů, ale použitá znaková sada bude vždy utf-8, protože stránky phpMyAdmina jsou v utf-8.

Co dělat když je něco špatně?

Pokud se nám některé znaky zobrazují v phpMyAdminovi špatně, je chybně nastavená jejich znaková sada. Znakovou sadu není možné měnit v přímo, protože MySQL server pak provede konverzi dat mezi těmito znakovými sadami a data budou nejspíš nenávratně poškozena! Pokud chceme jen změnit znakovou sadu sloupce, musíme ho nejprve převést na binární hodnotu (tedy na pole typu BINARY/VARBINA­RY/BLOB odpovídající CHAR/VARCHAR/TEXT) a pak zpět na původní typ jen s jinou znakovou sadou. Takto zůstanou data v nezměněné podobě a jen se změní znaková sada.

Po této změně je ale možné, že používané starší aplikace budou mít problém zobrazit správně data. Aplikace totiž bez explicitního určení znakové sady dostávají data ve výchozí znakové sadě serveru (což je latin1). Pokud k aplikaci máme zdrojové kódy, stačí hned za připojení k MySQL přidat SQL příkaz SET NAMES 'znaková sada' . Ten zajistí, že MySQL server bude posílat data ve znakové sadě, kterou aplikace používá. Pro češtinu máme opět čtyři možnosti: utf8 , latin2 , cp1250 a ucs2 .

Můj první modul pro Drupal

Jakmile jsem se rozhodl používat Drupal pro české stránky o phpMyAdminovi , bylo mi jasné, že si časem nevystačím s tím co už pro něj někdo napsal, ale budu muset vytvořit něco sám. Naštěstí dokumentace k Drupalu je celkem dobrá (rozhodně patří k tomu lepšímu co se mezi open source vyskytuje), tak vytvoření jednoduchého modulu nebylo až tak složité.

Chtěl jsem na phpMyAdmin.cz začít používat některé ze služeb měřící návštěvnost. Místo upravování šablon mi jako lepší řešení přišlo napsat si modul, který udělá co potřebuju a nebudu muset zasahovat do originálních šablon (a tím se vyhnu problémům při aktualizaci). Vzal jsem existující modul pro Google analytics, protože mi připadal podobný, ale nakonec toho z něj moc nezůstalo :-). Asi po hodině už jsem měl verzi, která fungovala celkem dobře a tak jsem si říkal, že by nebylo od věci to někde zveřejnit.

Jako logické místo se jeví Drupal.org a i tento postup je tam vzorně zdokumentován. Žádost o CVS přístup byla vyřízena během pár dnů, a já už mohl commitovat svůj první kód do jejich repository. K mému překvapení commity někdo sleduje, protože asi hodinu po prvním commitu už mi přišla reakce od někoho, že přesně takový modul potřeboval :-). Tak jsem jenom dokončil vyčištění a další den vyšla první verze modulu Český audit .

Oblíbené dotazy

Pokud často používáte nějaký komplikovanější dotaz, tak vás asi nebaví ho pokaždé zadávat znovu. Proto byla do phpMyAdmina přidána funkce pro ukládání a používání oblíbených dotazů. Pro její použití ovšem potřebujete mít zapnutou podporu pro rozšířené funkce .

Vytváření oblíbeného dotazu

Dotaz můžete vytvořit jakýmkoliv způsobem, třeba ho zadat jako SQL, nebo pomocí vyhledávací stránky. Po jeho provedení uvidíte pod výsledky rámeček pro přidání SQL dotazu do oblíbených, kde stačí zadat jméno a phpMyAdmin so ho bude pamatovat. Pokud dotaz nechcete spouštět, můžete oblíbený dotaz rovnou vytvořit na SQL stránce . Tato možnost je obzvláště vhodná pro dotazy, které nevrací žádný výsledek (například úprava tabulek nebo vkládání nových záznamů).

Oblíbený dotaz není omezen na jediný SQL příkaz, ale jsou zobrazeny jen výsledky toho posledního, takže není moc užitečné do něj vkládat víc dotazů vybírající nějaké řádky.

Při vytváření můžeme dotaz pojmenovat libovolně. Pokud ho ovšem pojmenujeme stejně jako se jmenuje některá tabulka v databázi, phpMyAdmin tento dotaz použije při procházení této tabulky. Tímto můžeme například omezit počet zobrazených sloupců při prohlížení tabulky.

Práce s oblíbenými dotazy

Již vytvořený dotaz se objeví na SQL stránce , odkud ho jeho vybráním můžeme spustit.

Oblíbený dotaz upravíme podobným postupem jako ho spouštíme. Jen je zapotřebí na SQL stránce zvolit „Zobrazit“ místo výchozího „Provést“. Tím bude dotaz zobrazen v editačním poli pro SQL a máme možnost ho po úpravách znovu uložit. Pokud chceme přepsat starý dotaz, nesmíme zapomenout zaškrtnout „Přepsat existující oblíbený dotaz stejného jména“.

Pokud již oblíbený dotaz nepotřebujeme, můžeme ho opět na SQL stránce vymazat zvolením možnosti „Odstranit“.

Přístup k dotazům

Standardně má k dotazu přístup pouze uživatel, který ho vytvořil, protože většinou nechceme aby k našim datům měli přístup ostatní. Pokud však chceme dotaz sdílet, nabízí nám phpMyAdmin tuto možnost, stačí při vytváření (nebo úpravách) zaškrtnout „Umožnit všem uživatelům používat tuto položku“ a pak všichni uživatelé budou moci používat tento dotaz. Toto také znamená, že ostatní uživatelé budou moci dotaz upravit a smazat.

Parametry oblíbených dotazů

Zatím jsme oblíbené dotazy vytvářeli jen pevně dané. phpMyAdmin ale umožňuje do dotazu začlenit i volitelnou část, která se přidá při zadání parametru. Hodnota parametru bude vložena namísto [VARIABLE] a zakomentovaná část dotazu bude odkomentována. Takový dotaz pak může vypadat třeba takto (používá se databáze sakila ):

 
  SELECT * FROM `city`
/* WHERE `city`.`country_id` = [VARIABLE] */
 

Pokud tedy parametr nezadáme, vybere dotaz všechny města, pokud ho zadáme, vybere jen města v dané zemi.

Že se ještě vůbec snažím někomu radit

Chápu, že občas na jabber konferenci pro phpMyAdmina vleze někdo kdo má problémy s MySQL. Ale když už někdo neví co dělá a chce provozovat redakční systém v PHP, tak by aspoň mohl mít trochu slušnosti. Pojmenovat se aaa na důvěryhodnosti moc nepřidá (a koneckonců anonymitu taky ne, stejně IP adresu vím ;-)) a po prvním dotazu "hele kde mám zjistit udaje MySQL?" už se člověk nemůže ubránit pocitu co že to za blbce sem zase dorazilo. Nicméně to mě neodradilo od toho se mu pokusit poradit, ale dobře míněná snaha stejně přišla vniveč. Ostatně posuďte sami . No nic je na čase jít spát.

Vlastní exportní formát

Před týdnem jsme se dozvěděli, jak exportovat data do podporovaných formátů. Co ale dělat, když potřebujeme data ve vlastním formátu? Napsat si vlastní exportní modul není nic těžkého, jak na to se dozvíte v dnešním článku.

Začátek

Nejdříve si rozmyslete, co všechno od exportu budete potřebovat a jaké možnosti nastavení bude export mít. Vždy je lepší si nejprve ujasnit požadavky, než se vrhneme na programování. Pro ukázku v tomto článku budeme vytvářet export do textového souboru, který půjde dále zpracovat pomocí Texy! . Nastavení použijeme stejná jako mají ostatní podobné exporty, tedy možnost vypnutí dat nebo struktury, zobrazení jmen sloupců a text, kterým nahradíme NULL hodnoty.

Hlavička

Každý plugin obsahuje hlavičku, která se provádí při načítání pluginů. Ta definuje jednak informace o pluginu a také parametry, které bude možné nastavit na stránce s exporty. Pro náš export tedy bude základní hlavička vypadat takto:

 
  <?php

/*Texy! export for phpMyAdmin */

if (isset($plugin_list)) {
    /* Jméno zaregistrovaného pluginu musí být stejné jako jméno souboru */
    $plugin_list['texytext'] = array(
        'text' => 'Texy! text',         /* Jméno pluginu které se zobrazí uživateli */
        'extension' => 'txt',           /* Přípona vygenerovaného souboru */
        'mime_type' => 'text/plain',    /* MIME typ vygenerovaného souboru */
        /* Definice parametrů: */
        'options' => array(
            array('type' => 'bool',
                'name' => 'structure',
                'text' => 'strStructure',
                'force' => 'data'),
            array('type' => 'bgroup',
                'name' => 'data',
                'text' => 'strData',
                'force' => 'structure'),
            array('type' => 'text',
                'name' => 'null',
                'text' => 'strReplaceNULLBy'),
            array('type' => 'bool',
                'name' => 'columns',
                'text' => 'strPutColNames'),
            array('type' => 'egroup'),
            ),
        'options_text' => 'strOptions',
        );
} else {

/* Sem přijde kód pro export */

}
?>
 

Pokud nyní soubor s tímto PHP kódem uložíme jako libraries/export/texytext.php , měl by phpMyAdmin už tento plugin zobrazit na stránce pro export.

Implementace exportu

Pro vlastní export je potřeba implementovat několik funkcí, které mají za úkol získat data z MySQL a poslat je na výstup pomocí funkce PMA_exportOutputHandler . Tato funkce zajišťuje zpravování výstupního bufferu, kompresi a posílání dat uživateli nebo ukládání na server. Vrací false, pokud operace selhala.

Funkce, které musíme implementovat jsou tyto:

  • PMA_exportComment
  • PMA_exportFooter
  • PMA_exportHeader
  • PMA_exportDBHeader
  • PMA_exportDBFooter
  • PMA_exportDBCreate
  • PMA_exportData
  • PMA_exportStructure

Všechny by opět měly vrátit false, pokud se něco nepodařilo. Funkcí je sice hodně, ale to je jen z důvodu usnadnění psaní exportů do rozličných formátů. Jejich názvy jsou snad celkem výstižné, takže ani nebudu popisovat k čemu která slouží. Pro náš případ potřebujeme jen funkce PMA_exportDBHeader , PMA_exportData a PMA_exportStructure , ostatní mohou jen vracet true a nic nedělat.

PMA_exportDBHeader

Tato funkce má za úkol vypsat hlavičku exportu a bude tedy poměrně triviální:

 
  function PMA_exportDBHeader($db) {
    return PMA_exportOutputHandler('===' .
        $GLOBALS['strDatabase'] . ' ' . $db . "\n\n");
}
 

PMA_exportData

Teď se již dostáváme ke komplikovanějšímu úkolu – exportu dat. Začneme opět nadpisem, aby uživatel věděl, o jakou tabulku se jedná:

 
  if (!PMA_exportOutputHandler('== ' . $GLOBALS['strDumpingData'] . ' ' . $table . "\n\n")) {
    return FALSE;
}
 

Jako další krok potřebujeme načíst data z MySQL. Pro to použijeme DBI vrstvu phpMyAdmina:

 
  $result      = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
$fields_cnt  = PMA_DBI_num_fields($result);
 

Uživatel měl možnost si vybrat, zda chce zobrazit v hlavičce jména sloupců. Zde poprvé použijeme přístup k parametrům a podle jeho hodnoty případně zobrazíme hlavičku:

 
  global $what;

if (isset($GLOBALS[$what . '_columns'])) {
    $text_output = "|------\n";
    for ($i = 0; $i < $fields_cnt; $i++) {
        $text_output .= '|' . htmlspecialchars(stripslashes(PMA_DBI_field_name($result, $i)));
    } // end for
    $text_output .= "\n|------\n";
    if (!PMA_exportOutputHandler($text_output)) {
        return FALSE;
    }
} // end if
 

Nyní nám už jen chybí vypsat data z databáze uživateli:

 
  while ($row = PMA_DBI_fetch_row($result)) {
    $text_output = '';
    for ($j = 0; $j < $fields_cnt; $j++) {
        if (!isset($row[$j]) || is_null($row[$j])) {
            $value = $GLOBALS[$what . '_null'];
        } elseif ($row[$j] == '0' || $row[$j] != '') {
            $value = $row[$j];
        } else {
            $value = ' ';
        }
        $text_output .= '|' . htmlspecialchars($value);
    } // end for
    $text_output .= "\n";
    if (!PMA_exportOutputHandler($text_output)) {
        return FALSE;
    }
} // end while
 

A uvolnit výsledky dotazu a vrátit návratovou hodnotu:

 
  PMA_DBI_free_result($result);
return TRUE;
 

PMA_exportStructure

Export struktury je asi nejnáročnější a určitě nejrozsáhlejší, nicméně neobjevují se zde již žádné nové věci týkající se exportu, proto se na její celý kód podívejte sami v přiloženém souboru. V úvodu se načtou z MySQL parametry tabulky, poté pomocí funkcí phpMyAdmina načteme informace o relacích a MIME typech sloupců a tyto informace zformátujeme do Texy!.

Hotovo

A tím by mělo být vše hotovo. Plugin vyzkoušíme a pokud to uznáme za vhodné, pošleme do patch trackeru , aby mohl být náš plugin začleněn v další verzi phpMyAdmina.

Celý hotový exportní plugin naleznete v příloze článku.

Přílohy:

Hirošima, Miyajima a Himeji

Protože byl v pondělí svátek, naplánovali jsme si s Reném výlet do vzdálenějších končin Japonska - do okolí Hirošimy. Tohle město asi všichni znáte a po pravdě řečeno nebýt atomové bomby, tak tam asi moc turistů nepřijede. Ale po pořádku od sobotního rána.

Vyrazili jsme kupodivu podle plánu na šinkanzen směr Himeji. Tam jsme vylezli ven, zjistili, že dost prší a vrátili se zpět a pokračovali až do Hirošimy. Tam už naštěstí déšť přestal a mohli jsme se tedy vydat na prohlídku města. Začali jsme místním hradem (to samé jako na většině míst v Japonsku - znovu vybetonovaný po válce), kde nás opravdu překvapil dokonalý systém navigace turistů. Od hradu už jsme se vydali k největším atrakcím, ale po cestě jsme ještě náhodou potkali odloženou parní lokomotivu.

Nejzajímavější Hirošimská památka - A-Bomb Dome - je pro Čecha ještě více zajímavá, protože ho navrhl český architekt Jan Letzel. Na nedalekém ostrově se v mírovém parku nachází nespočet pomníků obětem výbuchu. Jen čínské obětí z politických důvodů mají svůj pomník mimo centrum města. V parku se také nachází muzeum, ve kterém se dozvíte všechny okolnosti výbuchu, co mu předcházelo a třeba také to, že Američané si jako svůj první cíl pro atomovou bombu vybrali ještě dlouho před koncem války Japonsko, protože si mysleli, že Japonci by v případě, že bomba nevybuchne, nebyli schopní pochopit jak funguje. V muzeu je také model města, kde můžete porovnat, jak to vypadalo před výbuchem a po výbuchu.

V neděli jsme vyrazili do nedaleké Miyajimy, kde na nás už čekala slavná plovoucí brána. Ale ještě před tím, než jsme k ní došli, stihl René přijít o mapu v souboji s jelenem. Vítěz jí nakonec uhájil i proti ostatním a mohl by si na ní v klidu pochutnat, kdyby mu jí nevytrhl kolemjdoucí Japonec. Kromě slavné brány jsme na ostrově viděli stovky Buddhů a zajímavou podzemní svatyni, ale přeci jen po pár měsících v Japonsku už člověku všechny ty chrámy moc zajímavé nepřijdou. Nakonec jsme ještě prošli místní obchodní uličku, kde v každém druhém domě měli stroj na výrobu místních sušenek. Můžete si vybrat z mnoha náplní, kromě tradiční (a nám nechutnající) fazolové pasty i čokoláda, puding nebo sýr. Pak už jsme nasedli na trajekt a tramvají se vrátili do Hirošimy.

Pondělní ráno jsme už Hirošimu opouštěli a chystali se na druhý pokus návštěvy Himeji. Cestou nás svezl starý šinkanzen, ve kterém si člověk opravdu připadá, že se vrátil o pár let dozadu. Cesta utekla poměrně rychle, přestože tento starý vlak jezdí na místní poměry pomalu.

Himeji bylo plné dívek v kimonech, takže už od nádraží jsme tušili, že se zde něco děje. Co se slavilo nevíme, ale v průvodech nesli šťastné dívky (tak ji pojmenoval jeden z jejích nosičů) a pak slavnostně naráželi sud s rýžovým vínem. Tímto zdržením se nám trochu zkrátil čas plánovaný na návštěvu hradu, ale nakonec jsme za dvě hodiny stihli projít vše od modlitebny v nejvyšším patře po pokoje princezny v západním křídle. Pak už jsme se s hradem rozloučili a vydali se na cestu do Nagojy.

Exportování databází a tabulek

phpMyAdmin už od dávné historie podporuje export do SQL. Když se však nyní podíváte na stránku umožňující export , uvidíte velké množství formátů. Tento nárůst byl do velké části umožněn zavedením možnosti snadno vytvářet pluginy pro export dat. Díky tomu začali uživatelé přispívat kód pro nové a nové formáty. Ale tomu, jak napsat exportní plugin pro vlastní formát, se budeme věnovat až někdy jindy, dnes nás čeká prohlídka stávajících možností jak exportovat.

Nastavení

To jak stránka vypadá, je do velké míry ovlivněno nastaveními – pole $cfg['Export'] určuje výchozí hodnoty pro všechny parametry exportu. Takže například výchozí formát můžeme nastavit takto:

 
  $cfg['Export']['format'] = 'sql';
 

Podrobnější popis možností nastavení najdete v  dokumentaci .

Stahování velkých exportů někdy může trvat dlouho a proto phpMyAdmin také umožňuje ukládat data přímo na server. Abychom této možnosti mohli využít, musíme vytvořit adresář, do kterého bude mít PHP právo zapisovat a cestu k němu pak nastavíme v konfiguračním souboru:

 
  $cfg['SaveDir'] = './save';
 

Všeobecné možnosti

V dolní části stránky umožňující export , nalezneme možnosti používané pro všechny formáty. Ve výchozím nastavení je možné jen nastavit, jestli chceme soubor zobrazit v prohlížeči, nebo aby ho prohlížeč umožnil uložit na disk, jméno takto posílaného souboru a formát komprese. Ve jméně souboru je možné používat i formátovací znaky pro datum, takže například __DB__-%Y%m%d vygeneruje jméno souboru obsahující jméno databáze a aktuální datum.

Po povolení možnosti zapisovat na server (viz přechozí kapitola) zde ještě přibude tato volba a dále po povolení změn kódování i možnost nastavit kódování výstupu.

Formáty

Ja jistě vidíte sami , podporovaných formátů je velké množství.

Codegen

Nový exportní modul v phpMyAdminovi 3.0, umožňující generování kódu pro různé implementace ukládání trvalých objektů. V současné době jsou podporovány jen formáty NHibernate. Více informací viz http://www.hibernate.org/ .

CSV

Textový soubor s daty, ve kterém jsou sloupce oddělené definovanými znaky. Volba CSV pro MS Excel jen přednastaví oddělovače na optimální znaky pro zvolenou verzi Microsoft Excelu.

Microsoft Excel 2000

Exportuje data do formátu Microsoft Excel 2000. Exportováno je do XML formátu, takže starší verze tohoto produktu nejsou schopné tento soubor otevřít.

Microsoft Excel 2000

Exportuje popis struktury a data do formátu Microsoft Word 2000. Exportováno je do XML formátu, takže starší verze tohoto produktu nejsou schopné tento soubor otevřít.

LaTeX

Vygeneruje tabulku s popisem struktury a daty pro LaTeX, která je vhodná pro začlenění do dalšího dokumentu. Pro začlenění potřebujete použít několik balíčků pro LaTeX, jak ostatně můžete vidět na následující ukázce:

 
  \documentclass{article}
\title{phpMyAdmin SQL output}
\author{}
\usepackage{longtable,lscape}
\date{}
\setlength{\parindent}{0pt}
\usepackage[left=2cm,top=2cm,right=2cm,nohead,nofoot]{geometry}
\pdfpagewidth 210mm
\pdfpageheight 297mm
\begin{document}
\maketitle

% sem vložte výstup z phpMyAdmina

\end{document}
 

Sešit OpenDocument

Exportuje data do formátu OpenDocument Spreadsheet.

Text OpenDocument

Exportuje popis struktury a data do formátu OpenDocument Text.

PDF

Vygeneruje PDF s daty tabulky. Může být vhodné pro prezentace nebo tisk dat.

SQL

Podrobnějšímu popisu nastavení SQL bude věnován některý další článek. Pokud však znáte jiné nástroje pro zálohování MySQL, nejsou pro vás dostupné možnosti cizí. Pro základní používání obvykle jen stačí vybrat, zda chceme exportovat data, strukturu nebo obojí.

XML

Vygeneruje XML dokument s daty. Názvy elementů jsou vlastní, ale pro další počítačové zpracování se může jednat o ideální a snadno parsovatelný formát.

YAML

Vygeneruje YAML kód, který se používá pro serializaci dat. Jedná se o výstup, který je jak čitelný člověku, tak strojově zpracovatelný, více informací viz http://www.yaml.org .

Nativní formát MS Excelu

Na závěr jsem si nechal tento formát, který není ve výchozím nastavení přístupný, protože vyžaduje další nastavení. Pomocí něj můžete vytvářet dokumenty ve formátu Microsoft Excel 97, takže pokud používáte tuto starší verzi, může to pro vás být jedna z možností.

Pro použití potřebujete nainstalovat PEAR modul Spreadsheet_Ex­cel_Writer a vytvořit adresář, kam tento modul bude moci vytvářet dočasné soubory (o něm pak dáte phpMyAdminovi vědět pomocí $cfg['TempDir'] ).

České man stránky pro Debian

Dnes jsem se konečně zase do delší době dostal k údržbě mých balíčků v Debianu a kromě drobných oprav (například Enca už bohužel není udržovaná a její stránky pohltili spammeři) jsem si rozhodl přidělat práci a připravil jsem balíček s českými man stránkami . Teď už jenom zbývá počkat, než projde přes frontu nových balíčků . Nedočkavci balíček mezitím najdou v mém repository .

Zážitky s Českou poštou

Opět jsem po České poště chtěl něco nestandardního. Tentokrát jsem potřeboval poslat na Slovensko balík s dobírkou. To že to nebude jen tak jsem čekal, ale výsledek opět předčil moje očekávání. Celkové skóre je hodina a půl (plus půl hodiny čekání než se dostanu k přepážce). V čem byl takový problém? Podle slečny, která mě celým procesem prováděla v tom, že lidé, kteří umějí balíky přijdou až odpoledne :-).

Na poštu jsem se vydal aspoň trochu připraven a na webu pošty jsem si aspoň zjistil jaké jsou možnosti poslání. Bohužel mi to v důsledku bylo na nic, protože buď to informace na webu jsou špatné, nebo na poště nevěděli jak něco udělat, takže se nakonec ukázalo, že je jediná možnost jakou to umí poslat.

Ale pěkně od začátku - přišel jsem k přepážce a měl jsem krabičku, kterou chci poslat na Slovensko a za kterou chci dostat 4000 Kč. Hned první problém nastal v tom, že 10x10x10 cm je malé a že „by se to mohlo cestou ztratit“, takže jsem musel krabičku vložit do „bezpečnostní obálky“. Tu samozřejmě nemůžu dostat u přepážky kde jsem, ale musím pro ní do pokladny. Nicméně tohle byla částečně moje chyba, mohl jsem si přečíst minimální rozměry zásilky na webu (ale nechápu proč mi vyhledávač pro rozměry 10x10x10 něco našel, teď už nenajde).

Vracím se ke slečně a ta začíná vymýšlet, jak takovou věc poslat. První možnost je jako listovní zásilka. Začínám vyplňovat podací lístek a formulář na dobírku, ale než to vyplním celé, tak po dohadování s kolegyní přichází s informací, že u listovní zásilky nejde udat cena a tudíž nejde pojistit.

No co už, původní formuláře vyhazuji a dostávám jiný formulář na balík do zahraničí a začínám vyplňovat. Tentokráte se žádná změna nekoná, jenom opravdu netuším v jaké měně mám udávat peníze, protože opravdu nevím co je „měna uvedená v sazebníku pro danou zemi“. Jdu tedy k přepážce a slečně se za pomoci dvou kolegyň a jedné asi 200 stránkové knihy se jí podařilo zjistit, že by to mělo být v Kč.

Doplňuji chybějící údaje a těším se, že už by to mohlo být vše. Bohužel po poradě s kolegyní slečna usoudila, že formulář na dobírku, který už jsem jednou vyplnil a zahodil asi budu potřebovat, takže vyplňuji ještě jednou, tentokrát už jako zkušený vyplňovatel :-).

Následovala poslední a neméně zdlouhavá fáze - tři pracovnice pošty koukaly do počítače a vymýšleli jak vyplněný formulář přepsat do počítače. Po asi 15 minutách se jim to podařilo a zdá se, že onen formulář na dobírku vůbec potřeba nebyl :-).

Jediné štěstí je, že slečna za přepážkou byla celkem příjemná, takže jsem z pošty neodcházel tak znechucen jako obvykle. A ano mohl jsem použít DHL, PPL nebo něco jiného, ale ty co jsem zkusil už nebyli schopní převzít zásilku v pátek a já v sobotu ráno odlétal do Japonska.