Gemilo Oy

Viestit avainsanalla ‘ketterä ohjelmistokehitys’

Testaa sinulle sopivin koirarotu

Tiistai, Toukokuu 18, 2010

Tomi Terentjeff // Toteutimme yhteistyössä Smilehousen kanssa Facebookiin Hauva.com Rotuvalitsin -sovelluksen. Sovelluksella voit muutamalla asiantuntijoiden laatiman kysymyksellä selvittää sinulle sopivimman koirarodun. Sovelluksessa on yli 250 eri koirarotua ominaispiirteineen, kuvineen ja kuvauksineen. Lisäksi tulosten yhteydessä näkyy linkki kyseisestä koirasta kertovaan kirjaan, jonka käyttäjä voi halutessaan helposti tilata.

Rotuvalitsin on paitsi hauskaa viihdettä myös aidosti hyödyllinen Facebook-sovellus. Sovelluksen avulla kuka tahansa voi kartoittaa omiin elintapoihinsa sopivimman koirarodun, jolloin toivottavasti yhä harvempi lemmikki joutuu kärsimään puutteellisesta hoidosta

- Hauva.comin kehitysjohtaja Jani Niemi.

Hauva.com (www.hauva.com) on Suomen suurin toimituksellista sisältöä sisältävä koiraportaali ja verkkokauppa. Palvelua käyttää kuukausittain n. 70 000 käyttäjää. Palvelu sisältää uutisia, keskustelualueen, kuvagalleria sekä kasvavan koiratuotteiden verkkokaupan. Rotuvalitsin on Hauva.comin sovellus Facebookissa kaikille koirista kiinnostuneille.

Facebook-sovellus käyttää taustalla Gemilon kehittämää vertailualgoritmia, jonka avulla voidaan luoda kyselyjä helposti. Sovelluksen pohja onkin helppo monistaa asiakkaiden eri tarpeisiin, esimerkiksi vaaalikoneeksi.

Hauva.com Rotuvalitsin löytyy osoitteesta http://apps.facebook.com/rotuvalitsin/

Uusimaa yhdistää voimansa Opiskelijaksi.netissä

Keskiviikko, Lokakuu 7, 2009

Katri Lietsala // Opiskelijaksi.net kokoaa Uudenmaan opiskelupaikat yhdelle sivustolle. Se tarjoaa myös apua opintojen ja uran valintaan, ja tätä varten Gemilossa ohjelmoitiin Apua Opolta -ohjaustyökalu.

Asiakkaamme saa ohjaustyökalulla luotua erilaisia polkuja, joiden avulla käyttäjä ohjataan halutulle Opiskelija.netin sivulle  tai sivuston ulkopuolisiin lähteisiin. Käyttäjä etenee tekemällä erilaisia valintoja ja vastaamalla kysymyksiin.

Jos sivustolta ei löydy vastauksia, Apua Opolta tarjoaa mahdollisuuden varata ajan opinto-ohjaajalle Waraamon avulla tai kysyä lisäneuvoja verkkolomakkeella. Sosiaaliselle medialle tyypillistä henkilökohtaista profiilia ei ole tässä sivustossa muualla kuin varauksissa.

- Hankkeella on yleishyödyllisiä tavoitteita kuten koulutukseen hakeutumisen edistäminen ja syrjäytymisen ehkäisy. Ei olisi perusteltua vaatia kirjautumista palveluun, joka on rahoitettu julkisista varoista. Vasta siinä vaiheessa, kun asiakas haluaa ohjausajan, on kirjautuminen tarpeellista, koska hän voi viedä ajan joltain toiselta sitä tarvitsevalta käyttäessään väärin palvelua.
Kyseessä on palvelun kehittämisprosessi, jossa kohderyhmän mielipide vaikutta palvelun toteuttamiseen. Olemme alusta asti kysyneet kohderyhmän mielipidettä sekä visuaalisesta ilmeestä että palvelun sisällöstä. Tarkoitus on edelleen kehittää tuotetta palautteen perusteella. Opiskelijat arvioivat myös portaalin käytettävyyttä.

- Hankkeella on yleishyödyllisiä tavoitteita, kuten edistää koulutukseen hakeutumista ja ehkäistä syrjäytymistä. Ei olisi perusteltua vaatia kirjautumista palveluun, joka on rahoitettu julkisista varoista. Vasta siinä vaiheessa, kun asiakas haluaa ohjausajan, on kirjautuminen tarpeellista, koska hän voi viedä ajan joltain toiselta sitä tarvitsevalta, jos käyttää palvelua väärin. – Projektipäällikkö Anneli Manninen, Uno-hanke -

