Arkiv for kategorien ‘Programmering’

Fejl i software

Thursday, 29. December 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:

  1. People who know why every good software company ships products with known bugs.
  2. 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.)

Lighttpd, IE og PDF

Wednesday, 21. December 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$” {
server.range-requests = “disable”
}

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.

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.

Rails/Lighttpd på Textdrive

Tuesday, 8. November 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.

Forsinket visning af eksterne blokke

Friday, 28. October 2005

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:

  1. smid den problematiske blok allernederst på siden, lige før </body>
  2. pak den ind i en <div id="lazyDiv" style="display:none">
  3. der hvor den egentlig skal være smider man en <div id="targetDiv" >loading...&lt/div>.
  4. så skriver man en javascript funktion der kopierer innerHTML fra lazyDiv til targetDiv og kalder den fra et script-tag lige efter lazyDiv’en nederst på siden.

Det er princippet. Og det virker nogenlunde efter hensigten, men vigtigst: det giver en Markant bedre load-tid!

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…

Greasemonkey script til Flickr

Saturday, 4. June 2005
Lazy Dog #2

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).

PS: Problemet med at sætte kategorien fra Flickr kan jeg ikke løse.

PPS: Og det virker naturligvis heller ikke når man poster fra sin telefon :-(

Vi uddyber

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.

Albino Gorilla Tray 1.1.9

Sunday, 24. April 2005

AlbinoGorillaTray download ikonSå er der en version 1.1.9 af Albino Gorilla Tray

Hent den her(.msi, 474kb)

Change List

  • Man kan nu vælge at gemme sine billeder med et billed-ID i filnavnet, hvis man f.eks. bruger den samme titel flere gange. På den måde vil tre billeder med titlen ‘ølbrik’ blive gemt som ‘ølbrik_123.jpg’, ‘ølbrik_234.jpg’ og ‘ølbrik_345.jpg’ eller lignende. (ideen kom fra Mikkel Petersen Bach i en kommentar til sidste version)
  • Genveje og indstillinger bliver slettet, når man afinstallerer
  • Løst problem med et minimeret vindue ved opstart
  • Fixet encoding i RSS biblioteket fra Codeproject
  • Bruger nu Strong Named Assemblies

Smid endelig bugs og ønsker til nye features i kommentarerne. Dimsen er under stadig udvikling, og bliver brugt som et lille kodeeksperimentarium.

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.

Ruby, Rails, Textdrive

Saturday, 9. April 2005

Programming ruby - coverMed 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)

Subversion er din ven

Sunday, 27. March 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.

Tantologisk Nødraab

Friday, 25. February 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.

Mød Microsoft

Friday, 5. November 2004

Mød Microsoft

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.