In my opinion, SLF4J is the best logging API available, mostly because of a great pattern substitution support:
[- -]
SLF4J is just a façade. As an implementation I would recommend the Logback framework, already advertised, instead of the well established Log4J. It has many interesting features and, in contrary to Log4J, is actively developed.
— ehkä eniten siksi, etten ole aikoihin vaivautunut katsomaan, mitä (java-)lokituskuvioissa on tapahtunut; log4j on tavallaan pysynyt mielessä “teollisuusstandardina”. Joka tapauksessa tuo viitattu artikkeli on ihan hyödyllistä luettavaa, vaikka vain muistin virkistykseksi.
]]>Kirjasto tuo käyttöön mm. annotaatiot @Cacheable ja @TriggersRemove, joiden avulla voi kakuttaa ja ekspiroida jo-kakutettuja metodikutsujen paluuarvoja.
]]>Kuten tapana on Spring-väellä ollut, tuntuu referenssidokumentaation laatu olevan taas parasta.
]]>canvas
-elementille. Esimerkit ovat hyvin vakuuttavia.
Via Michael Rogers: “CouchDB View Performance (Python vs JavaScript)”.
]]>java.util.Date
ja java.util.Calendar
) saattaa joskus tuntua vähän epäintuitiiviselta. Joda vaikuttaa ainakin developerWorksin artikkelin perusteella suoraviivaiselta ja selkeältä sekä toisaalta hyvin monipuoliselta.
Joda löytyy myös jostain julkisesta Maven-repositorystä.
]]>Perinteiseen spring-tapaan referenssidokumentaatio vaikuttaa erittäin laadukkaalta.
Edit: lähde on SpringSource.org.
]]>The whole code will be made open source and extendable both at server side (“robots” may act as machine participants in “Waves”) and client side (gadgets will provide extended user interaction).
The demo is long (1:20h), but quite well prepared with realistic usage scenarios, check it out: Google Wave Developer Preview at Google I/O 2009
]]>Kirja on vielä vaiheessa, mutta varsinkin alun johdatus jar-paketoinnin ja javan classpath-luokkalatausmekanismin heikkouksista on hyvää luettavaa joka tapauksessa. OSGi:n perusasiat esitellään kyllä jo tässä keskeneräisessäkin teoksessa vallan mainiosti. Vielä erityiskiitos siitä, että esimerkit ovat vallan rautalankaisia ja katso! toimivia.
Mielenkiintoisena huomautuksena OSGi:stä mainittakoon, että maineikas Eclipse-IDE perustuu equinox-nimiseen OSGi-toteutukseen.
Edit: kirjan URL korjattu.
]]>JUnitin versioiden 3 ja 4 välillä on rajusti eroa; asiaa käsittelee ainakin developerWorksin (ehkä vanhentunut?) artikkeli An early look at JUnit 4 (syyskuulta 2005) ja devx:n artikkeli Get Acquainted with the New Advanced Features of JUnit 4 vuodelta 2006.
Kannattaa lukea myös developerWorksin JUnit antipatterns, tiivistelmä:
The advent of JUnit has been a boon to developers. Unfortunately, many think it’s enough to learn the JUnit API and write a few tests in order to have a well-tested application. This idea is worse than not testing at all because it leads to a false sense of code health. Learning JUnit is the easiest part of testing. Writing good tests is the hard part.
Edit: fiksumpi linkki devx:n artikkeliin.
]]>javax.script
-paketin olemassaolo ei ole varsinainen uutinen, eikä kai sekään, että Mozilla Rhino -JavaScript-implementaatio on bundlattuna JDK 6:ssa (itselleni kuitenkin oli). Joka tapauksessa, IBM:n mainiossa developerWorks-sarjassa on julkaistu kelpo esitys (osa 1) otsikon aiheesta. Painotus on JEE-palvelin-kuvioissa.
Samaisesta artikkelista löytyy aika hyvä resurssilistaus, jonka avulla saanee tietoa aiheesta kylläkseen.
]]>Edit 2010-01-18: tämän saa nykyään myös Google Chrome -selaimelle.
]]>Viritys sopii hyvin esimerkiksi wiki-editointiin — textarea kun ei tunnetusti ole kovin kaksinen tekstieditori. Tämäkin entry on kirjoitettu gvim:iä käyttäen. Seuraavaksi ostoslistalla on sitten (ainakin) MediaWikin syntaksin päälle ymmärtävä editori.
Via ubuntu-tutorials.com.
]]>Smooks can be used to:
- Perform a wide range of Data Transforms – XML to XML, CSV to XML, EDI to XML, XML to EDI, XML to CSV, Java to XML, Java to EDI, Java to CSV, Java to Java, XML to Java, EDI to Java etc.
- Populate a Java Object Model from a data source (CSV, EDI, XML, Java etc). Populated object models can be used as a transformation result itself, or can be used by (e.g.) Templating resources for generating XML or other character based results. Also supports Virtual Object Models (Maps and Lists of typed data), which can be used by EL and Templating functionality.
- Process huge messages (GBs) – Split, Transform and Route message fragments to JMS, File, Database etc destinations.
- Enrich a message with data from a Database, or other Datasources.
- Perform Extract Transform Load (ETL) operations by leveraging Smooks’ Transformation, Routing and Persistence functionality
Smooks supports both DOM and SAX processing models, but adds a more “code friendly” layer on top of them. It allows you to plug in your own “ContentHandler” implementations (written in Java or Groovy), or reuse the many existing handlers.
The beef of Smooks is Fragment based Data Processing: selectors are used to define the interesting parts of the source (XML or non-XML) messages which are then processed using existing scripting and processing techniques like XSLT, Java code or Groovy.
Smooks can also be used as a Mule transformer.
Via TheServerSide
]]>Blogin karuhkon-asiallisesta ulkoasusta huolimatta käyttäjäkunta saattaa havaita blogin seuraamisen tapahtuvan kätevimmin sen Atom-syötettä seuraamalla sopivaa välinettä käyttäen. Avainsanoille tuotetaan omat feedit, esim. http://href.eikun.org/tag/vulnerability/.
]]>