Archive for April, 2006

Deadlock detektálás .NET Appokban

Friday, April 28th, 2006

Java konzolban a CTRL-Backspace kilistázza a szálak állapotát, azt is, ha némelyik áll deadlock miatt, és ilyenkor az is látszik, hogy melyik szinkronizációs primitíveken álltak meg a szálak. (Nem láttam még, mondták.)

Jó lenne ilyen .NET-ben is, de alapban nincs. De megoldható. A 2.0-s fw-ben alaposan kibővítették a CLR hosting interfészt, így a CLR-t explicit betöltő nem menedzselt processzek sok mindenben bele tudnak szólni a CLR életébe. Az egész az SQL Server 2005 CLR támogatás miatt került be a .NET-be, de most ne politizáljunk.

Például amikor egy Monitor.Lock kénytelen Windows szinkronizációs primitívet használni, mert tényleg több szál akar bejutni a kritikus szekcióba, akkor a CLR kiszólhat a hosthoz, hogy adjál már nekem egy Eventet (ez nem a .NET event, ez egy Windows szinkronizációs primitív). Ekkor a host feljegyezheti melyik szál milyen lockot kért, így külön szálon észre tudja venni, ha körkörös várakozások alakulnak ki, azaz deadlock van a programban. Okos, nem?

Az egész egy kész, használható kis programmal együtt ki van dolgozva egy msdn magazin cikkben. Csak el kell indítani a detektáló programot, paraméterként átadva a megfigyelendő programot, és szépen kiírja, amikor deadlockot talál, a program pedig megél egy deadlockról tájékoztató exceptiont. Ügyes, de tényleg.

Szeretjük a gyerekekek – időnként elmebeteg módon

Friday, April 28th, 2006

Az utcában lakik egy idős néni. Rendes asszony, minden vasárnap ott van a templomban, és mindig öntudatosan viszi a cuccokat, virágokat a templomi ünnepségekre.

Bálintot (kisfiamat) vittük levegőzni még vagy egy éve az utcára, akkor volt 1 éves. Mondja a néni:
“Úgy lehet szeretni ezeket a piciket – Isten után.”

Hogy mi? Tessék? Ennek elment az esze? Vagy Isten ilyen elmeháborodott zsarnok lenne, aki kizsarolja a szeretetet, és ha az emberek nem imádják, akkor morcos lesz, és kénköves esőt küld ránk? Mi a fasz? Ez nagyon emberi gondolkodásra vall, bennem nem ez a kép él.

Jó, elraktároztam, hogy figyelni kell a prioritásokra.

Pár nap múlva azt mondja: “Kár, hogy felnőnek a gyerekek. Amíg ilyen picik olyan aranyosak. De aztán 5-6 éves koruk után olyan utálatosak tudnak lenni!”

Huh. Ez igen. Gratulálok néni, gondolom jó volt a te gyerekednek lenni.

Az i-re az rakta fel a pontot, amikor rá egy hónapra megtudtam: a lánya skizofrén.

Az ok-okozat működik a fizikai világban, ha tetszik, ha nem. Valamit-valamiért.

Hogyan jelenjen meg egy assembly az Add References Dialogban?

Thursday, April 27th, 2006

Sokan azt hiszik, hogy ha egy assembly bekerül a GAC-ba, attól mindjárt látszik is az Add References VS ablakban. Sőt, egyesek azt gondolják, ha már egyszer valahová lefordították bárhová, akkor egyből látszania kell a listában. Hisz a COM komponensek is látszanak, nem? Nem.

A lista tartamát a
HKEY_CURRENT_USER\SOFTWARE\Microsoft\
.NETFramework\AssemblyFolders
és a
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
.NETFramework\AssemblyFolders
tartalma alapján állítja össze a VS.

Például az NUnit assemblyjei azért látszanak a listában, mert az NUnit telepítője létrehozza következő bejegyzést:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
.NETFramework\AssemblyFolders\NUnit.Framework
C:\Program Files\NUnit-Net-2.0 2.2.7\bin

Emiatt a VS szétnéz az NUnit könyvtárában, és begyűjti az ott található assemblyket.

Hivatalos KB cikk a témáról.

Run-time kódanalízis Managed Debugging Assistantokkal

Thursday, April 27th, 2006

Olvasgattam az msdn magazint, abban volt egy cikk a fenti témáról, ami egy 2.0-s fw. újdonság, eddig még nem vettem észre.

Managed debugging assistants (MDAs) are debugging aids that work in conjunction with the common language runtime (CLR) to provide information on runtime state. The assistants generate informational messages about runtime events that you cannot otherwise trap. You can use MDAs to isolate hard-to-find application bugs that occur when transitioning between managed and unmanaged code.

