Kindlology

Most readers get as far as the Future Semiconditionally Modified Subinverted Plagal Past Subjunctive Intentional before giving up; and in fact in later editions of the book all pages beyond this point have been left blank to save on printing costs.

Hitchhiker’s Guide to the Galaxy

I am new Kindle user and the more I use it, the more I like it. Although it probably will never have the same feeling as reading a book there are two features that gives it some edge.

  1. It’s always with me. Even if I do not have it in my backpack, I do have my Android cell phone with Kindle app installed. And what’s best, the application knows where I have stopped reading and I can simply continue.
  2. Highlights and bookmarking are much better. Even if I have pencil when reading a book the highlights are hard to find. I love to quote authorities. But it’s always hard to find the right page even though I have underlined it. Kindle solves it quite well. You can highlight whatever you want, you can search the notes and highlights, you can access it on-line and you can even tweet it right from the device. You can even see paragraphs frequently highlighted by other readers! (Although I am thinking about switching this feature off, it’s a bit disturbing.)

But I do not want to praise Kindle here, I’d like to think about the consequences. There is the other side of the coin. To be able to implement this features, Amazon has to know about every page turn you make. It brings some privacy issues, but I do not want to talk about that neither.

I’d like to imagine how such data could be used for “scientific” purposes. I’d like to know what’s my reading speed. Is it lower in the evening? Is it faster when reading thrillers? What’s European reading speed? Is it higher than American? Do I skip paragraphs? Do other readers skip the same paragraphs? Is there some part of given book that force people to take a break? Do people make more notes at the beginning of the book? Is there a book that readers usually do not finish? What’s the finish rate in general? Are there some books that people just buy but do not even start to read?

You see, there is lot of questions that we can finally find answers for. The only think we need is to persuade Amazon to publish the data and some PhD students to do the statistics. Even without that the data give some interesting result right now. You can see that readers make highlights in fiction books like Eat Pray and Love. I would not expect that. You can see it yourself on http://kindle.amazon.com

PS: I am not the first one who had the same idea, here is one of my predecessor’s articles.

Kindle Bookmarks

Instalace Cyanogen Mod 6 na G1 (Dream)

Update: Po pár týdnech užívání se ukázalo, že je Cyanogen přeci jen náročnější než původní OS. Běží to, ale při určitých operacích je to přeci jen znatelně pomalejší. Takže se do celé operace pouštějte, jen když víte co děláte.

Chci si tu jenom sepsat postup, kterým se mi po několika hodinách podařilo s potem v tváři nainstalovat Cynanogen Mod 6 na moji starou G1. Pokud tento postup budete následovat, vězte, že tak děláte na vlastní nebezpečí. Riskujete ztrátu dat nebo i to, že se z vašeho telefonu stane cihla. Navíc netvrdím, že to je nejlepší postup, možná existuje i lepší. Také uvědomte, že tím pravděpodobně přijdete o záruku a pokud se nacházíte v “civilizovanější” zemi, tak pravděpodobně pácháte hrdelní zločin.

Mě ten postup fungoval, mám takový ten bílý model, ten co se u nás prodával jako první (PVT 32B). Váš telefon se ale může lišit jak hardwarem tak i firmwarem. Spousta kroků mi také nezabrala na první pokus. Kupodivu ale pomohlo je úplně stejně zopakovat. Jak je to možné netuším, ale je to tak.

