sobota 20. října 2012

Angler - měření úhlu

Nedávno za mnou přišel můj bratr s unikátním problémem. Potřeboval změřit úhel v obrázku (zjednodušme to: na obrazovce). Chtěl vědět, zda na to existuje nějaká aplikace. Suše jsem odvětil, že těžko a podal jsem mu úhloměr. Poté jsem však nad tím začal přemýšlet. Jak by asi takováto aplikace fungovala? Řekl jsem si, že s největší pravděpodobností by využívala zpracování obrazu, což je na mě zatím moc vysoký level. :-) Potom mě napadlo, co kdyby stačily pouze 3 kliky myší a známe úhel? Díky analytické geometrii ze školy to není problém vypočítat. Jednoduchý kosinus. A tak se mi začala formovat myšlenka na tuto aplikaci.

Asi po 2 hodinách jsem měl vcelku funkční beta verzi. Vývoj nezabral déle jak dva večery kodování. Obsluha aplikace je velice jednoduchá. Defaultně se spustí přes celou obrazovku s částečnou průhledností. Je zde také jezdec pro nastavení průhlednosti. Teď už stačí pouze vybrat 3 stěžejní body, přičemž je musíte vybírat postupně tak, aby z druhého bodu šly dvě přímky, to znamená, že u daného bodu se měří úhel.
Poté už vám appka ukáže změřený úhel i dopočet do 360°.

Zde je screen pro představu:


Jedná se o velice jednoduchou aplikaci, která asi nenajde moc širokého využití, ale pokud potřebujete změřit úhel, nebudete to přeci dělat úhloměrem! :-)

Odkaz pro stažení aplikace: http://ulozto.net/xidzGWt/angler-rar
Případné nápady, nebo žádosti o úseky kódu pište do komentářů.

sobota 1. září 2012

C# genericita

Po dlouhé době jsem se rozhodl že sem hodím pár řádků. Dneska to bude o genericitě v jazyce C#
Jak mnozí z vás ví, genericita se používá pro zpřehlednění a hlavně pro zefektivnění kódu. To znamená, že třída může pracovat s mnoha různými typy a stačí to napsat pouze jednou. Konkrétně, řešil jsem problém datové struktury "Bag", tedy batoh. Jedná se o strukturu, kde vkládáte prvky jako do batohu a také je z něj vytahujete jako z batohu, tedy co vám přijde první pod ruku, to vytáhnete. Takže slouží pro uchování dat u kterých nezáleží na pořadí.
Při programování této struktury jsem narazil na malý problém a to jak zjistit, zda je struktura prázdná. Pro jednoduchost jsem prvky ukládal do pole určité velikosti. Jelikož je ale použit generický typ, nazvěme ho Item, není známo zda je to hodnotová či referenční proměnná. To znamená, že nevíme zda má nějakou referenci nebo hodnotu null, nebo nějakou konkrétní hodnotu. A jelikož postupně prvky náhodně vytahujeme, musíme je smazat z pole. Tedy nastavit na defaultní hodnotu. (ale jakou?)
Díky nápovědy Visual Studia se tento problém rychle vyřešil syntaxí:

field[rindex] = default (Item);

Kdy:
field = pole prvků typu Item
rindex = náhodný index z kterého beru prvek

Tímto zajistíte, že se prvek z pole smaže, a nic na indexu nebude.
Pro případné zájemce celý projekt se strukturou Bag: zde

středa 18. července 2012

Windows Phone vs Android