A legtöbb része persze a managed-unmanaged átmenettel kapcsolatos problémákkal foglalkozik, de van egy-két tisztán managed is, pl. szól, ha beszorult valami adat egy StreamWriter-be (ismerős a probléma, vagy írjak róla?).

Ki fogom próbálni cégünk fő termékén, az elég komplex ahhoz, hogy legyen értelme tréningezni rajta.

Cikk a témáról az msdnben, és az fent említett cikk az msdn magazinban.

Sok-sok online könyv

Wednesday, April 26th, 2006

http://www.techtoolblog.com/archives/195-free-online-programming-books

Mondjuk az emule-t semmi se tudja leverni. http://www.emule-project.net/

Csak senki nem csodálkozzon, hogy nincs olyan szó, amire rákeresve ne jönne fel valamilyen pornó. :)

Š

MySQL adattárolási módok

Wednesday, April 26th, 2006

Ami számomra a cikkből igazán érdekes, az az, hogy vannak olyan adatbáziskezelők, amelyek sokféle adatbázisformátumot is támogatnak, a különböző jellegű adatok és terhelés esetére. Érdekes, tetszik, mivel az MS SQL-ben nem ehhez szoktam hozzá.

Érdekes cikk a MyISAM adatbázisról (egy a sok közül): http://www.dbazine.com/ofinterest/oi-articles/kruckenberg1

Š

Korabbi Netacademia-s bloggerek figyelem!

Wednesday, April 26th, 2006

Mivel a blogügyletet én lökdöstem a cégnél és én már nem vagyok ott, ezért az ottani blogolási lehetőség is megszűnik. Erről már tudtok. Lementettem az adatbázisokat és a statikus html oldalakat, is, így ha valakinek kell az idők folyamán publikált tartalma, kérem, jelentkezzen nálam. Előtte viszont nézze meg hogyan lehet a Berkely DB-ből kiexportálni a blogokat, én nem tudom. :)

zsolt.soczo at gmail dot com.

Vannak még normális rendőrök (Oximoron)

Wednesday, April 26th, 2006

Kellemes élményben volt részem néhány napja. A családdal kimentünk a Kertészeti Egyetemen megrendezett dísznövény kiállításra és vásárra. A Villányi úton meg kellett fordulnom, a BAH csomópontnál. Ott van egy balra kanyarodó sáv, mondom ott nem balra megyek, hanem visszafele. Mögöttem egy rendőrautó várakozott a sávban. Ahogy kanyarodtam már sejtettem, hogy valami nem stimmel, mert balról jött egy autó, nekem viszont nem volt lámpám, ami feltartana, így a nem figyelek egymásnak mentünk volna.

Persze a villogó azonnal bekapcsol, a rendőr megállít. Kérdezte tudom-e miért állított meg? Mondtam neki sejtem, de igazából nem értem az ügyet. Én úgy tanultam kreszből, hogy ahol balra lehet kanyarodni, ott meg is lehet fordulni. Elmondta, hogy nem, mert ott a kék nyíl a kötelező haladási irányt jelölni, azaz balra, és csakis balra. Mindig tanul az ember.

Na, mondom ez jó drága lesz. Nem találta a közelező befizetését igazoló papírt (5 perce kaptam meg a biztosítótól, mert késve fizettem be), csak megkérdezte, hogy ugye be van fizetve. Akkor már tényleg be volt, de még nem volt róla papírom. De szerencsére nem firtatta az ügyet, pedig ezért is megbüntethetett volna.

Aztán megkérdezte, hogy hány éves a gyerek (Bálint hátul ült). Mondtam, hogy 2, meg előtte már elmeséltem hová tartunk. Kérdezte, hogy mit szeret a gyerek? Mondtam, ő mindent.

Aztán azzal búcsúzott el, hogy a büntetés árából vegyek valamit a gyereknek. :)

Jól esik, hogy vannak még ilyen rendőrök is, kellemes csalódás volt a sok köcsög után, akivel már találkoztam.

Egy apró megjegyzés. Szerintem ilyenkor sokat jelent, hogy az ember letagadja-e a napot az égről, vagy bevallja, hogy elbasztam, így jártam. Kezdő vezető koromban a Nyugatinál levő parkolóba hajtottam be a körútról, az egyirányú nyíl ellenében. Megtévedtem. Akkor megúsztam 2000-rel, pedig még a zöldkártya is le volt járva. Megint csak azért, mert nem kamuztam.

Az új élet lassan elindul

Tuesday, April 25th, 2006

Miután megküzdöttem a WordPress-szel, hogy Windows alatt is menjen, lassan újra tudok blogolni. A netacademiás blogom hamarosan megszűnik, egy permanent redirektet rakok oda fel, így kérek mindenkit, akit érdekel amiről a jövőben beszélni fogok (sokkal sűrűbben és sok más témában is, mint eddig), az iratkozzon fel erre a blogra, oda már nem fogok (és nem is tudok) írni.

soci