Musím s pravdou ven. Popravdě jsem si v posledním článku mého seriálu o Macích docela naběhl. 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

Charles: ikona

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.


Výchozí pohled na Charlese s jakýmsi výpisem z Q-city. Nahoře je stromová struktura z webu (tak jak jí Charles detekuje z odchozích požadavků), dole informace o vybraném záznamu.

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


Analýza SOAP záznamu. Všechny položky jsou editovatelné.

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


Nastavení simulace modemu (vlevo) a mapování lokálních serverů.

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.


Charles se sekvenčním výpisem.


Detaily jednoho záznamu.


Profilování požadavku.


Další profilování požadavku.

Včera jsem se zmínil o nákupu Mac Book Pro. Byl to krok do velkého neznáma, kterého jsem zatím vůbec nelitoval. Ještě bych se ale rád zastavil u toho, proč jsem zvolil Mac a ne Linux a už vůbec ne Windows. Z pozice grafika a programátora ve Flashi vám shrnu pro a proti každé z těchto platforem.

Windows XP (proboha ne Vista!)

Pro:

  • Nemusím nic moc konfigurovat, systém už přes 10 let ladím (reinstalace s kompletním softwarem mi díky různým vyexportovaným registrům zabere asi tři hodiny).
  • Mám nakoupenu spoustu softwaru, který na ostatních platformách můžu vlastně vyhodit (nebo používat v emulaci pod Parallels, VMware Fussion nebo když se člověk trošku pomodlí i Winem, přesněji tedy jeho distribucí CrossOver).
  • Za ta dlouhá léta jsem si vypěstoval takový “jiný” druh práce: moc nepoužívám myš, raději buším do klávesnice – mám nainstalovaný program, díky němuž jsem schopen klávesnicí ovládat spousty systémových příkazů, menu a podobně.
  • Pro Windows je všude kolem spousta grafického a multimediálního softwaru. I open source.
  • Předem je jasná naprostá kompatibilita s ostatními lidmi, drtivá většina uživatelů počítačů používá Windows. Bohužel.

Windows byla dlouhá léta dobrou volbou. Windows XP jsem si vyladil k naprosté spokojenosti, programem XPLite jsem si odinstaloval zbytečný software (moje Windows po instalaci mají něco pod 500 MB), pravidelně je čistil Crap Cleanerem a dobu rozpadu jsem tak prodloužil vlastně donekonečna (Windows, které jsem před Macem používal, byly sec-sakra-dlouho na disku – a věřte mi, šlapaly jak víno).

Proti:

  • Vadí mi Microsoft. Už léta mi vadí, ale poslední dobou je toho už vážně moc.
  • Windows XP je konečná. Vistu bych si na disk nikdy nepustil. Důvodů je spousta.
  • Uživatelské prostředí naprosto zaspalo dobu. Buď je drsně technické (jak teleport do devadesátých let) nebo jak ocucaný bonbon (Vista).
  • Aby byl systém použitelný, musí se pořád ladit a čistit.
  • Bezpečnost a viry. To je kapitola sama pro sebe.

Už mám dost Windows. Bezpečnost a Microsoftí přístup k lidem, Vistí kódování všeho, co se dá (HDMI apod.), věčné díry a potenciální zadní vrátka pro úřady (ano, jsem přirozeně paranoidní)… Díky tomu všemu jsem moc dobře věděl, že je třeba změnit ring.

Linux

