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.

tisdag 2 september 2014

Umejug 9 September 2014

Välkomna till höstens första umejug!

Kvällen ser ut ungefär såhär:

18-18.45 Clean Code - vettigt eller onödigt? Det finns kanske olika åsikter, så det kan bli en intressant diskussion. Avslutas med ett Code Quiz - exempel på hur kod inte ska se ut. Jonas Andersson.

18.45-19.30 Dropwizard - en introduktion. Vad är det, varför ska du använda det och hur börjar man? Mattias Sällström.

19.30 Continuous Deployment på JBoss 7+ med Maven. (I mån av tid - vis av tidigare erfarenheter kan sessionerna innan dra ut på tiden :). Ett exempel på hur man kan ta några steg bort från maven-release-plugin och några steg närmare Continuous Deployment. Vi tittar på jboss-cli, maven, nexus och bash-programmering. Jonas Andersson.

Vi syns på tisdag!

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.