QCon is a practitioner-driven conference designed for technical team leads, architects, and project managers who influence software innovation in their teams.
Simon Ritter, TweetHead of Java Evangelism at Oracle Corporation
Biography: Simon Ritter
Simon Ritter is a Java Technology Evangelist at Oracle Corporation. Simon has been in the IT business since 1984 and holds a Bachelor of Science degree in Physics from Brunel University in the U.K.
Originally working in the area of UNIX development for AT&T UNIX System Labs and then Novell, Simon moved to Sun in 1996. At this time he started working with Java technology and has spent time working both in Java technology development and consultancy. Having moved to Oracle as part of the Sun acquisition he now focuses on the core Java platform and Java for client applications. He also continues to develop demonstrations that push the boundaries of Java for applications like gestural interfaces.
Twitter: @speakjava
Presentation: TweetIs It A Car? Is It A Computer? No, It's a Raspberry Pi Java Carputer
Since 2001 all petrol engined cars sold in Europe are required to be fitted with a European On Board Diagnostics (EOBD) interface. Low cost connections to this provide Wi-Fi access to raw car system data. The Raspberry Pi provides a low cost ARM processor based embedded system for multiple uses. This session will look at how Embedded Java and a Raspberry Pi has been used to communicate with the diagnostic and management systems of an Audi S3 and process the data. With the addition of a touch screen we will show how JavaFX has been used to provide an in-car informatics system for less than $200.
Adding an accelerometer to the hardware configuration allows us to measure the forces affecting the car. Exciting data like G-forces, lateral loads, power output and acceleration times can all be added to the display. By accessing CAN bus data it is even possible to repurpose things like steering wheel buttons to provide hands-free control of the interface.
Videos of the system in action will be shown.
Presentation: TweetLambdas & Streams: Taking the Hard Work Out of Bulk Operations in Java SE 8
The significant new language feature in Java SE 8 is the introduction of Lambda expressions, a way of defining and using anonymous functions. On its own this provides a great way to simplify situations where we would typically use an anonymous inner class today. However, Java SE 8 also introduces a range of new classes in the standard libraries that are designed specifically to take advantage of Lambdas. These are primarily included in two new packages: java.util.stream and java.util.function.
After a brief discussion of the syntax and use of Lambda expressions this session will focus on how to use Streams to greatly simplify the way bulk and aggregate operations are handled in Java. We will look at examples of how a more functional approach can be taken in Java using sources, intermediate operations and terminators. We will also discuss how this can lead to improvements in performance for many operations through the lazy evaluation of Streams and how code can easily be made parallel by changing the way the Stream is created.