\


 Tuesday, 14 February 2006
Svatý Valentin - aneb o přitažlivosti kýče
srdce

Posledních pět let vždy o Svatém Valentinu slavím výročí uvědomění (no alespoň tedy to moje) si kapitulace běžné mužské racionality před ženskou kapriciozností. A v poslední době to dokonce už ani nebolí,  s moji malou prohru se asi dokázala vyrovnat i moje ješitnost. Když jsem se svou budoucí ženou teprve začínal "chodit"¨, tak jsme kromě zjišťování jiných příjemnějších rozdílů mezi oběma pohlavími in concreto vzájemně "ladili" a vyjasňovali si své názory na různé záležitosti. Samozřejmě v lednu a tedy v dostatečném předstihu došlo i na svátek Svatého Valentina. Použil jsem veškerou svoji výmluvnost, abych z mého pohledu brilantně a nevyvratitelně a s použitím jen velmi decentní psychologické manipulace zdůvodnil zbytečnost takového svátku:

  1. Co má tento narychlo importovaný svátek kdoví odkud společného s námi? (pokud by něco takového v Petře bylo, snažil jsem se, aby její nacionalisticko-izolacionistické smýšlení neškodně udeřilo v souladu s mými intencemi přímo na globální solar plexus McDonaldizovaného svátku :-D).
  2. Nebudeme přece slavit něco takového se všemi zamilovanými, zase nějaká stádní akce tentokrát "jen" pro všechny zamilované, ale přeci si nevyhradíme na lásku jeden den v roce a nebudeme jak nějací akurátní škrobení úředníci ze zamilovanosti dělat pravidelnou ordinérní položku v diáři (rafinovaný apel na respektování výjimečnosti každého a hlavně našeho vztahu).
  3. K dobru jsem dal i svou soukromou teorii, že svátek 14. února stanovil nejdříve nějaký velký obchodní řetězec, který potřeboval eliminovat pravidelný výrazný propad v tržbách mezi vánočními a velikonočními žněmi. Všechny obchodní řetězce tento trik další rok adoptovaly a poté jejich marketingová mašinérie ve svém momentálně vítězném a ryčném dějinném pochodu přesvědčila takzvané zamilované, že nejlepší co mohou v únoru dělat, je vyhazovat peníze za různé cetky. (Fikaná dehonestace svátku jeho přímou vazbou na "špinavé" obchody).
  4. Kdyby nic nezabralo, snazil jsem se v Petře rozehrát antikatolickou strunu - co já, mě by ten svátek vadit nemusel, ale víš sama, jak lhostejná jsi k církevnímu provozu a pověsti o svatých považuješ jen za bizarní smyšlenky z prehistorických dob, kdy bylo "in" nechat se sežrat  v aréně lvy nebo si nechat setnout hlavu pro přesvědčení, u nějž dokážes vnímat jen jeho absurditu. Navíc Svatý Valentin je podivný světec, o němž toho není moc známo a který navíc nebyl dlouho zařazen ani do celocírkevního liturgického kalendáře a teprve teď na něj ta horší podbízivá část církve nabaluje nečekaná moudra - třeba že nesl pochodeň lásky (tady se mi vždy vybaví navíc slovo lampion a odplivnu si, asi deformace z dětství) ve špatných časech a je důkazem toho, že láska je silnější než nenávist, blablabla.

A jak se moje argumenty ujaly? Petra se jejich údernosti ani nijak nevzpírala, dokonce se mi zdálo, že se mnou v mnoha konkluzích souhlasí. Byl jsem spokojen, jak brilantně se mi daří formovat další osobu k obrazu svému. ;)

Když jsem 14. února inkriminovaného roku dorazil domů, přišla mi Petra otevřít v načančaných šatech, které běžně doma nenosí (útok na smysly), po stěnách byly rozvěseny barevné balónky (slušný kýč) a dostal jsem nějaké přáníčko a dárky.

