Přesouvám blog.vyvojar.cz na novy HW
22 dubna 11 11:36 dop. | michal | 24 Comments   
Se změnou HW přichází i změna OS (z Windows Server 2003) na 2008R2. Pokud narazíte na nějaké problémy, napište mi na michal@vyvojar.cz
.NET 4, MSBuild & “Could not load file or assembly” on 64bit OS
19 července 10 09:21 odp. | michal | 3 Comments   

Do you try to compile your .NET 3.5 project (or solution) upgraded to .NET 4 included Web Site with MSBuild? And do you get this error?

ASPNETCOMPILER : error ASPCONFIG: Could not load file or assembly 'System.Data' or one of its dependencies. An attempt was made to load a program with an incorrect format.

Check path of MSBuild you called. When you are on 64bit OS you have to call MSBuild.exe and aspnet_compiler.exe from %SYSTEMROOT%\Microsoft.NET\Framework64\* path.

From .NET 4 is not possible to compile .NET project win 32bit tools on 64bit OS.

Vodafone chystá svůj Facebook. Divné? Vůbec ne
08 dubna 09 05:45 odp. | michal | 34 Comments   

Před rokem začal Vodafone připravovat nový projekt, s kódovým označením Mobile2Web (M2W). Měl jsem možnost být u projektu od začátku (Davide, dík), od myšlenkového konceptu až po konkretní návrh API (který byl poté dlouze diskutován a upravován vzhledem k technickým omezením a obchodním rozhodnutím ;-) ).

Asi si říkáte, že další portál, nedejbože sociální síť/komunikační portál už není potřeba. Taky jsem si to říkal, když jsem šel na první schůzku do VF. To by ale Vodafone nemohl být Vodafonem.

Vodafone CZ se rozhodl otevřít (reálně jako první na světě) svou mobilní síť komukoliv. Dá svou ji k dispozici prostřednictvím jednoduchého API, bez 50stránkových smluv a milionových pokut.

Projekt, který Vodafone spouští je sociální server / komunikační server principiálně podobný Facebooku (před posledním ala Twitter updatem).

Z hlediska vývojářského bude moci kdokoliv dopsat do portálu vlastní aplikaci (rozšířený OpenSocial) s možností využití mobilní infrastruktury Vodafone. Tzn. posílat, přijímat SMS, posílat Premium SMS a možná i MMS. Vše spojeno s klasickým konceptem sociálních sítí – přátelé, zprávy, fotky, schůzky atd. atd.  A to je zatím první verze!

Konečně zde bude snadný způsob, jak svou web aplikaci napojit na mobilní síť a jak na ni vydělat peníze. Jasně, průhledně a jednoduše.

Poznámka na okraj: Když jsme tuto vizi poprvé diskutovali ve Vodafone s Davidem Duroňem, Patrick Zandl se neodpustil nahlas říci to, co jsme si všichni mysleli – bude schopen Vodafone překonat sám sebe, přirozenou uzavřenost a interní procesy? Byl to boj (IT, Security, Sales a v první řadě právníci), ale Vodafone to dokázal. Úžasné!

Microsoft.CompactFramework.CSharp.targets wanted, alive or dead!
19 listopadu 08 03:06 odp. | michal | 37 Comments   

Visual Studio 2008 je dobrá vývojová platforma software pro PocketPC, o tom není sporu. Vše funguje jak má až do chvíle, kdy se rozhodnete CompactFramework project přidat do automatického buildování projektu (třeba CruiseControl). Tahle sranda se obvykle odehráva na zastrčeném serveru, s .NET Framework SDK.

Slušnost zde velí kompilovat projekty z příkazové řádky pomocí csc.exe nebo ještě lépe msbuild.exe. U projektu v Compact Framework ale nastane drobný problém. MSBuild.exe nenajde potřebný Microsoft.CompactFramework.CSharp.targets pro kompilaci projektu.

Zkušený borec nastartuje svůj oblíbený vyhledávač a stáhne .NET Compact Framework 3.5 Redistributable. Ale ouha, potřebný .targets soubor nikde. Nevadí, stáhneme  Windows Mobile 6 SDK Refresh. Pořád nic.

