David skriver om livet som egenföretagare, goda vanor, mac, ruby on rails, smarta lösningar och andra sporadiskt påkomna saker
tisdag 30 oktober 2007
Distribuera rails-applikation som exe-fil för Windows
Jag utvecklar just nu en webbapplikation åt ett lokalt företag. Tanken är att de ska hålla reda på kompetensen inom bolaget, och det hela blev lite för komplicerat att sammanställa i ett Excel-ark. Istället fick vi uppdraget att göra det hela som ett program som körs på deras interna server. Eftersom informationen kan vara lite hemlig får det inte vara åtkomligt via webben, förutom för personal som är inloggade på deras eget nätverk.
Det bästa vore dessutom om utvalda kunde köra applikationen på sina egna datorer om de befann sig på resa eller inte hade internetuppkoppling. Men att installera ruby, webbserver, databashanterare och allt möjligt annat på deras datorer var inte praktiskt. Så jag följde Eric Veenstras instruktioner för hur man distribuerar rails-applikationer. Det slutade med att kunden fick en exe-fil och en databasfil som placeras i samma mapp som exe-filen. Det räcker sedan att kopiera över dessa två filer till den dator som ska köra programmet, och vips körs webbservern WEBRick igång med kopplingar mot en SQLite-databas. Fantastiskt smidigt. Det bästa är att det fungerar fint både på Mac OS X, Windows XP och de flesta Linux-varianter.
Totalt har hela applikationen 180 rader kod och tar cirka 60 MB minne när det körs för fullt på en Windows-maskin. Än så länge har det snurrat på fint i en veckas tid. Det här är väl inget bra sätt att köra storskaliga applikationer på, men bra när man ska köra en och samma applikation för en eller några få användare. Dessutom är det bra att källkoden är lite mer skyddad än den brukar vara när allting ligger helt öppet i textfiler.
Prenumerera på:
Kommentarer till inlägget (Atom)
Tack för tipset! Ska genast testas!
SvaraRaderaAng. ditt inlägg: Du är härmed bjuden. Skriftlig inbjudan med mer information kommer. Så småningom. Och ja, visst friar jag. Igen. Fråga inte varför! :)
SvaraRadera