2009. július 29., szerda

Holdjárás

A Holdra szállás évfordulója és vele a Google Moon megmozgatta az agyakat.
Mi más született volna legelőször mint néhány jópofa játék.

Az egyik mashup segítségével a jenki holdjáróval ralizhatunk a Hold felszínén.

Ennek kapcsán érdemes megjegyezni, hogy a holdjáró vezető mérnöke (mi más is lehetett volna) egy magyar mérnök volt Pavlics Ferenc, akit ki is tüntettek tavaly a Magyar Köztársasági Érdemérem Középkeresztjével.

Egy másik játékkal megpróbálhatjuk megismételni a Armstrongék bravúrját. Nem, nem a "Wonderful world"- re gondolok, hanem az Eagle-t próbálhatjuk meg letenni a Hold felszínére.
Nekem mondjuk 5-ből egyszer sem sikerült, de másnak biztos jobban megy.

2009. július 22., szerda

A Nap, a Hold és a (Google) Föld

Két dologgal van most tele a népszerű tudomány.
Az első a Holdra szállás évfordulója. Erre az alkalomra a Google nagyon impozáns anyagot épített be az Earth-be. Órákon át lehet nézegetni, olvasgatni a mindenféle adatokat, fotókat, videókat. Akit érdekel a téma annak nagyon nagy élmény. Személy szerint a panorámafotókat élveztem a legjobban, meg persze a holdkomp 3D modellje sem utolsó.
Az új lehetőségről bővebben a LatLongBlog-on lehet olvasni, illetve készült egy látványos videó is a témában.

A másik sláger a mai napfogyatkozás, ami az évszázadban a leghosszabb. A napfogyatkozások ábrázolása sem maradhat ki persze a Maps/Earth felhasználások közül. Egy francia csapat, aki a napfigyatkozásokra specializálódott egy teljes atlaszt készített Google Maps térképekkel megtámogatva. A térképek között természetesen megtalálhatjuk a mai ázsiai napfogyatkozás adatait is. Szintén találhatunk néhány szép térképet a HeyWhatsThat égbolt-térképei között is.

2009. május 27., szerda

Unit test módszer az adatmanipulációhoz

Egy régebbi MSDN cikkben akadtam rá erre a nagyszerű módszerre, amivel a System.EnterpriseServices névtérben fellelhető tranzakciós eszközökkel szépen egységtesztelhetjük az adatbázisműveleteket, anélkül, hogy a tesztadatok elborítanának bennünket vagy mindenféle trükkös mocking és egyéb mókázásokra lenne szükség.
Persze néha az is hasznos lehet, arra is találtam egy jó módszert. Legközelebb majd leírom azt is :)

Vártam, hogy többen belém kötnek, miszerint ez integrációs teszt. Ha senki nem tette meg, akkor én kötök bele magamba. Persze a lényegen nem változtat, hogy minek nevezzük.

[TestFixture]

public class DBTest

{

    [SetUp]

    public void Setup()

    {

        // Enter a new transaction without inheriting from ServicedComponent

        Console.WriteLine("Attempting to enter a transactional context...");

        ServiceConfig config = new ServiceConfig();

        config.Transaction = TransactionOption.RequiresNew;

        ServiceDomain.Enter(config);

        Console.WriteLine("Attempt suceeded!");

    }

 

    [Test]

    public void Insert()

    {

        // Perform your magic against the database

        CategoriesManager mgr = new CategoriesManager();

        int newID = mgr.InsertCategory("MyCategory");

        Assert.IsTrue(newID != 0, "returned ID should be more than zero");

    }

 

    [TearDown]

    public void Teardown()

    {

        Console.WriteLine("Attempting to Leave transactional context...");

        if (ContextUtil.IsInTransaction)

        {

            // Abort the running transaction

            ContextUtil.SetAbort();

        }

        ServiceDomain.Leave();

        Console.WriteLine("Left context!");

        // Trying to access ContextUtil now will yield an exception

 

    }

 

}

2009. április 29., szerda

Dictionary átadása webservice paraméterként

Időnként meglepően jó megoldásokba botlik az ember a .NET háza táján. Bármilyen valószínűtlenül hangzik is, lehetséges úgy hívni egy [ScriptService] -ként dekorált webszolgáltatást, hogy paraméterként egy Dictionaryt fogadjon.
A kliens oldalon ez gyakorlatilag egy vegyesfelvágott tömböt jelent, amit viszont a serializer szépen feldolgoz.
Ebben a postban kicsit részletesebben ki van bontva a téma és letölthető kód is fellelhető.

