1. Maven 2 – Proxy

    För ett Är sedan letade jag för fullt efter ett program som skulle hjÀlpa mig att sÀtta upp en lokal Maven 2 proxy. En Maven 2 proxy bör köras pÄ en dator inom intranÀtet för att sÀkra tillgÄngen till nödvÀndiga jar-filer samt fungera som en plats att internt distribuera inköpta bibliotek och egenutvecklade projekt. Detta visade sig tyvÀrr vara alltifrÄn lÀtt. I slutÀndan gav jag upp försöket att migrera mitt projekt till Maven 2, till stor del för att det var sÄ krÄngligt med det interna repositoryt. Men det var för ett Är sedan.

    IgÄr fick jag anledning att pÄ nytt kolla lÀget pÄ proxy-fronten, och till min glÀdje finns det nu ett flertal projekt igÄng som utvecklar proxy-programvaror just för Maven 2.

    Den första jag kikade pÄ var Maven Archiva som just nu finns tillgÀnglig i version 1.0 Beta 1. Tankade genast ner denna, packade upp och körde igÄng den bundlade jetty-containern. Man behöver alltsÄ inte ens ha en installerad webcontainer för att köra sitt eget Maven 2 repository! Dock hade jag vissa problem med konfigurationen av anvÀndare och fick inte riktigt till sÄ att den tillÀt anonym read-access. Archiva klarar sÀkert av detta, men just dÄ ville det sig inte för mig.

    Lite otĂ„lig sĂ„ provade jag nĂ€sta programvara pĂ„ tur, Artifactory (version 1.2.2). Lika enkelt att fĂ„ igĂ„ng, den har ocksĂ„ sin egen bundlade jetty-container, bara att starta den med bat/sh-skriptet. NĂ€sta steg var att peka om Artifactory mot min web-proxy för access till central-repositoryt samt konfigurera min lokala Maven 2-installation att anvĂ€nda Artifactory’s repository istĂ€llet för central-repositoryt. NĂ€sta steg? Finns inget nĂ€sta steg, för det fungerar!

    Varje gÄng Maven 2 frÄgar Artifactory efter en jar-fil sÄ kollar den i sin lokala cache, finns den inte dÀr sÄ laddas den automatiskt ner frÄn repo1.maven.org och lagras i cachen. Har man proprietÀra jar-filer sÄ kan man ladda upp dem till Artifactory i det medföljande webbgrÀnssnittet sÄ finns de direkt tillgÀngliga för alla med access till Artifactory (lÀmpligtvis resten av utvecklarna i ditt projekt). I webbgrÀnssnittet kan man söka och blÀddra efter allt som finns lagrat i cachen samt administrera anvÀndare.

    Det finns bra dokumentation pĂ„ Artifactory’s hemsida, men följande guide (SettingUpMavenRepository) kan ocksĂ„ vara till hjĂ€lp.

    Jag menar inte hÀr att Artifactory Àr den bÀsta Maven 2-proxyn som finns dÄ jag bara hunnit testa tvÄ stycken Àn sÄ lÀnge. Dock fungerar den tillrÀckligt bra för mig och det rÀcker just nu.

    Proximity Àr en annan Maven proxy, men den Àr Ànnu inte helt fÀrdig utan bara slÀppt i en Release Candidate 8.

  2. Red Hat Developer Studio (beta 1)

    RedHat har nyligen slÀppt en första beta pÄ deras Eclipse-baserade utvecklingsverktyg som Àr förkonfigurerat för JBoss Enterprise Middleware och RedHat Enterprise Linux. Det hela pÄminner lite om att ladda hem och installera NetBeans med bundlad Glassfish. Vid installation sÄ installerar den en lokal JBoss Application Server 4.2 som Àr förkonfigurerad i RedHat Developer Studio. NÀr du ska skapa ett nytt projekt sÄ hittar du projektmallar för JBoss Seam, Spring, JPA och annat (se bilden nedanför). Allt sÄnt vi behöver finns alltsÄ klart och fÀrdiginstallerat frÄn början.

    RedHat Developer Studio - Projektmallar

    I princip sĂ„ Ă€r RHDS samma sak som Eclipse + JBoss IDE + Spring IDE, fast lite snyggare paketerat. För att vara en första beta sĂ„ fĂ„r man Ă€ndĂ„ sĂ€ga att de kommit ganska lĂ„ngt, betydligt lĂ€ngre Ă€n vad t.ex. en ”ren” Eclipse med WTP 2.0 (eller nĂ„got annat gratis plugin för EJB 3 stöd) har kommit. Antagligen beror detta pĂ„ att det hela Ă€r paketerat med en applikationsserver förkonfigurerad, samt att det finns fĂ€rdiga, fungerande (nĂ„ja.. de kommer nog fungera allihop i denna skarpa versionen) projekt-mallar för de vanligaste typerna av webb-projekt (EJB 2.x & 3, Seam, Spring, Hibernate o.s.v.). Att jobba i RHDS i denna betan Ă€r lite skakigt, GUIt kan frysa lite titt som tĂ€tt, och att försöka fĂ„ upp en ”Tooltol Description” (F2) eller anvĂ€nda andra vanliga funktioner fungerar inte riktigt. Antar att detta löser sig med tiden, sĂ„ jag ser fram emot nĂ€sta beta dĂ„ förhoppningsvis de mest störande buggarna Ă€r borta.

    Även om jag alltid varit lite skeptisk till anvĂ€ndarvĂ€nligheten i Eclipse sĂ„ mĂ„ste jag nog sĂ€ga att detta Ă€r ett steg i rĂ€tt riktning. Det jag saknar nu Ă€r att de ocksĂ„ slĂ€nger med plugins för de vanligaste versionshanteringssystemen (nĂ„got som finns med frĂ„n början i NetBeans och IntelliJ) samt en vettig konfigurering av kortkommandon (Alt-Shift-X, R Ă€r inte ett kortkommando) sĂ„ jag inte behöver kĂ€nna det som att jag sitter i Emacs igen nĂ€r jag vill utföra nĂ„got. Det Ă€r nĂ„got som Eclipse-utvecklarna borde tĂ€nka mer pĂ„. Man ska inte behöva anvĂ€nda musen för att styra sitt IDE, det Ă€r dĂ„lig s.k. usability.

    Hursomhelst, RedHat Developer Studio ser vÀldigt lovande ut och jag rekommenderar er att testa det om ni jobbar med JBoss-produkter. Om det Àr sÄ att ni redan anvÀnder NetBeans eller IntelliJ IDEA sÄ kommer ni nog kÀnna att det Àr en bit kvar, men det Àr i vilket fall betydligt bÀttre Àn en gamla vanliga Eclipse dÀr du sjÀlv mÄste installera alla plugins och konfigurera applikationsservrar.

    Ni kan ladda ner det hela och lÀsa mer om det pÄ http://www.redhat.com/developers/rhds/index.html.

  3. UnxUtils hottar upp cmd.exe

    Jag har testat flera alternativ och komplement till Cygwin, bl.a. SFU och MinGW, men aldrig varit riktigt nöjd av olika anledningar. IgÄr installerade jag UnxUtils som du kan hitta pÄ Sourceforge. HÀr har man portat en del vanliga Unix-kommandon till Windows sÄ att de bara beror pÄ Microsoft C-runtime. Kommandona exekveras alltsÄ i ett vanligt kommandofönster (cmd.exe). Hittills har det funkat bra.

    Jag kommer fortfarande ha kvar Cygwin, men UnxUtils verkar vara ett trevligt sÀtt att hotta upp cmd.exe lite grann. Du slipper strul med slash i sökvÀgarna eftersom t.ex. find returnerar resultatet med WindowssökvÀgar.

    Du kan ladda ner UnxUtils frÄn http://sourceforge.net/projects/unxutils/. NedladdningslÀnken pÄ projekthemsidan http://unxutils.sourceforge.net/ verkar nÀmligen inte funka.

  4. Backup frĂ„n LINUX shell’et

    Behövde spara undan lite saker sÄ jag satte ihop ett backup-skript som körs frÄn crontab varje natt.

    Enkelt skript som bör kunna anvÀndas som template för mÄnga backuper i allmÀnhet.
    Backupen görs i följande steg:

    1) samlar ihop filer i tar arkiv
    2) komprimerar arkiven (gzip)
    3) krypterar arkiven med GnuPG (gpg)
    4) skickar filerna (ftp i detta fall)

    (Krypteringen i steg 3 komprimerar Àven, sÄ gzip steget (2) Àr egentligen onödigt i detta fall.)

    Backupen sparas för varje veckodag. D.v.s. det tar en vecka innan nattens backup skrivs över igen.

    backup.sh (main skriptet):
    #!/bin/sh

    # substitute ”BACKUPDIR” and ”FILEROOTDIR” according to your environment

    echo ”Starting backup job”

    cd /”BACKUPDIR”
    # clean up last run
    rm -f *.gz
    rm -f *.gz.gpg

    #Get day of week
    DAY_OF_WEEK=$(date +%A)

    echo ”Creating tar files”

    cd /”FILEROOTDIR”
    tar -cf /”BACKUPDIR”/backuparchive.$DAY_OF_WEEK.tar ”SOMESUBDIR” ”SOMESUBDIR”

    # compress files
    cd /”BACKUPDIR”
    gzip -f *.tar

    # encrypt file with GnuPG
    ./gpg_encrypt.sh /”BACKUPDIR”/backuparchive.$DAY_OF_WEEK.tar.gz

    echo ”Sending files to ftp”

    # ftp files
    ftp -ui < ftpscript

    echo ”Backup job done”
    #script end

    crontab entry’t:
    # backup every night
    0 1 * * * /”BACKUPDIR”/backup.sh >> /”BACKUPDIR”/backup.log 2>&1

    gpg_encrypt.sh (encrypt skriptet):
    cat passphrase.txt | gpg –batch –yes –passphrase-fd 0 –symmetric –cipher-algo AES256 $1
    # notera att du mÄste ha en lösenordsfras i filen passphrase.txt

    ftpscript:
    open ftp.site.com
    user ”name” ”passwd”
    passive
    cd backup
    mput *.gpg
    bye

    Om du sedan vill avkryptera din backup
    gpg_decrypt.sh
    cat passphrase.txt | gpg –passphrase-fd 0 –yes –decrypt-files *.gpg
    # samma lösenordsfras i filen passphrase.txt som du hade vid encrypt

    Att anvÀnda passphrase pÄ detta sÀtt Àr inte jÀttesÀkert. GnuPG rekommenderar nycklar.

    GnuPG var lite knöligt att fĂ„ igĂ„ng. man gpg gav 2000 rader med en massa olika styrparametrar och instĂ€llningar. PĂ„ ”NĂ€tet” finns en hel del exempel att hĂ€mta.

  5. Java EE 6

    Java EE 5 kom med mÄnga nya trevliga saker för ett tag sedan. Redan har mÄnga projekt börjat anvÀnda EJB 3 som förmodligen Àr det som fÄtt mest uppmÀrksamhet. Det finns dock en del brister i Java EE 5, eller kanske bÀttre uttryck Àr det sÄ att en del externa ramverk fortfarande har en del fördelar (vem har inte varit med i en EJB 3 vs Hibernate debatt tex). Förhoppningarna Àr att en del av detta ÄtgÀrdas i kommande Java EE 6 dÀr vi troligtvis fÄr se bl.a. EJB 3.1, JPA 2.0, Servlets 3.0, JSF 2.0, WebBeans mm.

    PÄ Ryan de Laplantes blogg finns en sammanstÀllning av vad som planeras ingÄ, vÀl vÀrt att lÀsa Àven för er som redan fÄtt en del presenterat pÄ JavaOne i vÄras.

  6. lost in space

    I was thinking of getting my oldest kid a small telescope- a little father/daughter time wondering about the universe etc etc… but it was easer to download Google Earth 4.2 featuring ”Sky”. yes we lose the fun of strange insects and clouds, but we get quite a view! Sky makes use of the typical Google Earth controls, allowing you to pan and zoom your way through the heavens. Unlike the toy store scope I would have ended up with, Sky arms you with the resolving power of the Hubble telescope, mapping hundreds of millions of objects in space. Like Earth, Sky is user-powered: a community of professional astronomers are adding content for fun, education and real research.
    Check it out now at http://earth.google.com/sky/skyedu.html. There. post complete without any cheezy space humor.

  7. Godis i nya SonyEricsson nallarna

    Flera av er har sĂ€kert redan lĂ€st om de nya mobiltelefonerna som SonyEricsson slĂ€pper i höst/vinter. För er som kodar Java ME sĂ„ har dessa telefoner en hel del godis som gör dem ytterst attraktiva för att göra riktigt frĂ€cka mobil-applikationer. Vad sĂ€gs om ett OpenGL-ES (Embedded Subsystem, en ”bantad” version av vanliga OpenGL) stöd (JSR-239)? Eller möjlighet att lĂ€sa av den inbyggda acceleromtern (samma teknik som Nintendo Wii har i sina handkontroller) (JSR-256)? BĂ„de dessa finesser hittar man i den kommande w910 som planeras att slĂ€ppas i fĂ€rjde kvartalet i Ă„r. PĂ„ SonyEricssons site Developer World sĂ„ kan man se bilder pĂ„ ett spel (Marble Madness) som verkar följa med den nya w910.

    Marble Madness (SonyEricsson Developer World)
    Bild pÄ Marble Madness frÄn Sony Ericsson Developer World

    Du styr bollen genom att helt enkelt vrida pÄ telefonen. Jag ser fram emot kommande racing och flygspel till Java ME. :)

    Den stora nyheten med SonyEricssons kommande telefoner Àr nog ÀndÄ den nya Java plattformen, JP-8. Det mest intressanta med den Àr att den implementerar stöd för den nya paraply-JSRen; MSA (Mobile Service Architecture, JSR-248). Denna JSR specificerar ett minimum av andra JSRer som mÄste ingÄ och ger Àven mindre utrymme för tolkningar av dessa JSRer. Problemet tidigare har nÀmligen varit att varje mobiltelefontillverkare har valt att implementera enbart vissa delar av en JSR för sina telefoner, vilket gjort att en applikation som fungerar för en telefon inte kommer fungera pÄ en annan, trots att bÄda specificerar samma JSR som behövs. Förhoppningsvis sÄ kommer detta underlÀtta framtida utveckling av mobiltelefon-applikationer i Java ME.

    Det som vi, bland annat, kommer ha tillgĂ€ngligt i och med nya telefoner med stöd för MSA och som vi inte hade tidigare Ă€r Web Service, Scalable Vector Graphics samt ett API för positionering. Jag Ă€r övertygad om att vi kommer fĂ„ se en hel del riktigt frĂ€cka Java ME applikationer framöver…

    Ni kan lÀsa mer om Sony Ericssons nya Java-plattform, JP-8 pÄ developer.sonyericsson.com.

  8. Javaforum Q3

    Dags igen för Javaforum. Som vanligt gratis och anmÀlan via javaforum.se

    Observera att vi startar 15.00

    15:00 JavaUpdate, Markus Wahl, IBS JavaSolutions
    15:25 OSGi – the dynamic module system for Java, Christer Larsson, CEO MakeWave
    16:10 Uppkopplade kunder vs. nedkopplade företag, Jonas Carlsson, lk9
    16:45 Thread.sleep(); // Mingel & macka
    17:15 The Hundred Kilobytes Kernel (HK2), Rikard Thulin & Ferid Sabanovic, IBS JavaSolutions
    18:10 Google Web Toolkit (GWT), Peter Norhall, Movlin AB
    18:55 Thread.sleep(); // paus
    19:10 Spirng 2.1, Henrik Reinhold & Mattias Ask, JayWay
    19:55 Javaforum on Rails – ÖreDev edition, Rikard, IBS JavaSolutions

  9. Nytt WordPress-tema för JSolutions.se

    Vi bytte WordPress-tema igÄr. Hoppas ni gillar det.

  10. IntelliJ ĂŒber-pwnage

    IntelliJ IDEA 7.0 finns nu tillgÀnlig i en milestone 2. Jag har alltid varit en stor fan av IntelliJ, men i och med den hÀr versionen sÄ har jag funderat pÄ att bli religös. NetBeans och Eclipse har rÀtt lÄngt kvar innan de Àr i kapp, sÀrskilt om man tar en titt pÄ nÄgra av de live-demos de har lagt upp:

    Hur man kodar Spring och Hibernate, the IntelliJ way: http://www.jetbrains.com/idea/training/demos/IDEA-m2.html

    Hacka Groovy och Grails: http://www.jetbrains.com/idea/training/demos/IntelligentGroovy.html

    SÄ hÀr ska en debugger fungera: http://www.jetbrains.com/idea/training/demos/debugger.html

    IntelliJ IDEA kostar $499 för en kommersiell licens, eller $249 för privatpersoner. I utbildningssyfte eller open-source projekt sÄ kan man fÄ en licens gratis. Man kan alltid ladda ner en 30-dagars prov-licens gratis och testa. Ni hittar allting, samt alla demos, pÄ http://www.jetbrains.com/idea/nextversion/.

    Om du Ă€r en av de som kodar Java men inte testat IntelliJ IDEA Ă€n sĂ„ rekommenderar jag starkt att ni gör det. Jag brukar testa bĂ„de Eclipse och NetBeans med jĂ€mna mellanrum för att se hur deras utveckling gĂ„r, men det slutar alltid med att jag gĂ„r tillbaka till IntelliJ…

  11. Maven 2 – bra men buggigt

    I takt med att mjukvaran blivit mer komplex har behovet av standardiserade och dynamiska byggssystem blivit allt större. Min ringa erfarenhet av byggare strÀcker sig till Make, Ant och nu senast Maven.

    Make var svÄrt att undvika nÀr man vÀl kom in i UnixvÀrlden, som ofta Àr synonymt med universitetsvÀrlden. Genom Ären har man hört ett och annat okvÀdningsord om Make, men personligen förstÄr jag inte riktigt varför, speciellt inte efter ha mött Ant.

    Det stora problemet med Ant Àr att man har tagit ett sk. uppmÀrkningssprÄk (mark-up language) som i bÀsta fall kan klassas som deklarativt och sedan försökt införa kontrollflöde ovan pÄ det. Dessutom fÄr jag en kÀnsla av att hela sprÄket genomsyras av bristande kunskap om hur man designar sprÄk, ett problem som i sig rÀknas som ett eget vetenskapligt omrÄde inom datavetenskapen.

    (Ants sprÄkliga design fÄr mig att tÀnka pÄ sprÄket RPG fritt format, dÀr varje sats mÄste avslutas med semikolon. Man kan ana hur sprÄkdesignerna bör ha influerats av samtida sprÄk som C och Pascal. Det intressanta Àr dock att till skillnad frÄn RPG sÄ fyller semikolonet en funktion i bÄda dessa sprÄk eftersom man kan ha flera satser per rad. I RPG Àr detta inte tillÄtet: hÀr gÀller en sats, en rad. DÀrför blir semikolonet helt onödigt. )

    Det var dÀrför med blandade kÀnslor jag började anvÀnda Maven i mitt nuvarande projekt. I likhet med Ant sÄ skriver man i Maven ocksÄ sina byggfiler i XML. I stÀllet för build.xml kallas de för pom.xml. HÀr slutar dock likheterna. Ant ger dig inget mer, du mÄste sjÀlv bestÀmma projektstruktur och hela faderullan. Det slutar oftast i ett gytter av intrikata beroende mellan inkluderade byggfiler och luddiga targets.

    Maven har istĂ€llet standardiserat hur byggena ska genomföras. Naturligtvis gĂ„r det att anpassa mot t.ex. gamla Antbyggen om man vill, men det blir knöligt. Mitt tips Ă€r att följa Mavenkonventionen sĂ„ lĂ„ngt det Ă€r möjligt. Ett bygge genomgĂ„r ett antal faser som Ă€r beroende av varandra. Skriver man t.ex. ”mvn package” för att skapa byggets artifakt sĂ„ genomförs alla tidigare faser som t.ex. compile och test.

    Maven har direkt stöd för nÀstlade moduler (projekt) som i t.ex. Netbeans. TyvÀrr har inte alla verktyg detta (t.ex. Eclipse). DÀrför bör man för största IDE-kompatibilitet försöka köra en platt struktur. Varje modul har en sk. pom.xml-fil (Project Object Model). I denna specificeras t.ex. vad modulen heter, vilken version den har, vad den producerar för artifakt, om modulen Àr beroende av andra moduler (interna som externa).

    Varje modul producerar högst en artifakt . I Maven finns inbyggt stöd för de vanligaste artifakterna (WAR, EJB, JAR etc) i form av pluggar som laddas ner automatiskt nÀr de refereras. Pluggarna hjÀlper till att skapa artifakten genom att bl.a. generera deskriptorer och inkludera beroenden. Det enda man behöver tÀnka pÄ Àr att följa Mavens katalogstruktur, men Àven detta fÄr man hjÀlp med.

    Varje plugg kan konfigureras för exakt bestÀmma hur genererad artifakt ska se ut. Exempelvis bestÀmmer man i maven-ear-plugin vilken kontextrot man vill ha, om man inte nöjer sig med default. Maven ser till att generara nödvÀndig information i application.xml för detta.

    För varje beroende (t.ex. Hibernate, Log4J etc) man har i sin modul sÄ specificerar man dessa genom namn, version och scope. T.ex. Hibernate, version 3.23 och scope test innebÀr att Maven lÀgger Hibernate version 3.23 till classpath vid körning av enhetstester. RÀtt beroende tankas automatiskt hem frÄn ett centralt Mavenarkiv. PÄ det hÀr sÀttet fÄr man en bra versionshantering av sina beroenden. Alla i projektet kommer att utveckla mot samma version.

    Vilka arkiv som ska anvÀndas kan man styra. Man kan sÀtta upp egna speglar och proxies mot det centrala arkivet eller egna företags-arkiv. Varje anvÀndare har dessutom ett lokalt arkiv i sin hemkatalog dÀr alla beroende cacheas. Utveckling kan alltsÄ ske offline.

    Det Àr att rekommendera att man som företag sÀtter upp en proxy mot det centrala Maven arkivet. NÀr beroenden tankas hem frÄn det centrala arkivet kommer de automatiskt att lagras pÄ proxyn. PÄ sÄ sÀtt sÀkerstÀlls att företaget har direkt tillgÄng till alla refererade beroenden. Notera att beroenden normalt Àr transitiva, t.ex. Hibernate beror i sin tur pÄ Log4J. Som tur Àr behöver du inte bry dig om det, utan Maven sköter det Ät dig genom att automatiskt tanka hem transitiva beroenden.

    Maven hjĂ€lper dig inte bara med att kompilera ditt projekt, köra tester och generera dokumentation, utan du kan ocksĂ„ fĂ„ hjĂ€lp med att driftsĂ€tta. Pluggen cargo-maven2-plugin kan t.ex. fjĂ€rrdriftsĂ€tta mot en JBoss-server nĂ€r man skriver ”mvn install”. Vill man sĂ„ kan fĂ„ Maven (genom cargo-maven2-plugin) att tanka hem, zippa upp och start en JBoss om den inte redan finns.

    Vad blir slutsatsen dÄ? Det lÄter ju som Maven Àr ett helt underbart byggverktyg. Och det Àr det oftast. Mavens absolut största nackdel Àr att det Àr sÄ **** odokumenterat. Maven Àr en enda stor samling insticksprogram som var och en Àr separat dokumenterade. De mindre ÀnvÀnda insticken Àr mycket sparsamt dokumenterade. Det finns vÀldigt fÄ centrala kÀllor att gÄ till, utan mycket ligger utspritt pÄ webben. I början kÀnns Mavenrymden vÀldigt kaotisk.

    NÀr jag sÀger Maven sÄ menar jag dessutom Maven 2. PÄ nÀtet finns en del information om Maven, men i bland avser den Maven 1. De tvÄ versionerna skiljer sig relativt mycket. I början kan det vara lite förvillande.

    RÀkna ocksÄ med en del buggar vad det gÀller de mindre frekvent anvÀnda funktionerna. Bara i dag har jag sprungit pÄ tvÄ stycken: den ena som har med arv av profiler att göra verkar det Ànnu inte finnas nÄn fix för och den andra som har med filterhantering i maven-assembly-plugin att göra fanns det en fix i version 2.2-beta-2-SNAPSHOT av pluginnen. För att avhjÀlpa det senare problemet behövde jag bara specificera rÀtt version i pommen.
    TyvÀrr sÄ kÀnns det inte helt stabilt att förlita affÀrskritisk verksamhet pÄ en snapshot. NÀsta dag kan en ny bugg som fallerar bygget vara introducerad i snapshoten. Visst, i de lÀgena gÄr det faktiskt att specificera en specifik snapshot, t.ex. 2.2-beta-2-20070808.014358-13.

    Hur som helst. Maven Àr trots nackdelarna ett sÄ stort steg i rÀtt riktning att jag inte skulle tveka att anvÀnda det i nÀsta projekt. Men om du eller ditt företag ska gÄ över till Maven rÀkna med en tuff startstrÀcka. Jag rekommenderar ha en Maven-expert nÀra till hands.

  12. Draft Review of Java 7 ”Measures and Units”

    Det har varit oklart ifall denna JSR skall gÄ igenom omröstningen, men nu ser det ut som om det skall bli av. Kanske. http://jscience.org/ har gjort en referensimplementation av denna JSR: javax.measure.*, för de som inte vill vÀnta pÄ att JSR:en skall bli klar.

    Problem som javax.measure.* löser Àr bl a representation av en storhet utan att enheten anges, med komplikationen att efterföljande utvecklare kan fÄ det svÄrt att inse vilken enhet som Àr den rÀtta. InnehÄll:

    • Checking of unit compatibility
    • Expression of measurement in various units
    • Arithmetic operations on units
    • Concrete classes implementing the standard types of units (such as base and derived units) and unit conversions.
    • Classes for parsing and formatting textual units representations.

    NÄgra exempel kopierade frÄn https://jsr-275.dev.java.net/files/documents/4333/34956/jsr-275.pdf:

    Making your interface unit agnostic

    s51.PNG
    Converting between units

    s53.PNG

    Compile type checking of dimension consistency

    s54.PNG

    Projektet JScience tillhandahÄller Àven ett Java-biblioteket som innehÄller andra, till synes, nyttiga moduler:

    • mathematical structures (e.g. Group, Ring, Field, VectorSpace)
    • A linear algebra module, which includes a first (and possibly unique) parameterized matrix class capable of resolving linear system of equations involving any kind of elements (e.g. Complex, ModuloInteger, RationalFunctions)
    • A functions module for symbolic calculations and analysis.
    • Different types of numbers such as real numbers of arbitrary and guaranteed precision, or the always exact rational numbers.
    • Support for exact or arbitrary precision measurements (also strongly typed).
    • A monetary module for precision-guaranteed calculations and currencies conversions.

    Och nĂ€r man nĂ€mner JScience och JSR ”Measures and Units” bör man ocksĂ„ nĂ€mna alternativet GeoTools som visst skall vara nĂ„got liknande.

  13. JavaFX NetBeans-plugin Beta

    Det har tagits fram ett tillÀggsprogram (plugin pÄ s k svengelska) till NetBeans för JavaFX Script som gÄr att ladda ner via NetBeans Development Update Center. TillÀggsprogrammet gör det möjligt att enkelt utveckla JavaFX Script-program i NetBeans. Det finns för bÄde NetBeans 5.5 och 6.0 Preview och kommer finnas med i NetBeans 6.0 vilket Àr nÀsta version av utvecklingsmiljön. TillÀggsprogrammet hjÀlper dig med sjÀlvklara saker som kompilering, bygge, körning och kontextstöd i form av feldetektering och syntaxfÀrgning.

    Tutorial Hello World: https://openjfx.dev.java.net/Getting_Started_With_JavaFX.html

    6.0-varianten av tillÀggsprogrammet innehÄller dessutom JavaFXPad vilket Àr ett verktyg för att bygga grafiska JavaFX Script.

    Och nÀr jag ÀndÄ nÀmner GUI-byggare för JavaFX vill jag nÀmna JFXBuilder som verkar vara en bra en JavaFX-GUI-byggare. Den Àr stand-alone och kan köras direkt i browsern frÄn http://www.reportmill.com/jfx/

  14. Vill-ha-begÀr: UltraSPARC T2

    Vad sÀgs om Ätta kÀrnor och stöd för 64-trÄdar pÄ ett chip, men andra ord handlar det i praktiken om en 64-vÀgs server pÄ ett chip. Saker som vi saknade i UltraSPARC T1 Àr nu ÄtgÀrdade, tex flyttalsenheter:
    ‱ Bearbeting med hög genomströmning – Ă„tta kĂ€rnor och Ă„tta trĂ„dar per kĂ€rna
    ‱ NĂ€tverk – dubbla, virtualiserbara multitrĂ„dade 10 Gigabit per sekund Ethernetportar med inbyggd paketklassificering
    ‱ SĂ€kerhet – Ă„tta kryptografiska accelerationsenheter
    ‱ BerĂ€kning – Ă„tta flyttalsenheter
    ‱ I/O – Ă„tta kanaler med branschstandard PCI Express I/O
    ‱ MinnesĂ„tkomst – fyrdubbla minneskontrollenheter ger över 50 gigabyte per sekund minnesĂ„tkomst

    Sun kommer inom kort att Àven slÀppa kÀllkod för UltraSPARC T2 till OpenSPARC community.

  15. Javaforum Q3 börjar ta form

    HĂ€r kommer en liten ”teaser” pĂ„ presentationer som Ă€r inbokade för Javaforum Q3:
    * JavaUpdate, MarKus Wahl
    * The Hundred Kilobytes Kernel (HK2), Rikard & Ferid
    * GWT, Peter Norrhall, Movlin
    * Web 2.0 Trender, möjligheter och utveckling, Jonas Carlsson, lk9.se
    * Spring 2.1 – nyheter, Sping User Group
    * MakeWave kommer och pratar om OSGI

    En mycket intressant agenda med andra ord. Inbjudan kommer att skickas ut om nÄgon vecka via javaforum.se

NĂ€sta sida