Gemilo Oy

Viestit avainsanalla ‘teknologia’

Windows Azure vie palvelut pilveen

Torstai, Maaliskuu 10, 2011

Arto Liukkonen // Kun teemme asiakasprojekteja, pyrimme mahdollisimman hyvin käyttämään hyödyksi meidän jo olemassa olevia järjestelmiä. Joskus asiakkaan toiveesta joudumme – tai saamme – tutustua johonkin uuteen ympäristöön, ja nämä tuovat aina mukavaa piristystä normaaliin arkeen sekä opettavat uusia asioita.

Tuoreimpana uutena ympäristönä tutustuimme Windows Azureen, jonka toiminnasta ja käyttöönotosta kerron tässä.

Pää pilvessä, kädet savessa

Otsikko “Pää pilvessä, kädet savessa” on lainattu Microsoftin julkaisemasta artikkelista. Tällä viitataan Azuren vaivattomuuteen ja kehittäjälähtöisyyteen. Koodaajan ei tarvitse tietää mikä pilvi on tai kuinka palvelimia säädetään, riittää kun hän tekee koodin ja lähettää sen pilveen. Sitten se vain toimii. Kehittäjä saa näin omalla työpöydällä toimivan kehitysympäristön sekä graafisen käyttöliittymän koodin lähettämiseen tuotantopalvelimelle.

Azuren laskutus hoidetaan suoraan luottokortilta. Käytöstä voi maksaa tuntiperustaisesti tai ostaa kerralla paketissa useampia käyttötunteja, jolloin tuntihinta on hieman edullisempi.

Asennus ja kehittäminen

Azure tukee .NET kielien lisäksi kehitystä Javalla, Rubyllä ja PHP:llä. Me toteutimme kampanjan PHP:llä, koska tämä oli ennestään tutuin näistä vaihtoehdoista.

Azuren sivuilta saa ladattua kehityspaketin, jolla pääsee alkuun. Emme kuitenkaan saaneet PHP-kehitystä toimimaan Visual Studion kanssa yksiin, joten asensimme työkalut Eclipseen. Azure integroitui Eclipseen ja kaikkia perustoimintoja voi käyttää suoraan Eclipsen käyttöliittymästä.

Asennuksen jälkeen koodataan normaalisti: Käytössä ovat kaikki PHP 5.3 -ominaisuudet tavalliseen tapaan. Myös tietokantayhteys SQL Azure-kantaan onnistuu vaivattomasti eikä syntaksi eroa juurikaan MySQL- tai PostgreSQL- syntaksista.

Koodin toimintaa voi testata lokaalisti suoraan Eclipsestä. Kun sovellus on valmis, voi sen lähettää Azureen, jolloin virtuaalipalvelin luodaan automaattisesti koodia pyörittämään. Näin myös muutokset on helppo päivittää tuotantoon.

Azurea voi testata ilmaiseksi 25 käyttötuntia. Sen jälkeen laskutus lähtee pyörimään, mikäli palvelin on käytössä. Automaattiseen laskutukseen kannattaa varautua.

