2008. február 25., hétfő

Google térkép script nélkül

Ami egyszerű az jó. Minek ágyúval verébre lőni, ha csak arra van szükség, hogy egy egyszerű képen megmutathassam hová is megyek a hétvégén (jelen esetben Selmecbánya Péch Antal utca).

Az egyetlen amire szükség van egy Google API key és némi paraméterezés, de ezt egyszerűen megoldja nekünk az ezen az oldalon található térképgyár.

2008. február 22., péntek

Egységtesztelés SQL -ben

Mostanában munkából és hobbiból kifolyólag is foglalkozom az egységtesztelés finomságaival. Mivel a három- és többrétegű alkalmazások esetében én a tárolt eljárások híve vagyok így ezen a területen is kutakodtam egy kicsit. A gugli ezeket dobta ki:

http://spunit.sourceforge.net/
http://tsqlunit.sourceforge.net/tsqlunit_documentation.htm
http://sqlunit.sourceforge.net/
http://www.tsqltest.org/

Amint lesz érkezésem megnézem őket közelebbről, egyelőre eltettem őket a fincsibe. Addig is kommentben szívesen látnék esetleges tapasztalatokat.

2008. február 21., csütörtök

Néhány apróság SQL Server 2008 témában

Az egyelőre CTP-ben letölthető MS SQL 2008-nak sok izgalmas újdonsága lesz, ezekről magyarul Soci blogján lehet olvasni.
Engem őszintén szólva főleg a nagysokára végre elérhető térbeli adattípusok fogtak meg, érthető okokból :) Azt hiszem hamarosan időt szakítok rá és mélyebben beletúrok a dologba. Ha rajtam kívül más is erre az elhatározásra jut, akkor ildomos letölteni ezt a frissítést, hogy Studioból kapcsolódni lehessen az SQL Server 2008-hoz.
Ez a featúra - t.i. a térbeli adattípusok - már régóta benne van egyéb fizetős (oracle) és ingyenes (Postgre) adatbáziskezelőkben, elég nagy luxus volt mostanáig várni vele.
Ingyenes ekönyv is elérhető illetve lesz elérhető, jelenleg két fejezete van kész.

2008. február 18., hétfő

Magyar Google Maps mashup

Óriási lelkesedésről, ugyanakkor meglehetős naivitásról tanúskodik a BME szerverén elérhető EOVK generátor névre hallgató mashup.
A lelkesedést azért említem, mert valaki egyáltalán foglalkozik a témával, mi több a GIS (térinformatika) eszköztárával teszi ezt. A naivitást pedig azért, mert a mai magyar rögvalóban sajnos kétséges, hogy hasonló kezdeményezéseknek lesz-e, lehet-e bármilyen hatása. De erről ne többet.....
Maga az alkalmazás elég jópofa módon készít területi alapon elemzéseket, különböző kényszerek alkalmazásával készülő újraosztályozások segítségével. Az sajnos látszik, hogy a készítők leginkább az osztályozóalgoritmusra koncentráltak, az ún. felhasználói élménnyel mit sem törődve.
Akinek volt már köze Google Map alkalmazáshoz, az tudja, hogy néhány sor javascripttel mennyivel jobban fel lehetne dobni egy ilyen térképet. Kettőt megemlítek, ami nekem fájdalmasan hiányzott:
  • Görgős nagyítás (enableScrollWheelZoom)
  • Átnézeti térkép (GOverviewMapControl)
Fentiek speciel tényleg 1 soros featúrák. Esetleg még jó lenne egy kereső is a tréképen való könnyebb navigálás miatt, de belátom, hogy ezzel már kicsit több munka van, mondjuk 5 sor :)
Az esztétikai felvetéseimet le sem írom, hiszen láthatóan nem az egyzerű pó'gárnak szánt alkalmazás ez, hiszen jómagam 7-8 éves térinfós háttérrel is csak hosszas erőlködés és helpolvasás után jöttem rá, hogy mit is csinál ez a szegény alkalmazás tulajdonképpen, hátmég arra, hogy én mit csináljak, hogy megfelelő erdményt kapjak. Persze nincs ezzel baj, én is voltam főiskolás, csináltam is diplomamunkát, meg hobbiprojektet, ilyenkor az ember az izgalmas kérdésekre koncentrál és mit sem törődik a kinézettel vagy az ergonómiával. :)
Minden fenti fikázás ellenére öröm látni egy értelmes magyar felhasználást GIS téren, pláne Google Maps téren. Gratulálok a szerzőknek ezúton is.

2008. február 9., szombat

Javítás a Visual Studio 2008 -hoz

Kiadtak egy javítócsomagot a Visual Studio 2008 webes részéhez.
Scott Guthrie hirdette meg a blogjában.
Le is ír minden tudnivalót a maga alapos módján.
Ha csak gyorsan letöltenéd innen megteheted.

