Gemilo Oy

Viestit avainsanalla ‘python’

Hei sinä web guru, tule meille hommiin!

Maanantai, Heinäkuu 5, 2010

Tomi Terentjeff // Gemilo hakee tällä hetkellä vahvistusta tiimiinsä. Ensisijaisesti meillä on haussa web-suunnittelija sekä web-kehittäjä (python). Web-kehittäjän paikasta kiinnostuneet voivat lukea ilmoituksemme Kiitoksen kautta ja laittaa hakemuksensa sinne tai suoraan allekirjoittaneelle.

Web-suunnittelijana toimit osana meidän kehitystiimiä ja osallistut asiakasprojekteihin sekä tuotteidemme Gemilo Social ja Waraamo käyttöliittymäsuunnitteluun ja koostamiseen. Tekninen ymmärrys on ennemmin suotavaa kuin sallittua.

Tehtäviisi kuuluu seuraavaa:

* verkkopalveluiden rakenteen suunnittelu
* verkkopalveluiden visuaalinen suunnittelu
* koostaminen xhtml / css
* koostaminen mako/genshi -templateihin

Lisäksi pisteitä saat seuraavista osaamisista ja ominaisuuksista:

* käyttöliittymäsuunnittelu
* graafinen suunnittelu
* css / xhtml
* ohjelmistoista luonnollisesti ainakin PS/DW/ID
* unix-ympäristön perustuntemus
* agile-prosessin ymmärrys / jatkuvan muutoksen sietäminen

Me tarjoamme sinulle (paitsi paikan alan kuumimmassa yrityksessä):
* rennon työympäristön
* näköalapaikan sosiaalisen median verkkokehitykseen
* kovan teknisen osaamisen tueksesi
* loistavan mahdollisuuden kehittyä
* luvan käyttää facebookkia ja muuta sosiaalista mediaa työpaikalla ;)

Lisätiedot: tomi.terentjeff (poing) gemilo (ding) com.

Hakemukset palkkatoiveineen 26.7.2010 mennessä Kiitoksen kautta.

Meistä löytää lisätietoa osoitteessa www.gemilo.com (ps. Uudet sivumme ovat tulossa ulos elokuun alussa)

Kesäpäivä

Tervetuloa joukkoon! :) [kuva kesäpäivä 2010:stä]

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.

PHP:n koodispagetti aiheuttaa turhia kuluja

Maanantai, Maaliskuu 16, 2009

Tomi Terentjeff // PHP-skriptauskielen suosio web-kehityksessä räjähti 2000-luvun alkupuolella tasoittuen loppua kohti. PHP:lla on helppo luoda yksinkertaisia dynaamisia verkkosivuja, sillä logiikkakoodi on helposti sulautettavissa HTML-koodin generointiin.  Lisäksi PHP sisältää suhteellisen kattavan ohjelmistokirjaston web-kehityksen perustarpeisiin.

PHP-kielen huono puoli on sen jäykkyys verrattuna korkeamman abstraktiotason skriptikieliin. Sen syntaksi muistuttaa matalan tason C-kieltä, johon on jälkikäteen ympätty olio-ominaisuudet ja läjä sekalaisia ohjelmistokirjastoja.

PHP ei ota kantaa web-koodin rakenteeseen. Siksi ikävän usein näkee dynaamisia websovelluksia, jotka ovat yhtä koodispagettia. Sama tiedosto saattaa pahimmillaan sisältää tietokantakoodin, lomakevalidoinnin sekä HTML-koodingeneroinnin. Tämä huonontaa koodin ymmärrettävyyttä ja ylläpidettävyyttä, mikä taas ennemmin tai myöhemmin maksaa ylimääräisiä työtunteja.

Koodispagetin sivukulut huomaa lopulta joko asiakas laskussaan tai ohjelmistokehittäjä työtehon heikkenemisenä. Viime vuosina PHP-yhteisöt ovat onneksi huomanneet ongelman, ja nykyisin PHP:n päälle on saatavilla varteenotettavia web-sovelluskehyksiä, kuten CakePHP ja symfony. Ilmaisuvoimassaan PHP jää silti paljon jälkeen Pythonista ja Rubystä, jotka ainakin näin ketterän ohjelmistokehityksen kannattajan näkökulmasta näyttävät soveltuvan webkehitykseen paremmin.

Java jäähtyy ketterässä ohjelmistokehityksessä

Torstai, Maaliskuu 12, 2009

Tomi Terentjeff // Java 2 Enterprise Editionia on pidetty arvossa osin Java-kielen staattisuuden ansiosta.  Koska Java-koodi on staattista, se voidaan kääntää tavukoodiksi, joka ajetaan virtuaalikoneessa. Virtuaalikone puolestaan osaa lennosta kääntää tavukoodin natiiviksi ajettavaksi konekoodiksi. Tavoitteena on mahdollisimman  tehokkaasti suorittuva ohjelmakoodi. Lisäksi staattisen kielen etuna on eräinen ohjelmointivirheiden paljastuminen jo käännösaikana.

Todellisuudessa kääntävän Java-virtuaalikoneen arvo web-sovelluksen kokonaissuorituskyvylle ei ole useinkaan merkittävä, koska tietokantapohjaisissa websovelluksissa sovelluksen pullonkaula muodostuu helposti tietokantapalvelimeen eikä itse sovelluskoodiin. Tätä pullonkaulaa voidaan lievittää välimuistien (esim. memcached) sekä tietokantapalvelinten hajauttamisella (esim. data striping).

Java-webohjelmistojen kehittäjät käyttävät suosittuja komponentteja, jotka osaltaan nopeuttavat sovelluksen kehittämistä. Esimerkiksi Hibernate on suosittu ORM Javalle, missä luokkien ja tietokantataulujen väliset suhteet määritellään XML:ää käyttäen.

Käytännössä näyttää kuitenkin käyneen niin, että ketterä web-ohjelmistokehitys on nykyisin kahden dynaamisen tulkattavan kielen, Rubyn ja Pythonin, taistelu: Huippusuositulla Ruby on Rails (RoR) -web-ohjelmistokehyksellä on vastassaan Python web-kehitys, jossa kehysvaihtoehtoina ovat esimerkiksi Django, Pylons ja Pylonsin päälle rakennettu TurboGears 2.0 (TG2).

Gemilossa käytetään näistä kahta jälkimmäistä ja kokemukset ovat olleet lupaavia.