Personlig weblog for Christian Dalager
28.02.2007
Hvis du bruger kode fra open source projekter i de ting du laver, kan det være rart at følge med i, hvornår der kommer opdateringer.
Enter Subtlety.
Det er en meget simpel service, der transformerer en subversion-url til et rss change-feed.
Helt konkret har jeg nu subletyficeret kollega Jespers l10n-simplified plugin til rails og den lækre javascript ModalBox (mums til modale dialogbokse on the interweb).
Jeg elsker det.
Og har tabt 87,1% af mine læser på gulvet. Undskyld for det.
11.09.2006
Jeg skal til Ruby on Rails Workshop på søndag i Malmø.
Polar Rose inviterer, og det er gratis.
Det bliver cool! For jeg skal ikke til railsconf i london. Og jeg har misset/misser to meetups i københavnske railers hangout forum copenhagen.rb.
Bag Polar Rose gemmer sig bl.a. Nikolaj Nyholm, kendt fra... omtrent alt. F.eks. speednames, imity, reboot og O'Reilly Confs, hvorfra han gerne smider en skandinavisk vinkel på Radaren fra tid til anden.
BTW
Hvis du skal fra cph til malmø på søndag, så giv lyd hvis du vil følges med mig. Rejsekammerater er gode at have på lange rejser i det fremmede.
23.06.2006
Det kommer vist til at syde på railsconf i de næste par dage.
Men det må blive en anden gang...
22.04.2006
Min specialevejleder, Peter Sestoft, et al har kastet et c# generics projekt af sig:
The C5 Generic Collection Library for C# and CLI
Bogen C# Precisely, som han også har skrevet, er en cool bog om c#, skåret helt ind til benet uden at udelade noget. Det handler kun om sproget.
20.03.2006
Jeg har lige brugt 20 minutter af mit årsregnskabsbudget (andelsforeningens kasserer, someone assumes) og liv på at downloade RubyCLR og kode en lille windows forms applikation i Ruby.
Og nu har jeg så brugt 5 minutter på at blogge det.
Hvor trist. Og meget sjovere.
12.02.2006
Har hakket denne lille æøå til html-tegn oversætter sammen.
Har brug for den en gang imellem.
Nu ligger den her.
Tada.
PS: og jeg ved godt, at det kan gøres i et hug serverside f.eks. med php , men det gik ikke i denne omgang.
13.01.2006
Efterårets hyggeprojekt var på Ruby on Rails og gik i luften lillejuleaften.
Rails er rigtigtnok snildt og hyggeligt og alt det andet, som alle hyler op om.
Men som både php og .Net og java og alle andre webudviklingstilgange, så formår David Heinemeiers Hanssons lille troldmandsframework ikke at give døgnet flere timer, så hvad det angår er det nok at betragte som endnu et forfejlet forsøg på at bryde 24-timers muren. Synd ellers.
Mikkel Helenius launchede sin udgave af en railsapp i sidste uge, og der er lidt flere lækre klokker og fløjter end på flexodan-sitet, der mildest talt ikke lugter særligt meget af web 2.0 (pis, der brugte jeg bæ-udtrykket).
Men jeg er sgu helt glad for det alligevel.
Jeg har dog en mildest talt bizar bug. Nogle brugere oplever at sitet vælter Internet Explorer:
Og ja, den er også fundet i danske varianter...
Så helt færdig er jeg vist ikke...
PS: Mikkel, hvis du læser det her, så virker dine kommentarer ikke, og jeg har smidt din email-adresse væk (hvis jeg altså har haft den overhovedet, men det tror jeg vist nok at jeg har)
PPS: Tanten har æren for det visuelle. Jeg har primært lavet det man ikke kan se. Story of my life.
31.12.2005