Linky jsou volné, data levná, pro jistotu updatujeme celé platform SDK - Windows SDK for Windows Server 2008 and .NET Framework version 3.5. Pár set mega přiletí během pár minut, ale hledaný pár kilový soubor nikde.

Rada na WindowsSDK blogu se ukáže jako lichá, ale další usilovné hledání je úspěšné – hledaný soubor je součástí zcela nečekaného SW balíku -

Power Toys for .NET Compact Framework 3.5.

Potěšující zprávou jest, že veškerý stáhnutý a nainstalovaný SW se hodí a bez .NET Compact Framework 3.5 Redistributable se to dokonce neobejde.

Virtual Earth na iPhone snadno a lehce
17 listopadu 08 07:32 odp. | michal | 9 Comments   

Čekali jsme na to dlouho a je to tady. Sice ne z pera Microsoftu, ale s jeho pomocí ano.

Consonance Software vytvořil VirtualEarthKit, neboli Virtual Earth SDK for ObjC / Cocoa developers. Knihovna je k dispozici zdarma i se zdrojáky (SVN)

Použití je snadné, jak je vidět a výsledek je možné shlédnout v iPhone aplikaci NJection Mobile (iTunes link)

 

image_12

 

(via VirtualEarth)

Vista contra OS x - II
10 listopadu 08 07:51 odp. | michal | 26 Comments   

V předchozím spotu jsem se trochu opřel do Vist. Na jejich obranu musím říci, že oproti čestvému OS X jsem Visty instaloval před 2-ma lety (skoro na den přesně).

Pokud “zpomalování” OS X bude probíhat stejně jako u iPhone, pak OS X budou za dva roky jako šnek.

Dneska je na čase trochu poškádlit “jabličkáře”. Ano, “first user experience” je u Applu lepší, než u Vist (měli by si v Redmondu najmou lepší grafiky), ale detailnější pohled už problémy odhalí.

Základní pravidlo u standartních aplikací OS X zní – v jednoduchosti je krása/síla. Temná stránka tohoto přístupu je omezené možnosti úpravy fungování aplikací či změny způsobu jejich chování.

Outlook Express x iMail

Základní funkčnosti obou produktů je +- stejná. Oproti iMail umí Outlook Express pracovat s News (NNTP protokol), na druhou stranu iMail se připojí k Exchange serveru pomocí RPC over HTTP.

Co je u iMailu fakt k zlosti, je nepoužitelná synchronizace. Ať chci nebo nechci, synchronizují se všechny složky. Což žere místo i čas :-(.

A odeslat mail klávesnicí pomocí Control-Enter? Zlatý voči, jde to pomocí šílené kombinace Option+Command+D.

Kvalita MIME parserů je podobná. OE si poradí se vším, včetně mailů nedodržujících RFC. iMail má s takovými maily veliké problémy. Často je nezobrazí, a pokud ano, se zcela rozbitým formátováním.

Vzdálená správa

Remote Desktop Connection (RDP protokol) je moc prima protokol pro vzdálený přístup k desktopu. OS X se snaží o něco podobného pomocí známého VNC. Má i vlastní protokol pro vzdálený přístup k ploše (Apple Remote Desktop) postavený na V

MobileSafari

S jakousi aplikací (asi Adobe Acrobat Pro) se nainstaloval do systému MobileSafari. Nevím proč a za co, ale díky tomuto přestal fungovat applí “About” box s informacemi o OS X. Prostě padá, stejně jako MobileSafari.

Tisk

Totální problém OS X je tisk na tiskárnu. Mám v síti WinXP s nasdílenou USB tiskárnou HP OfficeJet. Po mnoha hodinách experimentů, instalací, pokusů a nastavování na obou počítačích jsem NENAŠEL způsob, jak z OS X tisknout na tuto tiskárnu. Vůbec spolupráce s Windows počítači je oblast, která je v OS X velmi slabá (typicky resolving standalone Windows strojů v síti je katastrofální).

Mít Mac jako hlavní notebook k práci, nemožnost tisku by ho zcela znemožnila používat.

Jak je vidět, slabá místa má každý operační systém (a kdo čekal něco jiného, je naivka), jen každý kapánek jinde. A oba “tábory” by se měly (a oni to také dělají) navzájem inspirovat.

Vista contra OS X - pohled uživatele I.
07 listopadu 08 06:24 odp. | michal | 37 Comments   

Shodou okolností mám v ruce týden MacBook Air, což je prudce elegatní, placatý a lehký notebook od Applu. Má běžná pracovní lopata je Dell Latitude D830 s anglickýma Vistama.

Nedá mi to, abych se s vami nepodělil o některá srovnání, a to z hlediska uživatele. Srovnávat budu z pohledu běžného BFU (což na OSX jsem a na Vistách se do toho snadno přepnu ;-) )

