26.2.2010, kirjoittanut Jussi Kasurinen
No niin,
Tälläkertaa ajattelin käsitellä ihan huvikseni tekemää kokeilua, missä Google Trends-palvelun avulla selvittelin hieman sitä, missä kaikkialla Python-jutuista ollaan kiinnostuneita. Vaikka Trends-palvelu ei olekkaan kovin tieteellinen, niin silti se välillä paljastaa varsin yllättäviä tuloksia, kuten esimerkiksi erään hyvin suositun hanurinvenytyskuvan yllättävän supersuosion Suomessa, erityisesti Tampereella.
No joka tapauksessa, kokeilin hakuehtona ”Python programming” ja yllätyin jonkin verran; kolmen kärjen muodosti niinkin suuret huipputekniikkamaat kuten Intia, Etelä-Afrikka ja Filippiinit. Oli Suomi sentään listalla, näin olympiahengen mukaisesti seitsemäntenä. Pelkällä hakusanalla Python kärkeen meni Tsekki, Norja ja Venäjä, mutta tietenkin pitää pitää mielessä, että tässä tapauksessa myös käärmeisiin liittyvät artikkelit otettiin huomioon. Lopuksi kokeilin vielä huvikseni vertailla kahta keskenään usein päitä yhteen lyövää ohjelmointikieltä, Rubya ja Pythonia keskenään.
Trendeissä kilpailu oli tasaväkistä, Rubyn ollessa hieman niskan päällä 2006 alkaen. Tietenkin pitää muistaa, että tässä myös voidaan pitkälti vertailla käärmeiden ja jalokivien suosiota keskenään. Parhaimmillaankin tuloksia voi käyttää myöhästyneenä ystävänpäivälahjan hankintaohjeena puolisolleen jos on kahden vaiheilla näiden välillä. Tai noh, menee ainakin ensi vuonna valinta sitten oikein jos ei muuta. Samoin anopin tapauksessa, joiden suosio on muuten Trendsin mukaan ollut laskussa jo viisi vuotta.
Loppuun ajattelin vielä hieman selitellä alussa heittämääni huomautusta Suomen sijoituksesta olympialaisissa. Tiedän, että viime yönä Suomen naiset voitti pronssia jääkiekossa, onnea siitä heille. Haluan kuitenkin korostaa hyvää urheiluhenkeä ja muistuttaa näin lopuksi siitä, että tärkeintä ei ole se kuka voittaa, vaan se kuka häviää.
Täältä tähän,
Jussi Kasurinen.
8.2.2010, kirjoittanut Jussi Kasurinen
Heipä vaan,
Näin helmikuun alkuun ajattelin ottaa puheeksi jälleen aiheen, josta minulle tulee eniten kyselyitä Pythonista; ”Mitä työkaluja minä oikein tarvitsisin kun haluan nyt alkaa koodaamaan/suunnittelen kurssia?”
Rehellisesti sanoen, jos aiot harjoitella Windows-ympäristossä, niin oikeastaan et paljoakaan muuta kuin Pythonin peruspaketin mukana tulevan IDLE-editorin ja tulkin. Oikeasti. Tiedän toki, että Linux-työasemalla IDLE tapaa välillä sekoilla, joten siellä melkein mikä tahansa editori joka tukee Pythonin tapaa käyttää sisennyksiä on hyvä. Kuulemma Vim ja Emacs on erittäinkin päteviä tähän hommaan.
Jos Windows-puolella kuitenkin halutaan käyttää jotain kehittyneempää editoria, niin Notepad++ ja Netbeans ainakin osaa Pythonia ”suoraan paketista”, ja Eclipsen saa kanssa toimimaan hieman virittelemällä. Erityisesti, jos tulee tarve tai halu myöhemmin tehdä IronPythonilla palikoita .NET-projektiin tai koodata Jythonia. (Ja kyllä, .NET ei ole ohjelmointikieli vaan ohjelmistokehys jossa voi yhdistellä useita eri ohjelmointikieliä. Syytän kirjaan asti päässeestä virheestä kiireessä tekemääni oikolukua, jossa tein vielä jotain viime hetken muutoksia.)
Eli jos aikomuksena on tehdä ihan perusjuttuja, niin omasta mielestäni ei edelleenkään ole syytä yliampua työkalujen kanssa. Jos projekti taas on astetta isompi, löytyy Python-tukea jo aika mukavasti useammasta ammattilaistason työkalusta.
Täältä tähän,
Jussi Kasurinen
22.1.2010, kirjoittanut Jussi Kasurinen
Jees,
Lomilta palanneena ja virkistyneenä ajattelin taas tarkastella uusimpia Python-puolen kuulumisia, kun ulkonakin on niin kylmä että ei sieläkään viitsi paljoa pakollisia käyntejä enempää oleilla. Vuodenvaihde näyttäisi puhaltaneen uutta eloa Python 3:n moduulikirjastoon, sillä Python Imaging Library näyttäisi vihdoinkin löytävän tiensä myös Python 3-perheeseen. Uusin versio 1.1.7 ei ehkä ole vielä julkaisuasteella, mutta alpha-versioita näyttäisi jo tihkuneen muutamia, joten hieman toiveikas voi jo alkaa olemaan. Ei kuitenkaan liian, ettei tule paha mieli jos kaikki menee pieleen, lähderepon uusimmat tapahtumat kun ovat systemaattisesti vähintään kuukauden vanhoja. Itse en kuitenkaan sattuneesta syystä ala osoittelemaan ketään sormella, jos nyt vaikka on kuukauden verran jäänyt asiat vähän heikolle hoidolle.
Mutta siis, toivokaamme että tänä vuonna asiat luistavat hieman paremmin, ja tuo moduulikirjasto alkaisi pikkuhiljaa pääsemään jaloilleen myös kolmosen puolella. Omalta kohdaltani taas lupaan, että yritän saada pidettyä hieman puoluekuria ja julkaista tekstiä hieman tiuhempaa tahtia mitä tähän asti. Tämän lupauksen johdosta voitte sitten naureskella heinäkuussa, kun olen muistanut viisi kertaa koko kevään aikana päivittää juttuni tänne blogiin asti.
Täältä tähän,
Jussi Kasurinen
16.11.2009, kirjoittanut Jussi Kasurinen
Hei taas,
Tässä pieni huomio, voisi jopa sanoa mainos, liittyen Pythoniin liittyviin teemakonferensseihin, PyConeihin.
Jonkin aikaa sitten huomasin, että isossa maailmassa jo useampaan kertaan järjestetyt PyCon-konferenssit ovat rantautumassa myös Suomeen. Ainakin mikäli verkkosivua
http://fi.pycon.org/
on uskominen, ja miksi emme uskoisi.
Teemalla ”Python-koodareilta Python-koodareille” järjestettävä tapahtuma ei ehkä ole ihan Helsinki Motor Shown kokoinen perhetapahtuma, mutta varmasti mielenkiintoinen kokonaisuus kaikille kielestä kiinnostuneille ja sitä käyttäville.
Täältä tähän,
Jussi Kasurinen
13.10.2009, kirjoittanut Jussi Kasurinen
Tälläkertaa ajattelin kirjoittaa jonkin verran Pythonin käyttämisestä osana toista ohjelmointiympäristöä, ja aiheeksi päätin ottaa Python-kielen .NET-ympäristöön tehdyn IronPython-käännöksen. IronPython on saatavilla .NET-ympäristöön laajennuksena ja näyttäisi löytyvän Mono-ympäristöstä oletuksena.
Toki muuttaminen .NET-ympäristöön on asettanut jotain rajoitteitakin. Ensinnäkin, näin alkuvaiheessa IronPython takaa yhteensopivuuden ainoastaan Pythonin version 2.6 kanssa, mutta kehitystiimi on jo muutama vuosi sitten luvannut tuottavansa Python3-yhteensopivan version. Lisäksi kannattanee huomata, että IronPython on nimenomaisesti kääntäjä eikä tulkki, joten IronPython tuottaa itsenäisiä ohjelmia samalla tarjoten keskeisen ominaisuuden joka normaalista CPython-tulkista puuttuu… ja py2exe:n Python3-implementaation puuttuessa jatkaa puuttumistaan vielä tovin. Toivoa siis sopii, että kehitystiimin lupaus muuttuu todellisuudeksi kohtuullisen ajan sisällä.
IronPythonin tärkein ominaisuus on kuitenkin siinä, että sen avulla on kohtuullisen helppoa luoda eri kielten ominaisuuksia yhdisteleviä toimintoja. Esimerkiksi frameworkin omien GUI-työkalujen käyttäminen on varmasti helpompaa kuin Tkinter-määrittelyn kirjoittaminen. Tietysti asiaa voi myös ajatella toisinpäin; Python on näppärä pyörittelemään dataa haluttuun muotoon, joten sen avulla voidaan tehdä helposti tehokkaita kirjastofunktioita muiden ohjelmien tarpeisiin.
Lisätietoa ja lyhyt tutoriaali IronPythonille löytyy esimerkiksi osoitteesta
http://www.voidspace.org.uk/ironpython/introduction-to-ironpython.shtml
Täältä tähän,
Jussi Kasurinen
10.9.2009, kirjoittanut Jussi Kasurinen
No niin,
Taas on kuukausi vierähtänyt ja tämänkertaiseen artikkeliin ajattelin kirjoitella uusia kuulumisia ohjelmointiaiheiden piiristä. Kuukauden ensimmäinen aihe onkin yllättäen pickle-moduuli, jonka käytöstä mainitsin myös kurssiin liittyvässä kirjassa. Yleisesti varsin viattomalta datantallennus- ja palautusmoduulilta näyttävä paketti näet sisältää mielenkiintoisen ongelman: sen avulla pystyy ajamaan ohjelmakoodia. Vaikka tämä mainitaankin moduulin dokumentaatiossa, on syytä huomata että esimerkiksi datagrammien (eli pickellä luotujen datapakettien) lähetteleminen esimerkiksi verkko-ohjelmassa ei ole kovin turvallista. Kuten allaolevassa linkissä osoitetaan, voi pahaatahtova käyttäjä tällöin lähetellä toiseen päähän ohjelmia, jotka voivat suorittaa varsin ikäviä toimenpiteitä:
http://nadiana.com/python-pickle-insecure
Esimerkiksi käyttäjän omien tiedostojen -tai miksei koko tietokoneen kiintolevyn- tyhjentäminen onkin varsin suosittu jäynä tälläisissa tapauksissa, ja se varmasti herättää lämpimiä tunteita kaikissa osapuolissa. Osassa jopa varsin paljon lämpimämpiä kuin toisissa.
Viikon toinen aihe, josta ajattelin tähän kirjoittaa liittyy sekin ohjelmoinnin nostattamiin suuriin tunteisiin. Ohjelmien testaaminen onkin näet aihe, joka saa alalla olevan altistumaan helposti päihdeongelmille ja alasta mitään tietämättömät ihmettelemään että ”no miksi et kodaa”. Allaoleva linkki listaakin varsin osuvasti 62 tavallisimmin testaajia ärsyttävää ominaisuutta:
http://api.ning.com/files/QJi*hMri9yLAaJLwOayr07w0YIdLUmjoWnOO4PaBv6xzcxpbvSGEbTxgy3Iv65kcGPO5gBEltcf*2fcvndjPIKHr2t7RYMBt/stcwhatdotestershateabouttesting.pdf
Listaa katsellessa tulee helposti mieleen, että eräs piikkitukkainen hallinnon henkilö heittää kuutamokeikkaa useammassakin ohjelmistofirmassa. Itse haluan muistuttaa siitä, virheiden metsästys alkaa jo ohjelmoinnista, joten kommentoikaa ja testatkaa omat koodinne. Joku muu, tai viimeistään itse, osaa arvostaa tätä toimenpidettä kun puolen vuoden päästä palataan puukottamaan samaa koodia.
Täältä tähän,
Jussi Kasurinen
4.8.2009, kirjoittanut Jussi Kasurinen
Hei taas,
Tässä pikkuhiljaa kaikenmaailman siat ja flunssat nurkista ajaneena alkaa taas pikkuhiljaa hissi mennä vintille asti. Jo välittömästi viikon väistelyn jälkeen päätinkin kirjoittaa taas uuden merkinnän blogiin kun Python-puolella on taas liikehdintää.
Tällä tietenkin viittaan Python 3:n esimmäiseen suurempaan päivitykseen, joka on siis Python 3.1. Pieniä muutoksia näyttäisi tulleen mm. tuhatlukujen tulostamiseen, pyöristysfunktion käyttöön sekä muutamaan muuhun toimintoon, kuten yksikkötestien ajamiseen. Testauksen ollessa eräs uusista mielenkiinnon kohteistani olen hyvin kiinnostunut tästä ominaisuudesta, mahdollisuus tehdä ajurimoduuli automaatiocaseja varten… Pitääkin tutustua tarkemmin.
Kuukauden tyhmin idea kuitenkin lienee PSF:n ympärillä liikkunut markkinointiajatus pyrkiä markkinoimaan Python-ohjelmointikieltä viraalisesti. Eli siis, luoda suusta-suuhun markkinointia kaikenmaailman kikoilla ja tempuilla hyödyntäen Twitteriä, Facebookkia ja ylipäänsä vastaavia webin sosiaalisia verkostoja ja yhteisöjä. Ehkä jonkin nuorisotuotteen markkinoinnin voisin vielä ymmärtää, mutta ohjelmointikielen esittely ja promoaminen ”viraalisesti”… Noh, on se ainakin idea. Youtube-video Python3-ohjelmoinnista ei luultavasti saa kovin montaa linkkiforwardointia, mutta yrittää toki saa. Kuten sanoin, on se ainakin idea. Jos rickrollingista on onnistuttu tekemään Internet-meemi niin kuka tietää.
Joskus syksymmällä koitan taas palata aiheeseen jonkin ohjelmointiaiheen, kuten verkko-ohjelmoinnin tai vastaavan kanssa; tälläerää onnistuin väistelemään varsinaisen sisällöntuotannon kirjoittamalla viraalisesta markkinoinnista. Ai niin mutta eihän sitä nyt olisi tähän pitänyt kirjoittaa…
Täältä tähän,
Jussi Kasurinen
7.7.2009, kirjoittanut Jussi Kasurinen
Hei taas,
Tällä kertaa päivitän blogia tien päältä, olen par’aikaa Pariisissa tietojenkäsittelytieteiden konferenssissa kuuntelemassa alan uutta tutkimustietoa.
Konferenssissa eräs yksityiskohta kiinnosti minua erityisesti; erään suuren Yhdysvaltalaisen prosessorivalmistajan pitämä sponsoritilaisuus, jossa kovaan ääneen toitotettiin rinnakkaisuuden tuovan tietokoneiden toimintaan uutta, kauan kaivattua tehoa. Luennoija näytti kyllä mielellään esimerkkejä C++ ja Java-kielillä, ja totesi, että lähitulevaisuudessa pystytään rakentamaan 128 yleisytimen koneita, joissa pystytään ajamaan suuri määrä raskaita ohjelmia yht’aikaa ilman että yksikään niistä alkaisi hidastella. Ihan komea visio (ja promoständiltäkin irtosi kivasti taskunpohjalle kaikenlaista pikkulelua).
Itseasiassa, Mooren lakiakin pitäisi heidän mielestä viimeistään nyt päivittää muotoon ”prosessoriytimien määrä tuplaantuu kerran kahdessa vuodessa”. Totuus jäänee kuitenkin tässä asiassa nähtäväksi, rinnakkaisuuden kanssa on painittu ennenkin mm. hyperkuution yhteydessä, joten itse suhtaudun visioon hieman skeptisesti. Toisaalta taas, nykyisellään yksiytimisellä prosessorilla varustetun tietokoneen hankkiakseen pitää alkaa kiertelemaan kierrätyskeskuksia, muutaman vuoden päästä teknologiamuseoita.
Ajattelin kuitenkin huomattaa siitä, että kävi vision kanssa kuinka tahansa, on Pythonissa vastaavat toiminnot oletuskirjastoissa threading ja thread, joiden avulla ohjelma voi käynnistellä uusia prosesseja ja threadeja, käyttiksen huolehtiessa itse kuormajaosta. Tällä tavoin pystyy rinnakkaisuudella jakamaan raskaan suorituksen useaan osaan. Tai sotkemaan ohjelman lopullisesti pikkubugien ja synkronointiongelmien viidakkoon. Kummin tahansa, vaikuttaisi siltä että threadingin käyttämistä pitäisi alkaa jossain vaiheessa opettelemaan.
Vielä lopuksi, robotille josta mainitsin viimeksi, kuuluu hyvää. Ilokseni robotti osasi suoraan lukea sarjaporttiin USB-emulointisoftan läpi lähetettyjä käskyjä, tehden robotin ohjelmoinnista ja ohjaamisesta helppoa. Ainakin silloin kun se pirulainen ei ole ajamassa pöydältä tai portaista alas.
Täältä tähän,
Jussi Kasurinen
12.6.2009, kirjoittanut Jussi Kasurinen
No niin,
Reilu kuukausi vierähtikin nopiasti opetus- ja tutkimushommia tehdessä, mutta koitetaan nyt välillä muistaa tännekin jotain kirjoitella.
Tosiaan, aikaisemmin mainitsin siitä, että olin kiinnostunut aloittamaan BASIC Stamp-robotin rakentelun ja rakentamaan siihen rajapinnan Pythonille. Aika ei vielä silloin ollut ilmeisesti sopiva, mutta heti pian kaksi vuotta ihmisiä suostuteltuani hankimme labraan ko. robotin ja aloitin sen kanssa painimisen tässä viikko sitten.
Toistaiseksi olen vasta ehtinyt tekemään jotain perus-juttuja, asentamaan ja kalibroimaan servot ja testaamaan anturit, mutta kunhan tästä nyt kesä etenee niin ehkäpä voin kirjoitella enemmänkin juttua uudesta robotistamme.
MItäs muuta, Python 3.1 näyttäisi olevan nurkan takana. Kyseessä ei kuitenkaan ole periaatteessa kuin laajennettu bugipäivitys, joten sen asenteleminen tulee varmaankin ajankohtaisesti kunhan beta- ja RC-vaihe on saatu päätökseen.
Täältä tähän,
Jussi Kasurinen
5.5.2009, kirjoittanut Jussi Kasurinen
Jees, vaput on pidetty ja sitkeimmätkin sissit alkaa pikkuhiljaa palailla krapulan vietosta takaisin arkiin. Ainakin siihen asti kun juhannus ja kesälomat alkaa painamaan päälle. Mutta niin, kesäinen sää saakin nyt jäädä taka-alalle verhojen taakse kun keskityn pääasiaan, eli ohjelmointiin.
Edellisessä artikkelissani kirjoitin USB-tikulla liikuteltavasta Pythonista, ja kommentoin sitä kuinka älylaitealustalle löytyy hyvin huonosti suoraa tukea. Nyt voin sitten ottaa jalan suustani, koska tarkemman etsimisen jälkeen löysin pari mielenkiintoisempaa linkkiä;
http://www.eriksmartt.com/blog/pys60
On Python S60-sarjan Symbian-alustalle, ja
http://code.google.com/p/jythonroid/
Jython Googlen Android-alustalle. Lisäksi Se Windows Mobilelle kaipaamani Python löytyi kun laski simat ja tippaleivät käsistään ja käytti hetken aikaa linkkien etsimiseen:
http://pythonce.sourceforge.net/
Tuo versio näyttää itseasiassa niin hyvältä, että taidan etsiä vanhan HPn PDAn-ruoskan ja kokeilen josko saisin sillä tehtyä jotain mielenkiintoista.
Täältä tähän,
Jussi Kasurinen
Artikkeliin ei ole kommentteja »