Poslední distribuce, která mi naprosto učarovala, je Ubuntu. V minulém zápisu jsem vyjmenoval všechny, které jsem vyzkoušel (na které jsem si vzpomněl), ale Ubuntu je podle mně v současné době jednička. Ještě bych zvažoval Kubuntu (s prostředím “KDE“http://kde.org, opět je ale problém s nikdy nekončícím laděním bambiliardy parametrů; navíc KDE dost často zapomíná nastavení a stává se, že musíte začít nastavovat celý svůj profil nanovo) nebo SUSE Linux Enterprise Desktop (sice bych ho musel koupit, tato distribuce není zadarmo, ale zase bych nemusel spoustu věcí řešit, tato distribuce prostě funguje, má dobrou podporu hardwaru a hromada věcí, které bych jinde musel doinstalovávat, je v instalaci zahrnuta od začátku).

Pro:

  • Mohl bych se v systému vrtat do aleluja (ale to už nechci).
  • Velký výběr aplikací na všechno možné (se snadnou instalací a aktualizací pomocí instalačních balíčků)
  • Naprostá volnost se skinováním a vůbec grafickou podobou všeho (kdybych měl čas, rád bych přispěl komunitě s nějakou grafikou).
  • Většina programů je open source, tzn. “zadarmo”. Ono je to trošku složitější, nic není zadarmo, ale to teď ponechme stranou.
  • Bezpečnost

Prostě mít tak Linux, to bych se v tom mohl pěkně vrtat, až by se ze mně kouřilo (a práce by stála).

Proti:

  • Neustálé ladění všeho možného, pravděpodobné záseky na nefungujícím hardwaru a i softwaru.
  • Neexistence kvalitního grafického a multimediálního software, spoustu věcí bych musel řešit v nějaké emulaci Windows. Jasně, je tu Gimp a Inkscape, ale to opravdu zatím není řešení.
  • Velký výběr aplikací na všechno možné. Open source programátor je hrdé stvoření a když si řekne, že naprogramuje program, zpravidla se zvysoka vykašle na ostatní programátory, kteří už něco podobného programují léta a radši založí nový projekt. No a časem ho odstřelí, protože na něj nemá čas, neboť je na něj sám.
  • Každá aplikace má jiný design, v Linuxu se většinou zkrátka na design moc nehledí (všechna čest lidem, kteří se o něco snaží, např. Tango je skvělý projekt, který dokonce lze provozovat i na Windows)
  • Zkrátka je to pro lidi, kteří mají čas se neustále v něčem hrabat. Na maily, internet, programování (ne tedy Flashe, tedy jen s velkými obtížemi) a psaní textů je v pohodě. Na grafiku, multimédia, zvuky / hudbu a video to (zatím) moc není.

Linux je zkrátka volba pro moderního geeka. Grafika, který očekává, že může začít pracovat hned po instalaci, asi jen tak vyhovovat nebude.

OS X

Pro:

  • Všechno tak nějak funguje, aniž by se v tom člověk hrabal.
  • Spousty, spousty programů. Ať už na grafiku, multimédia, hudbu… Nebo jen nějaké utilitky, které člověk stejně časem odinstaluje, protože přijde na to, že je nepotřebuje a že mu vlastně docela dobře stačí programy přímo v OS X. Mimochodem: v základní dodávce jsou zdarma přibaleny skvělé programy pro střih videa (iMovie), jeho převod na DVD (iDVD), skládání, míchání a nahrávání hudby (Garage Band), správu fotek (iPhoto) a další inu to je ten veliký rozdíl proti Windows, kde musíte spoustu věcí dokoupit / doinstalovat, než začnou být použitelné.
  • Věci od Applu jsou prostě hezké. A jasně, mají spoustu vychytávek. Dálkové ovládání, magnetický konektor pro připojení do elektrické sítě. Pohybové senzory, se kterými se dají dělat srandovní věci. A tak podobně…
  • Spousta nových technologií vzniká v komunitě lidí kolem Maců (např. Ruby on Rails, které se zrovna učím)
  • Není problém provozovat linuxové aplikace nativně (pomocí MacPorts)

Proti:

  • Je to drahý špás a narozdíl od Dellu mi po (nedejbože) krádeži nikdo nic nedá.
  • Moc věcí člověk nenastaví. Systém prostě ví všechno lépe než vy. Vy jen klikáte. Ano, navíc kolikrát jen klikáte, jen s klávesnicí se daleko nedostanete.
  • Hardwaru od Applu moc nevěřím. Sice mají skvělé programy, ale ty kraxny prý moc nevydrží.
  • Flash Player je pomalý. Zvlášť ve Firefoxu a Opeře. Tím myslím opravdu dost pomalý.
  • Není moc her pro OS X. Což mi vlastně moc nevadí, na hraní čas vážně nemám.

Ještě bych přidělal pár hvězdiček, ale chtěl jsem jich mít všude stejně. Nemluvil jsem o bezpečnosti (OS X vychází z BSD, proto by mělo být bezpečné, každopádně chyby jsou všude a bezchybný operační systém neexistuje; na OS X a Linux zatím nejsou viry, otázka je, jestli je to právě tou bezpečností nebo tím, že není tak rozšířený).

Takže když si to srovnáme, vidíte, že má volba byla jasná. A vážně: ani trochu toho nelituji.

Příště si rozbalíme krabici :)