No a další rok i ty všechny následující jsem Valentínku a nějaké dárky začal kupovat i já. Žádnou zvláštní pointu nečekejte - já jsem jen zjistil, že mnohem raději mám lidi, co se mi nepodřizují, protože jsou zajímavější a není s nimi nuda, a že i excelentní kýč může být docela příjemným zpestřením života. ;) A na závěr jsem samozřejmě provedl jednu očistnou falešnou racionalizaci, kterou jsem z ješitnosti prostě vytvořit musel -  pořád lepší slavit svátek Svatého Valentina, u nějž nám alespoň legendy poskytují snesitelnou zástěrku pro tato sladkobolná pnutí, než 1. Máje na chudáka Máchu kydat tuny lyrického kýče, když on sám měl ve své tvorbě slabost pro titánská byronská gesta, než že by si potrpěl na rozněžnělá tokání mladých samečků a samiček a ve svých denících navíc dokázal, že by byl výborným studijním materiálem i se svou Lori pro teorie jistého doktora Freuda, protože v nich popisuje sex bez jakékoli "romantické" omáčky a zbytečných rituálních mileneckých tanečků.

Tohle vše ale neznamená, že bych skousl svátek zamilovaných v libovolném dni v roce a pod každou záminkou - až bude přicházet království velkokýče, poznáme to neklamně třeba podle toho, že budeme slavit svátek zamilovaných ve výroční den stvoření dvouhlavé saně vystupující pod uměleckým pseudonymem Bratři Nedvědi aka "na dlani jednu z tvých řas". A takového dne bych se dožít nechtěl ;-)

Tak to vše jen na okraj, aby v blogu nebyly jen spoty o navigaci, PDA a analýze, když si i tyto drobné zálety mohu dovolit, protože blog je výsostně soukromý žánr, moji milí čtenáři :-)



Tuesday, 14 February 2006 21:29:17 (Central Europe Standard Time, UTC+01:00)       
Comments [2]  Ostatní


 Tuesday, 07 February 2006
Malá utilitka pro navigaci TomTom
TomTom

Podnět k vytvoření tohoto malého prográmku vyšel z jedné diskuze na ce4you od MilanaSu. K čemu prográmek slouží? TomTom má výrobcem dodávané (ne uživatelem vytvořené) body zájmu uloženy v souboru POI.dat - poměrně snadno můžete vlastní body zájmu, které je možné pro Čechy stáhnout ze skvělého webu www.poi.cz, zkompilovat do vlastního souboru POI.dat. Když ale jedete do ciziny, většinou chcete TomToma spouštět s výrobcem dodaným souborem POI.dat, a ne se svým vlastním, který se hodí jen pro Čechy.

Přejmenování souborů a spuštění TomToma řeší utilitka RenameFile.exe, která by se mohla hodit i ostatním. Popis , jak utilitku používat,  zkopíruji z ce4you, abych jej nemusel psát znovu.

Psáno zcela záměrně bez diakritiky ;)

"
1) Vytvorte zastupce na Pocket PC (treba Total Commanderem nebo File Explorerem)

2) Zastupce zkopirujte do PC (pro lepsi editaci) a vytvorte
17#"\RenameFile.exe" "STORAGE CARD\DE_AT_CH_PL_CZ_PLUS-MAP\POI2.dat" "STORAGE CARD\DE_AT_CH_PL_CZ_PLUS-MAP\POI.dat" "STORAGE CARD\DE_AT_CH_PL_CZ_PLUS-MAP\POI3.dat" "Program Files\Navigator\TomTom navigator.exe"

1. argument - 17#"\RenameFile.exe" cislicka a cestu k programu (vse se muze lisit) ponechte beze zmeny.

2. argument "STORAGE CARD\DE_AT_CH_PL_CZ_PLUS-MAP\POI2.dat" - soubor, ktery ma byt prejmenovan tak, jak urcuje treti argument (POI.DAT)

3. argument - "STORAGE CARD\DE_AT_CH_PL_CZ_PLUS-MAP\POI.dat" - soubor ve 2. argumentu bude prejmenovan na soubor v tomto argumentu.

4. argument - "STORAGE CARD\DE_AT_CH_PL_CZ_PLUS-MAP\POI3.dat" - jak se bude nove jmenovat puvodni soubor (v nasem pripade POI.DAT - 3.argument).

5. argument - "Program Files\Navigator\TomTom navigator.exe"
Program, ktery ma byt spusten (TomTom).


Je potreba spravne napsat uvozovky a cesty - programek nema zadne UI. Vytvoreneho zastupce zkopirujte zpet do Pocket PC.

Program pracuje takto:

1) Jestlize neexistuje soubor v argumentu 2 (to znamena, ze POI.dat predstavuje pozadovany soubor), je spusten program v argumentu 5.

Jinak

