Hurmetta ja lurexia

elokuu 29, 2008

Varoitus! Teksti sisältää spoilereita ja tapahtumia GTA IV -pelistä, joten jos peli ei kiinnosta tai et ole vielä päässyt pelissä loppuun saakka, lopeta lukeminen vaikka tähän.

Kate McRearyVietin tänään ehkä ansaitsematonta vapaapäivää ja eihän parempaa tapaa liene sitä viettää, kuin Niko Bellicin saappahissa. Nikon serkku Roman meni naimisiin rakkaan Malloriensa kanssa ja häät olivat hienot ja sopivan intiimit. Nikolla oli seuralaisenaan on/off -tyttöystävänsä Kate. Kun hääseurue asteli tapahtuman jälkeen kirkon portaita alas, ajeli kirkon edestä selvästi Nikolle katkeroitunut Jimmy Pegorino. Pegorino avasi tulen kohti seuruetta yrittäen saada Nikon hengiltä. Papalla taisi kuitenkin käsi hieman täristä ja hengestään pääsikin Kate. Ymmärrettävästi Niko oli tapahtuneesta murheen murtama ja vannoi kostoa.

Jimmy PegorinoJokusen päivän tapahtumaa surettuaan (ja Pegorinon listittyään) tuli Nikolle soitto tuntemattomasta numerosta. Katehan siellä soitteli ja pyysi treffeille. Kakkahan siinä meinasi tulla housuun kun tuolla lailla haudan takaa tyttö soittelee. Noh, Niko kävi hakemassa Katen kyytiin ja treffeille mentiin. Sen verta tilanne oli kuitenkin järkyttävä, että Niko otti ja tirpaisi treffien päälle Katea turpaan. Oppiipahan olemaan eikä tuolla viisiin kummittele, perkele.

elokuu 27, 2008

Doctrine

Filed under: Ohjelmointi,Työjuttui — Olli @ 23:26

Oulurastisivustoa uudistaessani päätin ottaa härkää sarvista ja ottaa viimeinkin käyttöön valmiita työkaluja nollasta lähtemisen sijaan. Symfonyyn tutustuessani ihastuin sen käyttämään ORM:n (Propel) helppouteen ja siitä lähtien olen halunnut moista jossain projektissa käyttää. ORM (Object Relational Mapper) tarkoittaa siis relaatiotietokannan käsittelyä normaalien olioiden avulla. Hieman eri frameworkkeja tutkittuani päätin kokeilla Doctrinea, josta olen kuullut hyvää puhuttavan ja varsin hyvältähän tuo ensituntumalta vaikuttaa.

Otetaanpa esimerkkinä tuoreimpien uutisten hakeminen. Vanha koodi meni jotakuinkin seuraavasti:

<?php
$db     = DbConnector::connect();
$news   = array();
$query  = "SELECT u.id, u.otsikko AS title, u.teksti AS text, " .
              "COALESCE(s.lyhenne, 'Webmaster') AS author, " .
              "UNIX_TIMESTAMP(u.aika) AS date " .
          "FROM news u " .
          "LEFT JOIN club s ON u.seura_id = s.id " .
          "ORDER BY u.aika DESC";

$db->setLimit($limit, $offset);
$db->query($query);

while ($row = $db->fetchAssoc())
{
  $newsItem = new NewsItem();
  $newsItem->setId($row['id']);
  $newsItem->setTitle($row['title']);
  $newsItem->setText($row['text']);
  $newsItem->setDate($row['date']);
  $newsItem->setAuthor($row['author']);

  $news[] = $newsItem;
}

return $news;
?>

Ok, myönnetään, eipä tuo muutenkaan mitenkään vängästi ole toteutettu aikoinaan. Mutta sitten sama Doctrinea käyttäen (nimesin samalla taulujen kentät uudelleen):

<?php
$news = Doctrine_Query::create()
          ->from("News n")
          ->leftJoin("n.Club c")
          ->limit($limit)
          ->offset($offset)
          ->orderBy("n.news_date DESC")
          ->execute();

return $news;
?>

Hieman hommaa järkeistin myös siirtämällä ajan muotoilun ja puuttuvan nimen muotoilun näkymän puolelle, jolloin ollaan jälleen lähempänä MVC-mallia. Mutta nyt siis tuota palautettua Doctrine_Collection-tyyppistä oliota voi iteroida normaalisti taulukon tapaan, sillä se muistaakseni toteuttaa ArrayIterator-rajapinnan. Yksittäisten olioiden kenttiin pääsee käsiin seuraavilla tavoilla:

