Blog moved to new address and blog engine

I finally decided to move away from Blogger.com and export my blog to WordPress on my own domain. Installation of WordPress was impressingly easy, even on a Windows platform. This leaves much to be desired for my own web applications which sometimes can be quite hard to install and setup.

I’m probably going to experiment some with WordPress plugins, widgets, layout etc the next days. So don’t be alarmed if the blog looks different every time you view it.

Posted in Ramblings, Technology | Leave a comment

Find the oldest file

I had a problem at work the other day. In a project we have a service that needs to handle files on a first come, first served basis. In effect it scans a folder for files and find the file with the oldest last modified stamp, then it processes the file.

This seems a simple enough task, but once when the service was down for a long time the number of files waiting to be processed was huge (in the several hundred thousand range). Scanning a folder with that many files in C# and then determining the oldest one takes quite a long time.

So I took a look at three different methods for solving this simple task.

1. Using the DirectoryInfo.GetFiles function
2. Using the Directoty.GetFiles and then Directory.GetLastWriteTime on each file
3. Using plain old DOS dir command

For 50.000 files the first two options takes about 7 seconds each on my development machine. While using dir takes only 0.7 seconds. Thats 10 times the performance difference.

This is how I managed to tweak dir to do the work:

static string ScanFilesUsingDir(string filePath)
{
   string cmd = @"c:\Windows\System32\cmd.exe";
   string args = @"/C \"dir " + filePath + " /B /O:D /T:W\"";

   Process proc = new System.Diagnostics.Process();
   proc.EnableRaisingEvents = false;
   proc.StartInfo.CreateNoWindow = false;
   proc.StartInfo.FileName = cmd;
   proc.StartInfo.Arguments = args;
   proc.StartInfo.RedirectStandardOutput = true;
   proc.StartInfo.UseShellExecute = false;
   proc.Start();

   // Display returned console information if any
   StreamReader dirOutput = proc.StandardOutput;
   string oldestFile = dirOutput.ReadLine();
   dirOutput.Close();
   proc.Kill();
   return oldestFile;
}

Oldest file found: f9e41b18-efa8-49ee-9a51-a89f7ef514ee.tmp
Activity ‘Using DirectgoryInfo’ took 00:00:07.0810000

Oldest file found: f9e41b18-efa8-49ee-9a51-a89f7ef514ee.tmp
Activity ‘Using FileInfo’ took 00:00:07.2710000

Oldest file found: f9e41b18-efa8-49ee-9a51-a89f7ef514ee.tmp
Activity ‘Using Shell Dir’ took 00:00:00.7030000

Just goes to show that POD (Plain Old Dos) still is good for something :)

Complete source code: FileGenerator.rar

Posted in Development | Tagged , , , | Leave a comment

Will Spotify survive?

Almost everyone I know is using Spotify. Sometimes it seems that the whole internet community is on Spotify even though it’s still in a somewhat closed beta. People are very satisfied with the service, and nothing can beat the free price. Does anyone actually buy the premium account?

And that is the cornerstone of my question. I’m listening to Spotify most every day. And I’m supposed to get commercials since I’m running with a free account. Well, I’m listening to Spotify at work about 4-6 hours a day. And I get perhaps 1-2 audio-ads pr. week. And up till now only one ad was not for Spotify itself. I’ve also seen some visual ads, but like the audio they mostly promote Spotify.

Does Spotify make any money? It’s not like me to complain about something beeing too good, but I’m afraid that Spotify might dissapair if they do not make any money. As for the premium it’s just too expensive to consider (especially since there is practically no ad’s with free accounts).

Will the amount of ad’s increase? What will happen with the tousands of happy free users then?
Should they consider lowering the price so they get more paying users?

I for one know that I’m going to be pi**ed if suddenly I get two ad’s between each song. That’s like false marketing by louring users to use and become dependant of the product before they show their “true colours”. (Sort of like the drug dealers giving free drugs to get you addicted). And I can promise that I’m not going to fork out for the premium account if I feel they’ve tricked me.

I can only hope that’s not their plan. Spotify if you can hear me: What’s your plan? Are you making any money? If not, consider halving your premium account price. Then you’d get a lot more members.

