Vaadin tarjoaa Swingiä Web-sovellusten kehitykseen

Web-sovellusten kehitys Javalla on täynnä erilaisten frameworkkien kuten Strutsin, Springin ja JSF:n hyödyntämistä, joista jokaisessa on hyvät ja huonot puolensa ja varsinainen toteutus on usein sekoitus HTML-merkkausta ja koodia. Java EE -sovelluskehitystä voi kuitenkin katsella myös hieman erilaisesta näkökulmasta: Suomalainen IT Mill on rakentanut kokonaisuuden nimeltä Vaadin, joka tuo Javan Swing -maailman Web-sovelluksiin. Lopputuloksena on sovelluskehys, jossa HTML:n koodaaminen unohdetaan lähes täysin ja sovellusta toteutetaan samalla periaatteilla kuin työpöytäsovelluksia, joka on kätevää, jos tykkää Java Swing -tyylisestä sovelluskehityksestä.

Vaadinta voi lyhyesti kuvata sanomalla sen olevan Swing-koodausta sekä hyvässä että pahassa. Web-sovelluksen toteutus Vaatimella on suhteellisen helppoa, mutta toisaalta se myös Swingin tapaan rajoittaa käyttöliittymäsuunnittelua. Toteutuksessa HTML:n ja komponenttien säätäminen jää pois, jolloin toteuttajat voivat keskittyä varsinaiseen toimintaan kuuntelijoiden ja tapahtumien parissa. Kokonaisuutena kehitys on tavallaan selkeämpää kuin esimerkiksi JSF:llä, jossa toiminnot hajoavat sekä sivuille että Java-luokkiin ja erilaisia säädettäviä XML:iä on useita. Totuus ei tietenkään ole aivan näin yksinkertaista, mutta melkein.

Sovelluskehityksen osalta Eclipselle on saatavilla WYSIWYG-editori ja sovelluksen debuggaus onnistuu normaalisti debug-moodissa ja käyttöliittymän osalta Firefoxin Firebug-lisäosalla, eli sen osalta ei ole mitään ihmeellistä. Käytettävissä on useita erilaisia komponentteja ja hyvä dokumentointi, joilla toimintoja rakentaa. Tutoriaalien avulla pääsee helposti alkuun ja näkee mistä asiassa on kyse. Vaadin on lisensoitu avoimen lähdekoodin Apache License versio 2.0 -lisenssillä, joten tarvittaessa sen laajentaminen ja bugien korjaaminen on mahdollista. Saatavilla on myös maksullista tukea ja palveluita.

Vaadin perustuu Google Web Toolkitin päälle, jota käytetään selaimelle piirtämiseen ja GWT:hen verrattuna Vaadin-sovellukset pyörivät palvelinpuolella, kun GWT on selainpuolen sovellus. Vaadin-sovellus on paljolti sidottu JavaScriptiin ja siinä on mielestäni myös sen heikoin lenkki, sillä suorituskyvyllisesti käytetty lähestymistapa ei ole kovin tehokas. Etenkin monimutkaisilla käyttöliittymäkomponenteilla ja ulkoasuilla selaimen JavaScript-suorituskyky tulee äkkiä vastaan, vaikkakin tällä saralla on etenkin Googlen Chrome ja Safari kunnostautuneet. Muuten komponentit toimivat hyvin riippumatta käytettävästä selaimesta.

Vaikka Vaadin tavallaan yksinkertaistaa rikkaiden Internet sovellusten (RIA) tekemistä, pidän itse enemmän perinteisestä Java Server Facesiin (JSF) pohjautuvasta Web-kehityksestä. JSF:n kanssa käyttöliittymän koodi on erikseen HTML:ssä, johon on lisätty tarvittavat sidokset ja dynaamisuutta. Tietenkin tässäkin tavassa on omat ongelmansa, etenkin kun JSF 1.2 ja käyttöliittymäkomponentit ovat mitä ovat. Ehkä taustani Web-koodaajana vaikuttaa siihen, että pidän enemmän siitä, että pääsen helpommin näkemään ja säätämään käyttöliittymää HTML-tasolta, eli tekemään juuri sitä, mistä ”perinteiset” Java-koodarit eivät tykkää. Ainakin saan tarkalleen mitä haluan, jos osaan sen HTML:llä, CSS:llä ja käytössä olevilla komponenteilla toteuttaa.

