Musím s pravdou ven. Popravdě jsem si v posledním článku mého seriálu o Macích. Sliboval jsem, že si příště rozbalíme krabici. Měl jsem v úmyslu ukázat, jak je obal od MacBooku pěkně nadesignovaný (jak už to u výrobků od Applu chodí), jaká extáze je rozbalování a šňupání té omamné vůně ozónu, která stoupá z útrob nového počítače.
Když jsem svůj krátkozraký příslib psal, právě končila zima a já si říkal, že se k článku a hlavně focení dostanu, sotvaže trošku vyleze sluníčko – zkrátka aby krabice vypadala co nejvíc sexy. Jenže jsem si nabral ukrutné množství práce, na krabici se mezitím snášel prach, já se uklidňoval, že ještě pořádně sluníčko nesvítí a že tedy není kam spěchat. Ale časem mi začínalo být jasné, že se k tomu asi nedohrabu. Teď už sluníčko nesvítí vůbec, začíná podzim a já se musím přiznat, že jsem hrozně líný něco o té krabici napsat. Kdybych měl víc času (a hlavně kdybych byl někdo jiný, někdo, kdo rád píše a najde si na to volnou chvíli), tak bych vám nadatloval stohy textu o tom, jak velká a potřebná změna ten přechod z PC byl. Ale jelikož já jsem já a já jsem líný až se hory zelenají, bude z toho prd.
No ale něco bych přeci jen měl: sem tam, když se objeví volná hodinka, bych vás rád seznámil se zajímavými programy, které ke své práci potřebuji a bez kterých bych se už asi neobešel. A kdybych byl já opravdu já, přesně v tomto okamžiku bych tento zápis ukončil, poklepal bych si na rameno, že jsem zase něco napsal a slíbil bych vám i sobě, že to co nejdřív dopíšu. Ale protože chci projednou překročit svůj stín, rovnou se vrhnu po nohou do prvního programu. A tím je… (ta da dá)
Charles Web Debugging Proxy
Cože? Charles? To je mi ale podivné jméno pro program, říkáte si asi. A to jste ještě neviděli jeho ikonku – vlastně tedy už viděli tady nalevo. Inu věřte, že Charles je jedním z nejdotaženějších programů, s jakými jsem měl tu čest kdy pracovat. A navíc není ani drahý – a lze jej docela dobře používat i jako trialware. A ta podivná ikonka s džbánkem z Karlových Varů je už jen navýsost vyladěná třešnička na dortu. Když začnete Charles používat (popravdě řekl bych, že vám bude téměř neustále běžet v minimalizované podobě), začnete se na ten květovaný džbánek těšit. Tedy rozhodně je to jedna z nejvíc nejoriginálnějších ikon, jaké jsem kdy viděl.
Ale zpět k funkcionalitě. Pokud děláte weby (a to asi děláte, protože jinak byste tento článek asi nečetli) – a pokud jsou ty weby navíc flashové, pravděpodobně jste se již dostali do situace, kdy jste potřebovali mít přehled o toku dat z a do vašeho prohlížeče. Zkrátka co, kdy a jak rychle se stahuje do počítače nebo cpe zpátky na internet. Prostě jak probíhá komunikace klient – server. Anebo jste jednoduše potřebovali nasimulovat pomalý modem, abyste mohli precizně vyladit ten děsně povedený flashový preloader, který jste právě připravili pro projekt, na kterém pracujete.
Na to všechno se Charles výborně hodí. Než jsem na něj narazil (ještě když jsem se řadil mezi uživatele platformy PC), sháněl jsem nějaký jednoduchý packet sniffer. nečekal jsem, že by někdo naprogramoval něco až tak dokonalého, co by mi dokázalo splnit všechny tužby (a dovolilo mi psát takové preloadery, jaké teď píšu, hehe). Původně by mi naprosto stačilo, kdyby sniffer ukazoval, jaké soubory se odkud tahají a jestli zrovna aplikace neposílá něco ven. Však to asi znáte, ve Flashi se moc chybových hlášek nedočkáte, všechny testy chyb si musíte naprogramovat sami.

Našel jsem Charlese. On to všechno umí. A mnohem, mnohem víc! Sedí jako proxy server mezi aplikací a internetem. Aplikace je zpravidla prohlížeč, flashový plugin (který vlastně využívá síťové funkce prohlížeče) nebo jakýkoliv program, takže např. i multiplayer hra, klientská aplikace pro přehrávání internetového rádia nebo třeba nějaká věc napsaná v Adobe AIR.
Charles je schopen tuto komunikaci dekódovat. Proti packet snifferu se liší tím, že nedekóduje vše, co chodí z a na síťovou kartu (tzn. všechny protokoly), ale pouze protokoly HTTP a HTTPS (případně tyto protokoly visící na jiném portu, než na jaký jsou stavěné – 80, resp. 443). Charles tuto komunikaci zachytává a loguje, analyzuje a filtruje její obsah a počítá podrobné statistiky. Ve výsledcích můžete vyhledávat, můžete je filtrovat a třídit.
To všechno samozřejmě umí i jiné sniffery, Charles se ale liší jedním (obzvláště pro flashaře) důležitým detailem: umí dekódovat AJAX, XMLHTTP, SOAP a AMF komunikaci. SOAP používá Microsoft ve svých WebServices, AMF0 a AMF3 je “remotingový standard původně od Adobe. Charles také analyzuje HTML, JS a CSS soubory, dokáže zobrazit obrázky, které jsou stahovány, ukáže vám metadata SWF a FLV souborů. Umí i několik video formátů.

