Viser innlegg med etiketten programmering. Vis alle innlegg
Viser innlegg med etiketten programmering. Vis alle innlegg

torsdag 17. april 2014

Gosu

Har kommet noen steg videre med FireIsRuby prosjektet mitt, og lagt til ett grafisk grensesnitt, takket være Gosu rammeverket.
FireIsRuby med grafisk grensesnitt.

søndag 6. april 2014

FireIsRuby

I forbindelse med mine første spede steg i å lære meg Ruby, har jeg laget en Ruby port av ett tidligere Mono/C# prosjekt, FireIs. Det er en veldig enkel Tetris klone, som (per nå) kjører i ett terminalvindu.

FireIs var også ett prosjekt som jeg startet for å sette meg inn i ett nytt programmeringsspråk. Den gang var det C# jeg holdt på å lære meg. Ettersom jeg hadde holdt mye på med PHP fra tidligere, plukket jeg opp C# rimelig snart. Det hjelper også at C# som er statisk og kompilert språk, gir mye tilbakemelding fra IDE verktøy mens man programmerer. Men med Ruby tas avgjørelsene mens programmet kjører, og man får mindre hjelp fra støtteverktøyene. Selv i ett lite prosjekt som FireIsRuby, hadde ingen av verktøyene jeg prøvde ut, god kjennskap til klassene utenfor filen jeg arbeidet i. Det gjorde feilsøking til en mer mental øvelse enn det jeg er vant med fra C# (Visual Studio og ReSharper). Jeg antar at forskjellene oppleves som mindre så snart jeg slipper å slå opp i Ruby dokumentasjon så ofte.

torsdag 27. februar 2014

Why's Poignant Guide to Ruby

Utvilsomt den mest originale utviklerboken jeg har vært borti. Når jeg leser denne, er jeg ikke sikker på om jeg leser ett kunstverk eller en bok om Ruby. Artisten kan jeg ikke si noe om, annet enn at han går under navnet "why the lucky stiff".

Her er ett YT klipp som fint illustrerer galskapen:


Why's Poignant Guide to Ruby kan leses her.

lørdag 8. februar 2014

Kontinuerlig testing

I Linux kan inotifywait benyttes for å kjøre unit tester hver gang kildefil blir lagret. Følgende kommando sjekker kildefolder for endringer, og starter ett skript som gir tilbakemelding om feilede tester.

$ while inotifywait -r -e modify *.rb; do ruby path_to_enlightenment.rb; done

Kommandoen for å starte testene varierer naturligvis. I dette tilfellet kjører jeg gjennom Ruby Koans oppgaver, som kan lastes ned her. I Ubuntu finner vi inotifywait kommandoen i pakken inotify-tools.

$ sudo apt-get install inotify-tools

Bildet illustrerer kontinuerlig tilbakemelding i terminalvinduet til venstre.

onsdag 10. juli 2013

PHP serveren

Man kan ikke akkurat kalle dette en nyhet, men PHP 5.4 og nyere har en smart innebygget server slik at du kan videreutvikle nettstedet ditt på din lokale maskin uten å installere Apache og masse avhengigheter. Ettersom det var på tide å oppdatere hjemmesiden min (jhh.name), passet det meg godt at 5.4 er tilgjengelig i Xubuntu 13.04. For å se de lokale PHP filene i nettleseren behøver man bare 4 steg.
  1. Installere pakken php5-cli: "sudo apt-get install php5-cli".
  2. Gå til mappen hvor PHP filene ligger: "cd ~/kildemappe".
  3. Starte serveren: "php -S localhost:8080".
  4. Åpne siden i nettleseren: "firefox localhost:8080".
Jeg har ikke tenkt over hvor nyttig denne funksjonen var før nå. Når man har behov for å endre små skript mens man er på farten med en netbook eller noe annet lett, er dette kjapt og enkelt.

lørdag 16. februar 2013

FireIs

Har publisert ett lite Mono prosjekt hvor jeg har laget en Tetris klone; FireIs.

FireIs betyr "fire is", altså fire "iskrem". Dette spiller på navnet til spillets stamfar, Tetris. Her stammer navnet fra "tetra", som betyr fire, og ordet "tennis". Spillet har kun konsollgrensesnitt i denne versjonen. Jeg tenker videoen under taler for seg selv, selv om kvaliteten på Flash-videoen ikke var så god. Alternativ kan den originale filmen lastes ned her.


Koden er lisensiert under GPL v. 3 slik at det er fritt fram for å laste ned og modifisere koden, om noen føler for det.

søndag 3. februar 2013

Mono

 Jeg har i det siste sett nærmere på Mono og MonoDevelop som alternativ til Visual Studio. Mono er en fri implementasjon av Microsoft .NET. .NET er tradisjonelt sett knyttet til Microsoft Windows. Men med Mono og MonoDevelop kan man utvikle og kjøre ".NET" programmer uten å involvere Windows i det hele tatt. Det er noen forbehold med dette naturligvis. Ser man på kompatibilitetsoversikten til Mono-prosjektet finner man følgene oppsummering.
The easiest way to describe what Mono currently supports is: Everything in .NET 4.0 except WPF, WWF, and with limited WCF.
 .NET utvikling er ennå veldig nytt for meg så jeg er ikke så inne i detaljene om hva akronymene betyr, eller hva som er hva. På jobb har jeg i det siste begynt å arbeide med ASP.NET MVC prosjekter, slik at det første målet mitt var å få ett MVC prosjekt til å virke. En utfordring her er at Entity Framework ikke er støttet i Mono som kommer med distribusjonen jeg benytter. Støtten finnes forøvrig i Mono 2.11.3 eller nyere. Jeg forsøkte å installere Mono 3 fra kildekode, men jeg støtte på mange problemer med å få MVC prosjektet til å kjøre, og gav opp etter ett par dager. Det er mulig problemene hang sammen med at jeg hadde flere versjoner av Mono installert på samme maskin, hvem vet.

På den andre siden fungerer Mono 2.10.8.1 og MonoDevelop 2.8.6.3 veldig bra. Disse kan installeres direkte i pakkebehandleren i Ubuntu 12.04, og man er klar til å programmere med enkle grep.

I lys av at jeg prøver å venne meg til TDD og TFD (Test First Development), har jeg startet ett lite Mono-prosjekt basert på Conway's Game Of Life. Prosjektet ligger tilgjengelig på Bitbucket. Prosjektet er knyttet til en fri lisens om noen har interesse av å laste ned kildekoden.

søndag 2. september 2012

Ruby Koans

Jeg holder på å lære meg litt Ruby og i den forbindelse kom jeg over "Ruby Koans".

Det er en forfriskende måte å lære seg ett nytt programmeringsspråk på. Man starter en "unit-test" og Koan skriptet sjekker om du har klart alle testene. Om du har gjort feil, stopper skriptet opp og man må gå inn å rette feilen. I terminalen får man oversikt over progressjonen og hvilken fil og linje feilen oppstod på.

Reglene er enkle. I de fleste oppgavene bytter man ut to underscores "__" med riktig verdi, eller man bytter ut tre underscores "___" dersom man skal fylle inn unntaksfeil. På noen oppgaver må man skrive koden selv, som vist i skjermbildet. Hele tiden får man progresjon fra lett mot vanskeligere.

Nå tilbake til Ruby Koans.. har ennå noen tester igjen å fullføre. ^__^