Dell má nevýhodu, že má ikonu disku, takže vidím, kdy disk pracuje. U Macu toto není a ani jeho disk není možné ani v naprostém tichu zaslechnout.

  Dell Mac
Hardware Intel Core 2 Duo 2.4 GHz, 4 GB RAM, 80 GB HDD 5400 ot. Intel Core 2 Duo 1.6 GHz, 2 GB RAM, 80 GB HDD 4200 ot.
SW Windows Vista 32bit EN SP1, všechny fixy OS X 10.5.x EN všechny fixy
     

Bootování

Bootování je na obou systémech opruz. Visty sice za par minut naběhnou, ale ještě 5 min po zalogování se disk nezastaví a odezva na jakoukoliv akci je v řádech 20s+.
Mac startuje tak 2 minuty a kupodivu se aplikace dají nastartovat na přibližně obvyklou dobu. Vzhledem k tomu, že dnes už rozumný člověk do systémů často nebootuje, je to poměrně nezajímavá věc.

Uspávání a probouzení

Tohle je téma ! Uspávání a probouzení děla každý s notebookem několikrát denně a je to práci podstatná věc. A zde se dějí věci.

Visty po jednodenním používání, s alokovanými 50% RAM usínají 55s. Úspěšnost uspání je tak 90%, v ostatních případěch Visty neusnuly a notebook se saunoval v tašce.
Maca nemám tak dlouho, ale uspaný je za 6-7s, zatím vždy.

Probouzení Vist je operace. Login dialog se sice objeví ihned po zapnutí počítače, ale po zalogování se počítač nedá používat. 60s se připojuje ke stejné Wifi síti jako při uspání a po celou tuto dobu - tzn. celou minutu !!!! – jede CPU na 100%!!! 60% procesoru žerou procesy svchost.exe a explorer.exe, neboli systémové procesy.
Už 10x se mi namísto probuzení objevila BSOD a užil jsem si bootování.

OSX se probudí okamžitě a jsou použitelné dříve, než stačíte zvednout víko displeje. Wifi je přípojena a funkční za 6s. Rozdíl nebetyčný.

Desktop Search x Spotlight

Desktop Search (DS) je totéž, co v OSX Spotlight. Oba se používají vícemene stejně a přesnost vyhledávání na disku je na první pohled srovnatelná.

DS má výrazně vyšší odezvy, dostat z něj nějaký výsledek (a to i při prohledávání Start menu s aplikacemi) je zaležitost na sekundy. Záleží to hodně na nacachování dat, opakované dotazy jsou velmi rychlé, nové jsou pomalé. Spotlight je zatím stejně rychlý na všechny typy dotazů.

Výkon DS je asi kritizován každým, kdo ho používá. Inteligence DS v tom, kdy a co indexovat je mizerná. Sice se tváří, že indexovat má pouze když je počítač nepoužíván, realita je taková, že min. 5x denně se rozjede kdykoliv a drtí disk takovým způsobem, že je počítač 2x pomalejší.

Spolehlivost DS je taktéž mizerná. První rok jsem DS nechal žít jeho životem a doufal, že mi naindexuje Outlook a všechny textové soubory. Používat Outlook s DS je za trest, protože DS indexovalo mailbox s tak 2-3 denním zpožděním, což se projevovalo tak, že nenaindexované poslední maily Outlook při hledání prostě nenašel !

A po 9-ti měsících bez zjevné příčiny indexovat Outlook přestal. Což jsem zjistil po 2 týdnech, kdy jsem přestal dohledávat maily, o kterých jsem vědel, že v mailboxu jistojistě mám.