Microsoft tarjoaa välillä myös pidempiä ilmaisia kokeilujaksoja. Esimerkiksi AfterDawnin blogissa Microsoft tarjoaa 30 päivää käyttöaikaa 20 ensimmäiselle kommentoijalle. Jutussa on myös selkeät ohjeet esimerkkisovelluksen tekemisestä ja pystyttämisestä (kielenä Visual C#).

Emme ole huomanneet Azuresta muualla oikein arvioita. Jos olet kokeillut Azurea, kuulisimme mielellämme siitä lisää. Vaihdamme mielellämme kokemuksia aiheesta vaikkapa tämän blogiviestin kommenteissa.

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/

Facebook uudistui yhteisöllisemmäksi

Perjantai, Huhtikuu 23, 2010

Arto Liukkonen // Facebook julkaisi jälleen suuren kasan uudistuksia, jotka eivät kuitenkaan tällä kertaa näy niin selvästi peruskäyttäjälle kuin aiemmat muutokset. Käyn tässä blogauksessa läpi listan tärkeimmistä uudistuksista sekä käyttäjien että yritysten ja kehittäjien kannalta.

Fanitus on nyt tykkäämistä

Facebook lievensi “fanituksen” “tykkäämiseksi”. Käytännössä tässä vaihtui vain nimitys, mutta peruskäyttäjän mielestä yhteys on miedompi kuin ennen. Sinun ei enää tarvitse nimenomaan fanittaa jotain tuotetta, vaan voit vain ilmaista tykkääväsi siitä. Fanimäärien odotetaankin kasvavan reilusti muutoksen myötä.

Mielenkiinnot muuttuu fanitukseksi

Eilisestä lähtien käyttäjille on ilmestynyt omaan profiiliin mennessä ilmoitus, jossa pyydetään käyttäjää luomaan yhteys omiin mielenkiinnonkohteisiinsa. Tässä tykkää-termistä on erityisesti hyötyä, sillä harva olisi valmis fanittamaan kaikkea, mitä on profiiliinsa merkannut. Käytännössä monen fanisivun jäsenmäärät moninkertaistuvat, sillä esimerkiksi moni on varmasti merkannut lempiyhtyeisiinsä bändin The Beatles, mutta ei ole kuitenkaan liittynyt faniksi. Muutoksen myötä kaikki tällaiset käyttäjät liittyvät sivujen faniksi.

Mielenkiintojen muunto fanitukseksi

Muutos on aiheuttanut myös negatiivista palautetta, sillä ennen yksityiset mielenkiinnonkohteet muuttuvat nyt julkisiksi “tykkäämisiksi”. Henkilökohtaisesti pidän kuitenkin tästä muutoksesta, sillä nyt ennen sekavat ja väärin erotellut listat muodostetaan automaattisesti järkevästi linkitetyksi listaksi.

Yhteisösivut jakavat ylläpitotaakan

Yksi suurimmista muutoksista on yhteisösivujen julkaisu. Yhteisösivut ovat kuin fanisivuja, mutta niillä ei ole yhtä nimettyä ylläpitäjää, vaan ylläpitäjäksi voi ilmoittautua kuka tahansa. Yhteisösivuja voi myös verrata jossain määrin ryhmiin.

cooking

Esimerkeiksi luotuja yhteisösivuja ovat esimerkiksi kokkaukseen ja  kemiaan liityen. Sivuille haetaan automaattisesti Wikipedia-artikkeli aiheesta sekä käyttäjien julkisia tilapäivityksiä, joissa mainitaan yhteisön nimi. Jatkossa myös yhteisö voi ylläpitää sivun sisältöä, mutta tällä hetkellä voi ainoastaan ilmaista olevansa kiinnostunut ylläpidosta.

Profiilien ulkoasu muuttuu

Käyttäjä- ja yritysprofiilit kokevat suuria muutoksia lähiaikoina, sillä profiililaatikot ja Laatikot-välilehti poistuvat kokonaan. Samalla kaikkien välilehtien leveys kapenee huomattavasti. Jatkossa sovellusten ainoa tapa integroitua profiileihin on siis välilehtien avulla. Tämä vaatii useaan sovellukseen suuria muutoksia, sillä esimerkiksi Gemilon sovelluksista osa on perustunut pääasiassa profiililaatikoihin.

Välilehtien kapenemisen myötä jokaiselle välilehdelle tulee näkyviin käyttäjän profiilikuva, kaveriverkosto ja käyttäjän perustiedot. Käyttäjäprofiileissa tämä muutos ei ole kovinkaan suuri, mutta yritysprofiileissa tämä muutos on erittäin toivottu. Uudella ulkoasulla fanisivun sisääntulosivun saa brändättyä entistä paremmin yrityksen mukaiseksi.

Facebook laajenee kaikkialle webiin

Facebook julkaisi ison kasan sosiaalisia vimpaimia (Social Plugins), joita mikä tahansa sivusto voi ottaa helposti käyttöön. Laajennosten avulla esimerkiksi Facebookista tuttu tykkää -ominaisuus (en tarkoita vanhaa “fanittamista”, vaan esim. tilapäivitysten ja kuvien yhteydessä olevaa tykkäämistä) voidaan ottaa käyttöön millä tahansa sivulla. Nyt voit siis tykätä yksittäisestä blogipostista Gemilon blogissa ja tästä siirtyy tieto kavereidesi uutisvirtaan. Sivun tykkääminen on siis miedompi toiminto kuin sivun jakaminen suoraan uutisvirtaan.


Yllä toimiva esimerkki tykkäämisestä. Klikkaa Tykkää niin näet ominaisuuden toiminnassa.

Muita vimpaimia on esimerkiksi “suositukset”, joka näyttää kyseiseltä sivustolta eniten jaetut sisällöt. Näet tästä esimerkin blogimme oikeassa laidassa. Vimpaimia on kaiken kaikkiaan kahdeksan, mutta loput ovat käytännössä vanhoja juttuja tehtynä uudelleen helpommin käyttöönotettavassa muodossa, kuten esimerkiksi Facebook Connect -kirjautuminen.

Avoimiin standardeihin Graph API:lla

Julkaisuissa pienoisena yllätyksenä oli koko Facebookin rajapinnan uudelleentoteutus OAuth 2.0 -standardin päälle. Facebook kutsuu toteutustaan Graph API:ksi ja nopean testauksen perusteella se osoittautui erittäin potentiaaliseksi toteutukseksi. Facebook julkaisi tuen myös Open Graph -protokollalle, joka mahdollistaa oman sivuston paremman näkyvyyden Facebookissa jakamisten ja tykkäämisten yhteydessä. Gemilon blogi on myös päivitetty tukemaan uutta protokollaa, joten mikäli “tykkäät” tästä viestistä, tietää Facebook suoraan käyttää Gemilon logoa uutisvirrassa ja myös, että tykkäyksesi koskee blogimerkintää.

Tulemme melko varmasti käyttämään vielä pitkään jatkossakin termejä “fanittaminen”, “fani” ja “fanisivu”, sillä uusi termi ei taivu käytössä niin hyvin. Termejä esiintyy myös varmasti sekaisin.

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.