Věčně komentované a diskutované téma. Někteří jsou zastánci jedné konkrétní platformy a nedají a nedají si říct, ať se snažíte jak chcete. Já takovýto přístup nemám a rád jsem vyzkoušel odlišnou platformu než je Windows Phone (dále jen WP). S mou Nokií Lumií jsem již skoro půlroku a během té doby se sešlo pár chybiček, na kterých by měl zapracovat Microsoft, či Nokia. Tomuto se však nechci věnovat.
Nedávno jsem si půjčil nový, zatím nepoužívaný, telefon od otce. Ten ještě nenabyl té odvahy, aby přehodil SIM kartu. Tak jsem si řekl, že si vezmu Sony Ericsson s Androidem na pár dní jako primární phone a porovnám jaké má přednosti či nedostatky.
První poznatek: zvykl bych si. Podle mě je to hodně o zvyku. Za dobu používání jsem zjistil pouze základní práci s telefonem a jeho fičurami. Takže stále by bylo co objevovat. Ale určitě bych si na Android zvykl, stejně jako si pomalu zvykám na WP.

  • komplexnost - tohle je asi zcela zásadní rozdíl mezi těmito systémy. Od WP se nedá čekat kdejaká složitost či nabubřelost, na rozdíl od Androidu. Android je hodně nabubřelý a nafouknutý systém. Neříkám, že je to nevýhoda. Stejně jako u WP by se to dalo zařadit jak mezi výhody, tak i nevýhody. Záleží na vašich potřebách a představách co od telefonu očekávat.
  • uzavřenost - oproti Androidu je WP hodně uzavřený systém, dalo by se říct že "neproniknutelný". Jakožto uživatel totiž nemáte absolutně žádný přehled o tom kde je co uloženo a jaká je v tom adresářová struktura. Jakožto uživatel WP jen víte, že to tam někde je. A tohle mi celkem vadí, jelikož jsem vyrůstal na Windows XP a asi jak většina uživatelů ví, tam co jste si nenašli a nenastavili, to jste neměli. Měli jste absolutní přehled kde co je a vše jste měli pod kontrolou. Tyto (zlaté) časy jsou ty tam a dnes je vše tak zjednodušeno, že se nemusíte skoro o nic starat. Proto jsem uvítal že po připojení telefonu k PC jsem viděl klasické složky na paměťové kartě a mohl si je projet. Toto však mělo v zápětí nevýhodu - kam sakra nacpat hudbu? :-D Po 3 pokusech jsem se trefil do správného adresáře.
  • styl domácí stránky - opět hodně odlišné u obou platforem. U Androidu jsem uvítal možnost vytvořit si 5 vlastních ploch, kde jsem si mohl nacpat co jsem chtěl, widgety, ikonky, kontakty. Toto v jisté míře lze i u WP, ale zcela ne tak "robustně". U WP si ikonku akorát připnete na úvodní stránku a můžete maximálně změnit její umístění, to je vše.
  • psaní - kdyby se zkombinovaly obě klávesnice, myslím že by to bylo perfektní. U WP je klávesnice jednoduchá a zřetelná, u Androidu mi přijde trošku chaotická a spousta tlačítek je tam zbytečných (např. ikonka pro nastavení - nastavíte jednou a šmitec snad ne?). Ale co mě hodně vadí při psaní na WP, je styl přesouvání kurzoru. Musíte podržet prst na textu až se vám objeví kurzor a ten přesně přesunout kam chcete. U And. je pěkné posouvátko, které je mnohem přesnější a pohodlnější. Navíc And. umí T9 v češtině, což zatím WP postrádá (ale snad časem přibude :-))
To je asi tak vše významné co mě v tuto chvíli napadá. Neříkám, že některá platforma je lepší než ta druhá, to rozhodně ne, jenom si myslím že je dobré vědět jejich přednosti a vyzkoušet si je.

Na závěr: strašně se mi líbil 3D efekt u aplikace Timescape (nebo Timeline, či jak se to jmenovalo) který zobrazoval nejnovější novinky (Tweety) na takovém pomyslném kole. Sice to nebylo moc praktické, ale bylo to pěkné :-D

pátek 9. března 2012

OneNote vs. Evernote