Vaadin on kuitenkin kätevä tapa toteuttaa Web-sovelluksia ja sillä saa kohtalaisen nopeasti aikaan hyvän näköistä jälkeä helposti. Toisaalta kuten kaikissa sovelluskehyksissä, on myös Vaatimessa asioita, jotka aiheuttavat kehittäjälle harmaita hiuksia. Nimi Vaadin tarkoittaa myös naaraspuolista poroa ja sanaa voidaan käyttää esimerkiksi lauseessa ”Vaadin parempia käyttöliittymiä!”.

Näköjään seuraava Vaadin Developer Meetup pidetään 3.12.2009 Pitäjänmäellä Helsingissä Logican tiloissa (ilmoittautuminen 26.11.2009 mennessä).

Esimerkkinä silloin vielä IT Mill Toolkit -nimellä tunnetulla Vaadin-kehyksellä hahmoteltu sähköpostisovellus:

iMail iMail

Stund tuo kesää syksyn harmauteen

Syksyn ja kehnojen pyöräilykelien saapuessa voi todellisuutta paeta videoiden maailmaan, joskin katsoessa maailmalla kuvattuja pätkiä, alkaa kaipaamaan myös kotimaahan hieman isompia korkeuseroja. Vaikka en varsinaisesti ole freeriden ja hyppymisen suurin ystävä, on Stund -TV-sarjassa vedetty setti hienoa katseltavaa. Sarjan pääjehut Steve Romaniuk ja Mike Kinrade yhdessä kavereidensa kanssa vetävät kyllä isosti upeissa maisemissa. Tässä alkaa jo itsekin odottamaan kesää, että pääsisi taas pyörän päälle metsässä rymistelemään.

Stund -TV-sarjasta on ilmestynyt jo yksi kausi ja toinen on jokin aika sitten juuri alkanut. Sarjan videot ovat katsottavissa Pinkbikessä Stund-blogissa. Aikaisemmin blogissa linkitettyjä videoita ei vanhoilla linkeillä löydy, vaan ne pitää etsiä erikseen (listassa). Tähän mennessä ovat ilmestyneet:

Ensimmäisen kauden jaksot voi kätevästi ladata omalle koneelle MTBView.com-sivustolta myöhempää fiilistelyä varten. Ajopaikkoja ovat ilmeisesti Utah, Kelowna, Kamloops, Van/Whistler ja Nelson. MTBView.com-sivustolta löytyy myös muuta mukavaa katsottavaa kuten Drop in -sarjan viides kausi ja muita pyöräilyaiheisia videoita. Kun syksyn harmaus ja ankeus yllättää, kannattaa siis suunnata Internetiin ja haaveilla edessä odottavasta kesästä ja hetkistä pyörän päällä.

Uutta kuosia ”work in progress”-menetelmällä

Kun eräät hankkivat blogilleen uuden kuosin ulkoistamalla suunnittelu- ja toteutusprosessin, toiset tykkäävät tehdä sen itse syöksymällä koodiin ja virittämällä asiat haluamallaan tavalla. ”Kun itse tekee, saa mitä tulee” -työskentelytavalla saa muun muassa teeman suomenkieliseksi, mutta tiedetäänhän se jo vanhan sanonnan tapaan, ettei suutarin lapsilla ole kenkiä.

Tällä kertaa lähestyn sivuston ulkoasun uudistamista hieman likaisesti ”work in progress” -näkökulmasta, eli tarkennan ja visualisoin asioita sitä mukaa, kun niitä ehdin ja keksin. Ei mitenkään nätti lähestymistapa, mutta kehittäjän kannalta kätevää, koska WordPressin ulkoasun virittäminen on hieman hankalaa ilman vastaavaa testikappaletta. Nyt näkee aina miltä lopputulos näyttää oikeasti.

Edelleen ulkoasun kokonaisilme on suhteellisen askeettinen, mutta aika näyttää mihin suuntaan ilme etenee. Sivuston aikaisemmatkin teemat ovat muutamaa poikkeusta lukuun ottamatta olleet suhteellisen hillittyjä ja sama trendi jatkuu varmaan edelleen. Tekniikan osalta kokeilussa on joitain CSS 3:n ominaisuuksia kuten @font-face, text-shadow ja box-shadow.

Helvetireader muuttaa Google Readerin minimaaliseksi

Googlen Reader on näppärä web-sovellus uutissyötteiden lukemiseen, mutta sen ulkoasu on perinteistä Googlea eli aivan kauhea. Onneksi eri selaimissa voi lisäosien avulla lisätä haluamilleen sivuille omia lisäominaisuuksia ja niinpä Helvetireader-skriptin avulla Google Readerkin muuttuu huomattavasti mukavammaksi.