Dette er en gammel stencil.
Jeg tester bare min greasemonkey dims, der oversætter æ, ø og å når man blogger fra Flickr.
Spændende...
Update
Det virkede sgu.
Jeg har tidligere offentliggjort det, men af en eller anden grund virkede det ikke i Firefox 1.5...
Nå, men skidt med det. Nu er der her!
Når man trykker på "POST ENTRY" knappen i Flickr bliver alle æøå'er i titel og indlæg oversat til korresponderende html-entities inden indlægget bliver postet.
Installer Greasemonkey extension først.
Klik så her for at installere: flickrentities20051231.user.js.
29.12.2005
Eric Sink holder sig en cool weblog.
Blogposten "My life as a Code Economist" handler om hvorfor der er fejl i software. I god software, that is.
The six billion people of the world can be divided into two groups:
- People who know why every good software company ships products with known bugs.
- People who don't.
Alle der har skrevet blot et mindre stykke software har lavet fejl.
Dem der faktisk retter disse fejl vil måske have oplevet, at ens tunnelsyn på en specifik fejl har fjernet ens opmærksomhed fra en anden del af koden, der som konsekvens af rettelsen nu går i stykker.
Sink har en god indgangsvinkel til at træffe en kvalificeret beslutning, når man står overfor Le Bug.
(dette indlæg er forsøgsvis skrevet med blog-værktøjet performancing, en ret lækker extension til firefox. Der dog ikke kan finde ud af at sende 8859-1 encoding til Movable Type.... Øv.)
21.12.2005
Hvis du oplever et problem med download/visning af PDF-filer i Internet Explorer på dit Lighttpd site, så skal du smide det her i din lighttpd konfigurationsfil
$HTTP["url"] =~ "\.pdf$" {Undskyld, det var ikke meningen at skræmme nogen. Men det tog mig timer at finde løsningen selv, så jeg smider den lige her til lidelsesfællers fremtidig nødgoogling.
server.range-requests = "disable"
}
Update: Translation in english
If you are having problems downloading PDF files with Internet Explorer/ IE through Lighttpd, try putting the code block above into your lighttpd conf file.
What it says is that for httprequests for files with the ".pdf" extension, server "range-requests" should be disabled. To be honest, I'm not really sure what that is, but it worked for me.
08.11.2005
Har langt om længe fået sat Lighttpd til at servere RubyOnRails på min konto hos Textdrive.
Jeg er i færd med mit første webprojekt på Rails, og der er hverken social software, folksonomy eller new media. Til gengæld er det Rails, og det var derfor jeg sprang på det.
Det er lidt som i gamle dage, hvor man hev sig selv i håret for at få sat php+mysql op på en FreeBSD box, når man roder rundt inde i en ssh-klient og slynger om sig med adskillige emacsbuffere og bizarre konfigurationsfiler.
Hvis du har en textdrivekonto så brug alligevel tiden på at konfigurere lighttpd i stedet for apache+fastcgi, det virker mere omstændigt, men DET ER DET IKKE.
Hvis du gerne vil have hostet noget Rails, er det nok værd at vente på textdrives Pure Rails Hosting -- hvor det nok bliver noget lettere at sætte en railsapp op.
Det kunne man håbe. Jeg gider ærligt talt ikke konfigurere servere. Det skal bare virke.
28.10.2005
Forsinket visning af eksterne blokke
Jeg har jævnligt revet mig selv i håret over at min weblog ser ud til at være nede, når enten albinogorillas eller flickrs services er det.
Symptomet er klart: siden loader indtil det sted, hvor jeg plejer at vise billeder udefra, og så hænger indlæsningen mens den forsøger at få fingrene i de servere, hvor indholdet ligger.
På et eller andet tidspunkt opgiver den og fortsætter.
Men det er der vitterligt ingen, der gider vente på.
Først forsøgte jeg at benytte mig af AJAX biblioteket Prototype.js, da man her jo kan lave ting og sager i baggrunden.
Det kunne jeg ikke få til at virke. Muligvis noget med at <script src=".."></script> ikke bliver evalueret af evalScripts:true i min Ajax.Updater.
Så jeg gik efter en enkel løsning:
</body><div id="lazyDiv" style="display:none"><div id="targetDiv" >loading...</div>.View source nu, hvis du vil se, hvordan det præcist er gjort. (Det ændrer sig måske senere.)
PS:Jeg kan måske godt overtales til at gå mere i detaljer, hvis det har interesse...
04.06.2005
Greasemonkey script til Flickr