Jediné řešení problému mělo být smazání celého indexu a přeindexování celého počítače (neboli několik nocí nepřetržitého běhu disku, o dnu nemluvě). Zkusil jsem, po týdně zjistil, že zaindexovat 5 (slovy pět) mailu z 20 000 mailu v mailboxu a bylo po DS. Náhle jsem zjistil, že mám i nějak rychlejší počítač.

Spotlight se projevuje zcela neviditelně. Nevím kdy indexuje, ale maily, soubory i jejich obsah je zaindexovaná do 1 min po uložení. Na výkon počítače jsem vliv nepozoroval (a to i na disku s pouze 4200 ot.)

2x mne zklamal. Jednou jsem omylem, podruhé úmyslně vypnul notebook natvrdo. Po restartu spotlight cosi reindexoval, poprvé to trvalo 20 min, podruhé 2 min.

Kluci z PDC zkoušeli alfu nových Windows 7 a podle jejich popisu jsou výrazně rychlejší než Visty, a to včetně DS. Což je dobře. Jsem si jist, že se jich nemohu dočkat nejenom já.

Pokračování příště ;-)

Virtual Earth “static maps API”
22 října 08 09:02 odp. | michal | 27 Comments   

Před mnoha mnoha měsíci (skoro roky) uvolnil Google užitečnou blbůstku - Google Static Maps API. Stručně řečeno – namísto hromady javascriptu a interaktivní mapy toto API vrátí JPG nebo GIF obrázek požadovaného výřezu mapy. Snadné, rychlé, elegantní a hlavně užitečné třeba pro mobily.

V červnu jsem psal Product Managerovi Virtual Earth, jak totéž udělat na VE. Odpověď byla trochu vyhýbající ale hlavně záporná. Nejde to, leda snad velmi pracně přes Microsoft MapPoint.

Dnes jsem s radostí ale hlavně úplně náhodou zjistil, že už to jde. Sice ne tak jednoduše jako u Google, ale jde to.

Microsoft totiž potichu pustil Virtual Earth Web Services a uvolnil příslušné SDK. Jedna ze součástí SDK je Imagery Service. A právě metoda GetMapUri dává URL, které vrací požadovaný výřez mapy VE.

Jednoduchý a přehledný příklad najdete na Virtual Earth blogu.

Zrychlení dotazů nad spatial indexy v SQL 2008
15 září 08 09:06 dop. | michal | 8 Comments   

Na našem ambiciózním projektu www.ontheroad.to si už pár měsíců hrajeme se spatial indexy v SQL 2008.

Nedávno jsem intesivněji hledal, proč dotazy nad spatial indexy jsou někdy výrazně pomalejší, než bych očekával.

Úvod do situace

HW: 2xQuad Core 1.6 GHz, 8GB RAM, rychlé SATA disky v RAID 1

Data: 8 milionů bodů po celém světě, GPS souřadnice, geography data type

Typ dotazu: najdi mi body v okolí X kilometrů od libovolně zvolených GPS souřadnic

SQL dotaz po zjednodušení vypadá takto:

Select top(@count) ID from GeoObj where geo.STDistance(@point) < @km order by order by geo.STDistance(@point)

Výsledkem dotazu pro bod ukazující na Prahu a vzdálenost 30km vrací asi 20 000 záznamů.

Pohled do dokumentace praví, že přesně takto má vypadat SQL dotaz, aby se použil spatial index. Realita a pohled do execution planu však prozrazují úplně jiné věci.

Postup a řešení

1) pokud nepoužiju order by , spatial index se nepoužije vůbec a k hledání bodů se dělá table scan !!! Po 10-ti minutách 100% zatížení 8-mi CPU (vskutku nezvyklý pohled ;-) ) žádny výsledek

2) při použítí order by geo.STDistance(@point) se sice spatial index použije, ale nějak divně. Execution plan je velmi složitý, nejvíce času si bere clustered index seek nad primárním indexem tabulky (??) a agregační Hash Match. Dotaz trvá 30s poprvé, opakovaný kolem 12s. Pořád slabota.

