Se Google I/O Extended med Squeed

No Gravatar

Squeed bjuder in till Google I/O Extended i Göteborg


Om du inte har möjlighet att åka till San Francisco för Google I/O så är det här chansen för dig att vara med på distans. Vi kommer att äta lite mat och titta på keynoteen från Google I/O. Vi håller till i Squeeds lokaler på Södra Larmgatan 4 Karta

Agenda

17:00-18:00 Öl och pizza och mingel
18:00-20:30 Google I/O Keynote (streamad från USA)

Anmälan via Javaforum

TDD-kurs, våren 2013

No Gravatar

Squeed bjuder in till en ny omgång av kursen i testdriven utveckling (TDD). Denna omgång av kursen vänder sig till dig som är Java-utvecklare och nybörjare inom TDD-området. Kursen omfattar fem tillfällen om ca två timmar där du kommer få praktisk erfarenhet av att utveckla kod testdrivet.

Upplägget med datum (spikat) och ämnen (lite mer rörligt) ser ut så här:

tors 25 april, kl 16-18: TDD, basics
mån 13 maj, kl 16-18: TDD, test backlog och “enough upfront design”
tors 23 maj, kl 16-18: TDD + OO, classical approach
ons 5 juni, kl 16-18: TDD + OO with mock framework
tors 20 juni, kl 16-18: [något av: Clean Code, Mockist approach, BDD, three-clause style, Refactoring]

Kursen, som är gratis och har plats för 10 deltagare kommer hållas på svenska och leds av Fredrik Wendt, Niclas Åstrand och Peter Kristoffersson. Vi ger förtur för nya deltagare och du kan anmäla ditt intresse genom att fylla i ett enkelt formulär för intressanmälan.

Snabbkok: Jenkins och Sonar

No Gravatar