2) Soubor v argumentu 3 je prejmenovan na soubor v argumentu 4 A
soubor v argumentu 2 je prejmenovan na soubor urceny argumentem 3 A Je spusten program v argumentu 5."

Použito jen "čisté" C++ a WIN API, takze by vám prográmek měl fungovat na všech verzích Windows Mobile.


 



Tuesday, 07 February 2006 23:58:54 (Central Europe Standard Time, UTC+01:00)       
Comments [0]  Mobilitky | Navigace


 Sunday, 05 February 2006
Ukázka použití třídy BusinessObjectBase

Máme-li napsanou třídu BusinessObjectBase, která hraje roli společného předka všech objektů v business vrstvě všech našich aplikací, je čas ukázat, jak vypadají typičtí potomci.



Předchozí spoty

Bázová třída pro business objekty - návrhový vzor Layer Supertype
Cachování řádků z databáze pro business objekty - třída DataCacheHelper

Zobrazit kód

Třída Order reprezentuje v našem systému objednávku. U objednávky nás zajímá, jakému patří zákazníkovi (vlastnost Customer), rozhodli jsme se, že budeme vyžadovat u každé instance objednávky popisek (vlastnost Description) a samořejmě samotná objednávka je složena z položek objednávky (kolekce Items). Položkou objednávky budeme rozumět třídu, v níž je uloženo, jaké zboží a kolik kusů si zákazník objednal a celková cena položky (kusová cena objednaného zboží * počet). Celková cena objednávky je sumou cen jednotlivých položek. Pro jednoduchost vidíte v kódu zatím jen třídu Objednávka.

  1. Třída Objednávka má dva konstruktory. Prvni konstruktor, přijímající popisek objednávky a zákazníka, vyvolává bezparamerický konstruktor třídy BusinessObjectBase. Jak jsem psal v předchozím spotu, bezparametrický konstruktor slouží k sestrojení objektů bez obrazu v databázi. Chcete-li založit novou objednávku, stačí když si uložíte odkazy na objekty předané v konstruktoru a zbytek práce delegujete na BusinessObjectBase, která nastaví všechny potřebné příznaky nutné pro práci s objektem bez perzistence. Druhý konstruktor přijímá Id (unikátní identifikátor) objednávky, která je uložena v databázi. Jeho tělo je prázdné, veškerou činnost provádí BusinessObjectBase - nastavení příznaků a uložení Id pro pozdější nahrání objektu z databáze. Objekt je po vykonání konstruktoru "prázdnou schránkou", duchem (GHOST), který načte svá data z databáze teprve tehdy, když použijeme některou metodu nebo vlastnost pracující s instančními a perzistovanými proměnnými. Z hlediska uživatele naší třídy (myšleno programátora)  je ale vše ve starých kolejích - rozhraní objektu bude reagovat tak, jak očekává,  a existenci pozdní incializace objektu (Lazy Load) může ignorovat. Poslední větu si přečtěte ještě jednou a tiše s k ní přidejte pravidlo: Nikdy nesmím nutit uživatele svých tříd volat nějaké speciální "Init" metody předtím, než začnou s třídou pracovat. Jedinou legální "Init" metodou je konstruktor.
  2.  Jak k pozdní incializaci a tedy nahrání dat objektu dojde? Vlastnosti, jejichž hodnoty jsou uložené v databázi (Id zákazníka jako klíč v tabulce Objednávek a popisek (Description) objednávky) mají na prvním řádku svých get/set přístupových metod volání metody TriggerLoad. Jak víme, jde o volání metody z BusinessObjectBase, která sama rozhoduje, zda již byla data objektu nahrána z databáze. Pokud data nebyla nahrána, třída BusinessObjectBase řídí scénář nahrávání objektu v metodě Load. Jestliže jsou data pro objednávku v třídě DataCacheHelper, je volána metoda DoInternalLoad(DataRow row), která načte data objednávky z předaného řádku. Když v třídě DataCacheHelper data pro aktuální instanci nemáme, BusinessObjectBase volá variantu metody DoInternalLoad bez argumentů. Metoda DoInternalLoad vyzvedne řádek z databáze s využitím databázové komponenty (což je Singleton nebo Thread specific storage - jednoduše třída zapoudřující  API pro práci s datovým zdrojem) a tento řádek předá své stejně nazvané sestřičce, o níž byla řeč výše.
    Důležité je, že celý scénář nahrávání řídí bázová třída - v odvozené třídě jen v přesně vymezených bodech scénáře "dosazuje" třída Order své vlastní specifické chování a používá své speciální atributy.
  3. V set přístupových metodách u vlastností využíváme metodu CheckEquals z BusinessObjectBase. Jak už víte z minulého spotu, metoda CheckEquals zkontroluje rovnost dvou objektů a podle toho nastaví příznak IsDirty - byl objekt změněn proti datům v databázi a musí tedy dojít k jeho uložení?
  4. Jak je to nahráním položek objednávky  - vlastnost Items? Často se stává, že potřebujete pracovat se samotným objektem, ale je zbytečné při nahrání dat objektu  z databáze ihned plnit i všechny jeho kolekce. Kolekce Items je naplněna při prvním přístupu ke kolekci  - příznak, zda byla kolekce nahrána nese pomocná instanční proměnná m_itemsLoaded. Jestliže kolekce naplněna nebyla, je volána privátní metoda loadItems, v níž s pomocí databázové komponenty vyzvedneme z databáte všechny položky objednávky - filtrem, který je použit v SQL dotazu je samozřejmě Id objednávky. Poté projdeme vrácenou tabulku a všechny řádky uložíme do třídy DataCacheHelper. Zde přepokládáme, že metoda DbComponent.Instance.OrderItem_GetByOrderId, vrací z databáze všechna data potřebná pro obnovení objektu z databáze, nejen jejich Id. To je běžná praxe, pokud máte uloženou proceduru, která vybírá záznamy z jedné tabulky (pro jednu třídu) podle různých podmínek. Důležité je, že za pomoci identitní mapy (Identity Map) sestrojíme objekty - "duchy" - OrderItem, kterým předáme jejich Id,  a třída BusinessObjectBase již zajistí, že když instance OrderItem budou chtít nahrát svá data z databáze, tak jí bude vrácen řádek uložený v instanci třídy DataCacheHeper. To znamená, že třída OrderItem nebude zbytečně zatěžovat databázi duplicitními dotazy a přitom kontrola na existenci cachovaného řádku pro instance jakékoli třídy je součástí společného předka BusinessObjectBase a "nezasviníme" si stejným kódem celou business vrstvu.
  5. Metoda Order také přepisuje metodu DoInternalSave, v níž uloží své atributy do databáze. Jak uvidíme dále, metodě Order_Update předáváme hodnotu zděděného a bázovou třídou spravovaného příznaku IsNew - tento příznak metoda interně použije k rozhodnutí, zda provede SQL příkaz INSERT nebo UPDATE1. Opět - po volání metody Save uživatelem jen třída BusinessObjectBase jakožto finální instance rozhoduje, zda je potřeba data ukládat a zda je tedy vubec nutné a účelné volat metodu DoInternalSave. Opět vidíte čistý řez mezi kontrolou, kdy je nutné objekt uložit (třída BusinessObjectBase),  a samotným ukládáním (třída Order i další potomci BusinessObjectBase). Kromě uložení vlastních hodnot odpovídá třída za uložení agregovaných objektů OrderItem. Proto v metodě DoInternalSave nejprve zkontroluje, jestli byly objekty v kolekci nahrány (příznak m_itemsLoaded) a pokud ano, tak jen zavolá pomocnou metodu SaveCollection, která je implementována, jak jinak že;), v třídě BusinessObjectBase.

