Välkommen till Umeå Java User Group, en grupp för alla som är intresserade av java och angränsande ämnen. Vi träffas andra tisdagen 18.00 varje månad.
  1. JUG-mötena handlar om nätverkande framför sälj och rekrytering
  2. JUG präglas av individer framför företag
  3. JUG handlar om kunskapsutbyte framför envägsinlärning

Låter det här intresant anmäl dig då antingen via vår googlegroup eller maila. UmeJUGs kalendern hittar du här.

torsdag 21 augusti 2014

Summering våren 2014

Våren 2014 har inneburit rätt lite bloggande, vi har dock varit aktivare på twitter.

I februari hade vi äran att ta emot Venkat Subramaniam, finns på bloggen!

I mars hade vi en kväll med fokus på Google Glass. Eva Mårell-Olsson kom och visade sina och berättade om dem och hur hon lyckades få tag i ett par. Markus Backman berättade om hur man bygger appar för dem och slog ett slag för inter-enterprise hackathons.

I april fick vi veta allt om JBoss Wildfly av Eduardo Martins över google hangout.

Maj bjöd (äntligen :) på lite kodning, då vi testade en av Emily Baches refaktoreringskator, efter att ha värmt upp med String Calculator kata. Vi var alla eniga om att det var en grymt lärorik kväll.

Nästa träff är den 9:e september, men vi har inte bestämt innehållet ännu.

Vad vill du höra om? Kommentera gärna bloggen, @umejug eller på mail!

måndag 3 februari 2014

Lyckad träff med Venkat

Umejugs första träff i år blev också vår första träff på en söndag. Eller nja, vi har ju faktiskt haft coderetreats på helger förut, men första föreläsning på en söndag då. Lyckat blev det i alla fall. Uppslutningen var stor när ca 30 personer lyssnade på Venkat Subramaniam som talade om Programming with Lambda Expressions in Java. 


Vi fick lära oss genom åtskilliga exempel hur "declarational style" jämfört med "imperative style" gör koden tydligare, snabbare och kortare och därmed utvecklaren glad och stolt.

Det är få som kan matcha Venkats energi, tempo, ödmjukhet och outsinliga kunskap. Vi var ett par stycken som även passade på att lyssna vidare på Venkat på måndag morgon på jfokus, så nog fick vi inte.

Anteckningar och kod från träffen (och lite till):

Vi kan också rekommendera Venkats bok Functional Programming in Java!


,

onsdag 22 januari 2014

Venkat Subramaniam - Programming with Lambda Expressions in Java

UmeJUG bjuder in till årets första träff söndagen den 2 februari kl 14.00 på Studion, Kungsgatan 49.

Denna gången har vi det stora nöjet att få besök av Dr. Venkat Subramaniam. Han kommer att prata om Java 8 och specifikt programmering och design med lambda uttryck. Om det här låter intressant, anmäl genom att skicka ett mail.

Programming with Lambda Expressions in Java
Now that Java is supporting lambda expressions, it's time to hone our skills to make use of them. Lambda expressions can help create concise code, however, it takes more than learning the syntax to put them to good use. In this presentation we will learn the idiomatic use of lambda expressions, explore the ways in which we can use them to solve common tasks, and look into libraries and APIs that make use of them in Java.

Designing with Lambda Expressions in Java
As Java programmers we have used a number of design patterns and design techniques. With the introduction of lambda expressions, we now have some more sharper tools in our design toolbox. Come to this presentation to learn how we can implement some elegant design ideas with lambda expressions. We will learn about these design techniques, not using diagrams, but by realizing the ideas in code.

Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., and an instructional professor at the University of Houston.
He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with agile practices on their software projects.

Venkat is a (co)author of multiple books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. His latest book is Functional Programming in Java: Harnessing the Power of Java 8 Lambda Expressions. You can reach him by email at venkats@agiledeveloper.com or on twitter at @venkat_s.

tisdag 25 juni 2013

MVC för webb

Sista träffen innan sommaruppehållet bjöd på MVC-ramverk för Javascript. Tyvärr fick Robert på DartVoid förhinder så sessionen om Dart utgick.