Výše zmíněné SOAP a AMF záznamy dokáže procházet a dokonce editovat. Můžete tak jednotlivé příkazy zopakovat, aby na ně některá strana znovu zareagovala. Tak můžete ladit některé těžce dosažitelné kritické situace. Příkazy můžete ukládat na disk a opět načíst.
Velmi jsem si oblíbil funkci mapování lokálních serverů na servery virtuální. Pokud máte někde na lokálu web http://localhost/mujweb, jednoduše si ho můžete přesměrovat na http://mujweb.cz. Dokud Charles běží, všechny vaše dotazy na mujweb.cz jsou přesměrovány na web server běžící na vašem počítači. Deployment je pak o poznání jednodušší, protože si např. můžete napevno nastavit adresy pro flashový remoting uvnitř vaší flashové aplikace (nebo lépe v jejích konfiguračních souborech).

Jak jsem již řekl, Charles umí zpomalovat komunikaci, dokáže tak simulovat pomalé modemy. Může být použit jako proxy pro celou vaší síť (užitečné je to např. pokud potřebujete ladit na více počítačích najednou – já tak například ladil Q-city. Velmi jednoduše lze nastavit blacklisty na některé adresy – a to i pomocí masek. Výborná funkce je vynucení vypnutí cachování všech souborů v prohlížeči. Tak lze obejít známý problém Flashe, kdy se SWF soubory zpravidla cachují vždy a cache je pak nutno vymazávat ručně (nebo jí v prohlížeči vypnout).
A to nejlepší nakonec: jak jsem již psal, je velice dobře použitelný i v neregistrované verzi (musíte občas odkliknout otravné okénko) a je k dispozici pro Mac OS X, Windows i Linux.



























Na Kypr! #1: Zítra odlétáme.
Tak a je to tady. Po zhruba měsíci příprav zítra odlétáme na osm měsíců na Kypr.
Ono to zní jako pohádka… Osm měsíců na Kypru. Ale to bych musel být milionář, abych si takovou dovolenou mohl dovolit. Ne, vážení, není to tak. Já tam jedu pracovat. A vypadá to, že budu pracovat i po nocích, nějaké větší projekty se se mnou táhnou nadále. Popravdě také bych rád dodělal nějaké své již dlouho plánované věci, ale jak to tak vidím, tak na ně asi moc času nebude. Kristina si také bere počítač, takže asi přijdou pěkné večery pod lampou. Vzali jsme si tedy pěknou zásobu filmů a seriálů, řekl bych, že i kdybychom každý večer na něco koukali, že spousty věcí nestihneme. Ale jak říkám, díky práci to asi nehrozí.
Opravdu jsem zvědav, jak bude vypadat náš náraz na jinou realitu. Tím nemyslím jen řízení vlevo, spory Turků a Řeků, turecké záchody a (pravděpodobně) pomalý internet. Ono to bude asi celkově dost jiné. Orient hele prostě. A já si myslím, že něco takového potřebujeme jako prase drbání. Už dlouho sedíme v Praze a život utíká. Mno o tom všem bych sem rád něco napsal. A přidal pár fotek a videí, snad… Jen mě mrzí, že mi zrovna předevčírem začal stávkovat foťák na mobilu, s tím je člověk nejrychlejší. Tak holt budu fotit větším krámem, spousta věcí mi tak sice uteče než aparát vybalím, ale zase ze mně asi polezou technicky vyspělejší fotky. Asi.
Teď je tady všude kolem hrozný chaos. Letíme charterovým letem, takže můžeme mít s sebou jen dvakrát 20 kg zavazadel (a nějaká příruční na palubu). Vojta totiž nemůže mít mimo kočárku vůbec nic. Přes deset kilo váží naše technika, věci pro Vojtu váží mají dalších dvacet kilo… No tak si to spočítejte. Asi si vezmu dvoje kalhoty přes sebe a budu pořád chodit v jednom triku. Prostě pank.
Tak hurá, jdeme na to! Až tu zimu tady nějak přežijete, tam bude minimálne 15 stupňů. Teď tam jsou ještě třicítky a moře má 28. No tyjo. Asi mi bude v Larnace po příletu v dvojkalhotáholtch docela teplo.