Takže jak na to?

  1. Všechno si zazálohujte. Kontakty a maily máte asi někde na serveru. Ale třeba poznámky a úkoly jsem musel uložit na SD kartu. Smsky jsem zazálohoval pomocí aplikace SMS Backup, která je ke stažení zdarma na marketu. Je také dobré si zapamatovat jaké aplikace máte nainstalovány a kde máte jakou ikonku. Je téměř jisté, že se všechno co máte na telefonu vymaže, takže tomuto kroku věnujte velkou pozornost.
  2. Zazálohujte SD kartu, je pravděpodobné, že ji budete muset zformátovat. Já jsem jednoduše zkopíroval všechno z SD karty někam na disk na počítači.
  3. Také jsem do telefonu šoupnul nefunkční starou SIM kartu a svoji jsem dal do jiného. Byl jsem tak celou dobu instalace na příjmu.
  4. Budeme potřebovat získat root práva. To se dělá tak, že se nainstaluje úplně první verze OS, která v sobě měla bezpečnostní díru. Té díry využijeme. Abychom ale mohli na G1 vůbec něco instalovat, potřebujeme si vyrobit tzn. goldcard. To je SD karta, které telefon věří a nechá nás z ní ten software nainstalovat. Podrobný návod jak to udělat najdete zde. Pozor, přestaňte podle toho návodu postupovat v části „Downgrade + získání root právat“, v bodě čtyři. Budeme pokračovat jinak. Skončíme u “Naběhne vám telefon a bude chtít znova aktivaci přes Google účet…” (Pokud máte na počítači Linux, můžete zkusit třeba toto, ale já jel podle toho návodu na Windows. )
  5. Teď bychom měli být ve stavu, kdy máme na telefonu nainstalovanou děravou verzi Androida. Potřebujeme se zaregistrovat do Googlího účtu. Pokud máte v telefonu nefunkční SIM jako já, potřebujete spustit WI-FI. Návod najdete zde. Pokud nemáte WI-FI, musíte použít SIMku s aktivním datovým tarifem, ideálně T-Mobilí.
  6. Takže jsme zaregistrováni a můžeme si hrát s dřevním Androidem.
  7. Stáhneme z internetu recovery image, který nám následně usnadní práci. Uložíme ho do kořenu SD karty pod názvem recovery.img.
  8. Na marketu stáhneme aplikaci „telnet“. Poté vlezeme na domovskou Androidí obrazovku a napíšeme telnetd a stiskneme enter. Nelekejte se, že to hledá v kontaktech ono to zároveň píše i na shell. (Zkuste hádat, co se stane, když napíšete reboot?) Zkusíme spustit telnet aplikaci a připojit se na localhost. Pokud se to podařilo, skvělé. Pokud ne, zkuste spustit telentd znovu.
  9. V telnetu zadejte příkaz mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system a potvrďte Entrem.
  10. Zadejte příkaz cd /system a potvrďte Entrem
  11. Zadejte příkaz cat /sdcard/recovery.img > recovery.img a potvrďte Entrem
  12. Zadejte příkaz flash_image recovery recovery.img a potvrďte Entrem
  13. Teď bychom měli mít root práva přeinstalovaný recovery program, který budeme používat v dalších krocích. Mě párkrát záhadně po restartu zmizel, takže jsem musel instalaci opakovat. Nemám tušení proč se to dělo, ale oprava je relativně snadná. Jednoduše vlezete do telnetu a zopakujete body 10-12 (se spuštěným telnetd).
  14. Teď jde do tuhého, tady se to může ošklivě pokazit. Pečlivě si prostudujte a pak následujte tento návod. Instaluje se tam SPL (čertví co to je) a upgraduje se tam firmware pro tu část telefonu co telefonuje. Non US verze 2.22.19.26i mi funguje bez problému, ale vy si radši ověřte, že máte kompatibilní typ telefonu.
  15. Teď už nás čeká poslední krok, instalace samotného Cyanogenu. Ta je pěkně popsána zde. Jen si dejte pozor, abyste použili tu správnou verzi Google Apps. Mě se to povedlo až na třetí pokus. Potřebujete tiny verzi pro MDPI pro Cyanogen 6. U mě to byl tento soubor.
  16. A to je vše. Teď už byste měli mít nejnovější systém Froyo na nejstarším Androidím telefonu. Krása, že?