Subversion munkakörnyezet beállítása windows alatt Visual Studiohoz (is)

Csapatban történő fejlesztés esetében van néhány dolog ami elengedhetetlen. Ezek egyike a verziókezelő rendszer. Gondolom sokaknak ugrik be elsőre a VSS, mint olyan, azonban a költséghatékonyság általában fontos szempont, így ésszerű feltenni a kérdést: minek használjon az ember fia egy olyan szoftvert, amivel azonos minőségűt - egyesek szerint jobbat - használhat ingyen. Ha verziókezelésről van szó két fő vonulatot kell megemlíteni. Az egyik a check-in, check-out és a kizárólagos használat kifejezésekkel hozhatók összefüggésbe. Ilyen a VSS is az opensource világban pedig a CVS. Azonban amiről most írni fogok, az a másik vonulat, nevezetesen amely inkább az együttes használat és az egyesítés kifejezésekkel írható le, jeles képviselőj pedig a Subversion. Ennyit általánosan, most pedig a lényeg, vagyis egy Subversion munkakörnyezet felállítása dióhéjban.
Időközben Biri blogján olvastam, hogy mindhárom támogatja a kizárlólagos és a merge módot is, ez eddig nem volt számomra egyéretelmű...

Hadd szóljak előre: mielőtt nekiállsz letöltögetni, installálgatni mindenfélét, olvasd végig az írást....
A szerver összelövéséhez szükség van egy Apache webszerverre, magára az SVN szerverre és egy kis időre ezek konfigurálásához. A használathoz semmi más nem kell, csak egy jó kliensprogram, a kényelmesebbeknek valami IDE beépülő a Visual Studiohoz. Első eldöntendő kérdés, hogy milyen párosítást akarunk használni:
Apache 2.2.x és a hozzá való Subversion szerver
Apache 2.0.x és a hozzá való Subversion szerver

Én, bevallom férfiasan, hogy főleg a lustaságom miatt az utóbbit választottam, ugyanis ahhoz van install program, next-next-finish szinten. Ezek begyűjtése után megkezdődhet a móka.

Először is állítsd le az IIST, nehogy összevesszenek az Apache-csal, ugyanis előfordulhat, hogy enélkül nem kúszik fel az indián. Apache installálás értelemszerűen végezhető, pár dolgot ki kell
tölteni az elején.

Itt még az alapértelmezett 80-as portot fogja meg, de ettől nemsokára elvesszük a kedvét. Mielőtt indiánunk beleélné magát a helyzetbe, akár rögtön ki is lehet lőni a tray-ben található piciny ikonocskára kattintva.



Ezután következik a Subversion installálás szintén next-next-finish módszerrel, amit nem érdemes hosszasan taglalni.

A következő lépés a DAV elérés beállítása az apache konfigurációs állomány (httpd.conf) megfelelő módosítással. Alapértelmezett telepítés esetében a C:\Program Files\Apache Group\Apache2\conf alatt lehet ezt megtalálni.

Az állomány végére értelemszerűen módosítva kell beírni ezeket a sorokat:

DAV svn
#ez a virtuális kvt neve
SVNParentPath C:\svn # ez a path
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile passwd
#AuthzSVNAccessFile svnaccessfile
Require valid-user

Ezzel megmondtuk a rézbőrűnek a leendő svn tárhelyünk adatait.

Ahhoz, hogy a fent megadott beállítások működésbe lépjenek "vissza kell kommentelni" (vajon hogy lehet ezt magyarosan mondani? )az alábbi sorokat:

#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so

Ez annyit tesz, hogy az andráskereszteket le kell törölni az elejéről.

Szintén szükséges a működéshez és az SVN install be kellett hogy tegyen valami ilyesmit a fájlba:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

Természetesen ez csak akkor történik meg, ha előbb az apache kerül fel és utána az SVN, máskülönben sajnos mind a bejegyzést, mind a fájlokat kézzel kell elhelyezni a megfelelő helyen, ezért érdemesebb inkább figyelni a sorrendre.