Posted in Uncategorized | Leave a comment

Åpen kildekode, livets rett?

I en artikkel i Teknisk ukeblad (web) kan man lese at utviklingsdirektør Lars Tveit i Bergen kommune advarer mot overdreven fokus på teknologi fremfor hva IT skal bidra til å løse.

Han mener at det er alt for sterk fokus på de tekniske løsningene fremfor oppgavene som teknologien skal løse. Fornyingsdepartementet ønsker sterk fokus på åpen kildekode for å fremme konkurranse og å redusere lisenskostnader.

I utgangspunktet blir dette rått pari sånn enkelte kommuner ser på problemstillingen. I den ene hånden har du en åpenkildekode-løsning som ikke koster noe i lisens, og i den andre hånden har du en kommersiell leverandør som skal ha x kroner initiellt og gjerne 20% av kjøpssummen årlig i lisens og vedlikehold.

Det som ofte går i glemmeboka og som de kommersielle leverandørene påpeker er at de 20% som oftest inkluderer vedlikehold (oppgraderinger, feilfikser etc). Med en åpenkildekode-løsning betaler du som oftest pr. time for slike oppdrag. I tillegg har som oftest som kommersiell leverandør en road-map og en godt planlagt plan for fremtidige versjoner og hvilke funksjoner som kommer. Dette er også noe mange åpenkildekode-løsninger mangler.

Det kan sammenliknes med å ha fast- eller flytenderente på lånet. Med fastrente (20% fast vedlikeholdsavgift) så får du forutsigbarhet på utgiftene dine. I motsatt fall kan du ende opp med ikke å få oppgradert eller fikset feil fordi du har brukt opp budsjettet for perioden.

Å tro at firma som lager og/eller leverer åpenkildekode-løsningen gir bort noe gratis er naivt. Noen har brukt tid og penger på å utvikle løsningen og noen har brukt tid og penger på å opprette et salgs-, support- og opplæringsapparat rundt løsningen. De skal ha sine penger tilbake med gevinst de også, akkurat som en leverandør av en kommersiell-løsning.

Et firma som ikke selv har brukt tid og penger på utvikling har et konkurransefortrinn ved at de ikke må tjene inn igjen utgiftene brukt til utvikling, dermed har de mulighet for å prise seg godt under en ren kommersiell leverandør som også må tjene inn igjen millioner i utviklingsutgifter. Konkurrerer to slike på like vilkår? Eller mener vår sosialistiske regjering kanskje at alle bør utvikle på community-basis. Slik at i stedet for at en leverandør bruker millioner på utvikling så står det 100-vis av frivillige bak? Disse frivillige kan jo gå på arbeidsledigshetstrygt :) for å tjene til sitt daglige brød. For å leve på “street-cred” og vann er tøft i lengden.

Jeg har selv opplevd at en kunde som trodde de hadde skutt gullfugler og kjøpt en åpenkildekode-løsning kom til oss og ønsker våre kommersielle løsning i stedet. De hadde slitt seg gjennom flere leverandører og brukt utallige timer på konsulentbistand for tilpassning, feilfiksing, opplæring etc. Allikevel var de ikke tilfreds med sluttresultatet.

For en kjøper som skal vurdere mellom en kommersiell og en “åpen” løsning er det viktigste å se på TCO (total cost of ownership) over flere år. Du må kontakte andre som alt bruker samme løsning og innhente tall fra dem.

Viktige momenter:

Innkjøpspris
Lisensavgift pr år
Årlig oppgradering til seneste versjon
Feilsøking og retting
Sikkerhet/risk (både i leverandør og løsning)
Kurs
Opplæringsmateriale
Kundesupport (telefon, epost, 24/7 eller hva som er aktuelt for dere)

Posted in Ramblings | 3 Comments

More strange http headers

This is a follow-up on my last post about Norwegian newspaper VG adding a reference to Rick Astley (Rick rolling) in their http response headers.

Seems VG is not the only website. I’ve discovered that slashdot (popular nerd news site) adds a random quote to their response headers:

X-Leela: You did the best you could, I guess, and some of these gorillas are okay.
X-Bender: Comedy’s a dead art form. Now tragedy — THAT’S funny.
X-Bender: Stupid anti-pimping laws!
X-Bender: Gimme your biggest, strongest, cheapest drink.