I když z příkladu byste měli začít tušit, proč je BusinessObjectBase tak výhodná, stále neřešíme některé problémy.

  1. V příkladu není vůbec řešeno odebírání a přidávání položek do kolekce - to znamená nastavování/zrušení "rodiče" u agregovaných objektů. Nijak jsme neřešili m:n relace a odpovědnost za zakládání/rušení záznamů ve vazebních tabulkách. Myslíte, že i zde půjde využít třída BusinesObjectBase? ;)
  2. Co když si budeme chtít u některých potomků  BusinessObjectBase "vynutit" jiné chování - třeba zamezit použití DataCacheHelperu?
  3. A co transakce? V našem příkladu zatím nijak neřešíme ukládání objektů v transakci, což bychom měli, protože určitě nechceme mít v systému objednávky s polovinou objednaných položek. Jaký objekt má spouštět a řídit transakci? Kdo musí ošetřit chyby vzniklé při ukládání objektu?

To be continued... :)

Poznámky:

  1. Jsem si vědom střídavé soudržnosti metody související s "přepínačem" IsNew . V dalších dílech bude vysvětleno, proč střídavá soudržnost zrovna u této metody nevadí.


Sunday, 05 February 2006 14:44:36 (Central Europe Standard Time, UTC+01:00)       
Comments [7]  Návrhové vzory


 Tuesday, 31 January 2006