Sivustolle tuli visuaalinen ilme mainostoimisto VCA:lta ja valmiiksi mietitty sisältörakenne, joka haluttiin toteuttaa verkkosivustoksi avoimen lähdekoodin Drupalilla. Vaihtuva teema joka sivulla saattaa viehättää, mutta käytännön toteutus vaati hurjasti käsitöitä. Kiitos Jukka lapioinnista. Sait käyttöliittymän veisteltyä hienosti kokoon!

Drupal pyörii tilaamallamme palvelimella, ja asiakas saa muokattua sisällöt koska tahansa haluamikseen ja lisättyä uusia sivuja ilman ohjelmointitaitoja suoraan Drupalissa.

Opiskelijaksi.net-sivustolle luotiin myös runsaasti karttoja, jotka piirrettiin ja suunniteltiin Gemilossa mainostoimiston visuaalisen ilmeen mukaisiksi. Kullakin kartalla on kohdetietoja, joiden sisältöjä asiakas pystyy ylläpitämään Drupalin kautta. Tavoitteena ei ollut reittitiedon tarjoaminen, joten GoogleMaps ja OpenStreetMap jäivät toiseen kertaan.

Hankkeen koordinaattori Keuda avasi demon viime viikolla ja käyttäjäpalautteessa kokonaisuus arvioitiin piirua vaille erittäin hyväksi.

Toteutimme sivuston ensimmäisen julkisen version ketterän kehityksen keinoin. Uno-hankkeen koordinaattori on lähtenyt rohkeasti mukaan kokeilemaan, miten palvelua voidaan parantaa kysymällä mielipiteitä kohderyhmältä jo ennen kuin palvelu on lopullisesti valmis.

- Kyseessä on palvelun kehittämisprosessi. Olemme alusta asti kysyneet kohderyhmän mielipidettä sekä visuaalisesta ilmeestä että palvelun sisällöstä. Tarkoitus on edelleen kehittää tuotetta palautteen perusteella. Opiskelijat arvioivat myös portaalin käytettävyyttä. – Projektipäällikkö Anneli Manninen, Keuda -

Annelin kanssa jatkamme aamupuheluja varmaan ihan vain siksi, ettei tule ikävä ;) Demo on avoinna osoitteessa: www.opiskelijaksi.net.

TurboGears 2.0 yhdistää Pylonsin, Djangon ja Ruby on Railsin parhaat puolet

Perjantai, Maaliskuu 27, 2009

Tomi Terentjeff // TurboGears 2.0 (TG2) lupaa yhdistää Pylonsin parhaan puolen eli valikoidut Python-ohjelmistokomponentit tarjoten samalla “kiinteiden osakomponenttien” tuoman edun.

Sovelluskehysten komponenttien ollessa kiinteästi määriteltyjä, on helpompaa toteuttaa kehyksen osakomponenttien (esim. ORM ja template-kieli) toimintaan nojaavia ominaisuuksia.  Tämä käytännössä mahdollistaa Ruby on Railsin (RoR) ja Djangon tyylisen automatiikan ja koodin uudelleenkäytön helpottamisen.  TG2 tarjoaa muunmuassa automagiikkaa helpottamaan web-ohjelmoinnin tylsimpää puolta eli puuduttavaa CRUD -koodin generointia, joka on ollut perinteisesti yksi Djangon ja RoRin myyntivalteista. Pylonsin päälle tällaisia ominaisuuksia on vaikeampaa toteuttaa, koska kukin kehyksen osakomponentti on täysin ohjelmoijan määritettävissä.

Gemilon vahvasta Pylons-osaamisesta on hyötyä kun siirrymme asteittain käyttämään pian julkaistavaa TG2:ta, sillä se on täysin Pylonsin päälle rakennettu sovelluskehys. Kerromme käytännön kokemuksia, kunhan saamme ensimmäisen TurboGears 2.0-sovelluksen tuotantoon.

Python tukee ketterää web-ohjelmistokehitystä

Tiistai, Maaliskuu 24, 2009

Tomi Terentjeff // Valitessa alustaa web-sovelluskehitykselle on tärkeää, että alusta tukee nopeaa ohjelmistokehitystä. Tämä tarkoittaa esimerkiksi:

  • mahdollisimman vaivatonta relaatiotietokantataulujen rivien muuntamista ohjelmiston olioiksi (object-relational mapping, ORM),
  • luettavuutta parantavan model-view-controllerin (MVC) mallin mukaisen rakenteen asettamista sovelluskoodille ja
  • automaattista toiminnallista testausta.

