tisdag 23 oktober 2012

Groovy och Grails


Slides och Länkar


Här är slidesen till min föreläsning jag höll om Groovy och Grails. Dom är utökade så att exemplet med javakod som görs om till Groovy är inkluderad.

Slides

Läs mer

Om ni tyckte att det var intressant och vill lära er mer så kan jag rekommendera bland annat följande webbplatser:

http://groovykoans.org/ - Ett projekt uppbyggt för att lära ut Groovy syntax.

Mastering Grails - Artikelserie om Grails där de flesta väsentliga delarna i en Grailsapplikation gås igenom

http://skillsmatter.com/go/groovy-grails - Samling av Groovy och Grails föreläsningar

måndag 22 oktober 2012

Java One 2012

Java One 2012

Sogeti skickade mig till Java One i år.

Riktigt lyckat! Enligt många den bästa versionen av Java One sedan "Oracle happened".

San Francisco är en fantastisk stad att besöka, och klimatet i Kalifornien är löjligt bra, både på teknik fronten och vädret. Ändå säger Mark Twain: "The coldest winter I ever spent was a summer in San Francisco".

Java One spänner över Söndag till Torsdag. Söndagen känns som en community dag. Där finns föreläsningar som Benefits of Open Source som jag skall läsa powepointen på i efterhand. Själv gick jag på Java University. Där jag blev undervisad om JSF av spec lead himself Ed Burns.

Antar att det skulle vara coolt att klaga på något, eller att säga att Oracle suger. Men så var det inte. Jag är fett imponerad. Stort och fantastiskt, American style när det funkar :)

Jag skall inte mala på om ämnet som andra bloggar bättre om. Men till Oracles fördel är att nästan alla tech sessioner ligger online free off charge.

Det skall mycket till om man i efterhand, utan att se föreläsaren, orkar titta igenom en presentation. Men om man vet att materialet är riktigt bra så är det värt det.

Dessutom så vill jag göra lite reklam för de två event som ger en fingervisning om vart Java och dess community är på väg.

Java Strategy keynote

Vart pekar Oracle? Hur går det med Java FX? Var är vårt project Jigsaw? Om man ser till språket Java så är Labda på tapeten. Och om man tycker att generics är krångligt (jag tycker det ibland) så skall man nog börja läsa på om Lambda redan nu.


Community keynote

Gossling come back! And he did :)

Föreläsningar jag kan rekommendera


Lambda: a peak under the hood

Jag såg inte denna föreläsning själv. Men jag så Brian Goetz på keynoten. Och tro mig, han kan sina saker. Dessutom är lambda den största förändringen i språket Java, typ någonsin.

Scala Tricks

Scala är intressant eftersom det ger dig all det syntaktiska socker du saknar i Java och den funktionella programmeringen som du vant dig vid i JavaScript. Allt kompileras till Java byte kod. Om man verkligen inte accepterar att det enkla man vill göra är krångligt titta på denna alldeles fantastisk föreläsnig av Venkat Subramaniam.


What’s New in Scala 2.10

Eftersom parallelism är i ropet och flerkärniga cpu:er inte gillar state så kan man följa upp den föreläsningen med en annan idol. Martin Odersky som gjorde Java generiskt och skrev javac. Vad kan man säga om en kille som gör ett programmeringsspråk med målet att barn skall lära sig programmera genom det.


Project EASEL: Developing and Managing HTML5 in a Java World

Äntligen börjar standardiseringsprocesserna komma ifatt det som hänt på webben. I denna session får vi se lite vad man kan tänkas vilja göra med toolingen när vi inte allt handlar om request / response :)




söndag 30 september 2012

Grails och JavaOne - Nytt JUG-möte!!


Hej på er!

Efter sommarens lite för långa uppehåll så drar vi igång jug:en igen!!
Vi öppnar starkt med en favorit i repris, Adam berättar om  Grails och kanske lite Groovy också (??)
Sen kommer vi även få några intryck från JavaOne från JUG:ens representant over there, Demas.

Vi kör onsdagen den 10/10 i Persistent Solutions/Knowits lokaler på Trädgårdsgatan 5 (ovanför systemet vid Juneporten). Persistent Solutions bjuder på mackor.

Anmäl er via Google Groups

Väl mött!!

/Martin
P.S Ni har väl inte glömt att gå med i Google Groups gruppen??

torsdag 20 september 2012

Agil utveckling. Tio punkter i en utvecklares arbete som gör skillnad

Att vara utvecklare är inte ett åtta till fem jobb. Det är mer ett åtta till kvart över fem jobb. Vi måste konstant lägga tid och energi på att bli bättre. Detta gäller inte bara teknik utan även metodik.

Agil utveckling är mer än scrum boards och stå upp möten. Det är helt avgörande att du stoppar rätt metoder i den process som scrum utgör.

"Vill bara säga att det var riktigt bra föredrag! Har redan haft användning för kunskaperna
(har argumenterat för att bryta ned åtgärderna till max 8 h (med hänvisning till ditt föredrag)
på ICC retrospektivet)"
- Hans-Jörgen Wirehag, Jordbruksverket.