<?php
// tulostaa esim. "Olli"
echo $item->author;
echo $item->get('author');
echo $item['author'];
?>

Ja mikäli viiteavaimet ovat kunnossa, myös vierastaulujen kenttien käsittely onnistuu helposti:

<?php
echo $item->Club->name; // tulostaa esim. "Oulun Tarmo"
?>

Näppärää, eikö? Kovin suuria kommentteja en Doctrinesta vielä näin parin tunnin testailun perusteella osaa esittää, mutta vaikuttaa ihan hyvältä. Pienenä haittapuolena tuo käyttämäni 0.11-versio ei osaa lisätä relaatioita luomilleen malleille, kun mallit luodaan käyttämällä jo olemassa olevaa tietokantaa. Esimerkiksi YML-tiedostoista homma onnistuu ongelmitta, mutta nyt eri olioiden (tai taulujen) suhteet täytyy lisätä luokkiin manuaalisesti.

Jatkanpa tutustumista.

elokuu 1, 2008

Eeeeihhh. Juuri kun luulee, ettei SingStoren päivitysten laatu voi enää laskea, niin jälleen London Studios vetäisee ässät hihastaan ja laittaa seuraavanlaisen laululitanian kauppaansa koristamaan:

International

  • Nick Cave & The Bad Seeds and Kylie Minogue: Where The Wild Roses Grow
  • Spandau Ballet: Gold
  • Pendulum: Granite
  • Duran Duran: Save A Prayer
  • Men At Work: Who Can It Be Now
  • Gossip: Listen Up!
  • The Stranglers: Peaches
  • Twisted Sister: We’re Not Gonna Take It
  • The Vines: Ride
  • Gorillaz: 19-2000
  • New Order: Blue Monday 88
  • En Vogue: ’My Lovin’(You’re Never Gonna Get It)
  • Pretenders: Brass In Pocket

French

  • Jehro: Everything
  • Little: J’veux Des Violons
  • Kenza Farah: Je Me Bats
  • Leslie: Mise Au Point
  • Luke: Soledad

Italian

  • Vasco Rossi: Io No
  • Vasco Rossi: Senza Parole
  • Zeropositivo: Fasi
  • 883: Come Mai
  • Vasco Rossi: Basta Poco
  • 883: Una Canzone D’Amore

Norwegian

  • Anne Grete Preus: Millimeter

Spanish

  • Miguel Bosé con Rafa Sánchez: Manos vacías
  • Mikel Erentxun: Mañana
  • Alejandro Sanz: Corazón partío
  • Iván Ferreiro : Turnedo

Jos ei lista tuosta viime kerran tyyliin yhtään parane, eikä tuosta poppoosta The Proclaimersin tapaisia ylläreitä löydy, niin ainoa ostettava biisi taitaa olla tuo Caven ja Kylien mainio duetto. Halvaksi tulee, mutta menkööt.

Luovutin

Filed under: Elämää,Yleistä höpinää — Olli @ 21:41

Kävin tänään luovuttamassa verta ja hyvä niin, sillä viime kerrasta näyttäisi papereiden mukaan kuluneen jo lähes kaksi vuotta. Monesti on ollut tarkoitus mennä, mutta yksin ei ole tullut lähdettyä. Tälläkin kertaa kyselin työkavereita mukaan, mutta ei neula oikein houkutellut vaikka ylistinkin maittavaa ruokatarjontaa. Tälläkin kertaa tarjolla oli kaikenlaista hyvää syötävää ja juotavaa. Viime kerrasta uutta olivat muun muassa herkulliset kolmioleivät ja jäätelö.

Itse luovutus meni ongelmitta, vaikka meinasikin olla lähellä, etten olisi päässyt sideharsorullaa puristelemaan. Viime kerralla hemoglobiiniarvo huiteli jossain 175:n paikkeilla, kun nyt kahden tai kolmen mittauksen keskiarvoksi saatiin ainoastaan 139. Alarajahan miehillä on 135, mutta suuren pudotuksen takia henkilökunnan piti soitella jollekin lääkärille ja varmistaa luovutuksen mahdollisuus. Lisäksi sain rautatabletteja naposteltavaksi kotiin.

Tämänkertainen luovutus taisi olla kuudes tai seitsemäs ja tästä lähtien aion kyllä käydä useamminkin. Onhan se kuitenkin hyvään tarkoitukseen ja tokihan se tarjoilu aina houkuttelee. Ja hyvän mielenkin sieltä aina saa :)

Powered by WordPress