Nová verze programu (1.1) pro import oblíbených položek z Pocket IE do Opery Mobile

Download

Změny:

1) Opravena chyba, která se projevovala při importu více vnořených položek.

2) Import je funkční i v oficiální verzi Opery pro Windows Mobile 2003 a 2005. Trial verze Opery Mobile.

Postup instalace a další informace jsou v  úvodním spotu.



Tuesday, 31 January 2006 23:26:52 (Central Europe Standard Time, UTC+01:00)       
Comments [0]  Compact .Net Framework | Mobilitky


Proč neaktivovat režim "WiFi G" na MDA Variu (HTC Wizard)?
MDA

Minulý týden proběhla internetem informace, že na MDA Vario je možné jednoduchým zásahem do registry změnit režim B WiFi komunikace na rychlejší G. Tedy abychom byli přesní, žádné zázračné zvýšení rychlosti se nekoná, ale úprava slouží pouze k tomu, abyste se mohli s Variem připojit ke "G only" přístupovým bodům. Vypadá to jako užitečná věc.

Stačí změnit/přidat následující 2 klíče:

HKEY_LOCAL_MACHINE\COMM\TNETWLN1\PARMS: dot11SupportedRateMask=1
HKEY_LOCAL_MACHINE\COMM\TNETWLN1\PARMS: dot11SupportedRateMaskG=8

Přemýšlivější jedince ale určitě napadne, proč HTC jakožto výrobce zařízení nebo sám mobilní operátor prodává takto podivně zkriplované zařízeni? Odpověď už asi znám, protože jsem si G režim aktivoval v sobotu a včera jsem přešel zpět na režim B.

Důvod - s mým routerem Draytek Vigor v "mixed" módu (B + G), s nímž Vario od prvního dne spolupracovalo bez sebemenších zádrhelů, si po aktivaci G režimu  přestalo rozumět. Sice WiFi síť stále vidělo, občas se dokonce dokázalo připojit, ale většinou jsem se do sítě nedostal, nebo jsem  přes DHCP nezískal IP adresu. Po návratu k B normě je opět připojení funkční.

Takže důvody "zkriplováni" WiFi na MDA Variu už po osobni zkušenosti chápu ;)



Tuesday, 31 January 2006 12:43:22 (Central Europe Standard Time, UTC+01:00)       
Comments [8]  Mobilitky


 Thursday, 26 January 2006
MDA Vario a synchronizace přes USB s programem ActiveSync 4.1

Po dnešní probdělé noci kvůli synchronizaci přes USB, dávám na blog několik tipů pro nešťastníky, kteří se s ní budou stejně jako já potýkat. ActiveSync 4.1 je tak možná beta testovaná na lidech, kterou Microsoft rychle vydal po zabugované alfě kamuflované jako release 4.0. Změna způsobu komunikace mezi PC a PPC na čisté TCP/IP připojení vypadá jako dobrá idea, ale stabilita a rychlost AS 4.x při přímém srovnání se starší a docela slušně odladěnou verzí 3.8 ukazuje, jak vývojáři  MS dobrou ideu sadisticky přibili na kříž špatné praktické implementace.¨

U PDA s Windows Mobile 5.0 nemáte na výběr a musíte synchronizaci s AS 4.0 rozchodit a pomalost synchronizace prozatím přetrpět. Takže na co si dávat pozor a jak postupovat, když se zařízení s AS nespojí nebo když synchronizace neběží?

