
28. marts 2006
Så gik den ikke længere
..Anna Pihl faldt til Kliché-patten igen.
Denne gang bliver Anna Pihls bror nuppet for spritkørsel, og står til at miste jobbet hvis kortet ryger. Så hvad gør Pihl. Hun bryder alle regler, og "glemmer" at indlevere rapporten.
Brormand takker ved at smaske firmabilen ind i en ung pige, der selvfølgeligt går hen og dør. Hvilken revolutionerende udvikling
Anna Pihl får selvfølgeligt moralske skrupler, for hun kunne jo have forhindret denne ulykke. Ja, kan man jo bare svare.... men så kan hun da lære ikke at bryde loven. Det viser sig så at brormands forlovede er skredet, jobbet er røget og han lever på en hyggelig pille diæt. Jamen jamen jamen...
Mikala har ikke fattet hvor stor en klemme gangster-dude har på hende, men det finder hun stille og roligt ud af
Afsnittet ender med at Anna Pihl bliver nødt til at sige til hendes bosser at hun har brudt loven. dam-dam-daaaaaaam... Og så sluttede ugens afsnit.
Mon ikke hun slipper med en advarsel? Det viser sig nok at han slet ikke var beruset første gang han blev nuppet, og så var det slet ikke Pihls skyld at den unge pige døde... vi får se... måske...
Syret platformsspil
Jeg brugte lidt tid her i weekenden på mit nyeste Xbox spil, Psychonauts. Handlingen er ret speciel. Man er den sære knægt Raz, der brændende ønsker sig at blive Psychonaut.
Og hvad er en Psychonaut så for en fætter? Jo, det er simpelthen en agent, der er istand til at projicere sit astrallegeme ind i andre folks sind, for at fjerne mentale blokeringer, samle minder og rydde op i den psykiske baggage.
De forskellige baner består således af rejser rundt i forskellige folks sind, og disse er naturligvis meget tematiseret af hvem personen er. Andre baner foregår på den skole hvor Raz er ved at blive optrænet som Psychonaut.
Spillet er ikke det flotteste jeg har set til Xboxen, men man har forsøgt at ramme en eller anden for for tegneserie-agtig stil. Det lykkes et godt stykke hen ad vejen, men spillet formår ikke rigtigt at holde stilen hele tiden. Gameplayet er ganske godt. Banerner er fint varierede og man skal hele tiden liiiige se om man ikke lige kan komme forbi den næste udfordring også. Humoren er ikke så grovkornet som vi så i Conker, men er meget mere stueren og børnevenlig. Men det gør nu ikke noget, der er stadig mange små morsomme elementer rundt omkring.
Jeg håber at spillet forbliver interessant og udfordrende, de første baner lover ihvertfald ret godt, og Psychonauts tilbyder underholdning til mange timer.

23. marts 2006

22. marts 2006

19. marts 2006
En slags forår
Yes.. Så er den ved at være her. Der er HELT sikkert forår i luften nu.
Solen skinner fra en skyfri himmel, og temperaturen har rundet de 10 plusgrader her i de 9 kilo.
Jeg har fået Feng-shui''et mit lager af videobånd og andet gammelt ragelse, og kan ikke længere kaldes for samler. Juhuu
Det var faktisk ret fedt at få smidt alle de ting man bare havde haft til at samle støv i så mange år, og aldrig ville få brug for alligevel. Jeg har planlagt at pensionere min video, så alt andet end et par få videobånd røg ud, efter at jeg havde fået lavet en lille liste med film jeg skulle have anskaffet på dvd. Det var faktisk ikke ret mange, taget i betragtning hvor mange bånd der røg ud.
Det gav en masse plads i mit opmagasineringsskab, så nu er den store opgave så at sikre sig at der ikke begynder at hobe sig en masse skidt op igen.
Nå, men tilbage til det der forårshalløj..
...Jeg tog kæresten i hånden, kameraet i lommen, og så var det bare ud for at nyde det fantastiske vejr.
Missionen var at få lidt frisk luft, lidt motion og se om man kunne fange lidt forår på billeder.
Det var lidt sværere end forventet, som man kan se på billederne, for det har altså været en ret kold vinter, og så sent som i fredags var er minusgrader hele døgnet.
Men på spadsereturen kom vi forbi Vestre baadehavn, hvor disse billeder er taget. I øjeblikket er der is i store dele af havne bassinet, men et par dage mere af den slags vi har haft i dag, og så er det også væk.
Det er ejeren af båden her til højre nok glad for 
Mens vi gik rundt dernede mødte vi min far, der var dybt forundret over at jeg ikke sad hjemme på sofaen og var ved at gøre klar til at se Formel 1. Det havde jeg da glemt alt om. 
Der var ikke andet at gøre end at forkorte turen, og vende snuden hjemad, men det blev da til en fin lille tur alligevel.
Jeg håber da snart at der bliver sådan et vejr hver dag, så man kan få et par ture mere på sådan en søndag. Inden længe springer alting ud, og tingene begynder at bliver forårsgrønne. Det bliver rigtigt fedt.
Imens kan jeg jo så glæde mig over at dagen idag var den første forårsdag i 2006, og at jeg har fået ryddet godt og grundigt op.
(Og så fik jeg jo også lige set Formel1
)

