tisdag 4 december 2012

Certifiering!

Halloj,

Som vi sa på förra mötet så tänkte några av oss köra ett certifieringsrace. Eftersom det är rätt så rejält tråkigt (men ack så nyttigt) så hoppas vi att det kan bli lite roligare om man gör det tillsammans. Är du intresserad av någon certifiering så skriv in dig i följande dokument:

https://docs.google.com/spreadsheet/ccc?key=0AjKXdjPvzBGJdGpUbzhoUzR6NVg4ZEhaZ0VjWkVCbEE#gid=0

Enklast är sen om ni som eventuellt är intresserade av en certifiering snackar ihop er om praktiska detaljer.

Lycka till!!

/Martin

torsdag 29 november 2012

GIT

Kul att det var så många som ville komma och lyssna på bland annat mig förra träffen.

Jag pratade om GIT, som är ett versionshanteringssystem (http://git-scm.com/).

Jag fick backning om att jag lade dragningen på lite hög nivå, då inte alla jobbat med git. Min tanke var mer att locka folk till att testa och se att man kan göra ganska häftiga grejer med git än att ge en introduktionskurs. Så jag länkar vidare till lite introduktionsmaterial här.

Ni kan se min presentation på länken nedan. Presentationen är som sagt bland de fulaste som skapats och har inte så mycket information, min dragning var mer baserad på demonstrationer. Men för de som vill se den finns den här.


Repositoriet jag visade de olika log kommandona med var ett av mina hobbyprojekt, gimli (https://github.com/walle/gimli).

Jag passar också på att tipsa om ett annat av mina hobbyprojekt, gas (https://github.com/walle/gas). Det är ett verktyg för att byta git-användare. Smidigt att använda om man parprogrammerar, då man kan ha sin vanliga användare och en parprogrammeraranvändare. T.ex. fredrik+sven@limepark.se för att visa att man satt två vid den commiten.

Tack för att ni kom och lyssnade på mig babbla i nästan en timma. Det var kul, vi får göra om det med något annat ämne :)

onsdag 28 november 2012

Lambda-uttryck i Java SE 8

Tack för visat intresse!

Den som vill prova lambda à la jdk 8 behöver bara ladda hem jdk 8 med lambda-stöd.
Utvecklingen av jdk8 sker i en branch som ännu så länge kan laddas ner separat. Alla föreslagna ändringar i jdk8 finns alltså inte med här men tillräckligt för att leka med.

Vidare behöver du en IDE med lambda-stöd. I skrivandes stund finns Netbeans och nyligen släppta IDEA 12 (på demon använde jag experimentella IDEA IntelliJ Leda) med stöd för lambda-uttryck.

Brian Goetz har författat en del intressant och lättläst (i alla fall mer lättläst än själva JSR 335) material som sammanställer lambda-relaterade språk-förbättringar i jdk8.
  • http://cr.openjdk.java.net/~briangoetz/lambda/sotc3.html
  • http://cr.openjdk.java.net/~briangoetz/lambda/collections-overview.html
  • http://cr.openjdk.java.net/~briangoetz/lambda/lambda-translation.html
Prova gärna nedanstående recept för att banta antalet rader i din kodbas:

Thread thread = new Thread(
    () -> System.out.println("Do this later in separate thread..."));

Eller en läcker list-reduktion:
final List<String> names =
    Arrays.asList("ghandi", "mandela", "tutu", "king", "theresa");

names.stream()
    .filter(s -> s.startsWith("t"))
    .forEach(s -> System.out.println("Namn som börjar på t: " + s));

...där det senaste torde ge följande output när du kör det:
Namn som börjar på t: tutu
Namn som börjar på t: theresa

fredag 9 november 2012

Väl mött igen Java-entusiaster


Det vore trevligt att samla JUG-medlemmarna igen! Vi träffas igen den 28:e november, kl 17:30 i Sogetis lokaler på Öriket (Klubbhusgatan 13). Sogeti bjuder på mat och dricka. Vi hoppas på öl-sponsring!

På agendan har vi (minst) tre punkter, och det finns säkert tid till mer diskussion om någon känner sig manad:
  • Fredrik Wallgren (https://github.com/walle) ger en kort introduktion till versionshantering med git. Dessutom visar han lite funktioner i git som förhoppningsvis ger mersmak. För att få ut så mycket som möjligt rekommenderas att redan ha testat git själv, du kan göra det online på http://try.github.com.
  • Workspace Mechanics hjälper dig centralisera dina inställningar i eclipse.
  • Certifiering: varför certifiera sig inom Java? Diskussion kring hur vi kan vi hjälpa varandra.
Anmäl dig helst på Google Groups, men om du inte tycker om det så försök med Google+, LinkedIn, twitter (@jkpgJUG) eller rörpost - bara det inte hindrar dig från att delta!
(Det är fritt fram att registrera sig på Google Groups)

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

fredag 25 maj 2012

Ändrad lokal för mötet 30/5

Hej,

Vi kommer att vara i Consids lokaler på Barnarpsgatan 13, ingång jämte tobaksaffär. Samma tid 17:30 och samma spännande agenda! Öl & mackor utlovas förstås.

Anmäl er gärna på twitter, linkedin eller vad ni nu gillar bäst (röksignaler någon?)

tisdag 15 maj 2012

Dear!

Det var mycket som vi vill behandla :)


När fotot togs hade jag ändå lyckats demontera ner typ 10 lappar.

In no particular order:

  • Best practices
  • Prata programmering med andra intresserade
  • Post mortems från intressanta projekt
  • ...
  • Effektivitet (Pomodoro/GTD)
  • Java update/nyheter
  • JavaOne
  • Open source projekt att hålla koll på
  • Stjärnföreläsare
  • JSF
  • ...
  • RequireJS
  • GIT
  • RequireJS
  • Grails
  • Clojure
  • Kator
  • Molnet
Alla lappar digitaliserade:
https://docs.google.com/spreadsheet/ccc?key=0AuqBSQwKKIaNdGllZkd1Nkpyem9idkNrMnRwdDI1MGc


Känns kul att jobba med ett så stort område, kreativt område :)





Trevlig kväll all u nerds!

fredag 11 maj 2012

We meet again!


Det verkar som att det finns utrymme för att träffas och snacka mer Java. Nästa träff blir onsdagen den 30/5 kl 17:30 i Sogetis lokaler på Klubbhusgatan.

På agendan står just nu presentationer av JRebel och Gradle. Fler förslag mottages tacksamt... Vi räknar förstås även med givande diskussioner och lite tilltugg & öl. Varmt välkomna!!

På banan

Tack alla medverkande för visat intresse. Första mötet (den 25/4) visade på ett fortsatt intresse för att träffas och snacka Java.
Martin pratade om godbitar i Java 7 och Mikael gav oss en inblick i hur Ceki Gülcü ser på loggning i allmänhet och slf4j i synnerhet.