2009. április 10., péntek

Postback probléma régebbi IIS (5.x, 6) és/vagy XP Pro és ASP.NET routing esetén

A fejlesztői és a végfelhasználói környezet különbsége sok esetben okozott már fejtörést. Nálunk most éppen a futótérkép fejlesztése körül jelentkezett egy probléma az ASP.NET routing szolgáltatása kapcsán. Konkrétan a fejlesztői gép egy XP míg az alkalmazás valami újabb (esetünkben 2008 server). A routingot pedig használni kell, mert mennyivel jobban néz ki (meg persze SEO frendlibb) egy olyan path, hogy http://www.futoterkep.hu/utvonalak/ mint az, hogy http://www.futoterkep.hu/Modules/TrackList/tr_list.aspx. Igen ám, de az XP Pron az 5.1-es IIS erre az első aszinkron postback után egy 405-ös hibával köp szembe. Ez szerinte annyit jelent, hogy a postot a dev/null-ba küldted és nincs aki válaszoljon túlnan. Hosszas guglizás után sikerült kideríteni (már a hibaüzenet pontos jelentését sem könnyű), hogy a probléma az, hogy a borítékról lemaradt a címzés, így szegény postás vinné, de nem tudja, hogy hová. A HTTP világban ez annyit tesz, hogy a FORM tag action paramétere nem töltődik ki automatikusan és szegény IIS keresné azt a lapot, ahová a kérést küldjük, ami alapértelmezetten a _self vagyis saját maga. Igen ám, de a routinggal megtámogatott oldal esetén ez a lap fizikailag nem létezik, szegény IIS pedig buta és nem tudja megtalálni.

Mi hát a megoldás? Természetesen meg kell címezni a borítékot:

this.form1.Action = this.Request.RawUrl;

Ezután már tudja a postás hová kell vinni és Náncsi néni boldogan nézegeti mekkorát nőttek az unokák.
Persze a dologra rájönni korántsem volt annyira egyszerű, mint ahogy látszik. Remélem van akinek megspóroltam most néhány órányi google túrást…

2009. április 4., szombat

Alámerülés a Google Maps-szel ( vagy -ben)

Régen írtam már bármit is a Google Maps háza táján feltűnő fejlesztésekről. Kicsit úgy vagyok a témával mint az úriemberek a nemi élettel ugye. Csinálom, de nem beszélek róla.
Most viszont számos olyan új dolog került be a Google Maps API-ba, illetve köré, amire felkaptam a fejem, ezért röviden karcolok valamit a számomra legérdekesebbekről.
Először is az Earth API újdonságok (innen jön a rendkívül szellemes cím is).
Az óceán sem akadály mától az APInak, hiszen ezután vidáman fújhatjuk a virtuális buborékokat Jacques Cousteau szellemével a tengeralatti túrákon a böngészőnkben.
Az óceán fenekénél is érdekesebb helyen, mégpedig a Marson is lehet az új verzióval járkálni.
A mostani frissítésben még egy dolog ragadott meg: a pluginnal is lejátszható KML tour. Ezen a területen még van némi elmaradásom, ugyanis szeretnék utánanézni, hogyan is lehet ilyen "túra-fájlt" készíteni. Biztos nem ördöngösség, csak erre is kéne egy kis idő.
Na ennyit a parasztvakításról :)
Kikerült még nemrégiben néhány hasznos kis open-source JS cucc, aminek hozzám hasonló hobbisták, de profi GMap buherátorok is hasznát vehetik.
Nekem leginkább a tabbed infowindow plugin tűnik hasznosnak, de lehet, hogy más a többit is jól tudja hasznosítani.

2009. március 24., kedd

Kép vagy állomány letöltés adott URL mögül

Nemrég szükségem volt a tárgybelire és szokás szerint ismét nem ugrott be elsőre a megoldás.
Gyanítom, hogy más is így lehet ezzel, tehát a magam és minden hozzám hasonlóan feledékeny olvasó számára most lejegyzem a dolgot.
 System.Net.WebClient objWebClient = new System.Net.WebClient();
 objWebClient.DownloadFile(URL, FILENAME);
 System.Drawing.Image imgPhoto = System.Drawing.Image.FromFile(FILENAME);

Esetleg van másféle megoldás is?