S koupí nového telefonu taky přišlo dilema jak si vytvářet poznámky. V předešlém telefonu to bylo dle mého názoru perfektně vyřešeno. Člověk si udělal poznámku a mohl si ji umístit na plochu, kdykoli se tedy podíval na telefon, viděl svou poznámku a opravdu plnila svůj účel - vždy připomněla co měla. Ve Windows Phone je přímo zahrnut Office a s ním i OneNote. Tuto aplikaci jsem v životě nepoužil, ale slyšel jsem, že je dobrá při organizaci práce, poznámek a záznamů. Tak jsem si řekl proč ne, že ji vyzkouším. Integrovaná verze v telefonu je rychlá, lze poznámky připnout na plochu ve formě "tajlu" (bohužel obsah poznámek nejde vidět) a mezi její největší přednosti patří automatické ukládání. Když tedy píšete nějakou poznámku, můžete bez obav aplikaci zrušit, zavřít nebo jít rovnou tlačítkem Home domů aniž by jste ztratili své sepsané myšlenky. Bohužel nevlastním nejnovější verzi Officů, nemohl jsem tedy otestovat jak dobře se poznámky synchronizují s počítačem. Což je celkem dobrá věc, tím pádem máte své poznámky vždy při ruce.
Když už jsem používal OneNote nějaký ten pátek, řekl jsem si že zkusím něco jiného. Nainstaloval si aplikaci Evernote jak v telefonu, tak jako aplikaci v Google Chromu (což je v podstatě jen odkaz na jejich server :-D). Co se samotného zápisu poznámky týče, zdá se mi relativně pomalý. Nikoliv zápis znaků, ale ta doba než se dostanu k samotnému psaní. Musím vybrat daný soubor, poté tlačítko upravit, vybrat místo kam chci psát a až poté mohu začít psát. Tuto stejnou cestu musíte zopakovat pokud nechcete aby se vám poznámky smazaly. Dvakrát klepnout na tlačítko Uložit se mi zdá celkem přehnané. Při představě, že mě něco napadne a chci to rychle zaznamenat, tak než se do aplikace dostanu tak to zapomenu. Stejná situace nastává při zavírání aplikace. Stiskem tlačítka Home ztratíte vše napsané, automatické ukládání zde chybí. Ale abych jen nevytýkal, obě aplikace umí zaznamenávat audio i fotky.
Já tedy zůstávám u OneNotu. Přeci jen je to integrovaná funkce tak proč ji nevyužít, když je zdarma, spolehlivá a hlavně rychlá. Jaké jsou vaše názory na tyto aplikace a zkušenosti s nimi spojené?

neděle 26. února 2012

ZUNE, aneb jak jsem se opět naštval

Dnes jsem si řekl, že jako správný žák jistého profesora bych měl mít vždy u sebe bibli. Ne však klasickou, jakou jste si jistě představili, nýbrž Petákovou, která je s oblibou nazývána biblí v našem ústavu. Nahrání do telefonu mě také přesvědčila skutečnost, že jdu dnes doučovat matiku a svou bibli jsem si nechal ve škole. Tak jsem si našel potřebné stránky a výsledky a zkopíroval je do složky. A teď přišel zlomový bod, připojil jsem telefon klasickým kabelem k PC. Zde přichází moje první kritika k softwaru ZUNE, který je potřeba ke kopírování souborů do telefonu. Je to něco jako iTunes ale pro Windows Phone. Samotné spouštění aplikace trvá trošku delší dobu a také mu trvá než si vůbec uvědomí že je telefon připojen. A když si to uvědomí, začne zběsile synchronizovat vše na co přijde, takže vám to kompletně rozháže hierarchii v souborech a nemůžete si být jisti co v telefonu máte a co ne. Když už se program uklidnil přišel další problém. Chtěl jsem tam nahrát celou složku ale tak, aby se mi nepomíchaly obrázky z foťáku s ostatními a přidávanými soubory. V tomto bodě mě WP silně zklamal. Nemožnost připojit telefon jako externí úložiště a tím si vytvořit vlastní hierarchii souborů a složek v telefonu. Je to hodně nešikovné, protože takhle máte všechno smíchané na jednom místě a máte v tom bordel... Naštěstí úložiště není zas tak velké aby jste tam měli extrémní bordel :-D (alespoň u mé Nokie 710)
Tak jsem intuitivně vzal celou složku a přetáhl ji na ikonu telefonu a napjatě čekal co to udělá. K mému překvapení to opravdu zkopírovalo tak jak jsem potřeboval a v albech se objevila moje složka.
Dle mého názoru, je ZUNE jedna z nejdůležitějších věcí na kterých by měl Microsoft zapracovat. Je sice hezké že spojili přehrávač s aplikací pro komunikaci s telefonem, ale myslím že to bylo zbytečné. Všichni už mají nějaké přehrávače hudby či videa, tak proč je měnit. Kdyby umožnili připojení telefonu jako externí médium, myslím že by to mnoha uživatelům značně usnadnilo práci. Obvzláště pak mě, jelikož jsem vyrůstal s Windows XP a jsem zvyklý mít všechno pod kontrolou, mít pořádek ve svých souborech a mít přístup všude kam potřebuji. V tomto mě WP značně omezuje. Na druhou stranu je to jistý strategický tah ze strany MS, tímto totiž zjednodušili práci obyčejným uživatelům, kteří se až tak nechtějí starat o adresářovou strukturu a ani je to nezajímá. Bohužel MS nemyslel na takové uživatele jako jsem já.
ZUNE je tedy podle mě naprosto zbytečný software (bohužel pro mě nutný), relativně pomalý a značně zmatený co se grafického rozhraní týče. Samozřejmě je to můj názor, vy můžete mít svůj vlastní a kompletně odlišný.
Podělte se o zkušenosti v komentářích :-)