Both Leela and Bender are characters from the comic Futurama.

Or how about this from http://www.scriptworld.kh-webcenter.de/

Limerick: There was a young fellow named Fisher,Who was fishing for fish in a fissure,,When a cod, with a grin,,Pulled the fisherman in,Now they’re fishing the fissure for Fisher.

Or this from http://www.icm-computer.co.uk/

X-kluged-by: Nick, Mic, Ash, Andy
X-munged-by: The powers that be
X-Sanity-Provided-By: Ashleigh
X-Powered-By: Intravenous Caffeine Drips,ASP.NET

The question is why? Is this just an eccentric form of nerdy humor or does theese extra headers have a meaning? Slashdot with all it’s readers are propably throwing away quite a lot of bandwith each year by adding something nearly no one will ever notice.

If you have an answer or know of more site adding strange http headers please let me know.

Posted in Technology | Leave a comment

VG.no is Rickrolling

Doing some http debugging and as usual I use vg.no as a test page since they have such a nice short domain name.

I noticed something funny in their http response headers:

HTTP/1.1 200 OK
X-VG-WebServer: leonora, leonora
X-VG-WebCache: fritz
X-Rick-Would-Never: Give you up
X-VG-Varnish-IP: 10.0.4.152
X-Varnish: 2005612975 2003787473
Age: 541
Connection: keep-alive
Content-Length: 164544
Cache-Control: max-age=900
Content-Type: text/html; charset=iso-8859-1
Date: Tue, 03 Feb 2009 12:52:28 GMT
Expires: Tue, 03 Feb 2009 12:58:27 GMT
Last-Modified: Tue, 03 Feb 2009 12:43:26 GMT

Seems someone at VG is Rickrolling every http request :)

Posted in Uncategorized | Leave a comment

Jungle Disk WHS Add-In


Just released the first public beta of my new Jungle Disk WHS Add-In. If you don’t know what Jungle Disk is, or have never heard of WHS (Windows Home Server) then this is probably not for you.
Continue reading

Posted in Development, HomeServer | Tagged , , , | 15 Comments

Anders Brenna forlater Digi.no

I sin farvel artikkel på Digi.no skriver Anders Brenna at Tore Neset fra ITavisen nå blir redaktør for begge nettstedene. Som jeg skrev i bloggen (kommentar) her om dagen har ITavisen tapt seg veldig de siste årene og Digi.no gjort det tilsvarende bedre.

Jeg håper ikke dette bytte av redakør betyr at vi får mer ITavisen inn i Digi.no eller worst case at Digi.no blir avviklet på sikt.

Uansett, lykke til videre Anders.

Posted in Uncategorized | 1 Comment

HP EX475 MediaSmart Server


Før jul kjøpte jeg meg en EX475 MediaSmart Server fra HP. Dette er en såkalt Windows Home Server. Den kjører en spesialtilpasset versjon av Windows 2003 Server som har Microsofts Drive Extender teknologi.

Serveren har fire hot-swap plasser til SATA disker, den har en eSATA kontakt for eksterne SATA disker og flere USB innganger for ennå flere eksterne disker, printere eller annet utstyr.

Microsoft har valgt ikke å bruke RAID slik så mange andre servere gjør, i stedet så brukes altså Drive Extender teknologien. Den gjør at når du plugger inn en ny disk kan du velge om den skal bli en del av lagringsplassen på serveren eller ikke. Velger du å gjøre den til en del av lagringsplassen så økes tilgjengelig lagringsplass tilsvarende diskens kapasitet. Med RAID må typisk alle diskene være av lik størrelse og du kan ikke dynamisk legge til ekstra plass på denne måten. Så begynner du å få lite plass på serveren er det bare å putte inn en disk til, legge den til poolen og vips du har mer plass uten å måtte opprette et nytt drev, share eller flytte på filer.

Drive Extender teknologien støtter også speiling av data. Dette gjør at du kan spesifisere at enkelte nettverksshare skal lagres på to disker. Dermed er du også sikret om en av harddiskene skulle ryke. Også eksterne disker (eSATA og USB) kan legges til i poolen så du har nesten ubegrenset med plass. Den kommer med to stykk 500 GB disker så total lagrinsplass out of the box er litt under en TB.