ActiveSync
  1. Ukončete firewall a všechny antiviry. Jestliže firewall neukončíte, ujistěte se alespoň, že AS (procesy WCESCOMM.EXE,  WCESMGR.EXE, RAPIMGR.EXE, CEAPPMGR.EXE) je povolena komunikace přes porty 990, 999, 5678, 5679, 5721.
  2. Po připojení zařízeni k USB portu by se měl nainstalovat ovladač pro Generic RNDIS device a poté by se měla objevit informace o novém Pocket PC zařízení.
  3. Po úspěšném připojení zařízení k USB portu a instalaci ovladačů se vám v síťových připojeních objeví nové připojení (Windows mobile device)  - ujistěte se, že ve vlastnostech připojení je zaškrtnuta položka Internet protocol (tcp/ip).
  4. Jestliže je zařízení připojeno a vy jste vybrali v průvodci položky k synchronizaci, mějte velkou trpělivost při první synchronizaci. První synchronizace je totiž velmi pomalá a může trvat i několik minut.
  5. Jestliže synchronizace selže, podívejte se do logů v %temp% adresáři počítače (soubory WCESCOMM.LOG, WCESLog.log, WCESMgr.log, WcesView.log) na příčinu problému.
  6. Jestliže synchronizace selže a vy dostanete chybu  "Server is busy Support code 85010017", na nic nečekejte a odeberte Outlook ze seznamu nainstalovaných programů (Add/Remove programs, Microsoft Office - volba Change), restartujte počítač, znovu nainstalujte Outlook a restartujte počítač. Pořadí těchto kroků musíte přesně dodržet (hlavně kvůli této chybě jsem šel docela nas*anej spát ve čtvrt na pět ;) )
  7. Jestliže se vám nedaří synchronizovat všechny typy vybraných položek (Kontakty, Oblíbené, Kalendář, Emaily), přidávejte je do synchronizace postupně - nejprve zaškrtněte Kontakty, sesynchronizujte a při úspěchu přidejte Kalendář, sesynchronizujte atd. Podle mých zkušeností největší problémy činí maily, proto je synchronizujte až nakonec.
  8. Když se vám nedaří synchronizovat maily, vytvořte v Outlooku nový pst soubor a ve správě účtů (Tools/Email Accounts) tento soubor nastavte jako výchozí pro doručování pošty. Maily překopírujte do složek v novém pst souboru. Po změně souboru pro ukládání položek musíte restartovat Outlook.
  9. Modlete se,  hříšníci,  za lepší mobilní zítřky bez šedozeleného loga ActiveSyncu, které bylo Microsoftem asi podvědomě zvoleno a do binárního světa transponováno jako symbol podvědomé vlastní frustrace, že i u jejich synchronizace platí "šedivá  je všechna teorie a strom života se zelená". :-D

 



Thursday, 26 January 2006 22:37:26 (Central Europe Standard Time, UTC+01:00)       
Comments [6]  Mobilitky


 Tuesday, 17 January 2006
Prodám MDA II
Dynavix

Protože mi Ježíšek přinesl nové MDA Vario, s těžkým srdcem;) prodávám své MDA II.

Komunikátor MDA II je plně funkční, v ceně je SD karta Kingstone 256 MB, synchronizační a nabíjecí USB kabel, originální synchronizační kolébka, původní pouzdro. K zařízení není síťová nabíječka, kterou zlikvidovala moje dcerka, ale není problém koupit si v Sunnysoftu nabíječku kompatibilní s dodávaným nabíjecim USB kabelem, nebo koupit od TMO novou nabíječku. MDA II má poškrábaný displej - jde o pracovní nástroj  používaný denně. ;)

Původni cena: 20 900 bez SD karty, prodám jej za 6 000. Zájemci pište prosím na adresu rene@renestein.net.

ROM: 1.72.00WWE (oficiální od TMO - Windows Mobile 2003),
Radio:1.17.00
Extended Rom: 1.72.176

Další technické údaje (přebrány z CEYOU.cz)

Rozměry & Hmotnost
     69,9 mm x 130 mm x 18 mm :: 185 g

Procesor
      Intel PXA263 (XScale) @ 400 MHz

Paměť
     RAM 128 MB :: SDRAM
     ROM 32 MB :: ??? :: přepisovatelná :: 16 MB pro bezpečné uložení dat
     ??? 32 MB

Grafický procesor
     ATI Imageon 3200

Displej
     Transflective TFT :: LED podsvícení :: 11 úrovní
     240 x 320 bodů :: 65536 barev
     úhlopříčka 88,9 mm / 3,5 palců

Telefonní část
     900/1800/1900 MHz
     GPRS Class 10

Komunikace
     USB (ver. 1.1)
     IrDA (ver. 1.1)
     Bluetooth :: 1

Možnosti rozšíření
     SD / MMC :: plné SDIO

Baterie
     Lithium-Ion Polymer :: 1200 mAh :: life up to 13 hodin :: vyměnitelná :: dobíjecí
     Coin záložní baterie :: vyměnitelná

