Blog: Sex interface til skyen

Hov, nej – det må du altså undskylde, der skulle have altså have stået sexet interface til skyen…. nårh men, vores lille projekt, som blev født ud af nød og et akut behov, og som nu går under navnet LightlyCloudy, er blevet færdigt. Som den stolte fader er jeg nu klar til at vise resultatet frem for en måbende dansk verdenspresse som lovet. Jeg har jo som sagt rodet lidt med node.js programmering og færdiggjort første produktionsklare version. Nedenstående er, hvad brugerne bliver mødt med straks efter login. Jeg synes, det er ganske behageligt for øjnene.

Jeg har dog modtaget en del kritik for mit farve-schema; onde tunger har mere end hentydet, at det ligner IBM, BSOD eller Norton Commander for meget. Jeg har derfor tålmodigt lyttet til deres kritik med stor interesse, for efterfølgende at ignorere dem helt og aldeles. Jeg har også vist kildekoden til nogle kollegaer og spurgt dem, om ikke nok de ville hjælpe med med at sexificere bruger interfacet. En fyr sagde sågar ”ikke noget problem min lille ven, det har jeg færdigt før frokost, bare fortæl mig, hvilke frameworks du har brugt?” og jeg svarede beredvilligt ”ingen….” og så konstaterede han “…oh, så det er sådan rigtig old school med bits, bytes og whatnot“, og så hørte jeg ikke mere fra ham igen. Typisk.

For lige at opsummere, hvad jeg har lært igennem denne process;

At debugge Asynkrone programmer er ganske udfordrende i mangel af et bedre ord, og at programmere asynkrone programmer er ligeledes interessant, ligesom denne blog antyder, så er det nærmest som at lære at programmere helt forfra. Nu er der nok nogen hardcore programmører, der synes, at node.js dvs. javascript ikke er noget, rigtige mænd beskæftiger sig med. Til dem vil jeg nok sige, at det er ligegyldigt, hvilket sprog man benytter, men at det er implementationen, der er vigtig. Altså ikke vigtig i LightlyCloudy sammenhæng, men vigtigt når man skal til at skrive distribuerede cloud applikationer. Jeg kan anbefale at se denne node.js introduktion. Hvis man absolut ikke kan holde javascript ud, så kan man da også bruge vert.x på SmartOS.

Den anden ting, jeg har lært, er at SmartOS kommandoerne vmadm, imgadam and nictagadm, ikke helt holder sig til standard UNIX konventioner vedr. stdout stderr exitcode, og det gør debugging endnu mere besværligt, især når det kombineres med den asynkrone node.js natur.

Og nogen gange er det bare nemmere og hurtigere at lave et shell script, end at fedte rundt i asynkron node.js kode. Derfor har vi lavet et script der hedder nictagvms, som ligger i /usr/local/bin biblioteket i lightlycloudy zonen, men skriptet bliver eksekveret fra global zonen. Således kunne vi holde al kode i lightlycloudy zonen, og derved er der ikke noget, der skal opdateres, når man opgraderer SmartOS versionen.

Jeg synes stadig, at dependencies skal undgås eller holdes til et absolut minimum. Der er ikke noget så irriterende, som når når man finder en fed applikation, der bruger 237 forskellige frameworks, og det ene ikke er supporteret mere og forsvundet fra jordens overflade. Jeg startede med at bruge SSH2 frameworket, men pga. en buffer overflow fejl i frameworket så besluttede jeg mig til at droppe det og bruge den indbyggede shell eksekverings kommando i stedet for. Så nu bruges der overhovedet ingen 3. parts frameworks, det er bare ren uncut node.js kode direkte fra kilden.

Mens vi er ved kildekode, så kan du downloade kildekoden fra Github, der er en README fil inkluderet, som indeholder den meget simple installationsprocedure.

Det eneste, vi mangler nu, er en maskot til vores projekt. Jeg havde tænkt på noget blødt, nuttet og med en behagelig duft, måske lidt som Ashley. Klik på billedet for at se det fulde billede.

Så nu er jeg igang med en version 2 af LightlyCloudy. Jeg vil forsøge at finde tid til at inkorporere understøttelse af flere hypervisors, prerequisite check, når man opretter og opdaterer virtuelle maskiner.

Jeg leder stadig efter frivillige kode-bidragsydere, så hold dig endelig ikke tilbage og kontakt mig endelig. It’s my party and YOU are invited.

Posted in computer.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>