Michal Čihař - Archive for Jan. 1, 2008

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'] ).

Gammu test version 1.17.90

New Gammu testing version is out. This time there are no exciting new features, I still continue in bug fixing mode and cleaning up things. Full list of changes:

  • Fixed crash when there are too many messages (bug #466).
  • Fixed crash when printing messages on Windows (bug #476).
  • Do not ask phone for IMEI so often (bug #480).
  • No need to set LD_LIBRARY_PATH for tests.
  • Properly wait for SMSD child processes (bug #486).

You can download from usual place: http://cihar.com/gammu/.

Ukolovnik 0.9

New version of simple todo manager called Ukolovnik has been just released. Version 0.9 comes with following changes:

  • Fixed double SQL escaping in some cases.
  • New Swedish translation.

Č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 .

Back in Japan

After two weeks being back in Czech and mostly offline, I got back to Japan this weekend. The travel went quite okay, the only thing I really don't understand is why Japanese customs always want to check my luggage. There must be something special on it or I probably look like drugs smuggler, but he did not answer my question why they always select me for checking things :-).

Anyway I already processed most of email backlog, only about 100 mails remain, I hope to read and reply them during this week.

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.

Vlastní témata

Nelíbí se vám žádné z nabízených témat phpMyAdmina a máte zkušenosti s vytvářením grafiky pro web? Tak si vytvořte vlastní téma!

Vytvořit vlastní téma je celkem jednoduché, téma se skládá z definované sady obrázků, tří souborů definující CSS, screenshotu a dvěmi PHP soubory s informacemi o tématu. Pokud ovšem jsme příliš líní, můžeme si stáhnout již hotová témata ze stránkek projektu a vycházet při úpravách z nich.

Základní informace o tématu – jeho název, který se zobrazí uživateli a verze phpMyAdmina se kterou je kompatibilní, se nacházejí v souboru info.inc.php :

 
  <?php
$theme_name = 'Moje téma';
$theme_full_version = '2.9';
?>
 

Pokud je verze starší než aktuálně používaná, pokusí se phpMyAdmin aplikovat na CSS změny, ke kterým mezitím došlo. Nicméně toto pravděpodobně nebude přestě to, co by udělal autor a proto je vhodné téma při každé nové verzi revidovat.

Ve starších tématech můžete místo $theme_full_version nalézt proměnné $theme_version a $theme_generation , které se dříve používaly pro určení verze. Témata v rámci jedné generace by měly být zpětně kompatibilní (dochází například k přidání obrázků nebo css tříd), rozdílné generace témat mohly být naprosto odlišné. Protože ale toto značení bylo pro uživatele nepřehledné, nyní se preferuje zapsání kompatibilní verze.

Dalším PHP skriptem je soubor layout.inc.php . Ten obsahuje konfigurovatelné nastavení tématu, které může uživatel změnit bez přímého zásahu do tématu (například šířka navigačního rámu nebo použité písmo). Co umožní téma konfigurovat záleží na autorovi, ale doporučujeme držet se originálních témat.

CSS styly nastavíme v souborech v adresáři css. Tyto soubory jsou tři, po jednom pro levý a pravý rámec a jeden pro tisk: theme_left.css.php , theme_right.css.php a theme_print.css.php . Mohou to být jen čistě css soubory nebo využít i možností php a v něm použít konfigurace ze souboru layout.inc.php a předdefinovaných proměnných pro detekci různých prohlížečů. Pro popis jednotlivých tříd je nejlepší se podívat do existujících témat, komplexní dokumentace zde bohužel chybí.

Nejnáročnější část tématu na vytvoření je asi sada obrázků. Protože většina akcí je znázorněna ikonkou, je obrázků je poměrně hodně (v současné verzi 115). Nicméně i zde je možné si práci ušetřit použitím ikon z existujícího tématu (takto ostatně vznikla i většina témat, které jsou k phpMyAdminovi k dispozici).

Po vytvoření a vyladění všech těchto souborů vytvoříme ještě malý screenshot screen.png , aby uživatel viděl, jak naše téma vypadá a můžeme ho rozšířit do světa pomocí trackeru na webu projektu.