pátek 24. února 2012

Koupě nového telefonu

Před nějakou dobou mi začal blbnout stařičký Sony Ericsson W810i a tak jsem usoudil, že už je asi na čase koupě nového telefonu, smartphonu. Na koupě smartphonu mě lákaly v podstatě dvě věci: internet a lepší organizace mých poznámek, úkolů a kalendáře. A tak jsem začal pátrat a vybírat si telefon. Když jsem měl poprvé v ruce kamarádův Android, říkal jsem si: "Nic jiného nechcu!" První dojem byl opravdu dobrý, intuitivní a vysoce nastavitelný systém. Člověk se s ním sžil v podstatě ihned. Ale potom jsem se začal více zajímat o toto odvětví techniky a narazil jsem na iPhone a Windows Phone. iPhone jsem zavrhl hned na začátku, ne že bych neměl rád Apple, ale je prostě mimo mou cenovou kategorii. Ale Windows Phone mě zaujal. Oproti Androidu má WP jistý řád a danou specifikaci co každý telefon musí mít. Což mi jako vývojáře značně usnadňuje život. Aplikaci mi stačí otestovat na jednom emulátoru s jedním rozlišením, toť vše! A jak čas plynul a já sledoval WP tak mě celkem i přesvědčil ke koupi. Z malé nabídky telefonů jsem si nakonec vybral Nokii Lumii 710, která je v posledních dnech široce medializovaná spolu s její sestřičkou Lumií 800. Ale abych se vrátil k mým důvodům: internet v Nokii mi vyhovuje a jelikož nemám datový tarif, používám jen WiFi sítě. Co se týče druhého bodu, byl jsem částečně nadchnut i zklamán. Kalendář propojený s kalendářem na Gmailu je dobrá věc, ale poznámky v telefonu jsou už trošku horší. Můžete využít integrovaný OneNote, který lze synchronizovat s aplikací na desktopu a mít tak své poznámky vždy u sebe. Jelikož nemám verzi OneNote 2010 (telefon vytváří a upravuje pouze dokumenty z nových 2010) tak nemohu říct jak moc tato funkce funguje. Nicméně co mi vadí v poznámkách je jejich "neviditelnost"... tedy nemám své poznámky pořád na očích, tím pádem vždy na něco zapomenu... a tohle je velká nevýhoda oproti mému starému SE W810i, který tohle uměl.
Co se týče Windows Phone samotného, nebyl jsem úplně ohromen ani úplně zklamán. Systém je na trhu relativně krátkou dobu a tak nelze očekávat skvělý operační systém ze dne na den. Ale myslím si, že WP má solidní základ na čem může stavět a pokud se na něm ještě zapracuje, myslím že bude schopný konkurovat Androidu.
To by bylo asi tak vše k tomuto tématu, už se mi nechce psát :-D

Začínáme

Tak je to tady, konečně jsem se dokopal k tomu abych si založil blog. Nastává však otázka zda mi k něčemu bude. Někde jsem četl zásady pravého ajťáka/programátora (už jsi to přesně nepamatuji). Jedním z deseti pravidel bylo mít blog. Pro sdílení názorů a rozvíjení ve svém oboru. No uvidíme jak to dopadne. Budu se tedy snažit tady sem tam něco napsat.