3) Nezbývalo než rezignovat na evidetně blbně fungující vytváření execution planu u spatial indexu a trochu si "zahintovat" ;-)

dotaz
Select top(@count) ID from GeoObj with (index (SPATIAL_nameH))
where geo.STDistance(@point) < @km order by order by geo.STDistance(@point)

konečně dělá to, co má. V tomto primitivním dotazu používá spatial index tak jak má a výsledek dotazu je k dispozici vždy do 1.5 sekundy.

4) Zkoušel jsem, co s rychlostí dotazu udělá různá velikost tesselation gridu. Medium size pro všechny úrovně se ukázalo jako nejrychlejší řešení, i když v tomto konkrétním případě byly rozdíly max 20%.

Závěr

Vypadá to, že vytváření execution plánu pro dotaz nad spatial indexy nefunguje dobře. Pro všech naších 15 různých dotazů se spatial indexy bylo nutné použít HINT.

Takže příště  u spatial indexů automaticky použít TABLE HINTs a počítat s časem na ladění dotazů.

PS: Musím poděkovat kolegovi Pavlovi Pěknicovi, bez kterého bych na toto řešení přišel o pár hodin později :-)

Jde volat SubVersion clienta z ASP.NET aplikace? Těžko, přetěžko....
15 září 08 08:27 dop. | michal | 8 Comments   

Včera jsem programoval takovou obskurní aplikaci, jejíž jedna část měla za úkol updatnout zdrojáky ze SVN a za později je upravené commitnout zpět. Vše jako ASP.NET aplikace.

Problém jsem se snažil řešit přes volání SVN clienta svn.exe. Problém u svn.exe je ten, že si po spuštění načítá z registry uživatele zálohované credential proti SVN a akceptace SSL certifikátů. Pokud tyto záznamy v registry nemá, pak se na ně ptá a specialně u SSL certifikátů se tato interakce nedá vypnout :-(.

Problém s voláním z ASP.NET je, že bez ohledu na účet, pod kterým ASP.NET běží, bez ohledu na impersonalizaci a bez ohledu na povolené načítání uživatelského profilu u objektu ProcessStartInfo si svn.exe nenačte informace o tom, že má permanentně akceptovat SSL certifikát u SVN repository.

Tudy cesta nevedla. Další možnost byla intergrovat .NET Subversion Library jako DotSVN nebo Svn.Net či SubversionSharp, či COM jako SVNCom. Bohužel tyto knihovny nejsou zrovna nejčerstvější a já se chtěl vyhnout hledání problémů v cizím kódu. Takže jsem hledal další řešení.

Mám ověřeno, že spouštění svn.exe bez problémů funguje v tasku v Task Manageru. Ok, to je cesta, ale jak z ASP.NET spustit task Task Manageru. Kupodivu snadno. Stačí vytvořit task v Task Manageru, běžící pod požadovaným účtem s jednorázovým spuštěním v minulosti.

Spuštění tohoto tasku jde snadno pomocí c:\WINDOWS\system32\Schtasks.exe /run /TN <jmeno tasku>.

Příznávám, je to trochu kostrbatá cesta, ale většina cestiček je dlouhodobě ověřena a spolehlivá. Ale rád si nechám prozradit i jiný způsob, jestli nějaký znáte.

Když programátor Microsoftu přejmenuje muže na Kolíka a ženu na ....
08 srpna 08 12:44 odp. | michal | 14 Comments   

Řekl bych, že letošní červenec pro některého zaměstnance Microsoftu začal poněkud bouřlivě.

Posuzuji to z oficiálního článku Technické podpory Microsoftu ohledně lokalizace produktu Microsoft Dynamics CRM 4.0.

Název je ještě celkem neutrální: The Male label and the Female label are translated incorrectly in the Czech version of Microsoft Dynamics CRM 4.0

Ale popis symptomů je nářez:
In the Czech version of Microsoft Dynamics CRM 4.0, the Male label is translated to Kolík instead of Muž. Additionally, the Female label is translated to Zdířka instead of Žena.

Kdo nevěří, ať tam běží.

Fotky se Stevem Ballmerem
28 května 08 10:52 odp. | michal | 18 Comments   

Dneska jsme konečně dostali fotky z našeho kulatého stolu se Stevem Ballmerem.

Na začátku bylo seznamování......, pak již dříve popsaný potlach a končili jsme společnou fotkou.

Ale že nám to slušelo, co? ;-)

