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 till vår meetup eller maila oss.

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.