Tag Archives: java

Detta har hänt i sommar

Posted on by

För er som inte knarkar tekniknyheter lika okontrollerat som jag gör har jag nöjet att få summera de senaste 5-6 veckorna inom områdena Java, Ajax, Scrum och annat av intresse. Tro mig, jag har gallrat stenhårt.

  • JUnit 4.4 släpptes nyligen. Nyheterna var inte speciellt upphetsande.
  • En av mina favoritbloggare, Cederic Beust, har skrivit om dynamiska och statiska språk. Inte mycket text, men mycket intressant. Väl värt ett par minuter.
  • Av någon anledning är kodformattering mig nära hjärtat, så det var med visst nöje jag noterade att Slashdot hade en tråd om detta i somras. David Herron har bloggat i samma domäner, vilket är kul, även om han verkar ha snott titeln på sitt inlägg från mig.
  • Medlemmar från Ajax-ramverket Dojo har skrivit en artikel med namnet "Why Dojo", som jag tror alla som står i valet och kvalet att välja Ajax-ramverk nog bör läsa. Dojos event-modell är väldigt cool, och tydligen har den blivit extra bra i senaste 0.9 versionen av Dojo.
  • En annan Ajax-artikel med namnet "Write scalable Comet applications with Jetty and Direct Web Remoting" borde intressera alla som försöker välja Comet-ramverk. Go DWR Go!
  • ThoughtWorks har släppt en "agile project management software" med namnet Mingle. Vet inget mer om detta, men Henrik kanske känner sig manad?
  • Matt Raible har summerat "Open Source Web Frameworks’ Mailing List Traffic – June 2007", dvs hur mycket trafik är det på de olika ramverkenas mailinglistor. Ganska intressant, om man försöker avgöra vartåt det blåser. Till min stora glädje ligger Wicket bra till, Liksom GWT, men mest trafik har Ruby on Rails, vad man nu kan dra för slutsatser av det?
  • W3C funderar på att inte låta HTML 4 övergå till XHTML, eftersom de verkar vilja göra en femte version av HTML. Vad ska man tro om det?
  • Specifikationen för Java EE 6 har släppts. Troligen kommer de första implementationerna först i början av 2009.
  • Jag försöker hålla ett öga på vad som skrivs om Scala, då jag fått intrycket att det kanske är ett bra språk för framtidens multi-core processorer, så artikeln "Is Scala the new Groovy" kunde jag naturligtvis inte undvika. Sedan finns det de som tror att Terracotta är rätt väg att skriva multi-core applikationer i Java, så "Hello Terracotta" kanske är rätt ställe att börja?
  • Vill man läsa mer om JavaScrips framtid så kan man läsa här. Daniel?
  • För oss anhängare av Google Calendar är nog artikeln "Black belt scheduling with Google Calendar" oundviklig.
  • Vad kommer efter social networking? Själv har jag inte en aning, eftersom jag känner mig helt bakom flötet när det gäller Facebook, YouTube, MySpace, Twitter, etc etc etc.

Privat har jag varit en vecka i Småland, 4 veckor i Thailand, samt en vecka i Västerbotten, där jag och mina två söner besteg fjället Jengegietje, 1477 meter över havet, i lysande väder. Shorts och T-tröja räckte på toppen!

Om att parsa CSV filer

Posted on by

Att parsa CSV (Comma Separated Values) kan tyckas trivialt:

Bananer,3,22.30

Men om man vill tillåta komman i värdena, så blir det inte lika roligt:

Bananer,3,"22,30"

Jag browsade runt lite på nätet och fastnade för opencsv. Det är

  • Open source
  • Väldigt litet (2 klasser, en JAR fil på 16 KB)
  • OK dokumentation
  • Version 1.7, dvs inte beta
  • Utvecklaren har en aktiv blog
  • Populärt (ca 50 nerladdningar per dag på SourceForge)

Som genom magi fick jag samtidigt ner en lista på de kriterier jag använder när jag utvärderar ramverk! 🙂

XX Framework – ett nytt webbramverk för Java

Posted on by

Eller nytt och nytt, har funnits i ett drygt år, verkar det som, men jag har aldrig hört talas om det förut. XX i XX Framework står för XML och XSLT.

The primary goal of the XX Framework is to handle typical application CRUD (create, retrieve, update, delete) with little or no Java programming. Instead of telling the application how to retrieve and how to display the data, we configure what to retrieve (through XML) and what to display (through XSLT).

Inget om man har aversioner mot XML, tydligen, men kanske helt rätt om enkel CRUD är ens sweet spot. Fast då kanske man ska använda Trails istället?

Kanske är det Scala?

Posted on by

Jag har tidigare bloggat om vilket språk som kanske kan ta oss med i multi-core racet. Erlang skulle kännas som ett nederlag (några av er kanske förstår varför). Ruby hypas ofta som nästa stora språk, men är det något att hålla i handen när man surfar loss på flera cores? Jag tvivlar, av ren princip, utan att egentligen veta. När ska man få vara ologisk och partisk om inte vid valet av nästa språk att riskera sin karriär på?