Presentationen:
Agil utveckling. Tio punkter i en utvecklares arbete som gör skillnad

TOC
  • Punkterna
  • Tongivande källmaterial
    • Länkar
    • Böcker
  • Källkod som är läsvärd
  • Underhållande i ämnet läsa kod

Punkterna

1. Prata samma språk
2. Acceptera tre enkla sanningar
3. Leverera ofta
4. Sätt ambitionsnivån högt, och håll kvar den där
5. Gör dig själv onödig
6. Få situationen att synas tydligt
7. Gör teamet ansvarig
8. Heja på varandra
9. Det finns inte bara en ledare
10. Kaizen

Tongivande källmaterial


Länkar

Manifesto for Agile Software Development
http://agilemanifesto.org/

Scrum checklist från Crisp:
https://dl.dropbox.com/u/1018963/Scrum-Checklist/Scrum-checklist.pdf

Martin Fowler i ämnet "The New Methodology"
http://martinfowler.com/articles/newMethodology.html

Scrum är ingen metodik:
http://www.rational-scrum.com/2010/03/scrum-is-not-an-agile-methodology/

DDD, Skillnaden mellan entiteter och value objects:
http://devlicio.us/blogs/casey/archive/2009/02/13/ddd-entities-and-value-objects.aspx,

Böcker

Practices of an Agile Developer:
http://pragprog.com/book/pad/practices-of-an-agile-developer

Domain Driven Design Quickly:
http://www.infoq.com/news/2006/12/domain-driven-design

Clean code:
http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882

97 Things Every Programmer Should Know:

Källkod som är läsvärd

Spring framework på git:

Fitnesse:
https://github.com/unclebob/fitnesse


Underhållande i ämnet läsa kod


Readable code - and the long lost secret of how to achieve it from JavaZone on Vimeo.


Uncle bobs svar:
https://gist.github.com/3753571


mvh

@demassinner

måndag 10 september 2012

Agil utveckling hos Jönköping Developer Dojo


Ni har väl inte missat att Demas ska prata om Agil utveckling på Jönköping Developer Dojo den 19/9!!!!
Missa inte detta!!

Mer info, och möjlighet att anmäla sig finns här:
http://www.linkedin.com/groups?gid=2588858&trk=hb_side_g

För övrigt så går vi en ny spännande höst till mötes och återkommer så snart som möjligt med ett datum för en ny träff med jug:en!

/Martin

onsdag 22 augusti 2012

Sommaren är inte slut än

Under någon veckas tid (då bloggen var oerhört tätt trafikerad) så gjorde vi en undersökning och ställde frågan om ni använder facelets. Av de åtta, mej själv inte inräknad, som svarade på undersökningen så var det bara en som svarade ja!

Nå, jag tar det som en inbjudan att evangelisera om facelets (kronjuvelen i JSF 2.0) inom en snar framtid...

Demas förbereder en föreläsning om agil utveckling och vilka verktyg det erbjuder utvecklaren. Håll ögonen på Jönköping Developer Dojo om ni är intresserade av att höra mer om detta.

tisdag 3 juli 2012

AW fredagen den 6/7


Hej på er, 


För er som kan och vill så träffas vi på Twin för lite after work kl 17:00. 
Om ni anmäler er via får nya (!) google group:
https://groups.google.com/forum/?fromgroups#!forum/jkpgjug
så bjuder Sogeti på öl!

Väl mött!

/Jkpgjug (Martin)


torsdag 21 juni 2012

Certifierings race!


Certifierings race!

Säga vad man vill om certifieringar men de som har tagit dem vet att:

  • De är inte enkla (details matters)
  • Det går inte utan ansträngning
  • Man är en bättre utvecklare efteråt

Dessutom har Oracle i många fall sett till att höja priser och arbetsinsats. Man blir numera satt i skolbänken helt enkelt.
Ett annat problem är att det inte finns kursliteratur till alla certifieringar medans det till de populär områdena finns bra böcker och test cert.

Kostnad och arbetsinsatsen har alltså skjutit i höjden.
Trots att vissa är skeptiska till certifieringar så är vi i Jönköping Java User Group inte det, tvärt om!
Vi skall försöka få igång någon eller några studiecirklar för att peppa de hågade.

Eric Borgström har heroiskt tagit på sig att vara certifierings general. Har ni frågor eller vill ha råd så prata med honom. Polls och intresseanmälningar tas snart in.

Eric Borgstrom
@subgeneric

mvh

@demassinner





onsdag 13 juni 2012

Hej

Jag tänkte följa upp min föreläsning om Gradle på senaste mötet.

Tänk er följande scenario... vi utvecklar en web-applikation som kräver vissa externa resurser. När jag utvecklar applikationen har jag alla dessa resurser på min egen maskin. När kunden testar så har de en speciell testmiljö, och de har även en helt separat driftsmiljö. Jag behöver alltså kunna köra applikationen lokalt i min IDE under utveckling, samt bygga en specifik WAR för testmiljön resp. driftsmiljön.

Hur gör man det i Gradle?