Možnosti vkládání textu
     dotyková obrazovka
     joypad :: 4 konfigurovatelných tlačítek :: tlačítko pro nahrávání :: Hlasitost

Audio
     reproduktor :: mikrofon
     Stereo 2.5mm s mikrofonem

Integrovaný digitální fotoaparát
     300K pixels CMOS Camera module
     Obrázek :: BMP, JPEG :: 240 x 320
     Film :: MPEG4, M-JPEG :: 480 x 640
     Optický zoom :: 0

Update 18.1. 2005 : MDA II prodáno



Tuesday, 17 January 2006 17:38:20 (Central Europe Standard Time, UTC+01:00)       
Comments [0]  Ostatní


 Wednesday, 11 January 2006
Malé srovnání navigačních aplikací Dynavix a TomTom
Dynavix

Protože mi v poslední době dorazilo více mailů, jejichž odesílatelé se ptali, zda si mají koupit pro navigaci po Čechách Dynavix nebo TomTom a mně se nechce neustále hledat a kopírovat každému zvlášť následující malé srovnání, dávám jej veřejně na blog, abych mohl posílat jen odkaz. Jednoznačný soud u mě nehledejte, ani se propagandisticky nedozvíte, že byste měli podporovat Dynavix, protože jde o "český" program, jak občas zaznívá v diskuzích, kde se i výrobce snaží rozechvět tak dojemně nostalgickou nacionalisticko-obrozeneckou strunu sugescí, že "co je české, to je hezké". V 19. století by si Dynavix určitě nadšeně koupili i Jungmann s Dobrovským, ale v 21. století může zabrat vlastenecká propaganda produktů snad jen na posledního obrozeneckého mohykána, věrného syna vlasti a hlavně dětinského euroskeptika Václava Klause. ;) Stejně jako jsem si nevybral Škodovku, protože mi nedokázala nabídnout vhodný vůz, nevybírám si ani svůj navigační SW podle země původu, ale překvapivě podle kvality nebo poměru výkon/cena. Sentimentální nebo heroické vlastenectví je dneska levné zboží vhodné tak do reklamy na prodej toho  "echt českého - Czech made" moku "echt českým" barochům, ale to by bylo na jinou úvahu ;) . Chtěl jsem jen říct, že tak kvalitní produkt jako je Dynavix, by se nemusel snažit "vtírat" do přízně uživatelů stejně nebo podobně pokleslými marketingovými triky.

DYNAVIX
+ pravděpodobně nejpodrobnější mapové podklady ČR (více čísel popisných než TomTom)
+ Nejlepší hlasová navigace - dá se podle ní i v Praze jet bez koukání na displej.
+ Rychlá reakce firmy na připomínky uživatelů
+ Velké množství POI

- Chybí 3D pohled (v TomTomovi jsem si na něj zvykl)
- Horší stabilita programu. Aktuální verze 1.3 se tak často neukončuje jako předchozí verze, ale přesto na některých PDA jsou problémy nepříjemné (hlavně HP 4700 + zařízení s Widcomm BT stackem). Při navigaci neni nic horšiho než nečekané ukončení programu v centru Prahy.
- Občas neintuitivni a neergonomické ovládání ve srovnání s TomTomem
- Vyšší cena
- Špatně se pracuje s mapou, neexistuje plynule scrollovani mapy
- Horší simulace a prohlížení trasy po naplánování (itinerář cesty je nepřehledný)
- Uživatel nemůže nahrávat jiná POI.