Angular.js (slides)

Mattias Sällström på Omegapoint berättade om Angular.js som används på ITS för att bygga nästa generation av Ladok.
Mattias visade exempel som tog upp
  • Scope
  • Controller
  • View
  • Directive
  • Resource
  • Filter
  • Routing
  • Modules
  • Dependency Injection
Mattias rekommenderade

Knockout.js

Jonas Andersson på Metria berättade om Knockout.js utifrån sina erfarenheter vid bygget av garmins ehandel.
Jonas visade exempel på vad en single page application inte är, och exempel på vad det är. Han diskuterade även runt MVVM, och att skillnaden mot MVC framförallt är att särskilja den som client-side only.
Som exempel på Knockouts Declarative Bindings, Automatic Refresh, etc gick vi igenom några av knockout.js tutorials:
Avslutningsvis pratade Jonas om andra verktyg som använts i anslutning till Knockout.js:
Bootstrap Look great easily; grid, components, etc.
LESS CSS dynamics
Knockout Knockout-Plugin: Publish/Subscribe between ViewModels.
Webshim Polyfiller, enable html5 support in browsers without
Modernizr Detect html5 support.
Leaflet Map functionality and with WMS and tablet/smartphone support.
Wro4j Minify/Compile JS and CSS.

Diskussion

Den efterföljande diskussionen kom att handla mycket om erfarenheter av IntelliJ IDEA, Eclipse, och Sublime. Generellt verkar det som att de som kört både IDEA och Eclipse föredrar IDEA för javascript:
  • Bättre kodformatering och code completion
  • Bättre stöd för refaktorering
  • Plugins funkar bättre
Vi diskuterade framtiden för JavaScript vs Dart, men hade behövt en expert på Dart :)

Andra resurser

Andra resurser som togs upp under kvällen var

torsdag 11 april 2013

Lego Hack Night