I mitt exempelprojekt så är de externa resurserna definierade i filen system.properties. Just den filen används när jag kör lokalt. För att få rätt inställningar för t.ex. testmiljön så har jag en annan fil, system-test.properties, som jag ska använda istället för den vanliga system.properties. I driftsmiljön gör jag på samma vis med filen system-prod.properties.



build.gradle

apply plugin: 'war'


webAppDirName = 'WebContent'


war {
  excludes = [ '**/system*.properties' ]


  webInf {
  from ("$webAppDirName/WEB-INF") {
  include ("system-" + target + ".properties")
  rename { String fileName -> fileName.replace("-" + target, '') }
  }
  }
}


Först konfigurerar vi Gradle för att bygga en WAR

Eftersom jag använder Eclipse som IDE och deras standardnamn och filstruktur, så måste jag definiera en property, webAppDirName, som används av WAR plugin'en.


Nu är det dags att konfigurera "task" war.
Jag börjar med att exkluderar alla properties-filerna. Sedan inkluderar jag enbart den properties-fil som jag är intresserad av, dvs. "system-" + target + ".properties" där target är en variabel som definieras senare. Till sist döper jag om filen till rätt namn genom att ta bort target ur namnet.

Det är allt som behövs i skript väg!

Nu återstår bara att definiera variabeln target och att bygga. Starta cmd.exe

> gradle -Ptarget=test war

eller

> gradle -Ptarget=prod war

Det var allt som morsan skickade med!

PS. En liten tanke som jag har haft länge...
Varför finns det inga open-source refactoring-verktyg för databaser?

/Anders





söndag 3 juni 2012

Vi har klarat av andra träffen i ordningen. 

Vi lever fortfarande :)

Vi var hela 18 pers närvarande. Det var inte vilka personer som helst! En otrolig kompetens samlades under ett par timmar. En grupp människor som är intresserade av att lära, men också att lära ut. Det finns ett klart existensberättigande för en JUG i Jönköping.

Vi avverkade två intressanta punkter under förra veckans träff: Gradle och JRebel. Dessutom så träffades vi och hade väldigt trevligt.

 Anders och Björn hard at work!



Trevligt :)

Ett antal punkter kom upp som intresserade oss:
  • Enkelt, öppet och lättviktigt 
  • Mail lista
  • Kunskap över företagsgränser
  • Bloggen
  • Återkoppling till föreläsningar
  • Blixttal

Enkelt öppet och lättviktigt 

Vi försöker vara öppna och lyhörda för önskemål. Enterprise som vi är (ibland tråkiga) så motarbetar vi det i JUG:en. JUG:en skall vara kul.

Vi kommer dessutom att försöka vara transparenta (skriva långa blogginlägg).

Mail listan

Vi funderade tillsammans en stund på hur vi skall kommunicera ut JUG:ens aktiviteter. Twitter, LinkedIn och blogg, alla har sina brister.

Det primära behovet är enkelt, kommunicera ut när vi skall träffas igen och ta in anmälningar om närvaro.

En enkel traditionell mail lista togs snabbt fram som det enklaste sättet. Vi vågade inte föreslå det själva eftersom det är lite enterprise :)

Mail samlades in och vi kommer att starta en Google group inom kort.

Kunskap över företagsgränser

Flera deltagare höll med om problemet att driva kompetensutveckling endast inom det enskilda företagets väggar. Känslan av att man är för få till antalet och har svårt att få fart på den typen av grupper nämndes. Självklart är konkurrerar inte JUG:en med sådana satsningar om de finns och fungerar.

Bloggen

Vi har uppenbarligen en blogg :) Vi kom efter JUG:en fram till att alla som har  haft en föreläsning får blogga om den. På detta sätt så kan folk synas samtidigt som vi behåller ett fokusområde. Alla föreläsare kommer att få en inbjudan och är fria att skriva ett inlägg eller bara publicera sin presentation.

Har ni några andra idéer så är vi i idel öra.

Återkoppling till föreläsningar 

Anders Johansson funderade på hur man kan ta hand om följdfrågor på en föreläsning. Detta är en intressant aspekt som även kan kopplas till det försök vi gjorde att ta in frågor inför träffen via bloggen.

Här har vi inte funderat klart ännu. Men kommentarer till blogg inlägget borde kunna tjäna detta syfte.

Vi skulle gärna vila göra reklam för just detta att kanske sätta sig ner och skriva in en fråga på bloggen inför en träff. Det kan vara svårt för en föreläsare att veta vad man vill veta. Det är ju nästan alltid på lånad tid som man förbereder sig. All hjälp mottas därför tacksamt.

Blixt tal

En kul och intressant sätt att få prata av sig lite är blixtal. Formen av ett antal 5-10 minuters föreläsningar ger alla chansen att få prata om något som intresserar dem just då. JUG:en är inte heller ett forum som kräver professionella föreläsare, men kanske en grund för att bli ;)

Fördelar:
  • Liten förberedelse
  • Kan vara hur nischat som helst

Tack till Consid för förtäring och trevliga lokaler :)


Mvh

@swooboo @mekermo @demassinner