Szintén most érdemes átírni a Listen bejegyzést szükség esetén 80-ról bármi más szabad portra, ezen fog kommunikálni az SVN (pl. : http://localhost:81/svn)

Most pedig elő kell állítani a felhasználókat és jelszavaikat az apache egyik parancssori segédprogramjával imígyen:
htpasswd -c passwd someuser


Ez a szintaxis csinál egy ÚJ(!) password állományt. Ha a meglévőt akarod módosítani, a
-c-t hagyd le. A segédprogram az apache alatt a bin alkönyvtárban csücsül.

Ezután az indiánt életre lehet kelteni és elvileg van egy működő SVN szervered. Az IIST is
újra lehet indítani, csak ne ugyanazon a porton, mint ahol az apache duruzsol!

Miután mindezt végigolvastad, azt gondolod, ez bizony elég körmönfont művelet az én windowsos elmémnek. Milyen jól gondolod!
Az egész fenti műveletsort egy csodálatos varázsló segítségével néhány kattintással végigcsinálhatod. Mindössze annyi a teendőd, hogy letöltöd a Visual SVN Server névre hallgató kompakt csomagot innen és installálod. Természetesen mondanom sem kell, hogy én ezt akkro találtam meg, amikor már a fenti lépéseken sikeresen végigküzdöttem magam ennek a cikknek a segítségével, a képeket is innen linkeltem.

De mit ér a legjobb szerver is, kliens nélkül! Lássuk hát a drót másik végét!

A legsikeresebb, mindenki által ajánlott kliensprogram windows alá a TortoiseSVN, amit innen lehet letölteni letölteni. Egyszerűen lehet installálni, értelemszerűen használható. Amit érdemes megjegyezni az az, hogy a TortoiseSVN nem önálló program, hanem az Explore kontext menüjébe, magyarul a "jobb gombos" menüből használható shell extension, ami ott fejti ki működését, ahol indítjuk a műveletet.

Magyar felhasználói felület is tölthető le hozzá. A használata véleményem szerint nem igényel magyarázatot.

Visual Studiohoz két hasznos (ingyenes) eszköz van, amely fellelhető, gyakorlatilag mindkettő a TortoiseSVN funkcionalitását tesz elérhetővé közvetlenül aVisual Studioból használva. Az AnkhSVN egy
önállló projekt a tigris.org szerveren, a másik pedig Garry Bodsworth saját készítménye, melyet itt tett közzé:

http://garrys-brain.blogspot.com/2007/07/tortoisesvn-and-visual-studi...
Izlés dolga ki melyiket használja. Ha esetleg pénzt szánnál rá, akkor mások véleménye szerint a VisualSVN fizetős (50 USD) kliense a legjobb választás.

Kellemes verziózást kívánok.

2008. február 4., hétfő

Objektumorientált ASP

A mai napon ismét gazdagabb lettem egy értékes tapasztalattal.
Egy meglehetősen régi legacy kódba kellett belemásznom, nem kicsit. Az ominózus történet egy igazi keményvonalas ASP alkalmazás, egyenesen valahonnan az NT és az IIS 4 legmélyebb bugyraiból, de hálisten már W2k3/IIS6-on futtatva.
Hál' istennek jó ideje nem volt szerencsém efféle "remekművekhez", szinte kizárólag C#-ban működtem már egy jó ideje, az OO minden előnyét élvezve és minden hátrányát megszokva. Mivel az alkalmazás egy viszonylag független területén kellett újat alkotnom, ezen kívül mostanában kezdem magamévá tenni a TFD/TDD metódusokat, hát gondoltam egy merészet és úgy döntöttem szakmai fejlődésem érdekében és a világ megjobbításának szándékával ojjektumorientáltan fogok ASPzni, VBSben.

Nos, ha tömören kellene megfogalmaznom amit tapasztaltam, akkor leginkább egy ismert film hősét idézném, miszerint:
"Olyan érzés, mint sajtreszelővel rejszolni. Némiképp élvezetes, de leginkább fájdalmas."

Néhány dolgot azért felsorolok ami a fájdalmas kategória volt, főleg elrettentésképpen.
Elképzelhető, hogy néhány itt leírt dolog téves és csak az én ismereteim hiányosak, de meggyőződésem, hogy amire egy szkriptnyelvben 1 nap után nem jövök rá vagy nem találom meg a hálón, az nincs is. Vagy ha van nem, érdemes vele foglalkozni :)
Na szóval... Nincs konstruktor, még olyan sem mint mondjuk a JSben, ahol ugye IGAZI osztályok nincsenek is, de konstruktor-féle azért ott is akad.

Nincs typeof() függvény, de még hasonló sem, így adott esetben meggyőződni róla, hogy tényleg az van-e ott, aminek ott kell lennie, nagyjából lehetetlen.

Az adattagok és tulajdonságok láthatósága és működése valami horrorisztikus módon van kitalálva, hosszas vakarózással fogtam fel nagyjából, hogy miről is van szó. Privát tagot úgy írtam fölül mint a pinty, mindenféle set függvény nélkül, ellenben egy public tag lekérdezése csak hosszas és körmönfont úton volt elérhető.

Hamarost meggyőződtem róla, hogy az ASP borzalmait az OO nem, hogy enyhítené, hanem inkább súlyosbítja, így hát, amíg még lehetett gyorsan visszatértem az idétlen és ósdi, de legalább konzisztensen működő hagyományos szekvenciális ASP programozásra, mert azt arra találták ki és punktum.
Azt hiszem, ezután ha véletlenül eszembe jutna, hogy lehet egymáshoz köze a két dolognak (u.m. OO és ASP) elvonulok egy sötét sarokba és megvárom amíg elmúlik.