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