Helvetireader muuttaa Google Readerin ulkoasun minimaaliseksi: syötteiden lukemiseen liittymättömät asiat piilotetaan hienovaraisesti ja värimaailmasta muokataan hillityn harmaa. Helvetiredear-käyttäjäskripti toimii kaikissa käyttäjäskriptejä tukevissa selaimissa kuten Firefoxissa Greasemonkey-lisäosan avulla, Operassa, Google Chromessa ja Webkit-pohjaisissa selaimissa (Safari) GreaseKit-lisäosan avulla.

Myös aikaisemmin Google Readerille oli saatavilla gReader-teema, mutta sen ylläpito on lopetettu. Google Reader muuttuu ajoittain ja teemojen pitää aina sen mukaa päivittyä. Tähän mennessä Helvetireader on päivittynyt hyvin ja uuden version ”lataaminen” on vain sivun päivityksen päässä, kun skriptiä ei asenneta vaan se haetaan Internetistä.

Asioita, joita konsolipelikehittäjien pitäisi korjata

Konsolipelaaminen on helppoa, mutta se voisi olla vielä yksinkertaisempaa. Pelikehittäjät ovat tehneet, varmasti ihan hyvällä tarkoituksella, muutamia asioita turhan hankalaksi ja pienillä muutoksilla pelaamisesta saataisiin vielä kitkattomampaa. Xbox Sam on listannut 11 ärsytyksen aihetta ja tässä omat poimintani kyseisestä listasta.

  1. Älä kysy minulta missä pelitalletukseni on, kun minulla on vain yksi tallennusväline liitettynä konsoliin. On aika yksiselitteistä missä se voisi olla.
  2. Laske minut hitaasti takaisin peliin, sen jälkeen kun olen laittanut pelin tauolle ja haluan jatkaa. Muutama sekunti olisi tarpeen, jotta sormet löytävät oikeille näppäimille takaisin. Etenkin musiikki- ja ajopeleissä tauolta palaamisen jälkeen peli menee puihin.
  3. Salli minun ohittaa välikohtaukset, etenkin jos samoja kohtauksia pitää katsella usealla eri pelikerralla kokonaan uudestaan.
  4. Anna selkeä visuaalinen etenemispalkki ladatessa, sillä haluaisin tietää ehdinkö latausajalla hakea lisää juotavaa keittiöstä vai en. Pelkkä pyörivä ympyrä ei ole riittävä.
  5. Kokoa vaikeustasosaavutukset yhteen nippuun. Jos pelaan peliä vaikealla-tasolla, en varmaankaan tule sitä pelaamaan uudestaan helpolla tai keskivaikealla.

Lisäksi myös konsolien valmistajilla eli Microsoftilla ja Sonylla on hieman kehitettävää käyttäjäystävällisyyden osalta. Molemmat toki haluavat, että pelaaja ostaa juuri heidän laitteensa, mutta pelaajan lukiuttaminen yhteen alustaan on hyödytöntä. Harva ostaa kuitenkaan molempia laitteita.

  1. Mahdollista verkkopelaaminen eri konsolimerkkien kesken. Useat pelit ovat saatavissa molemmille konsoleille, joten miksi ei voisi myös mahdollistaa verkkopelaamisen eri konsolien omistavien pelaajien kesken.
  2. Salli verkkopelaaminen ilman erillistä maksua. Pelistä ja nettiliittymästä on jo maksettu, joten miksi pitäisi vielä maksaa erikseen pelaamisesta.
  3. Käytä yhtenäistä standardia peliohjainten liittämiseksi ja käyttämiseksi konsolissa. Jos pelaaja on jo ostanut esimerkiksi Rock Bandin ohjaimineen Xbox 360:lle, ei hän varmaankaan osta sitä myös PlayStation 3:lle vain sen takia, että pääsisi pelaamaan kaverin kanssa verkossa.
  4. Älä hinnoittele konsolisi lisälaitteita aivan järjettömin hinnoin, sillä kohtuullisella hinnalla myös myynti kasvaisi.

Konsolipelaamisessa on varmasti monia muitakin asioita jotka ärsyttävät ja kaipaavat parannusta, mutta olisihan se elämä aivan turhan helppoa, jos kaikki vain toimisi.

Rock Bandissa rummut pärisee ja kitara laulaa