Så nyss bankade jag pannan i en artikel skriven av Bill Venners, Martin Odersky och Lex Spoon med namnet First Steps to Scala. Inledningen är mycket intressant:

Scala is a statically typed, object-oriented programming language that blends imperative and functional programming styles. Scala is designed to integrate easily with applications that run on modern virtual machines, primarily the Java virtual machine (JVM). The main Scala compiler, scalac, generates Java class files that can be run on the JVM. However, another Scala compiler exists that generates binaries that can be run on the .NET CLR, as Scala is designed to integrate with both the Java and .NET worlds. In the Java world, the Scala language can be used alongside the Java language—either as an alternative to Java—to build applications that run on the JVM.

Scala was developed starting in 2003 by Martin Odersky’s group at EPFL, Lausanne, Switzerland. Previously, Martin had been active in the Java field. He co-designed the first version of Java generics and was the original author of the current javac compiler. The work on Scala was motivated by the desire to overcome limitations imposed by backwards compatibility with Java. So Scala is not a superset of Java, but it retains seamless interoperability.

Mmmm, kanske en Rocket Day om detta i Crisps regi?

Spring Batch ser lovande ut

Posted on by

På mitt nuvarande uppdrag hos Keybroker har vi skapat ett rätt avancerat batch-processing ramverk, byggt på Spring och Quartz. Nu verkar det som om Spring håller på att bygga ett eget sådant ramverk med namnet Spring Batch. Deras arkitektur ser lovande ut, men tyvärr finns inte så mycket på plats ännu.

Egentligen ser jag detta som ett misslyckande för Quartz, för det var länge sedan jag stötte på ett ramverk som var i så desperat behov av en arkitekturell översyn. På ytan ser det enkelt ut, men ju djupare man dyker i dess features, ju mer desperat blir man. Den nya RetryPolicy klassen ser ut att kunna ta bort orsaken till mycket av den tandagnisslan jag tvingats göra den senaste tiden.

Characteristics of a Good DAO

Posted on by

Eric Burke har i sin blog skrivit ner 13 saker man bör tänka på när man skriver sina DAO (Data Access Object) klasser. Det verkade vara en bra sammanfattning, tyckte jag.

Ant eller Maven?

Posted on by

Matt Raible har summerat konverteringen av AppFuse från Ant till Maven. Vad kan man säga, annat än "Hjälp"?

Suger JSF?

Posted on by

Matt Raible, han som startade AppFuse, har bloggat med rubriken "JSF still sucks?" Jag har själv inte använt JSF i produktion, utan bara labbat med det, och inte speciellt gillat det jag sett. Någon med avvikande åsikt?

Closures för Java SE 7

Posted on by

Jag har inventerat de artiklar som finns på nätet som beskriver de fyra (!) olika förslag som finns på hur closures ska se ut för Java. Jag tror att dessa fyra artiklar bäst beskriver vad som är meningen, och hur det kan bli i Java SE 7:

http://artima.com/weblogs/viewpost.jsp?thread=202004
http://crazybob.org/2006/10/java-closure-spectrum.html
http://getahead.org/blog/joe/2007/03/15/emerging_java_technologies_at_qcon.html
http://gafter.blogspot.com/2006/08/whats-point-of-closures.html

Är Wicket nästa stora webbramverk för Java?

Posted on by

Genom åren har jag skrivit webb applikationer med Servlets, JSP och nu senast Tapestry, som jag länge sett som det bästa av dem alla, mest för att det är komponentbaserat och för att template filerna är plain vanilla HTML. Min senaste brottningsmatch med Tapestry var tyvärr inte helt angenäm. Ofta var det enkelt att använda, men ibland blev lösningarna oroväckande bakvända. Dokumentationen för Tapestry är inte heller helt tillfredsställande, och jag förstår fortfarande inte page rewinding!

Sedan Wicket kom för något drygt år sedan har jag varit mycket sugen på att prova det. För några veckor sedan såg jag ett Java jobb här i Stockholm där de sökte personer kunniga i Wicket!

Hur som helst så har Peter Thomas skrivit en lång utvärdering av Wicket gentemot Spring MVC, och från min synvinkel är den ganska rättvis. Jag har bara sett Spring MVC på avstånd, men inte blivit imponerad.

Assessing the Survivors of the Java IDE Wars

Posted on by

Det finns numera bara tre utvecklingsmiljöer kvar för Java: Eclipse, NetBeans och IntelliJ. (Sorry Oracle, men jag känner inte en människa som använder er IDE). Denna artikel utvärderar dem mot varandra på flera områden, och min slutsats är att IntelliJ är bäst, följt av NetBeans, medan Eclipse kommer sist, vilket inte förvånar mig. Det är inte helt lätt att avgöra vem totalvinnaren är, eftersom de har olika styrkor på olika områden, men jag ångrar inte de kronor jag lagt ut på min IntelliJ licens.

Gratiskurs: Java för C++ programmerare