Poznámky z neveřejného roundtable se Stevem Ballmerem
23 května 08 10:21 dop. | michal | 21 Comments   

Na veřejné přednášce na VŠE zodpověděl pár dotazů a odpovědi jsou buď na videu anebo v různých článcích na webu. Zde také dostatečně zodpověděl otázku Radka Hulána, proč 40mld za Yahoo a ne do vývoje Live.com.

Osobně zajímavější byl následný kulatý stůl s vývojáři a IT managery. Byla nás asi 15 a měli jsme možnost 25 minut klábosit s Ballmerem.

Nepamatuji si všechny otázky a odpovědi, mě zaujala asi polovina otázek, zbylé byli obecné typu "Steve, jakou máš vizi že......" apod.

Takže bodově postřehy:

  • Rozlišení brandů live.com a msn.com bude pokračovat, výrazný posun by měl být ohlášen na PDC'08.
  • Nový Office Live (obdobě Google Docs) bude online, dostupné přes prohlížeč a bude schopno spolupracovat s desktopem. Nejde o náhradu plného Officu, funkčnost bude rozhodně menší.
  • Mapy jsou pro Microsoft (stejně jako pro Google) velmi důležité a mělo by se to projevit i v lepších mapových podkladech ČR a okolí.
  • Microsoft má podle všech recenzí a testů v USA lepší mapy a mapové podklady než Google. Jinde po světě je boj vyrovnaný. Jsou však místa, kde je Google úplně mimo.
  • Podle vize Steva B. bude SaaS (alias S+S) nabývat na vlivu, nevyhraní se však jeden převažující model jeho zpoplatnění.
  • Zmínil se o Microsoft Mashup Cloud (snad si to pamatuji dobře), což je zatím něco jiného než Google App Engine, ale podle toho, co vím, je to velmi zajímavá P2P technologie pro sdílení dat mezi zařízeními. Dnes bych měl dostat přístup k technology preview, tak budu referovat.
  • Na veřejné přednášce Steve zmínil Microsoft Surface, což je horizontální multitouch zařízení. V Microsoft Labs žije i verticální varianta, Microsoft Touchwall.
  • Nástupce Windows Vista (zatim Blackcomb / Windows 7) bude spíše evoluční, než revoluční. Mimo jiné bude kladen důraz na zpětnou kompatibilitu aplikací a driverů. Jak Steve řekl už dříve, cyklus vydávání Windows by se měl zrychlit (neměla by se opakovat 7-mi letá pauza jako u Windows Vista).

Prima setkání jsme ukončili společnou fotkou se Stevem Ballmerem a Jane Gilson. Až ho dostanu, tak se pochlubím ;-)

Buď Office Developer Hero!
20 května 08 10:25 dop. | michal | 8 Comments   

Video: ODC2008 Developer Guy
Na co se mám zeptat ve čtvrtek Steva Ballmera?
19 května 08 10:28 dop. | michal | 38 Comments   

Diky Microsoftu mám možnost se setkat se Stevem Balmerem na Kulatém stolu s vývojáři. Toto setkání proběhne po Stevově přednášce na VŠE.Poprvé jsem ho naživo viděl letos na MVP summitu a musím potvrdit, že je to fakt šoumen a s davama to umí.

O to více se těsím na setkání s ním nikoliv před stovkami lidí, ale v kruhu +-10 lidí. Podle pověstí je dost energický, občas prchlivý a nevypočítatelný ;-).

Podle plánu bude čas tak na 1, max. 2 otázky. Na co bych se měl zeptat? (čistě technické otázky nemají smysl). Napište mi Vaše otázky pro Steva do komentářů. Nejlepší otázky (ty lepší než mám já :-) ) se pokusím položit a odpovědi sem v pátek napíšu.

Více článků Další stránka »

Search

Go


    Syndication

    Vyvojar.cz na prodej!