Psal jsem to už před časem: trošku jsem se plácl přes kapsu a pořídil si Apple MacBook Pro.

Tedy popravdě to bylo převeliké rozhodování: už léta jsem potřeboval notebook, už léta mě štvaly Windows a hlavně celá politika Microsoftu. Věděl jsem, že se tento operační systém už dávno stal slepou kolejí pokroku, jak bych tak řekl. Jenže jsem se až příliš zasekl na platformě PC, než abych se pustil do nějaké velké změny. Zkoušel jsem to léta: nejdřív Linux všech barev a chutí, pak speciální upgrade motherboardu a procesoru, abych vyzkoušel, co to je ten OS X (to když Jobs překvapil svět informací, že jejich operační systém už léta lze spustit na PC a že se Apple chystá přejít na platformu Intel). Tenkrát – tedy před rokem – mi po startu dával počítač na výběr ze tří možností: Windows, Linux a OS X.

Opravdu jsem se snažil, v Linuxu se mi ale nikdy nedařilo. Možná proto jsem vyzkoušel všechnu možné distribuce od Red Hatu, Suse, Mandrake / Mandrivy, Novellu, Kubuntu až k Ubuntu. Měl jsem ale dost problémů s vývojem Flashe (i když se mi za posledních pár let docela podařilo eliminovat vývojové prostředí Macromedia / Adobe Flashe, dnes všechny své projekty vytvářím v open source programech jako je MTASC, SWFMill, FlashDevelop a podobně).

Další velké problémy byly s grafickými aplikacemi. Nemůžu si pomoct, asi jsem už příliš velká konzerva, ale já se prostě bez Photoshopu neobejdu. Samozřejmě, že jsem zkoušel Gimp, Pixel a další programy, jenže co se dá dělat, není to ono. Já potřebuji layer blending módy (už jsem příliš líný, než abych všechny své bevely a stínky dělal ve speciálních vrstvách), chybí mi CMYK, blokový text a další kiliarda věcí, bez kterých to prostě nejde. A to ještě nemluvím o Illustratoru. Ten se mi sice podařilo nahradit Xarou, která je pro Linux zdarma, ale ta má zase velké problémy s importem a exportem. Koneckonců Xaru jsem používal už někdy od roku 1997, většinu vektorových věcí jsem udělal v ní. Já vlastně ten Illustrator ani moc neznám (to bude asi spíš tím, že jsem víc na pixely než na křivky).

Co se mi ale na Linuxu líbilo, byla možnost neustálého rýpání se v systému. To jsem prostě já: chci vědět, jak systém funguje, kde co můžu poladit (a poškodit) a s čím si lze hrát. To je sice neustálý zdroj obskurní zábavy, ale také přímá cesta do pekla. Člověk se lehce zasekne na den dva na nějakém problému (jakože mu například zrovna přestala fungovat Samba, tedy sdílení adresářů se světem Windows). A práce stojí.

Zatímco jsem si hrál s Linuxem, Windows mi stály na disku a když jsem potřeboval pracovat, přebootoval jsem do nich. No pravda, zkoušel jsem i možnosti emulace Windows Winem, VMwarem i Parallels, ale to prostě na grafiku také není to pravé. Měl jsem starší procesor, který nemá jakýsi virtualizační flag a tak, na rozdíl od mého aktuálního Intel Core Duo, bylo zpomalení emulovaného systému poměrně znatelné.