Den lade køter bliver testen på at mit GreaseMonkey script virker.
Det løser problemet med at flickrs 'blog this' feature utf-8'er ÆØÅ etc, når den poster indlæg her på min egen weblog, og det ligner en omgang mislykket ascii-omelet
Scriptet indsætter en 'entitize' knap ved siden af tekstfeltet. Tryk en gang og æøå bliver oversat til html-entities.
Problemet burde løses i Movable Type, men det her er nemmere og lidt sjovere.
Nap scriptet (virker på Firefox med Greasemonkye extension installeret).
Konceptet bag greasemonkey (eller trixie, som Internet Explorer-søsteren hedder) kan godt være lidt mystisk for non-techies.
Baggrunden er javascript, som er et programmeringssprog, der hele tiden bliver afviklet på vores computer, når vi ser websider. Typisk bruger man det til at lave dynamiske menuer, popups, validering af formularer og andre mere eller mindre avancerede interaktionsdimser.
Greasemonkey er en udvidelse til webbrowseren, der gør det muligt at tilføje funktionalitet til en webside, udefra så at sige. Det gør man ved at tilføje 'scripts'. Nogle scripts er meget specifikke, og virker kun på et site eller en side, som mit flickr-eksempel ovenfor.
Andre er mere generelle og gør det f.eks. muligt at resize indtastningsfelter på alle websider.
Her er en liste over eksempler på greasemonkey scripts.
24.04.2005
Så er der en version 1.1.9 af Albino Gorilla Tray
Hent den her(.msi, 474kb)
Change List
PS:
Albino Gorilla Tray er en lille applikation, du kan køre på din computer, så de billeder du moblogger til Albino Gorilla automatisk og wush wush løbende bliver lagt ned på din harddisk.
09.04.2005
Med Programming Ruby foran mig, kombineret med en billig hosting-konto hos textdrive($132 for et år) træder jeg et skridt længere ind i ruby on rails land.
Mine gamle sjukker fra humaniora må betragte mig som en frafalden stakkel, når jeg taler sort på den der entusiastiske måde, der normalt hører hjemme under distriktspsykiatrien...
Han var et særsyn blandt teologer - han nød hverken brændevin eller røgtobak (Pontoppidan, De Dødes Rige)
27.03.2005
Versionsstyring er vigtigt, når man skriver software.
Jeg har selv brugt CVS tidligere (på jobbet hedder det Perforce),
men nu, efter serverflyt, er jeg privat røget på Subversion.
Subversion er vildt cool. Og med TortoiseSVN er der kommet en windowsklient til subversion, der overgår den gamle TortoiseCVS i features og coolness med adskillige hestelængder.
25.02.2005
På vegne af den gode tante lilla kaster jeg her en udfordring ud til tech-folket.
Sagen er den, at tantens weblog har været i decideret udu i en periode.
Og selvom jeg blev hidkaldt har jeg ikke været i stand til at fixe den.
Hun er på spanden. Og jeg fremstår som uduelig. Det første er trist og det andet er ligefrem tragisk.
Problemet beskrives
Tantologi er en MT weblog og har kørt på den filbaserede database Berkley DB.
Indtil webhotellet (DHT) skiftede server og fik omtrent et års blogindlæg til at synke ned i dyndet.
Data ligger nu i en folder med Berkley DB filer, jeg ikke kan læse.
Løsningen skitseres
Hvis det kunne lade sig gøre at konvertere denne pøl af Movable Type data til MySQL data, så ville fuglene synge og solen titte frem.
Prøvede med MT's egen troubleshooting
Og forsøgte mig med Denne her fra warmbrain
Og med denne fra Wangjianshuo.
Jeg kan godt få db_dump185 på min egen server til at spytte 'noget' ud, men at få det konverteret til det rette format og derefter til MySQL, det kan jeg simpelthen ikke klare. DHT er desuden ikke vilde med at give mig SSH-adgang, så jeg kan ikke gøre det på den rigtige server.
Er der nogen derude, der tænker "skvatmikkel, det tager mig 10 minutter", så er det nu, de skal komme på banen.
Belønningen
Tante Lilla udlover en pose tunfrikadeller, en pakke superflyers. Eller en udgave af Huckleberry Finn.
Hvordan vinder jeg så???
Tantens MT-data ligger zippet her: MTDB.zip.
Og hvis der er spørgsmål til dusøren, så kast dem efter hestens egen mund på tantologi@gmail.com
Update 1:
1. del af problemet er løst. Jeg flyttede tantens Berkley DB database over på min egen server. Her oprettede jeg en ny Movable Type installation, som jeg så importerede tantologisk data ind i. Herfra konverterede jeg det hele til MySql med mt-sql2db.cgi scriptet.
I mellemtiden prøvede jeg at konvertere al data med db_dump185 med dette sammenhakkede bashscript, men det kunne tantologi.dk heller ikke spise.
Status er nu, at jeg venter på at DHT aktiverer DBI:mysql, så jeg kan sætte tantologi.dk til at køre på mysql.
Det har sgu ikke været det nemmeste jamen-det-fixer-jeg-da-lige-projekt.
Man må nok se i øjnene, at Perl ikke ligefrem stormer frem på webfronten længere. Skulle jeg selv til at vælge bloggingplatform nu, ville jeg _ikke_ vælge Movable Type, men et eller andet baseret på php/mysql.
Glæder mig til tunfrikadellerne :-)
Update2: Alle er glade. Og Dennis Kjær Jensen hos DHT hjalp med god supportvilje til marginale nichebehov.
05.11.2004
Det er et smart markedsføringstræk at lave gratis teknologiseminarer for udviklere.
De betaler 10 talere, lokaler, morgenmad, forfriskninger og frokost.
Det må koste kassen på markedsføringsbudgettet. Eller evangelism-budgettet, som det sikkert hedder hos Microsoft.
Pushermetoden.
Introduktionsnarko er gratis.
Under alle omstændigheder er jeg nu tilmeldt.
13.10.2004
The Daily WTF -- Curious Perversions In Information Technology
Kom først.
Og så kom den mere specialiserede The PHP WTF - Stuff that makes you go wha...??
I bund og grund er det sites for folk, der kan lide at grine af decideret tåbelig kode, mens de glemmer, at noget af den første kode, de selv skrev, var præcis ligeså ussel.
Når det er sagt, så er det faktisk ret underholdende. Og rasende nørdet.
Jeg kunne forestille mig at der et eller andet sted sidder nogle blikkenslagere og har et website, hvor de poster billeder af tagrender, som inkompetente kolleger har loddet forkert sammen. Så fniser de lidt over det.
Et andet sted sidder der nogle folkeskolelærere og kører et online forum, hvor de bagtaler kolleger, som ikke kan lære elever at læse og skrive. Og så er det deres tur til at klukke lidt.
Og så har jeg endda slet ikke været inde på lægerne endnu...
06.10.2004
For et par uger siden gav Pind mig en halv times demo af Ruby on Rails, der er et vanvittigt cool webframework skrevet i programmeringssproget Ruby. Rails er et nydeligt MVC-design, der på en simpel og kraftfuld måde laver OR-mapping til mysql.
Jeg har i det sidste års tid kigget lidt med hos David Loudthinking, der har lavet rails, og før jul installerede jeg da også Ruby i en One-Click Ruby Installer version for windows.
I aften har jeg så brugt nogle timer i den interaktive Ruby shell (IRB) med Programming Ruby -- The Pragmatic Programmer's Guide åben i et vindue ved siden af.
Næste skridt er at starte et hygge-Rails-projekt. Hvilket jeg sikkert får tid til, når sneen er ved at smelte i foråret.
Update
Mikkel 'Helenius' og jeg sad åbentbart og rodede med Ruby synkront ;-)
26.04.2004
Faldt lige over denne lille oversigt på Manageability over open source portalservere til Java. En portalserver er en slags moderapplikation, hvori man kan putte en række mindre applikationer: CMS, div. communityware, e-handel etc.
Specielt synes jeg at eXo ser fornuftig ud. Kan køre på standard Java applikationsservere (Shipper med JBoss), bruger hibernate og Java Server Faces (JSF).
Tror lige jeg vil snuse lidt til det. De tider er ovre, hvor man lavede ting fra bunden selv -- byggeklodserne bliver større og mere komplekse. Portlet-specifikationen (JSR-168) er en standard for portlets, der er PORTable applikationer, som kan køres i forskellige portlet-containere.
Og det var så lidt tech. Hvis nogen skulle være i tviv.
upd: Carlos har også en god kategori om aspektorientering
22.03.2004
Dating Design Patterns (Fagidiotisk Humor II)
Nu skal vi jo endelig ikke glemme at jeg faktisk er lidt interesseret i softwareudvikling fra tid til anden.
Here goes:
Design Patterns er, for de af jer der ikke måtte vide det, gode afprøvede løsninger på tilbagevendende problemer indenfor software design.
En søgning på google viser, at det er et ret omtalt emne, og det har da også været et af den objektorienterede verdens mest buzzede fænomener. Ikke uden grund, vil jeg så påstå.
Men hvad skal vi med dem?
Når man udvikler objektorienteret software, støder man igen og igen ind i problemer, der ligner hinanden. De konkrete problemer er forskellige, men på et mere abstrakt niveau kan de være næsten identiske, de har analoge mønstre.
Design patterns bruges til at beskrive generelle problemer og deres generelle løsninger.
Selve ideen med design patterns kommer fra arkitekturens verden, og den har desuden bredt sig til andre discipliner inden for softwarebranchen. Analysis Patterns og HCI Design Patterns er nogle eksempler.
Og nu kommer jeg så til det, der har fået mig til at plabre her til aften.
Nogen har fundet på Dating Design Patterns, og det er ustyrligt morsomt!
Her er en passage fra "Christopher Alexanders dagbog":
Got to know Leslie; am working on her from the Trojan Facade angle and am planning for her to invite me camping over Memorial Day. Finally, implemented Interested Listener on date with Sonja with spectacular results. Am discovering more patterns and strategies every day but think IL is most effective. (#)
Men hvem ved, måske er det i virkeligheden løsningen på alle vores problemer. Den virkelige opskrift på, hvordan man implementerer et parforhold!
02.03.2004
Jeg har lige smidt vores speciale online.
Det handler om en open source applikationsserver, så naturligvis er det publiceret under en Creative Commons licens. I vores tilfælde Attribution-ShareAlike
Det betyder i praksis, at man må
Vi har valgt at gøre det for at maksimere specialets eksponering og andres udbytte af det. Viden skal spredes. Og vi vil have street credit ;-)
Specialet kan findes her. Læs det ikke i sengen, med mindre du ved præcis, hvad du gør.
19.02.2004
Et vakst lille webdesigntrickssss
Nu er jeg ikke den vilde webdesignertype, men nogle gange bliver man nødt til at rode med det, og så er det skønt, at der er kloge hoveder, som laver noget, der bare virker.
På Signal vs Noise: Web Interface Design Tip: The Yellow Fade Technique viser de et eksempel fra BaseCamp, et online projektstyringsværktøj.
Problemet: I administrations-interfaces kan det være svært at gøre folk opmærksomme på, hvad det er, de lige har ændret.
Løsningen, simpelt og elegant:
Dette er en tekstblok der lige er blevet opdateret. Den kan normalt forsvinde mellem en masse andre elementer på en side, men på denne måde vil man lynhurtigt kunne se, hvad det er, man lige har ændret, og når man har fundet stedet er der ingen grund til at det bliver ved med at 'larme' på siden.
klik her for at se det igen.
Faktisk sad jeg lige og kunne bruge dette vakse trickssss. Og det er rasende let at implementere.
I samme boldgade var der en lille css-workshop hos webmercial tidligere på dagen.

15.02.2004
Java in the Open Source community
Charles Miller of the fishbowl makes some sharp and interesting comments on a press release from Eric S. Raymond on open sourcing Java.
Miller points out his weak and rather OSS-fanatic argumentation, where it seems like Raymond's primary concern is not better software but just open source software (OSS).
The Regular Expression Library lists a lot of common used expressions. You'll also find a handy expression-tester in there.
Regular Expressions are used for searching and parsing of text and is a powerful feature, implemented in most programming and scripting languages.
I tend to get dizzy over this stuff, so next time I need to do a regular expression that somehow can be generalized into a common task, this site would be my first shot.
Example: This regular expression matches a six character "password" that has to consist of numbers and letters with at least one letter in it:
^(?![0-9]{6})[0-9a-zA-Z]{6}$
I know -- it's not easy to read. See A Tao of Regular Expressions for an introduction. And there's also a RegExp weblog.