Zatím to tak mám pár dnů a všechno funguje jak má. Subjektivně mi to připadá podobně rychlé jako před upgradem, po chvilce ladění možná trochu rychlejší. Narazil jsem jen na pár problémů v galerii fotek, ale tu stejně nepoužívám, takže jsem celkem spokojen.

Co mě štve na Javě

Dnes dopoledne jsem si hrál s Google App Enginem. Protože mám v plánu napsat víc než jen Hello Word, chtěl jsem do hry zapojit i Maven. Hlavně tedy proto, aby se mi staral o závislosti. Nějak jsem si už odvykl kopírovat ručně JARy a hledat jejich závislosti.

A narazil jsem na to, co mě na serverové Javě štve už dlouho, ale teprve dneska mi to tak nějak docvaklo. Dá se to shrnout ve dvou bodech.

  1. Pro jakoukoliv netriviální věc potřebujete hromadu volitelných knihoven a nástrojů.
  2. Je složité je dát dohromady tak, aby spolu fungovali.

Jak se to projevuje? Třeba tak, že strávíte několik krásných a zábavných hodin hledáním, které verze, kterých produktů spolu kamarádí. Já mám o Javovském světě docela přehled, s Mavenem si tykám, Eclipse znám jako své boty, ale i tak mi to zabralo skoro celé dopoledne. Jeden z nejpopulárnějších článků na mém blogu byl ten, kde jsem popisoval jak rozjet Hibernate jako JPA provider. Lidé děkovali, že jsem odhalil, které knihovny přidat, aby to všechno běželo.

Jsou dokonce kombinace, o kterých vím, že je dohromady spustit nedokážu. Traumatizující detaily už jsem vytěsnil z paměti, ale myslím že v tom byl zapletený Maven projekt složený z více podprojektů a Eclipse WTP.

A to nemluvím o tom, co se stane když člověk narazí na technologii s kterou nemá tolik zkušeností. Třeba vývojové prostředí, v kterém dokáži bez problému spustit test napsaný ve Scale jsem hledal také pěkných pár hodin. Nakonec jsem skončil u Idei, ale i tam jsem musel do projektu explicitně naimportovat závislost na Scale. Prostě hrůza. A teď si představte člověka, který s Javou jen začíná. Troufám si říci, že nemá šanci.

Nechce se mi končit tak negativně, tak se na tom pokusím najít i pár pozitiv. Hmm. Možnost volby je samozřejmě dobrá věc. Ale chtělo by to lepší podporu. Třeba Maven hodně pomáhá, ale i ten má i po letech pořád svoje dětské nemoci. Navíc jednotlivé projekty si také moc nedávají práci s definicí svých závislostí. To se naštěstí pomalu zlepšuje.

Ono ten problém obecně není jednoduchý. Zkoušíme zkombinovat tři vývojová prostředí, tucet možných aplikačních serverů, několik možných MVC frameworků, několik platformem na backend, několik ORM poskytovatelů a desítky možných databází. Do toho se nám začíná míchat Scala, Groovy, OSGi a Google App Engine, které to všechno komplikují ještě v jiné dimenzi. Skoro si začínám myslet, že se vyplatí být hodně konzervativní a nechat ostatní, ať si ty problémy vyžerou za mě. Ještě že máme ten Open Source a Google. Člověk po čase většinou nějaké to řešení najde. Nedovedu s představit něco podobného řešit na proprietárních platformách, které používá jen pár bohatých zákazníků. To musí být na mašli.

Teď jsme si jedno pozitivum uvědomil. Firmy prostě potřebují lidi, jako jsem já, kteří mají zkušenosti a hlavně žaludek na to se v tom všem brodit. Hurá. Dokonce si tu i přihřeji polívčičku. A to jsem to ani původně neměl v plánu:

Takže pokud máte podobné problémy a potřebujete je vyřešit, neváhejte mě kontaktovat. Desítky let zkušeností, stovky děkovných dopisů. Záruka vrácení peněz samozřejmostí. Bonbóny pro vaše vývojáře v ceně.