No a do toho se objevilo pár mých známých, kteří si pořídili Maca. Posílali mi zajímavé linky na svět Applu a mně učarovaly jejich vydesignované produkty a programy. O jejich operačním systému Mac OS X jsem po vizuální stránce příliš jistý nebyl, byl jsem spokojen se svým skinem ve Windows a veškeré jiné okrášlovací postupy mi přišly jak pokusy o amatérský cirkus (o grafice ve Vistě ani nemluvě). Jakub Steiner mi ukazoval, jak rychle lze sestříhat video. Karel Minařík mi zase radil, že jestli se nechci neustále v systému rýpat, že bych si měl pořídit právě jen a jen Maca.

A to nakonec zabralo. Jednou jsem se naštval a řekl si, že už bylo dost ladění. Je na čase začít pracovat a živit rodinu, ehm. Do té doby jsem přemýšlel o nějakém přenosném Dellu (hlavně z důvodu jejich neuvěřitelné Next Business Day záruky, nikdy nemůžu vědět, kdy mi Vojta nalije do klávesnice šťávu). Na něj jsem chtěl nainstalovat cracknutou verzi OS X. Ono by to fungovalo, tedy skoro vše, až na WiFi, Bluetooth a spoustu dalších “zbytečností”. No ale raději jsem poslechl Karla a zainvestoval do Maca…

To jsem zvědav, jestli se mi ta investice vrátí :)

Pokračování zítra.


Doporučuji k přečtení:

  1. Jaká je cena loga? To v Česku nikdo neví.
    Princip veřejné soutěže je v tom, že na návrzích pracují ZDARMA desítky lidí (bohužel i naprostých laiků) a odměnu (tedy platbu za poctivou mnohadenní práci) dostane jen jeden z nich (možná něco málo i druhý a třetí)! Toto „riziko“ by měla odměna zohlednit. Vítězství v jedné soutěži by vás mělo „zabezpečit“ i pro několik dalších soutěží, kde nevyhrajete. Odměny jsou tedy v šesti nebo sedmimístných částkách.
  2. Monstrous Legs
  3. as3Query: alpha version (jQuery for AS3)
    as3Query is an ActionScript3.0 port of John Resig's exellent JavaScript library jQuery 1.2.1.
  4. Mommy, Why is There a Server in the House?
    Helping you child understand the stay-at-home server.
  5. Xerox, The Very, Very, Very Shiny Company
    Conspiracy Theory No. 1: Xerox = Kodak + Xbox 360 + X-MEN III.
  6. Toshiba Builds 100x Smaller Micro Nuclear Reactor
    Toshiba has developed a new class of micro size Nuclear Reactors that is designed to power individual apartment buildings or city blocks. The new reactor, which is only 20 feet by 6 feet, could change everything for small remote communities, small businesses or even a group of neighbors who are fed up with the power companies and want more control over their energy needs.
  7. iMac ako dokovacia stanica pre Apple notebook - nový patent
    Dokovacia stanica Apple má všeobecne obsahovať aj displej, teda LCD monitor, ktorý zobrazuje obraz prenášaný z grafickej karty notebooku v tejto dokovacej stanici. Dokovacia stanica stojí vo vertikálnej polohe, čím sa okrem iného šetrí miestom na stole oproti klasickým dokom. Toto sú základné informácie prvej stránky patentu.
  8. ?Destroy The Web 2.0 Look? @ Future of Web Design, New York
    WOW! That was a great presentation.. ^_^
  9. Fresh Cyprus Lamp
  10. Noblem
    Nedávno jsem někde četl postesknutí krajana, který dlouho žije v cizině, že my Češi rádi na sobě necháváme dříví štípat: neozveme se a neozveme. Tam, kde Němec nebo Holanďan dávno křičí na protest, my jen skloníme hlavu. Víme, jak škodlivé je kouření a alkohol, víme, jak škodlivá je reklama na ně, ale ona většina se skloněnou hlavou nechá výrobce vydělávat a reklamce propagovat. Společnost jako taková přitom značně prodělává.
Feed: Doporučuji k přečtení