Kvällens övning gick ut på att programmera en bil byggd av ett Lego Mindstorm med Lejos firmware. Målet var att ta bilen runt en oval bana där mitten var svart, vänster sidan vit och höger sida röd. Till det behövde vi en bil och eftersom tiden var knapp och det var programmeringen som stod i fokus så var bilarna byggda i förväg. Det enda som återstod var att montera färgsensorn som skulle se till att bilen höll rätt kurs.
Copyright (©Erik Olofsson, Dohi Sweden
Copyright (©Erik Olofsson, Dohi Sweden
Efter att alla fått lite pizza och dryck i sig gick Johan Ekblad igenom vad Lejos är och hur det fungerar att programmera mot. Vi fick lära oss att Lejos är ett open source projekt som har tagit stora delar av jvm:en till Legos Mindstrom, garbage collection är dock en sak som saknas. Man programmerar mot en pilot som det finns olika varianter av, bla OmniPilot som kan styra en fordon med så kallade omnihjul, imponerande. API:et är på en relativt hög nivå men tyvärr så lämnar dokumentationen en del att önska. Nedan ett exempel på kod för att styra bilen.


        while (!Button.ENTER.isDown()) {  
                Color color = sensor.getColor();  
                if (color.getColor() == Color.WHITE) { // White  
                     speed = defaultSpeed;  
                     radius = 40f;  
                     pilot.arcForward(radius);  
                     continue;  
                }  
                if (color.getColor() == 0) { // Red  
                     speed = defaultSpeed;  
                     radius = -40f;  
                     pilot.arcForward(radius);  
                     continue;  
                }  
                if (color.getColor() == Color.BLACK) {  
                     radius = 0f;  
                     speed += 0.1f;  
                     pilot.setTravelSpeed(speed);  
                     pilot.forward();  
                     radius *= 1.10f;  
                     if (radius > 100)  
                     continue;  
                }  
                if (radius != 0f) {  
                     radius *= 0.95f;  
                     if (radius < 10) {  
                          radius = 10f;  
                     }  
                     pilot.arcForward(radius);  
                }  

Efter presentationen bildades snabbt tre stycken team som genast började programmera sin robot. Glada tillrop blandades med grymtningar om hårdvarufel och skit bakom spakarna. Allteftersom tiden gick ökade antalet provkörningarna på den officiella banan och inofficiella testbanor tejpades upp. Strax efter 22 så var det då dags att mäta sina krafter. En och en, tre varv runt banan på tid var det som gällde och efter ivriga hejarop och många skratt kunde en vinnare utses. Monika, Martin och Markus fick dock inte mottaga något annat än äran och en rungande applåd.

Fram emot halv elva var den längsta träffen i UmeJUGs historia avklarad och vi skiljdes åt med ett leende på läpparna och en önskan att göra om det men då som RobotWars! Överlag en mycket lyckad kväll.

Vi tackar Omegapoint som stod för mat och dryck,  Dohi Sweden som stod för lokal och Johan Ekblad, Omicron som vår Lejos-mentor

Copyright (©Erik Olofsson, Dohi Sweden

Copyright (©Erik Olofsson, Dohi Sweden

Copyright (©Erik Olofsson, Dohi Sweden
Copyright (©Erik Olofsson, Dohi Sweden

söndag 10 februari 2013

Gradle, App Engine, Arkitektur och Jfokus

Program för UmeJugs minikonferens 12/2 2013

Pass 1: "Event-driven arkitektur" I Umeå byggs världens mest moderna studieadministrativa system. Mikael kommer att berätta om arkitekturen generellt och hur man löskopplat olika interna tjänster. (Mikael Berglund, ITS)

Pass 2: "App Engine: Features, verktyg, demo"
Kort genomgång av Google App Engine (koncept, viktiga egenskaper, prismodell) samt exempel på hur man implementerar och publicerar en REST-ig CRUD-backend. (Markus Örebrand, Omegapoint)

Pass 3: "Gradle - Ta ditt byggsystem från stenåldern till 2013"
En kort introduktion och demo. (Mårten Hedborg, Omegapoint)

Avslutning: "Spaning från Jfokus"
Paneldebatt om trender och teman som snappades upp på JFokus förra veckan.

måndag 10 december 2012

Insikter under GDCR2012

Den 8:e december anslöt Umejug till Global Day of Code Retreat, en händelse som engagerade tusentals programmerare i Code Retreats på hundratals platser världen över. Det var tredje gången Umejug organiserar en Code Retreatet (tidigare retreats: här och här) och vi känner att vi har hittat ett vinnande format.

På en Code Reatreat får programmerare med vitt skilda bakgrunder samlas runt den gemensamma utmaningen att granska och öva på olika aspekter av sitt hantverk, att inspirera och låta sig inspireras och förhoppningen är att varje deltagare i slutet av dagen i någon utsträckning kommit till insikt:

  1. Vad (om något) har du lärt dig idag?
  2. Vad (om något) överraskade dig idag?
  3. Vad (om något) av det du lärt dig kommer du att fortsätta göra/öva mer på?
Under dagens sista retrospektiv diskuterade vi många mer eller mindre personliga insikter, men några var av mer generell karaktär. Till exempel:
  • I ett automatiserat test kontrollerar man att ett system svarar rätt på en fråga. För att kontrollen ska vara meningsfull behöver man veta vad det rätta svaret är, eller åtminstone någon speciell del av svaret.
  • Det är svårt att kommunicera när man inte får prata. Det är jätteviktigt att man pratar med dem man jobbar med!
  • Genom att använda kortkommandon och stödfunktioner (refaktoreringar, kodgenereringar, visualiseringar osv) i sitt IDE blir man snabbare och får bättre koll på vad man gör. Det är dessutom inte speciellt svårt att lära sig!
  • TDD kan användas för att beskriva ett systems beteende sett ur användarens (klientkodens) perspektiv.
Utöver det fick många tips på kodstil, designmönster och modellering/kravtolkning och sammantaget var det en trevlig och givande tillställning.

Artikel i Infotech: http://www.infotechumea.se/popular-kodardag-lockade-3200
Blogginlägg på coderetreat.org: http://coderetreat.org/profiles/blogs/insights-from-sweden-ume

Precis avslutat tredje sessionen: "No naked primitives", dags för lunch

Session fyra: "No if-s".