Erilaiset musiikkipelit ovat suosittuja ja Guitar Hero: World Touria pelattuani sen ymmärrän. Vaikka välillä kappaleiden rämpyttäminen on aikamoista tahkoamista, on siinä jotain koukuttavaa. Niinpä huomattuani Rock Bandin soittimien olevan tarjouksessa, piti sellaiset hankkia. Mukaan lähti myös Rock Band -peli, jolla rumpujen, kitaran ja mikrofonin -soitinpakettia voi hakata. Vielä jos löytäisi olohuoneesta sopivat paikat kaikille pelivälineille: parille kitaralle, rummuille ja ratille sekä polkimille.

Rock Band on maineeltaan hieman enemmän fiilispeli kuin Guitar Hero, joka vastaavasti painottuu enemmän suorittamiseen, joka kyllä myös näkyy. Rock Bandilla soittaminen on enemmän viihteellistä, vaikka suorittaminen siinäkin on tähtien ja pisteiden muodossa osana peliä. Kokonaisuutena molemmat soittopelit ovat aika lailla samalla viivalla ja kappaleita on enemmän tai vähemmän hyviä. Rock Bandissa on tosin parempi soittolista, kunhan kappaleet saa ensin soitettua auki. Soitinosastolla pelintekijät ovat kerrankin olleet pelaajien puolella, sillä sekä Rock Bandin että Guitar Hero World Tourin soittimet toimivat molemmissa peleissä, vaikka jotain eroja toiminnassa toki on.

Kitaran osalta Rock Bandin peliväline on selkeästi epätarkempi, koska strummista puuttuu naksahdus, ei lyönnin osumisesta saa samanlaista palautetta kuin Guitar Herossa. Toisaalta kitara on tällöin myös äänettömämpi ja enemmän ”kitaramaisempi”, jolloin voi keskittyä enemmän soittamiseen. Myös fretsit eli soitinnappulat ovat Rock Bandin kitarassa mielestäni heikommat, koska ne ovat koko kitaran kaulan levyiset ja turhan lähellä toisiaan. Etenkin sinisen ja oranssin napin kanssa on välillä ongelmia tuplapainalluksena. Kooltaan soittimet ovat yhtä suuria. Rock Bandin kitara on lisäksi varustettu piuhalla ja soitinpaketin mukana tuleekin virrallinen USB-jakaja soitinten liittämiseksi konsoliin. Onneksi pelisarjojen kitarat ovat yhteensopivat, sillä langattomalla Guitar Heron kitaralla kappaleiden soittaminen sujuu helpommin, vaikkakin rämpytyksen säestämänä.

Rummuista en ole Guitar Heron vastineita testannut, mutta ne muistuttavat enemmän oikeita rumpuja pelteineen, kun taas Rock Band luottaa neljään lautaseen. Hinnassa on toki hieman eroa, sillä Guitar Heron soitinpaketti maksaa yli kaksi kertaa enemmän. Rock Bandin rummut ajavat hyvin asiansa, vaikka soittaminen onkin aikamoista hakkaamista ja ääntä lähtee. Pitäisi ilmeisesti hieman hiljentää niitä laittamalla esimerkiksi vaahtomuovia rumpukapuloiden päähän. Netissä on myös ollut juttua, että rummut ja etenkin bassopedaali hajoaisivat herkästi, mutta tämä on ilmeisesti ensimmäisten erien ongelmia. Tiedä sitten, mutta ainakin kitara helisee jo uutena.

Laulu-osiota ei ole vielä tullut testattua, mutta kuulemma se on myös ihan hauskaa. Sujuisi varmasti paremmin muutaman pitkän huurteisen jälkeen.

Eivät erilaiset musiikkipelit pelaajista muusikkoja tee, mutta viihteellistä toimintaa se kuitenkin on, kuten asia on oivallisesti xkcd-stripissä kiteytetty. Ostoslistalle lähteekin Rock Band 2.

Death Rally julkaistu sovitettuna nykykoneille

Remedy Entertainment on julkaissut mainion Death Rally -pelin uudestaan ilmaisversiona ja sovitettuna nykyaikaisille tietokoneille. Hieno kulttuuriteko, sillä Death Rally oli aikanaan 1990-luvun puolessa välissä mahtavaa pelattavaa.

Alkujaan 1996 julkaistu Death Rally on ylhäältä päin kuvattu autopeli, jossa tavoitteena on voittaa kisoja, kerätä rahaa ja hankkia parempia osia autoon. Kilpailut ovat täynnä vastustajien romuttamista, lyijyn täytteistä katkua pellin kyljessä ja tiukkaa ajamista. Uudistettu peli toimii Windows XP SP3, Vista ja Windows 7 -käyttöjärjestelmillä.