Posted on by

För ett år sedan höll jag en endags kurs om Java för en grupp C++ programmerare. Sedan dess har materialet legat på hårddisken oanvänt. Så jag putsade till det lite, skrev lite nytt material och lade precis upp det på nätet i S5 format.

Man kan med viss rätta tycka att jag är ett decennium för sent ute, men Java är ett rörligt mål, och jag är ganska nöjd med resultatet. Jag tycker att det är en grundlig genomgång av vad Java är och hur det skiljer sig från C++. Jag har en gedigen bakgrund inom C++, så jag tror jag fått med det mesta, förutom att jag inte hängt med så bra i vad som sker i C++ svängen de senaste åren. Även C++ är ett rörligt mål, tydligen.

Server push av aktiekurser

Posted on by

Yahoo Finance har en mycket snygg server push av aktiekurser uppe sedan några månader tillbaka. Inte open source, men en bra källa för inspiration. Lightstreamer har också en mycket snygg demo tillgänglig, med kod, men deras server är inte open source. Svenska Trapets har en liknande produkt. Snygg, men inte heller den open source. Jag har också en demo tillgänglig, med source, byggd på open source ramverket DWR. Långt ifrån snygg, men man kan sno koden och bygga vidare på egen hand.

Spring 2.0 beskrivet av Rod Johnson

Posted on by

Rod Johnson har skrivit en jättelång artikel om det som kommer i Spring 2.0. Ganska obligatorisk läsning, skulle jag förmoda, om man är seriös Spring-användare.

Prediction Markets och Scrum Sprint Planning

Posted on by

Jag har vagt känt till begreppet Prediction Markets, där man sammanfattar många individers förutspåelser om aktiekurser, vilken teknik som kommer att lyckas och misslyckas, och andra svåra frågor där enskilda individers kunskap ofta inte är tllräcklig, eller något man generellt sett inte litar på. Vem litar på enskilda aktieanalytiker, till exempel.

Stötte nyligen på en artikel i ämnet som sammanfattar ett event i Silicon Valley om just detta ämne, anordnat av Yahoo. Det visar sig vara ganska mycket på gång, bland annat finns det ett open source ramverk skrivet i Java med namnet Zocalo. En kille från Microsoft berättade att man använt tekniken för att förutspå testplanering, där det visat sig att man på detta sätt förutspått att planen inte skulle hålla tidsramen. Och då slog det mig att man skulle kunna använda anonyma formulär på detta sätt för att fråga medlemmarna i ett Scrum team om de tror på tidsramarna för en sprint. Kanske tror man inte på tidsplanen, men vill inte säga något om det för att inte verka negativ eller långsam. Får man svara på detta anonymt, så kanske det kollektiva svaret blir bättre än det som framkommer under mötet då tidsplanen tas fram?

Min Ajax DWR kurs är nu online, med source

Posted on by

Har tankat upp S5 slides, demo-exempel online, samt all källkod med Apache 2.0 licens. Jag kan speciellt rekommendera en titt på exemplet som använder sig av Server Push (Comet), Reverse Ajax och Scriptaculous effects (rör muspekaren över den tomma tabellen för att starta den). Det visar vad som med egentligen ganska enkla medel är möjligt att göra idag med DWR. Kursmaterialet är på Svenska. Koden är kompatibel med det som kommer att bli release 2.0 av DWR.

Säg till om ni vill att jag ska hålla kurs för er. Annars, håll till godo!

UPDATE 2008-06-26: Har slagit av den över sommaren, eftersom den drar en del resurser på min host, och kanske stör min packlista. Startar den igen efter semestern.

Nytt som händer i Spring

Posted on by

Matt Raible har bloggat massor från konferensen The Spring Experience i Hollywood. Trots att han har skrivit en bok om Spring så märker man att inte ens han hänger med. Kombinationen Spring och OSGi ser väl annars ut att kunna vara ungefär så dynamiskt som det någonsin kan bli… 😎 En hel del är mycket intressant, och Raible är sjukt kunnig i allt som handlar om webbutveckling i Java.

Java SE 6 (Mustang) släppt !!

Posted on by

Java 6 släpptes för några timmar sedan. Danny Coward har en del info på sin blog. Downloadsidan säger Release Candidate, men det ska vara for real.

Bra kort artikel om det nya i JUnit 4

Posted on by

JUnit 4 släpptes för ett tag sedan, efter att ha varit i praktiken abandonware några år. De tvingades röra på sig, efter att TestNG kom som ett direkt hot mot de-facto-standarden. Själv har jag inte haft tid att följa upp vilka ändringarna är i JUnit 4, tills jag hittade denna mycket informativa artikel. Det är väl spenderad tid att läsa in sig i vad som ändrats.

Terracotta eller Tangosol för Java clustering

Posted on by

Terracotta har bestämt sig för att göra sin clusteringsteknik open source. Den jämförs med Tangosol Coherence. Finns det någon med erfarenhet av dessa som kan berätta om de är lätta att sätta upp och fungerar bra?