Fråga: Hur lång tid tar det att sätta upp Continuous Integration, om man har lite bråttom? (Jag var iväg på en utbildning och den virtuella maskinen som skulle användas för koddelning och CI var trasig på flera sätt.)

  1. Starta virtuell maskin (Amazon i detta fall, valde en m1.large), Ubuntu Server 12.10. Lägg till portar 8080 och 9000 i den Security Group som används.
  2. ssh -i pem ubutu@machine-at-amazon
  3. sudo -s
  4. aptitude install openjdk-7-jdk git
  5. wget http://updates.jenkins-ci.org/latest/jenkins.war; java -jar jenkins.war &
  6. wget http://dist.sonar.codehaus.org/sonar-3.4.1.zip; unzip *.zip; ./sonar-3.4.1/bin/linux-x86-64/sonar.sh start
  7. http://machine-at-amazon:8080/pluginManager – installera “Jenkins GIT plugin”, “Jenkins Sonar plugin”
  8. http://machine-at-amazon:8080/configure
    1. JVM: /usr/lib/jvm/java-7-openjdk-amd64
    2. Sonar Runner: Install from Codehaus
    3. Maven: Install from Apache
    4. Sonar: Add Sonar
  9. Skapa repo på Github, peta in en pom.xml, kopiera URL (HTTP, read only) till repot.
  10. http://machine-at-amazon:8080/view/All/newJob – ange ett namn, Maven 2/3-projekt. Peta in URLen till Github-repot, välj “Sonar” som Post-build step (längst längst ner)***
  11. Tryck på Play-(bygg-)knappen – kontrollera att allt fungerar. Högerklicka på Play-knappen och kopiera länken
  12. Under Settings på Github-repot, gå till Service Hooks, Webhook URLs och klistra in URL:en från Play-knappen på Jenkins
  13. Peta på en fil i projektet lokalt (t ex stega nummer i pom.xml), git commit, git push. Kontrollera att Jenkins startar automatiskt (webhook från Github), att informationen trycks över till Sonar (http://machine-at-amazon:9000/).

Resultat

Komplett miljö igång på under 15 minuter. Användes i fyra dagar – kostnad: ~20 USD.

Ett par brasklappar

*** Gällande aktivering av Sonar som ett post-build step – detta gör ju att feedbackloopen blir långsammare för happy path: dvs om bygget går bra kommer analysen Sonar utför göra att det tar längre tid innan man får “grön flagg”. Om bygget däremot är trasigt är feedbackloopens längd oförändrad.

CloudBees är ju också ett givet alternativ och ännu roligare ihop med Sauce Labs om man t ex behöver Selenium WebDriver.

Både Jenkins och Sonar kan givetvis installeras som vanliga Ubuntu/Debian-paket istället, vilket är mer lämpligt för en permanent lösning (troligen vill man då fundera över databas och konfiguration till Sonar, kanske autentisering osv).

Mer test, eller More Unit

No Gravatar

En Eclipse-plugin jag inte vill vara utan är MoreUnit. Den är väldigt liten men fyller en eller två funktioner som är mycket användbara:

  1. Skapa test
  2. Hoppa till test

Båda dessa funktioner dras igång från samma kortkommando (Ctrl+J på Win/Lin) – finns det inget test att hoppa till så får man upp “Vill du skapa ett test”-dialogen med vettiga förifyllda förslag. Finns det flera test att hoppa till så får man upp en liten ruta där man kan välja.

Installeras förslagsvis genom Eclipse Marketplace, sök bara på MoreUnit så dyker den upp.

Eclipse Marketplace

Jag brukar sedan peta lite på inställningarna för att passa min “smak” (testklassen skall sluta med …Test, JUnit4 är de inställningar jag oftast har). Extende

MoreUnit Settings

Sedan är det bara att gå loss på (legacy-)koden och trycka Ctrl+J för att skapa nya test, snabbt hoppa till testen eller kanske hitta test som “hamnat” fel.

MoreUnit - New Test Dialog

Bakom “Next”-knappen döljer sig också möjligheten att automatiskt få hjälp med att injicera mockar in i enheten under test.

Pessimistiskt och optimistiskt om parallellism i java – Jfokus

No Gravatar

Numera är det antalet kärnor som ökar istället för klockfrekvenser hos våra processorer. Därför kan vi inte förvänta oss samma prestandaökningar som tidigare genom att skaffa ny processor endast. Prestandaökningar hos våra program begränsas nu ytterst av Amdahls lag och därför är det viktigt att parallellisera vår mjukvara istället. Martijn Verburg pratade om detta (Java and the Machine (samma föreläsning fast från 2012)) på Jfokus idag.
Continue reading

Agenda för Javaforum den 7:e februari

No Gravatar

Anmäl dig till mötet här

17:00 Registrering & mingel

17:30 Välkommen
Tomas Trolltoft & Rikard Thulin, Squeed

17:40 The Java EE 7 Platform: Boosting Productivity and Embracing HTML5
The Java EE 7 platform focuses on Productivity and HTML5. JAX-RS 2 adds a new Client API to invoke the RESTful endpoints. JMS 2 is undergoing a complete overhaul to align with improvements in the Java language. Long awaited Batch Processing API and Caching API are also getting added to build applications using capabilities of the platform itself. Together these APIs will allow you to be more productive by simplifying enterprise development.

WebSocket attempts to solve the issues and limitations of HTTP for real-time communication. A new API is getting added to build WebSocket driven applications. Processing JSON structures is inherent in any HTML5 applications and a new API to parse, generate, transform, and query JSON is being added to the platform. JavaServer Faces will add support for HTML5 forms. There are several other improvements coming in this latest version of the platform.

The Java EE 7 platform is scheduled to release in Q2 2013. Some of the implementations are already integrated in GlassFish. This talk will provide a code-intensive introduction to the updated Java EE 7 platform. Several live demos will be shown during the talk. Don’t miss out on this session to learn all about how to leverage the new and exciting standards in building your next enterprise application.
Arun Gupta, Oracle

18:30 PAUS

18:45 How I Learned to Stop Worrying and Love Javascript
Javascript kan för Javautvecklare te sig stökigt och oförutsägbart. Men genom att använda sig av flexibiliteten som Javascripts-objektmodell erbjuder kan man med enkla medel modellera många av de objektorienterade principer som kan tyckas saknas i språket. Under presentationen kommer metoder och javascript-bibliotek presenteras som kan förenkla utveckling av omfattande Javascript. Ett par problem som vanligtvis drabbar Javautvecklare som tar sig an Javascript kommer också att presenteras och de underliggande principerna förklaras. Se det hela som en Javascript crasch course för Javautvecklare!
Fredrik Sandell, Squeed

19:15 PAUS

19:45 Building WebSocket Applications in Java
WebSocket attempts to solve the issues and limitations of HTTP for real-time communication by providing a full-duplex communication over a single TCP channel. It brings new opportunities for efficient server-push and peer-to-peer communication, providing the basis for a new generation of interactive and ?live? Web applications.

This session provides a primer on WebSocket and supported use cases. It examines the efforts under way to support WebSocket in the Java programming model, from a simple annotation-driven programming model and integration in the Java EE containers using JSR 356. All of this support will be available in Java EE 7, scheduled to go final in Q2 2013.

The attendees will learn how to leverage WerbSocket in their web applications using several code samples though out the talk. Simple ?Hello World? to more elaborate Collaborative Whiteboard applications will show different features of both the technologies. A complete development using NetBeans, deployment on GlassFish, and debugging using Chrome and Wireshark will be shown.
Arun Gupta, Oracle

20:30 Öl och datasnack för de som orkar på The Bishops Arms, Järntorget 6

 

Nighthacking with Stephen Chin and Niclas Nilsson på Squeed HQ

No Gravatar

Välkommen till en intressant kväll med Stephen Chin (Oracle) och Niclas Nilsson. Anmälan dig här.

17.00: Mocha Raspberry Pi Hacking
The Rasberry Pi is a 25 USD, credit-card sized computer that that plugs in to any HDMI TV and USB keyboard/mouse. It includes an ARM chip that is powerful enough to run Linux and a full version of Java SE including JavaFX. In this session you will get a chance to see Java and JavaFX technology running on a very accessible embedded platform. With a full Java Virtual Machine at your disposal, the possibilities are endless!

Stephen Chin is a Java Ambassador at Oracle specializing in UI technology and co-author of the Pro JavaFX Platform 2 title, which is the leading technical reference for JavaFX. He has been featured at Java conferences around the world and at JavaOne, he twice received a Rock Star Award. In his evenings and weekends, Stephen is an open-source hacker, working on projects including ScalaFX, a DSL for JavaFX in the Scala language, Visage, a UI oriented JVM language, JFXtras, a JavaFX component and extension library, and Apropos, an Agile Project Portfolio scheduling tool written in JavaFX. Stephen can be followed on twitter @steveonjava and reached via his blog: http://steveonjava.com/

18.00 Nighthacking with Stephen Chin and Niclas Nilsson
Steve (http://steveonjava.com/nighthacking/), who is a Java Technology Ambassador at Oracle, is on tour and will visit Gothenburg on January 29 to do some night hacking. Steve will meet up with Niclas Nilsson for an informal chat and hack session around Steve’s project ScalaFX (http://code.google.com/p/scalafx/), which is a UI DSL in Scala for Java FX. Join us to talk a bit about Scala, Java FX and to learn about ScalaFX from the Steve himself!

After the hacking session there will be Pizza and beer

Nyanserad information om säkerhetshålet i Java

No Gravatar

Pressen, eller förlåt, “säkerhets experterna”, går som vanligt ut och slår på stora trumman. I sin blog beskriver Tim Boudreau (tidigare nyanserat om det senaste säkerhetshålet i Java.

http://timboudreau.com/blog/read/The_Java_Security_Exploit_in_(Mostly)_Plain_English