I tillegg til å brukes som en vanlig filserver har den også en del andre spennende muligheter.

1. Backup
Serveren hjemme er satt til å vekke opp resten av husets PCer i løpet av natta og ta en komplett backup av dem. Etter første backup tar den bare endringer slik at etterfølgende backups både er raske og tar lite plass på serveren. Det geniale er også at du kan “se” på tidligere backups ved å montere dem opp som en virtuell disk. Dermed er det veldig enkelt å kopiere inn filer fra backuper. Du kan også velge en komplett restore, men da må du boote klientmaskinen som skal restores fra en egen CD.

2. Media server
Med HP MediaSmart serveren følger det med en iTunes server slik at du veldig enkelt kan spille av all musikken din via iTunes Media Player om du ønsker det.

Det følger også med en UPnP steam kompatibel media server kalt TwonkyMedia som er støttet av XBOX (Xbox Media Centre), XBOX360, PlayStation 3, Windows Media Player, Windows Media Centre, m.f. Dermed er det veldig enkelt å høre på musikk, se på film eller også digitale bilder på TV’n.

3. Offsite backup
Jeg har tidligere skrevet om Amazons S3 og JungleDisk (her og her). Disse tjenestene passer som hånd i hanske med en Home Server. En gang i timen, døgnet rundt tar JungleDisk backup av eventuelle nye filer eller endringer på alle mine digital fotografier samt viktige dokumenter. Disse lagres kryptert og sikkert i datasenteret til Amazon. Jeg har også satt opp slik at JungleDisk tar vare på opp til 10 tidligere versjoner av en fil. Skulle jeg være uheldig å slette eller overskrive en fil eller skulle hele huset brenne ned så har jeg alikevel ikke mistet det viktigste. Filmer og musikk er ikke så farlig, men alle bildene som er tatt av ungene de siste 7 årene er utelukkende digitale, disse ville det være fatalt og miste.

HP MediaSmart serveren kommer med en rekke tilleggsprogrammer som etter min meninger gjør denne mer attraktiv enn andre merker.

4. Antivirus
Med Avast antivirus for Windows Home Server kan jeg fjernadministrere antivirus på samtlige av husets PCer. Jeg blir varslet om eventuelle virus, om oppdateringer feiler m.m.

5. Fjerntilgang
Til sist vil jeg nevne muligheten for fjerntilgang. Serveren kommer med et webgrensesnitt som lar deg både navigere, laste ned og laste opp filer samt få tilgang til alle husets maskiner via remote desktop. Nettstedet bruker https og det eneste du må gjøre er og åpne i din brannmur/ruter som du ikke har UPnP påslått, da kan serveren konfigurere routeren din for deg også. Så dermed har du alltid tilgang til alt på serveren hvoren du er i verden så lenge du har tilgang til internett.

Positivt:
Kort og godt genialt. Og absolutt anbefalt for alle som trenger sikker lagring og et godt system for backup (det gjør vel alle).

Negativt:
Serveren kom opprinnelig med 512 MB RAM noe som er alt for lite om du ønsker å gjøre noe som helt annet enn å servere filer. Heldigvis har HP skjønt det og det er spesifisert at du har lov til å sette inn mer RAM uten at det går ut over garantien. De nye modellene som kommer nå snart har alt 2GB RAM ferdig installert (de kommer også med en noe sterke prosessor).

Posted in HomeServer | Leave a comment

digi.no tar i bruk Twingly

Nok et nettsted tar i bruk Twingly. Denne gang er det digi.no, IT-verdenens svar på Se og Hør :)

Vel før iallfall, nå føler jeg faktisk at IT-Avisen (eller iAvisen) har tatt over den jobben. Halvparten av artiklene er dårlig direkteoversatt fra Slashdot, Wired eller andre internasjonale nettsteder. 25% bærer preg av å være insendte pressemeldinger eller reklameomtale fra ulike firma. De resterende 25% handler enten om Apple eller Windows 7.

Godt å se at Digi tar et steg fremover.

Posted in Uncategorized | 2 Comments