Ohjelmistokehityksen perinteinen koodaa-käännä-testaa -sykli on siis tehtävä mahdollisimman nopeaksi ja automatisoiduksi, jotta voidaan puhua ketteryydestä. Ohjelmointikielistä tähän soveltuvat hyvin tulkattavat kielet Python, Ruby ja PHP. Tulkattavien kielten tapauksesa, toisin kuin esim. staattisessa Java-kielessä, syklistä häviää kokonaan pois vaihe käännä.

Ruby-kieltä on pidetty yhtenä suurimpana kynnyksenä ottaa käyttöön Ruby on Rails (RoR) webohjelmointikehykseksi. Kehyksen pohjalla oleva Ruby-kieli ei ole kovinkaan suosittu RoRin ulkopuolella (alle 500 projektia Freshmeat.net:ssä), kun taas Python-ohjelmointikieli (yli 3000 projektia Freshmeat.net:ssä) on ohjelmoijien keskuudessa suosittu myös web-ohjelmoinnin ulkopuolella, minkä ansiosta valmiita ohjelmistokirjastoja sekä kieltä valmiiksi taitavia ohjelmoijia on paremmin saatavilla.

Esimerkiksi Googlessa Pythonia käytetään laajasti, sen ollessa nykyisin mm. Googlen App Enginen ainoa tuettu ohjelmointikieli.

Python on kielenä helppo oppia etenkin, jos omaa ohjelmointitaustaa jostakin oliokielestä. Tällöin webkehitykseen vaadittavat perustaidot on opittavissa viikossa. Se onko Python kielenä parempi tai mukavampi kuin Ruby on pitkälti makuasia. Molemmista löytyy hyvät ja huonot puolensa.

Tällä hetkellä järkevän tekniikan valitseminen websovelluskehitykseen on siis lähinnä valinta Ruby- ja Python-kielten välillä. Valintamme on kallistunut Pythoniin, koska se on suositumpi avoimen lähdekoodin maailmassa myös web-ohjelmoinnin ulkopuolella jolloin uudelleenkäytettäviä kirjastoja sekä osaamista on paremmin saatavilla.

Web-kehitykseen Python-kielellä on tarjolla useita vaihtoehtoisia sovelluskehyksiä, joista tällä hetkellä suosituin taitaa olla Django. Djangon huono ja hyvä puoli on sen “kiinteys” sen eri osien osalta. Django käytännössä pakottaa käyttämään sen omaa ORM:ia tietokantakoodille, mutta toisaalta automatisoi joidenkin yksinkertaisten web-ohjelmiin liittyvien koodien generointia.

Käyttämämme Pylons-alustan perusidea on komponenttien joustavuus. Pylonsin pääfilosofiana on koota yhteen parhaat komponentit Python-webkehitykseen liittyen sekä mahdollistaa niiden helppo vaihtaminen halutessa. Pylonsin tekevät käteväksi esimerkiksi Pylonsin oletuksena käyttämä SQLAlchemy ORM, Mako-template-kieli ja FormEncode-lomakevalidaattori.

Ruby on Railsin koodigeneraattorit helpottavat ohjelmointia

Maanantai, Maaliskuu 16, 2009

Tomi Terentjeff // Ruby on Rails (RoR) on hyvin suosittu ja äärimmilleen hehkutettu web-ohjelmistokehys, joka tukee ketterää ohjelmistokehitystä. RoRin luvataan helpottavan etenkin yksinkertaisten web-sovellusten alkuunsaattamista muun muassa automaattisten CRUD-koodigeneraattoreiden (create, read, update, delete) ansiosta.

Joidenkin mielestä Ruby on Railsin hakemistohierarkia aiheuttaa hirvittävän sotkun, sillä kehittäjän tulisi itse osata päätellä, mihin tiedostoista kannattaa koskea ja mitkä automaattisesti luoduista skripteistä ja tiedoistoista tulisi jättää niikseen.

RoRin takana on joka tapauksessa aktiivinen ja suuri yhteisö, mikä edesauttaa avoimen ohjelmistokehyksen pysymistä vireänä. Suurin osa kehittäjien tapahtumista on USA:ssa, mutta itsenäinen ohjelmoija oppii taidon itsekseenkin, sillä verkossa on tarjolla runsaasti opastusta.

Tiobe valitsi Rubyn vuoden ohjelmointikieleksi jo vuonna 2006 ja ComputerWorld vuonna 2007, mutta näyttää siltä, että edelleen RoRin käyttäminen web-kehitykseen on aina vain muodikasta.

Gemilossa olemme päätyneet vertailujen jälkeen Pylonsiin. Se päihitti tiimimme mielestä niin Javan, PHP:n kuin Rubynkin.