TomTom
+ Jeden z nejlepších a a nejdéle vyvíjených navigačních SW na světě. Dle všech zahraničních recenzí jde o etalon třídy.
+ Skvělý 3D pohled
+ Dobrá hlasová navigace -Dynavix ji má ale citelně lepší, u TomToma je přeci je nutné občas kouknout na displej. TomTom má také méně typů instrukcí než Dynavix.
+ Kvalitní mapové podklady. (kromě Severní Moravy, na které nelze vybírat jako cíl města a podrobnost je bídná - výběr měst řeší ale uživatelské POI). Dynavix má sice mapy o něco podrobnější , ale v praxi jsem na žádné velké rozdíly v podrobnosti map mezi oběma programy nenarazil. Tato poznámka platí jen pro starší verzi map - v současné době se objevily nové mapy, kde je de ohlasů kvalitně zpracována i Morava a mapové podklady se zcela vyrovnají Dynavixu. Dynavix má "pouze" více čísel popisných.
+Špičkové ovládání jedním prstem i za jízdy
+ Skvělý simulační režim a dobrá orientace v různých aspektech naplánované trasy
+ Plynulá práce s mapu (scrollování, zoom)
+ Stabilita programu. Za celou dobu mi TT ani jednou nespadl, spojení s BT GPS je také bez jakýchkoli problémů
+ Možnost vytvářet vlastni POI (viz seznam POI na http://www.poi.cz/)
+Velmi dobrá cena

- Autoři určitě nebudou reagovat na připomínky pár uživatelů jako TeleMatix, který se teprve snaží získat významnější podíl na trhu.
- O něco horší hlasová navigace i mapové podklady ve srovnání s Dynavixem.

Shrnutí. Chcete-li jezdit hlavně podle hlasové navigace, vyberte si Dynavix. Preferujete-li stabilitu a 3D pohled, berte TomToma.



Wednesday, 11 January 2006 17:43:51 (Central Europe Standard Time, UTC+01:00)       
Comments [7]  Mobilitky | Navigace


 Sunday, 08 January 2006
Program na import oblíbených položek z Pocket IE do Opery Mobile 8.5
MDA

Download programu.

Operu 8.5 Mobile pro Pocket PC je možné stáhnout zde - verzi určenou původně jen pro Willcom W-ZERO3 lze  "opatchovat" ;) tak, aby byla použitelná i na  dalších zařízeních. Crack ode mě ale nečekejte. ;) Další informace o Opeře naleznete na msmobiles.

Protože se dá očekávat, že i kvůli tomuto poněkud trapnému úniku ;), který těžko zbagatelizuje i vášnivý apologet a nekritický fanoušek Opery Radek Hulán, poněvadž jde o takové diletanství, jež dle mnoha indicií vede jedině k podezření na infiltraci Opery neschopnými zaměstnanci Apple ;),  společnost Opera  nabídne na svých stránkách mobilní Operu oficiálně pro všechny zařízení s Windows Mobile 5.0, mohl by se vám hodit prográmek, který jednorázově přenese všechny oblíbené položky z Pocket Internet Exploreru do Opery. Program jsem napsal (link na stažení je v prvním řádku tohoto spotu) - prosím vás tedy o otestování a o reportování nalezených chyb.

Jak program funguje?

1) Stažený soubor RStein.ImportOperaFavorites.exe nakopírujte do zařízení.

2) Soubor spusťte - pokud import proběhne úspěšně, jste informováni, že import byl dokončen, jinak je zobrazen text výjimky.

  • Program kopíruje oblíbené položky ze složky, jejíž cesta je uložena v registry pod klíčem System\Explorer\Shell Folders\Favorites. Pokud klíč neexistuje, kopíruje se ze složky \Windows\Favorites.
  • Program rekurzivně kopíruje i všechny složky a podsložky.
  • Data pro Operu jsou ukládána do souboru Application Data\opera6.adr
  • Původní oblíbené položky v Opeře jsou zazálohovány do souboru Application Data\opera6.adr.bak

  • Otestováno na MDA Vario (HTC Wizard).

Update: Dle prvnich ohlasů jsem vytvořil novou verzi:

1) Pokud neexistuje soubor opera6.adr, program pokračuje dál i bez zálohy původních oblíbených položek.

2) Při chybě by měl program nahlásit, jaká položka mu dělá potíže. Jestliže máte v IE položku s nějakým "velmi dlouhým názvem", zkraťte název - vypada to, ze v CNF 1.x je nějaká chyba, kvůli které nelze otevřít stream, pokud je předán "dlouhý" název souboru.



Sunday, 08 January 2006 17:25:19 (Central Europe Standard Time, UTC+01:00)       
Comments [2]  Compact .Net Framework | Mobilitky


 Tuesday, 20 December 2005
Změna kontaktních údajů
Protože měním zaměstnání, chtěl bych Vás požádat, abyste přestali používat pracovní adresu rsteinATdigi-trade.cz a namísto ní zasílali zprávy na emailovou adresu reneATrenestein.net. Také již nejsem dostupný na služebním mobilu (ET), nadále platí soukromé telefonní číslo (TMO).

Tuesday, 20 December 2005 14:05:49 (Central Europe Standard Time, UTC+01:00)       
Comments [0]  Ostatní