16. marts 2006
MONO vs .NET afsnit 2
Jeg har nu fået lavet en ganske simpel lille applikation, der kan lede efter mp3-filer i en mappe. Den kan sættes op til at lede i eventuelle undermapper, og man kan vælge om skjulte filer skal inkluderes eller ej. Når den finder en mp3-fil, forsøger den at læse ID3 tag (dog kun v1.x i første omgang), hvis et sådan findes.
Selve arbejdet med at udvikle den kode der var nødvendigt for at løse disse opgaver burde være forholdsvis trivielle, og jeg havde da også fået lavet en fil-søger på ganske kort tid. Dernæst blev den udvidet til at kunne inkludere eller ekskludere skjulte mapper og filer. Dette skulle vise sig at være en større udfordring. Jeg havde tænkt mig at bruge System.IO.FileAttribute til at undersøge om en fil var skjult eller ej, og da denne var understøttet var det ve bare at gå i gang. Men uanset hvad jeg forsøgte, fandt jeg aldrig en mappe hvor mapper eller filer havde Hidden attributten sat. Efter en GRUNDIG gennemgang af min metode til fil-søgning, besluttede jeg mig for at forsøge mig med en mere primitiv måde at se om en fil er skjult eller ej (i hvert fald i Linux); ved at se om filen startede med ”.” Gør den det, vil filen ikke blive vist i Linux, med mindre man explicit beder om det. Efter denne lille tilretning virkede alt som det skulle. Åbenbart virkede System.IO.FileAttribute ikke efter hensigten i MONO.
Koden til at læse ID3 tags var også forholdsvis hurtigt lavet, og bød ikke på nogen større problemer, selv om jeg godt kunne tænke mig at undersøge nærmere hvad der sker, hvis ikke man har rettigheder til at læse filen.
Herefter hoppede jeg over i Visual Studio og hentede min MONO kode ind. Ganske som jeg havde forventet forløb denne opgave helt uden problemer, selv om den tidligere nævnte detalje med at lede efter filer og mapper der startede med ”.” ikke gav megen mening i Windows. Til gengæld virkede den oprindelige kode jeg havde lavet, med at checke på FileAttribute. Den eneste ændring der er lavet i de to projekter, indtil videre er derfor:
MONO
public static TrackCollection FindTracks(string path, bool recursive, bool includeHidden, TrackCollection collection) { ...
System.IO.DirectoryInfo directory = new System.IO.DirectoryInfo(path); foreach (System.IO.FileInfo file in directory.GetFiles()) { bool includeCurrent = true;
if(!includeHidden) { if(file.Name.StartsWith(".")) { includeCurrent = false; } } ... if(recursive) { foreach (System.IO.DirectoryInfo dir in directory.GetDirectories()) { bool includeCurrent = true; if (!includeHidden) { if (dir.Name.StartsWith(".")) { includeCurrent = false; } }
...
} } ...
} |
Visual Studio
TABLE cellSpacing=1 cellPadding=1 width="100%" border=0> |
public static TrackCollection FindTracks(string path, bool recursive, bool includeHidden, TrackCollection collection)
{
System.IO.DirectoryInfo directory = new System.IO.DirectoryInfo(path);
foreach (System.IO.FileInfo file in directory.GetFiles())
{
bool includeCurrent = true;
if(!includeHidden)
{
if ((file.Attributes & System.IO.FileAttributes.Hidden) == System.IO.FileAttributes.Hidden)
{
includeCurrent = false;
}
}
...
if(recursive)
{
foreach (System.IO.DirectoryInfo dir in directory.GetDirectories())
{
bool includeCurrent = true;
if (!includeHidden)
{
if((dir.Attributes & System.IO.FileAttributes.Hidden) == System.IO.FileAttributes.Hidden) {
includeCurrent = false;
}
}
...
}
...
} |
Bemærk at de steder hvor der står ”…” i koden ovenfor, er der stumper af kode, der er udeladt, for overskuelighedens skyld. Se eventuelt den fulde kode her.
Umiddelbart er der jo ikke tale om de helt store ændringer, men når man nu tænker over hvor lille en del af .NET frameworket jeg har benyttet indtil videre i min lille applikation, kan jeg da ikke lade være med at spekulere lidt over hvilke små problemer man ellers kunne rende ind i, i udviklingen af blot lidt mere komplicerede projekter.
Næste fase er så at lave en grafisk brugergrænseflade i henholdsvis MONO og .NET. Her er det nok svært at lave kode der kan bruges begge steder, da man så vidt jeg har forstået, ikke bruger System.Windows.Forms namespacet i MONO, da dette namespace mange steder blot leverer wrappere til COM objekter. Til gengæld kan man benytte et GTK namespace i MONO og måske også i .NET, det skal undersøges… …man kan muligvis benytte en GTK .dll i Windows, og dermed få adgang til samme funktioner i Windows.
Læs mere om mine oplevelser med GTK i næste afsnit.
Kender Anna Pihl mon Fischer?
Ja, jeg ved godt der er gået nogle dage siden sidste afsnit af denne “fantastiske” serie...
…men det var noget af en omgang at fordøje, så jeg var nødt til at bearbejde de mange dybsindige indtryk, før jeg tog mig sammen til at skrive noget ned. Anyhoo.. here goes…
Super-Pihl og lækker gut fra stationen er på jagt efter en serie voldtægtsforbryder. De stopper patruljevognen for at skændes og kisse-misse. Med slukket radio vel at mærke. Selvfølgeligt ved Pihl godt at det er MEGET forbudt, men lækker gut trumfer igennem, og Super Pihl ved godt hvilke kampe der er tabt på forhånd. 
Da de er færdige med deres kisse-missen finder de ud af at der har været brug for dem 100 meter væk. Voldtægtsmanden selvfølgelig. Og for at gøre Pihls skyldfølelse komplet, viser det sig at den voldtagne pige så patruljevognen holde lidt væk, mens hun blev voldtaget. Fyh!!
Nå, men lækker guts eks viser sig at være en led narko-dulle, og da hun bliver arresteret siger hun at hun ved hvem voldtægtsmanden er. Så nu har de et godt spor. De ransager voldtægtsmanden og finder de souvenirs han tager.. Hår.. Derfor kaldes han Høvdingen (eller var det Indianeren???)… Uanset hvad, så synes jeg lige vi skal stoppe op her, og påpege at ham har vi altså hørt om før, og Fischer fra Rejseholdet HAR nakket ham. Basta!!
Nå, men det ved Super Pihl åbenbart ikke noget om. Så hun går hjem med lidt dårlig samvittighed (og med god grund vil jeg da gerne lige påpege). Der møder hun hendes sambo Bøsse-Mygind (rart at se ham hoppe ud af skabet langt om længe, by the way) som fortæller at hans mor kommer på besøg og at hun ikke ved at han er bøsse, så Pihl skal kysse med ham. Hun er ikke meget for det, men går dog med til det. Men mor ved det selvfølgeligt godt, og har vidst det i mange mange år.. selvfølgelig. Hun tager det i stiv arm, men ærgrer sig over at hun ikke får nogen børnebørn, men så er det at Pihls traumatiserede unge, der stadig fabler om den hun KGB nakkede, at hun gerne må være hans bedstemor.. Jamen er det ikke bare smukt. :')
Iben Hjejle kommer længere og længere ud, fedt at se. Hun stjæler (måske) en dyr taske, og tager med Super Pihl på disco. Men Pihl opdager at Hjejle har sin tjeneste-gøb med i tasken og melder pas til byturen. De bliver uvenner, og Pihl skrider… ..og SÅ er det at Hjejle opdager at gøb og taske er væk. Hun er bare SÅ færdig nu.
Ja, ellers skete der vel ikke så meget i det her afsnit. Ud over at KGB et eller andet sted i historien selvfølgeligt kom hen til Pihl for at se på hendes afløb.. Hvis i ved hvad jeg mener.
Men hun vil hellere have lækker gut. Mens de to hygger ringer narko-dulle til lækker gut, som ikke tager telefonen, og næste dag viser det sig at hun er voldtaget og myrdet… uhadada.. mere skyld…
Nå, mon ikke de fanger Indianeren (eller var det Høvdingen) i næste afsnit. Lad mig gætte: Pihl skal være lokkedue, for at fange ham, og det er naturligvis lige ved at gå galt. Håber ikke der er alt for mange afsnit tilbage. 

15. marts 2006

13. marts 2006
Det rene vanvid
I lørdags var der rigtigt dejligt vejr...
...vel at mærke hvis man nød solens stråler inde fra lejligheden. Så jeg blev ganske forårskæk, og gik igang med den store rengøring. Det var dejligt at få ryddet op i nogle af de mange bunker med forsømte ting og få orden på nogle af de ting man gerne springer over ved den almindelige rengøring.
Desværre nåede jeg den konklusion, at de folk der kalder mig for en samler måske har lidt ret.
Så nu tror jeg snart jeg tager den store tur, og Feng-shui'er det store skumle skab jeg har i soveværelset, der indeholder harddiske, grafikkort, kabler, videobånd og lignende fossiler, samlet sammen gennem de sidste 32 år. Det skal nok blive muntert 
...Men så vil jeg altså heller ikke kaldes samler længere!!!

7. marts 2006
Arrrgh.. Død ved kølle... (om Anna Pihl, afsnit 4)
Så har hun været i aktion igen, den gode Anna Pihl. Denne gang redder vores heltinde nogle buspassagerer fra en voldsom hund, for derefter at redde den voldsomme hund fra dennes voldsomme ejer. Wooow, hva?
Nå, men sådan nogle hunde ryger jo ikke i afdelingen for glemte sager, så den skal en tur forbi en "kennel" der kan tage sig "kærligt" af hunden. På vejen skal KGB og Pihl lige et smut forbi Pihls søns børnehave, og SÅ bliver det morsomt:
Hunden stikker af, æder børnehavens kanin, truer med at æde Pihls søn, og bliver herefter gennemhullet af KGB
Det er simpelthen fantastisk TV, og sikke en oplevelse de unge poder har at tage med hjem til deres forældre. Pihl og KGB skal nok møde nogle af de unger igen senere i livet
Nå, men denne nær-døds-oplevelse får Pihl til at tænke over tingene, og beslutter derfor at blive forsonet med Guru-far, der er lidt fornærmet over at Pihl ikke synes om hans kuvøse-guf. Frøken Kuvøse-guf kommer herefter med den værste gang sød-suppe-pladder-romantiske pis jeg NOGENSINDE har hørt... Like... EVER!!!
Iben Hjejle er endnu ikke kommet sig helt over overfaldet i afsnit 1, og fortsætter sin psykotiske adfærd. Denne gang lammetæver hun en ung knægt der har været på 5-fingers udsalg i Fona. Godt gået. Det er sgu præventiv opdragelse. Den stakkels knægt skal nok holde nallerne for sig selv fremover. Også når fingrene er vokset sammen igen. 
Den lækre gut fra Stationen viser sig vist at være en skidt fyr (selv om vi sikkert snart finder ud af at det hele er en misforståelse) og KGB kommer hjem til Pihl med skumle score-intentioner... surprise...
Jeg kan NÆSTEN ikke vente til næste afsnit.... 
MONO vs .NET afsnit 1
Som lovet ville jeg forsøge at lave en lille blog-serie, om forskellene på software udvikling til henholdsvis Microsoft .NET og MONO, der er en Open Source udgave af .NET.
Her i første afsnit vil jeg fokusere på det der indtil videre har været den største udfordring i den forbindelse; selve udviklingsmiljøet. I Visual Studio er man godt forvænt med stort set alle de små rare værktøjer man har behov for, og mere til. En af de største udfordringer i Visual Studio er faktisk at finde ud af hvilke værktøjer du har brug for, og hvad de kan. Til MONO har jeg indtil videre anvendt MONOdevelop, og her er det en hel anden sag.
Her har man forsøgt at lave et IDE der minder forholdsvis meget om Visual Studio, og man har fået lavt en ganske udmærket IntelliSense. Der er dog nogle uhensigtsmæssigheder. Hvis man for eksempel markerer noget kode, skriver System, efterfulgt af Ctrl+Space, crasher MONOdevelop. Ikke fedt. 
Hvis man skriver
System.IO.FileInfo info = new System.IO.FileInfo()
for herefter at hoppe ind i parentesen, for at tilføje en parameter, virker IntelliSense heller ikke. Men hvis man sletter “)” er alt i orden. 
Ligeledes får man ikke nogen som helst form for hjælp, hvis man skriver f.eks.
System.IO.FileInfo info = new System.IO.FileInfo(
Her ville Visual Studio have vist dig et tooltip, der indikerer hvilke datatyper der skal med som parametre, og hvilke overloads der findes. I MONODevelop får du intet af den slags. Det er ikke særligt fedt, og gør at man tit er nødt til at lave opslag i MONO frameworkets dokumentation, for at finde ud af hvad der skal sendes med, og ikke mindst i hvilken rækkefølge.
En smart ting fra Visual Studio 2005 er Snippets, der gør det muligt at indsætte skabeloner af de mest brugte kodestumper, f.eks. for at lave en ny property, en foreach eller if – while. Der findes tilsyneladende noget tilsvarende i MONOdevelop, men jeg har endnu ikke fundet ud af hvordan man får det til at virke. 
UPDATE: Nærmere undersøgelser har vist at man kan benytte disse Snippets ved at skrive f.eks. forb efterfulgt af Ctrl + Alt + Space 
Alt dette minder mig mest om hvor avanceret og gennemført Visual Studio er (og her sammenligner jeg så kun med Visual Studio 2003, da alt andet ville være unfair, og fordi jeg jo også kun benytter MONO implementationen af .NET 1.1).
Den absolut største svaghed jeg er stødt på i MONOdevelop indtil videre, må dog absolut være manglen på en debugger. Du får forholdsvis god hjælp når du sidder og skriver din kode, og du får såmænd også nogle ganske fine fejlmeddelelser når du forsøger at builde, men dit build fejler.
Når din kode kan builde, men opfører sig uhensigtsmæssigt, ja så er du bare på den. Det er ret uheldigt, da det tit er meget nyttigt at steppe sig igennem noget kode, for at se hvordan den opfører sig i praksis, eller hvis man vil pin-pointe præcis hvor noget går galt. Men den hjælp kan du altså ikke få her.
Der findes tilsyneladende godt nok en MONO debugger, men den betegnes som begrænset, hvilket jeg tolker som “ubrugelig i praksis”. Det er lidt en skam, men skal nu ikke stoppe mit lille projekt.
I næste afsnit vil jeg offentliggøre den første lille iteration af den kode jeg har fået lavet i MONO indtil videre, hvad den gør, og hvad der mangler.