Olen ollut aikeissa kirjoittaa jo jonkun aikaa, mutta muuttokiireet ovat pitäneet erossa blogista. Eli kämppä on nyt sitten myyty, auto annettu eteenpäin ja suurin osa irtaimistostakin lähti uusiin seikkailuihin. Nyt majailemme Berliinin Wilmersdorfissa.
Uuteen ympäristöön tutustuminen on oikeastaan täysin aloittamatta. Juuri nyt täällä on julkisen liikenteen lakko, mikä tarkoittaa sitä, että kävelyä tulee harrastettua tavallista enemmän, mutta ilmanlaatu ei ole parhaasta päästä. Olen pariin kertaan kävellyt toimiston ja kotimme välin, eksyen hilpeästi kummallakin kerralla (osittain tarkoituksella kylläkin). Uusiin ihmisiin olen tutustunut lähinnä toimistollamme, mutta tarkoitus olisi aloittaa saksankielenkurssi paikallisella kansanopistolla ja lisäksi liityin juuri BeWelcome-verkostoon. Täytyy nyt vaan katsoa, että saamme kämppämme tarpeeksi kuntoon, jotta siellä voisi ihmisiä majoittaakin.
Tänään tilasin DVD-kirjastooni hieman Berliini-aiheisia leffoja, mutta Good Bye Lenin! oli harmi kyllä loppu Discshopista. Tällaiset kuitenkin löysin:
Maaliskuu 14th, 2008
Jos kohtuuhintainen perheasunto pääkaupunkiseudulta kiinnostaa, niin myymme omamme pois.
Igglo: Kerrostalo, 3H+K, 77 m2 Vantaa, Martinlaakso
Sen lisäksi, että asunnon pohjakaava on mielestäni loistava, on sieltä kivat näköalat (5 krs), ei remontteja tiedossa, juna-asema 350 metrin päässä päässä, uusittu piha lasten leikkitelineineen, hissi, iso parveke, uusittu keittiö, hyvin autopaikkoja, K-market auki joka päivä klo 8-24, päiväkoteja vissiin kolme kappaletta, jne jne.
Tarkoitus tosiaan oli sanoa, että asunto on mielestäni loistava, mutta suunnitelmanamme on muuttaa Berliiniin ja vuokralaisen ottaminen tuntuu riskaabelilta, kun itse asuu toisessa maassa. Tosin nyt kyllä näyttävät vuokratkin nousevan varsin rajusti pääkaupunkiseudulla, joten eipä tuo nyt ihan pois suljettu vaihtoehto ole.
Hinnoiteltiin kämppä yli 400 euroa alle Vantaan kolmioiden neliöhintoja (1805,19 € / m2), joten hinnan pitäisi olla vähintäänkin järkevä:
Vantaan kt-kolmioiden keskihinta: 2234.43 € / m2
Puhumattakaan jos verrataan koko pääkaupunkiseudun keskimääräiseen neliöhintaan (3017 € / m2, lähde Tilastokeskus).
Jeh. Mutta jos kiinnostaa, niin voi heittää vaikka meilillä.
Syyskuu 19th, 2007
Kyhäsin tuossa viime yönä API:n, joka wräppää Hibernaten DetachedCriterian. Siitä tuli tällainen:
users = listOf(User.class)
.where("accountActive").is(true)
.and("age").isGreaterOrEqualTo(18);
Ja tuon haun voi sitten tarvittaessa suorittaa vaikkapa seuraavasti:
return users.using(session);
Ehkä vähän turhaa kikkailua, mutta ainakin tuota on hauskempi lukea, kuin Hibernaten Criteria APIa.
Heinäkuu 18th, 2007
Etsiskelin tänään Javaan DbC-kirjastoa, joka tarjoaisi vastaavat ominaisuudet kuin Spec#. Optimaalisesti tämä tarkoittaisi siis kääntäjää, joka tarkistaisi pre-, post- ja invariant-säännöt metodeista ja muuttujista.
Lähimmäksi etsimääni pääsivät JML (Java Modeling Language) ja Contract4J. Jälkimmäinen käytti genericsejä ja ajonaikaista AspectJ:hin perustuvaa tarkistusta, kun taas ensimmäinen tarkisti säännöt jo käännösvaiheessa, mutta näytti syntaksiltaan aika rumalta.
Contract4J:
@Invar ("name != null")
private String name;
@Pre ("times > 0")
@Post("$return != null && $return.isValid()")
public String greet(int times) {
JML:
// In JML everyhing is not null by default:
private /*@ spec_public @*/ String name;
/*@
@ requires times > 0;
@ ensures \result != null && \result.isValid();
@ modifies \nothing
@*/
public String greet(int times) {
Itse pidän enemmän genericseistä, mutta tärkeämpää olisi kuitenkin saada virheet kiinni jo käännösaikana.
Paras vaihtoehto tietysti olisi, jos uuteen JSR 305:een saataisiin DbC-säännöt mukaan.
Heinäkuu 11th, 2007
Viime aikoina on kohkattu paljon Javan checked exceptioneista ja muutama kaveri on jopa intoutunut ehdottamaan niiden poistamista Java-kielestä kokonaan. Tämän vuoksi ajattelinkin blogata mainiosta haastattelusta, johon törmäsin joku aika sitten. Haastattelussa Java-kielen kehittäjä kertoo omia ajatuksiaan poikkeusten käsittelystä:
http://www.artima.com/intv/solid.html
” Lots of newbie’s coming in from the C world complain about exceptions and the fact that they have to put exception handling all over the place—they want to just write their code. But that’s stupid: most C code never checks return codes and so it tends to be very fragile. If you want to build something really robust, you need to pay attention to things that can go wrong “
” A programming language can’t solve all the problems. A language can’t guarantee that no matter how screwed up the environment gets the program will survive. But anything the language can do to increase the probability that programs will be reasonably graceful under fire is a good thing. For example, just making people at least willfully ignore return codes helps. In Java you can ignore exceptions, but you have to willfully do it. You can’t accidentally say, “I don’t care.” You have to explicitly say, “I don’t care.” “
” Having one big catch clause on the outside really only works if your exception handling philosophy is simply to die. ”
Heinäkuu 7th, 2007
Aikaisemmat kirjoitukset