Skip to main content

JFokus 2013: First confrence day

This was my first time at JFokus but hopefully not last. I wasn't quite sure what to except. I had heard good things about the confrence and knew that it was quite big. It was more and better than I expected. There were over 1500 attendees and great session from beginning to end. If i get the opportunity to go again I'm most definitely going again.

On the first day I attended six sessions. I'm not going to write all my notes here but I'll try to give good summary of each session and the rest can be read from JFokus website where you can find presentation materials for both days.

Taking development to the edge

This was the keynote of JFokus embedded, M2M & internet of things miniconfrence.

In the future everything is connected to each other and to the internet by everything meaning absolutly everything. Cars can share information of traffic, houses can tell if all the doors are closed and locked or the are the lights on.

Smart homes didn't succeed 10-15 years ago because automation was expensive and possibilities were unknown. In the future smart homes will be true but instead of full blown automated homes the automation will take care of the simple things. Lights can controlled automatically depending on movement in rooms or how much sunlight shines through the windows. When nobody is at home the lights can be switched off, temperature can dropped by adjusting central heating and home surveillance system be turned on.

For all this to be true and to keep the networks running without massive break downs embedded systems need to able to turn on and off their network traffic so that they don't send status updates every minute or so but when there's actually something signicant to report.

Today there are about 200 000 programmers in the embedded field but in the future there are going to billions of embedded devices. So who's going to be designing and implementing all those devices and their software. There's going to be a huge need for embedded programmers in the future and Oracle is going to respond to this with Java and their aiming to #1 platform of embedded devices. JVM already works in embedded devices but Oracle is going to expand this support by bringing Java SE APIs to Java ME.

By attending this session I also got a free Raspberry PI and hopefully I have some time in the future to try out some embedded programming with RPI and Java.

Design patterns in modern JVM languages

Very well presented session about patterns by Venkat Subramaniam. The most important thing to remember from this was that patterns are communication between people a common way to describe how something is done so don't force your code to patterns. I didn't have to make much notes abot this one because I was so concentrated on observing.

Unofrtunately there aren't anything about this session on the JFokus web site either but here's a few good patterns he demonstrated: Lambda expressions, execute around and function composition. And  these are a few you shouldn't use: Cascade pattern, Java 7 ARM (automatic resource management).

Continuous delivery: From dinosaur to spaceship in 2 years

Story of how SAP's SAP ID Service department brought their tools and methods to this day from Java 1.4 and waterfall methodology. This was a ok session nothing bad but also nothing amazing. I don't think I have anything say that you can't find in the presentation material.

Large scale automation with Jenkins

Introduction to Jenkins plugins that makes Jenkins more than just a CI build tool. Kohsuke Kawaguchi introduced Jenkins plugins for variuous situations like parameterized builds, naming builds, virtual maven repository and some for visualizing build workflows and pipelines. If your using Jenkins or evaluating it I really suggest that you look through the presentation material.

Howto do kickass software development

Great non-technical talk of howto create good software.

So why to deliver kick-ass software? 

To have happy customers of course.

Howto know that you're doing the right thing? 

Fake the software first, do a pretotype e.g. do paper models of web site and see how everything fits together. Constantly gather feedback and remember to answer to the feedback and don't let the project manager filter the feedback but go through the feedback in the development team and let the developers answer.

What about kick-ass development team? 

Traditionally developers are one team and QA is another break this! Make developers test each others code and practise this. Do pair programming with developer and tester or let developer do the testing and tester do the testing and compare notes.

Some other things you can do to improve

Automate builds and testing. This gives you the opportunity to fail fast and to share artifacts. Run your tests concurrently to run them faster. Have a build stategy for unit tests and for performance tests. Examine the statistics of your code, builds and tests.

Howto fail a software project fast and efficiently

This presentation listed almost all the possible things one can do to ensure that a project fails. I can't summarize this presentation because everything in the presentation was important. This is something everybody involved in software development at any level should read through. When you read it through remember to negate everything until you see the stop sign.


Popular posts from this blog

DIY home automation v1

For years I've been interested in home automation. I've had remote controllable outlets from a few different manufacturers but I've never been quite satisfied with just the remote. What if I could control my outlets within my local network from any device, now that's something I wanted to have.

Controlling outlets from computer A few years back I bought a three pack of remote controllable nexa outlets. A while ago I discovered that another company manufactured a control unit that's plugged in to a USB port and best of all they provided linux software for it.

To make full use of these I'd need a computer that's always on and that's where I could make use of Raspberry Pi.

Setting up outlets
I had already set up my outlets with the remote that came in the retail pack just follow the manufacturer instructions.
It might be possible to configure the outlets completely via the software at least for some brands but I haven't tried it so I can't be sure.…

DIY home automation v2

Previously I set up a simple home automation system for controlling outlets at home. So far I've used the system for controlling various lights at our home. I've been satisfied with oulet controlling via browser but I wanted something more.

I had a idea of temperature and humidity monitoring via Raspberry Pi. I was already browsing for electronics components needed for building a system with sensors but buying single components seemed a bit expensive and I would also have to actually connect all the components to RPi and write the code to read the sensor data.

Mainly because of the price the components I started looking for a pre-built system with the preferred sensors. Almost immediately I came across Proove's sensor that has indoor and outdoor temperature sensors and a indoor humidity sensor. Best part of the pre-built system is that it's already compatible with TellStick system that I used for controlling outlets.

I decided to buy the pre-built sensor syst…

DIY home automation, new generation

I've had my DIY home automation system for controlling outlets and reading sensor data running for about two years now. The system has been working fine and I haven't had any need to touch the code since I added the sensor reading to it, until a few months back.

Need for new functionality
Few months ago I got a new IoT toy for a lend from a friend until I'd get my own toys, a ruuvitag sensor beacon. Ever since I found the ruuvitag for the first time from kickstarter I had the idea of getting a bunch of ruuvitags and adding their weather station sensor readings as part of my home automation system.

The original home automation backend included only tellstick compatible devices and was written in Python, and in my mind it was kind of a hack. The ruuvitag beacons communicate via BLE i.e. Bluetooth Low Energy and that meant that I needed to add functionality to read the beacon data via bluetooth.

I found a ruuvitag Python library and initially thought that I'd just use that a…