5 Feb 2013
Embedded, M2M & Internet of Things
Registration and Coffee
Making The Future Java...Together
Georges Saab, Oracle
Taking Development to the Edge
Sharat Chander, Oracle, Corp. and Henrik Ståhl, Oracle
Venkat Subramaniam, Agile Developer, Inc.
Seth Ladd, Google
Eva Andreasson, Cloudera, Inc
Gustaf Nilsson Kotte, Jayway
Marcus Lagergren, Oracle
Christer Norström, SICS
Lunch and exhibition
Mark Reinhold, Oracle
Simone Bordet, Intalio
Darren Hague, SAP
Dick Wall, Escalate Software
Andres Almiray, Canoo Engineering AG
Axel Hansmann, Gemalto
Martijn Verburg, jClarity
Kohsuke Kawaguchi, Cloudbees
Bodil Stokke, Arktekk
Holly Cummins, IBM
Gerrit Grunwald, Canoo Engineering AG
Fredrik Vraalsen, Knowit
Mike Keith, Oracle
Klara Ward, Oracle
Sonya Barry, Oracle
Carlo Pompili, Telcred
Sven Peters, Atlassian
John Wilander, Svenska Handelsbanken
Cyril Mottier, Google Developer Expert
Heinz Kabutz, JavaSpecialists.EU
Jonathan Ellis, DataStax
Benjamin Cabé, Sierra Wireless
Thomas Sundberg, Waymark
James Gosling, Liquid Robotics
Talip Ozturk, Hazelcast
Joonas Lehtinen, Vaadin Ltd
Geertjan Wielenga, Oracle
Mingle and exhibition
Bar sponsored by Atlassian
Markus Eisele, msg systems ag and Mike Keith, Oracle
Hans Dockter, Gradleware and Kohsuke Kawaguchi, Cloudbees
Joakim Eriksson, SICS
Java EE.express BOFMarkus Eisele, msg systems ag and Mike Keith, OracleJava EE has a broad array of technologies that can be leveraged in almost any enterprise scenario. While the mature breadth of the platform has definitely been one of its strengths, community involvement has also been a major contributor to its success. As software trends change over time the community voices their opinions about which new technologies and practices should be included or made optional in subsequent platform releases.
This BoF will be an opportunity for developers to express their views about the overall direction of Java EE, as well as make suggestions for features and improvements to individual specifications.
Come out and be heard? or just listen to what others have to say and assert your agreement/disagreement over their opinions!
OpenJDK, JCP and Adopt OpenJDK/JSR Community BOFHeather VanCura, Java Community Process and Martijn Verburg, jClarityThis informal BOF will cover latest news and discussions of OpenJDK, JCP and Adopt OpenJDK/JSR, the two JUG lead programs to gain more developer involvement in Java standards as well as the language and the platform itself. All levels of experience are welcome and we will make sure that your questions are answered and that you have some concrete activities you can get started on to help change the future of Java!
OSGi vs Spaghetti - Part II, The Enterprise strikes backHolly Cummins, IBMSoftware engineering sometimes seems like a struggle against spaghetti. Without lots of care, modern projects risk becoming an unwieldy tangle of closely-coupled code whose behaviour and dependencies are mostly unknowable. OSGi can help keep the complexity at bay, but until recently OSGi didn't play very well with modern enterprise programming models such as dependency injection, WARs, JPA, and application deployment. The Enterprise OSGi programming model is changing all this, and can help keep your applications from descending into a noodly mess. This session will discuss the basics of OSGi modularity, and demo the build tools, middleware, and architectural principles which can be used to turn a chunky WAR into a lean, mean, extensible OSGi web application.
Functional GroovyAndres Almiray, Canoo Engineering AGIn recent years functional programming has gained ground over object oriented mainly due to the advancement in computing power. The JVM is no exception, you can find powerful contenders in Clojure and Scala. However Groovy doesn't stay behind. The Groovy programming language contains a wide array of APIs and features that facilitate a functional programming style, such as closure composition, memoization, trampolines, iterator methods and more. We'll explore all of these features that are sure to spice up your daily experience.
Surviving the Zombie Apocalypse of Connected DevicesGustaf Nilsson Kotte, JaywayThe zombie apocalypse has begun.
The number of different types of connected devices is increasing. We have already built ourselves a large amount of code duplication between client applications (both native apps and web apps) and it's only getting worse. Also, cheap low-profile devices are getting bigger market shares and users will still expect a good experience when using our software.
To solve the problem of code duplication on the clients, we need to pull as much code as we can from the clients back to the server. A good way to achieve this is to build a Hypermedia API and to use HTML as the media type for the API. A nice side-effect of this is that we can show the received HTML directly to the user, which will be good enough for a majority part of a client application.
The problem of low-profile devices is best solved by using Progressive Enhancement, which will allow us developers to provide the best experience that the device is capable of delivering.
Finally, combining HTML Hypermedia APIs and Progressive Enhancement will allow us to have a single endpoint for our web and our API. Grab your keyboards and join the resistance!
Phaser and StampedLock Concurrency SynchronizersHeinz Kabutz, JavaSpecialists.EUIn Java 7, the Phaser was introduced to give us a more flexible form of CountDownLatch and CyclicBarrier. In this presentation, we will show examples of how Phaser can be used to communicate between threads and how it simplifies your code. A new construct that is being worked on is the StampedLock. This new type of locking mechanism allows readers to access state concurrently, much like the ReadWriteLock. However, it is much more efficient for readers, since you can do so in a more optimistic fashion. In this presentation, we will show how to use it and what some of the common coding patterns are that we can use.
How we took our server-side application to the Cloud and liked what we gotNoam Tenne, JFrogTaking traditional Java server-side applications to the multi-tenant Cloud introduces lots of challenges. In this session, we will share our experience of creating a SaaS offering, which is currently being used successfully by the Java community. We will start by reviewing the challenges we faced during the SaaS conversion. Next, we will share our experience with the EC2 platform. We will discuss the importance of automation and how we use tools like Chef and Puppet for SaaS provisioning. Finally, we will describe how creating a SaaS version of our product shifted our way of thinking about software release. We will recommend what?s required to successfully release both SaaS and downloadable versions of your product.
SubCut - Truly Simple Dependency Injection for ScalaDick Wall, Escalate SoftwareDependency Injection is a surprisingly simple solution to an age old problem when writing large computer systems, how do I hook everything together but keep it flexible. It has been proven in numerous enterprise settings as an ideal solution combining flexibility and convenience, and yet the frameworks that provide dependency injection must often choose between either flexibility or simplicity, often because of limitations of the host language.
Scala offers the flexibility, power and abstraction necessary to provide a truly simple but powerful solution to the problem. SubCut (Scala Uniquely Bound Classes Under Traits) is a library that anyone can learn and use within minutes, and which will scale up to large software installations without problem. It is actually a combination of dependency injection and service locator patterns, and relies on the power of Scala to make the difficult seem easy. Some of the features that make SubCut unique include:
* Inject instances of classes, but still use "new" to create them
* No mutable state required, injected values can be assigned to vals in the class
* Immutable configuration (with a mutable builder to make life easy)
* A readable, simple DSL that leads you through the process of binding traits to implementation
* Deep type safety, e.g. inject a List[Int] and a List[String] from the same configuration with different values
* Lightweight identification of configuration values with symbols or names
* Compatible with any other library without needing a compatibility layer
* Compile time verification of the presence of a configuration module for any injected class
* Easy modification and combination of configuration modules at runtime (e.g. for testing) but with the original configuration remaining immutable
* A completely optional compiler plugin for drop-dead simple injection
* Works extremely smoothly with all IDEs
SubCut 1.0 got some good use from interested developers, and led to a number of improvements from lessons learned. The recent SubCut 2.0 has improved on most of the features of the original release, without getting much more complicated as a result.
GWT and Vaadin Open BOFJoonas Lehtinen, Vaadin LtdGWT has moved to be under control of a steering committee comprising developers from Google, Sencha, Red Hat, ArcBees, Vaadin, mgwt and other GWT advocates such as Thomas Broyer, Christian Goudreau and Daniel Kurka.
Vaadin Framework version 7 is the first new major version of the rich web framework in over three years of iterative evolution. The first goal for Vaadin 7 is to give more freedom to use underlying technologies with ease.
Come to this Open BOF to discusses GWT and new features of with people from GWT steering committee and core developers of Vaadin.
Build, Test, Deploy, and Automation: Where we are and where to go nextHans Dockter, Gradleware and Kohsuke Kawaguchi, CloudbeesWe have a great opportunity here at Jfokus to bring our collective minds together to discuss where we are in the overall automation effort and what gaps exist today that need to be filled. Users can bring their success stories and pain points stories, tool makers can ask the users to validate their ideas.
Designing HTML5 ComponentsJoonas Lehtinen, Vaadin LtdMany toolkits offer a wide range of widgets for building rich web applications on top of HTML5 platform. For a real world application these are rarely enough, making development of custom user interface components a necessity. Unfortunately, designing reusable components is far from trivial.
Apache Cassandra in ActionJonathan Ellis, DataStaxCassandra is the scalable NoSQL database powering modern applications at companies like Netflix, eBay, Disney, and hundreds of others. This talk will cover Cassandra use cases, features, and a taste of what developing against Cassandra is like.
Strategies for Loose Coupling in Large Java Desktop ApplicationsGeertjan Wielenga, OracleLarge Java desktop applications are found throughout the software world, typically in back offices doing behind the scenes work, for example, in air traffic control, defense force simulations, risk managament analysis, and, generally, in the processing and visualization of large sets of data. Such applications will never completely run in the browser, on a tablet, or on a mobile phone.
These applications, typically very well hidden, are doing mission critical work. In this session, you will learn strategies for simplifying the work that needs to be done when creating and maintaining such applications in Java. With Swing or JavaFX (or both) on the frontend, a stable and powerful framework beneath, and modularity natively built in, you will see how the infrastructure of NetBeans can be leveraged as the basis of any Java desktop application, from NATO to Swedish defence force, and from finance to software development tools.
The session focuses on how to create loosely coupled features in large Java desktop applications and includes a panel, with discussion, and interaction from participants. By the end you will know everything to get started creating pluggable and maintainable applications yourself. Stand on the shoulders of giants, stand on the NetBeans rich client platform.
Creating a Configuration Standard for Java EEMike Keith, OracleA recurring problem that developers and devops face is when they deploy an existing Java EE application in a different environment and want to configure it for the new environment without having to crack open the archive. We will introduce a potential JSR proposal that will go about solving this problem by defining a new Java EE configuration service. Such a service would provide the ability to create one or more configurations independent of the applications that use them. We will describe how such a service could provide other kinds of configuration features as well, including tenant-based configuration, configuration change notification, versioned profiles, and more. Come see how Java EE is getting more devops friendly!
Easy Scaling with Open Source Data StructuresTalip Ozturk, HazelcastToday's applications are getting more and more distributed everyday and it is well-known that distributed programming is hard. With Hazelcast though, distributed programming is easy and lots of fun. A common reaction of Hazelcast users is 'Ooh my God, this cannot be that easy'. Hazelcast is an open source, highly scalable, transactional, distributed/partitioned implementation of queue, map, set, list, lock and executor services for Java. Hazelcast is for you if you like to easily: share data/state among many servers (e.g. web session sharing), cache your data (distributed cache), cluster your application, partition your in-memory data, send/receive messages among applications, distribute workload onto many servers, take advantage of parallel processing or provide fail-safe data management
Java Mission Control - Coming soon to a JDK near youKlara Ward, OracleOne of the most popular features from the JRockit will become part of the standard Java SE JDK. JRockit Mission Control will be transformed to Java Mission Control. It's still the same great profiling and diagnostics tool but focusing on the HotSpot JVM. Still usable in production with very low overhead. Still free for development. Come and learn how to it can be used to solve various types of problems, what features will be in the first public version, and what we're working on for future versions.
What Every Hipster Should Know About Functional ProgrammingBodil Stokke, ArktekkDifferent programming paradigms serve different purposes. Systems programmers prefer tools that are dumb, imperative and close to the metal. Enterprise programmers prefer tools which foster complexity, increasing billable hours and the client's dependency on the developer.
And, let me just come clean and admit it, functional programmers do it for that delicious feeling of superiority that comes from looking down your nose at the normals in their caves banging together for loops and mutable state to make fire.
Treat yourself to a crash course in the vocabulary of functional programming: lambdas, higher order functions, purity and immutability, the infinite opportunities to throw the word "monad" in the face of anyone who thinks an ironic moustache is enough to justify all that self-assured smugness these days. You'll never have to lose a programming argument again once you've learned where to casually toss terms like "applicative functor" and "Kleisli triple" into the conversation.
This is the War of the Hipsters. Arm yourself now, before it goes mainstream.
HTTP, WebSocket and SPDY: Evolution of Web ProtocolsSimone Bordet, IntalioThis session will run you through the history and future of web protocols, starting from HTTP, then moving to WebSocket and finally to SPDY (the new protocol on the block), analyzing pros and cons of each protocol, its browser and server support, with a final look at what HTTP 2.0 might look like and how web servers such as Jetty 9 may need to change architecture to support these new protocols.
Design Patterns in modern JVM LanguagesVenkat Subramaniam, Agile Developer, Inc.The GOF design patterns were quite centered around OOP languages. Now that we have dynamic and functional languages on the JVM, there are quite a few other patterns that come in handy with these capabilities. In this presentation we will explore patterns that allow us to make better use of closures and functional style of programming.
Git Deploy!Fredrik Vraalsen, KnowitWe are utilizing the strengths of Git in a novel way to replace existing methods of client and server software distribution and deployment in a large organization with locations all across Norway.
Come see how Git helps us solve issues like missing software updates, early distribution of new versions, clients running test versions in production, and more!
Big Data Real World Use CasesEva Andreasson, Cloudera, IncOK, so recently or in the near future your boss (or inner voice) will tell you "We need to figure out how we can utilize Big Data". Maybe you've heard about Hadoop, but you haven't really had the time yet to wrap your head around how to actually get more value out of new types and huge sets of data. What can Hadoop do for you? This is a talk giving examples of how Hadoop can be used for real world use cases. Attend this talk to get inspired and educated on how to use Hadoop to analyze social media data, and learn from a walk-through of gaming giant King.com's impressive use case which will offer insights and "gotchas" and will provide steps on how to get your first results using this popular Big Data processing framework.
Internet of Sports (or How to win GOLD medals in the next Olympics)Christer Norström, SICSWinter sports science is growing with the ever-increasing focus on achieving the best results possible. To maximize performance and stay at the top in cross country skiing, research in bio mechanics, physiology, and skiing techniques is required, as well as in equipment such as skis, poles and waxes. In this talk we will present a concept for using sensor technology in the field for improving technique, training methodology and tactical skills in cross country skiing. The concept is built on sampling of inertia sensors, advanced data analysis and visualization. The goal of the project is GOLD medals in the next Olympics in Sochi. The project is a collaboration between Nationellt Vintersportcentrum in Östersund and SICS
Taking Development to the EdgeSharat Chander, Oracle, Corp. and Henrik Ståhl, OracleToday the world is rapidly changing around us where our desire and dependency on information is growing, information that goes beyond what can be gathered and shared over computers, tablets, and smart devices.
The next frontier known as the "Internet of Things" is the millions, if not billions, of smart devices all connected through intelligent systems that will offer the world new solutions, opportunities and scale for greater productivity.
In this keynote you will learn more about this expanding frontier and how Java can enable developers to participate and build solutions for the ever-growing "Internet of Things" marketplace.
How to fail a software project fast and efficiently?Thomas Sundberg, WaymarkSoftware development is an industry that has been around for a little bit more than 50 years. There are a lot of really smart people working in this industry. How is it possible that these smart people are so good at failing? How can we as an industry continue year after year with failing or really slow development?
There are many anti patterns that can be applied to software projects.
We will look at a selection of these anti patterns and see why they are so bad and the problems they contribute with.
Just looking at bad examples may be depressing. But if you can identify a bad example in your own project or product then you have a chance to do something about it. Understanding and accepting that you have a problem is always the first step to fix it.
Java.net Community UpdateSonya Barry, OracleThis talk would cover a brief history of the Java community from the Java.net and JUGs perspective, the current ways Oracle is supporting Java.net and JUGs from behind the scenes, our roadmap for the next couple of years, and how to best leverage us to support your projects and JUGs.
Optimizing Android UI - Pro tips for creating smooth and responsive appsCyril Mottier, Google Developer ExpertBuilding a successful application requires more that just publishing an application full of features on the Google Play Store. You have to ensure your users are delighted by your application's UI and can interact with it seamlessly, with no hiccups, no stutter. In other words, creating smooth and responsive applications is the path to enlightenment! I personally consider, speed is a feature ! In this session we will cover many Android UI development tips and tricks to ensure your application looks blazing fast. We will mainly focus on learning pro tips to speed up the drawing of the UI.
Modern Software Development Anti-PatternsMartijn Verburg, jClarityThe Diabolical Developer and Ben Evans (the voice of reason!) present a host of modern software development anti-patterns. This session provides a wealth of tips and tricks to free you from the chains of so call ?modern software development best practices?.
We're not delivering software any more successfully than our forebears! So what?s really going on? Well things like Agile and Software craftsmanship certainly take you down some dangerous paths, and don?t even get us started on Java 7! You?ll learn about topics such as how to unleash the awesome power of:
* Mortgage Driven Development
* Pokemon Patterns
* Conference Driven Delivery
* The AbstractFactoryFactoryManagerBuilder class
* Can Haz Cloud
Continuous Delivery: from Dinosaur to Spaceship in 2 yearsDarren Hague, SAPThe SAP ID Service is SAP's identity management system for its websites and cloud operations. The team that built it came from a background of writing web applications in Java 1.4 for an ageing and proprietary platform where it took up to a week just to deploy a new release after it had passed mostly manual QA. With the SAP ID Service project starting in 2010 the team rebooted itself: we adopted Scrum and started building the SAP ID Service using a lean, modern and standards-based application server built from open source components and using Continuous Delivery for build, test and deployment. We are now at the stage where each commit leads to a build with automated test coverage via Cucumber followed by a blue/green deployment to a production-like QA landscape which is provisioned from a cloud and configured automatically using Chef. A similar deployment to production is just a couple of clicks away, and the cloud-based technology used for this also enables developers to provision their own landscapes using a simple web-based tool. This talk will describe our journey, not only sharing our experiences but also welcoming questions and stories from others in the room.
Java 8, Java 9, and BeyondMark Reinhold, OracleA brief overview of the key new features in Java 8 and some of the features being considered for Java 9 and later releases, with plenty of time for Q&A.
Large-Scale Automation with JenkinsKohsuke Kawaguchi, CloudbeesJenkins is the most adopted open source continuous integration server today, and beyond the automated build and test, it is a platform for launching all kinds of automation tasks. As the use of Jenkins grows inside an organization, people are automating complex activities that need to be choreographed, such as deploying an application, running a load test, cleaning up the environment, and then handing over the build to the operation team. Such orchestration of activities is a very useful building block for continuous delivery, a practice promoted in recent years. This session looks at various patterns and plug-ins that deal with this kind of choreography.
Web Components NowSeth Ladd, GoogleFrom embeds to widgets to managing complex applications, you constantly face the need for better componentization as a web developer. Don't despair, help is on the way. The web platform is gaining a powerful new set of capabilities designed to better help you build robust, reusable, and packageable components. The component model for the Web, also known as Web Components is the new family of web platform features for declarative composition, to modern browsers today. We'll cover what they do, their status, and how you can start playing with these powerful emerging technologies today. In this talk, you'll learn how all the pieces fit together. Demos will be shown using Dart and how that helps to bring Web Components to modern browsers today.
Making The Future Java...TogetherGeorges Saab, OracleThe future course for modern day living, in both the enterprise business world and consumer arena is being positively influenced by the ongoing innovation and value of Java. Under Oracle's stewardship, Java is enjoying a renaissance of investment and innovation which is renewing its relevance and reach to developers, giving them new methods to solve existing development challenges as well as new opportunities to create bleeding edge application use cases. From the continued refinement of the Java Community Process, the increased transparency in the OpenJDK project to influence the future direction of Java, as well as greater ecosystem driven efforts such as the Adopt-a-JSR project to drive broader developer participation, Java's positive future is being made together between Oracle and the community at large. In this keynote you will hear about the most important new directions and how you can directly take part in making the future Java.
Benefits of Java to the embedded EcosystemAxel Hansmann, GemaltoGemalto provides M2M solutions for more than 15 years. Gemalto has introduced a new generation of Java-enabled Cinterion modules to deliver a powerful and flexible hub for a wide range of embedded applications. The Technology benefits the entire end-to-end solution. Vertical applications benefit from easier integration of very specific vertical applications and customization. The module provides resources for processing tasks and extended functionalities. The backend connection to the module is simplified through the protocol hosting capabilities of Java on the module. The Module can function as a management gateway to the application deployed in the field. Find out more about the technical details of the new Module, the Java implementation and how the module can be used.
BeagleBoard, RasberryPi, HTML5 and JavaGerrit Grunwald, Canoo Engineering AGUsually Java developers do not create code for embedded devices because there was no good Java support on these devices. Oracle figured out that there is a huge market for embedded devices and decided to support Java and JavaFX on hardware like the very popular Raspberry Pi and the BeagleBoard xM. With Java technology available on these platforms it's very interesting to see what you can do with this. This session will give you a short overview on the available technologies and will explain the interaction between different technologies and where they make sense. The uses case will be a temperature monitoring application where a Raspberry Pi running on Java7 embedded is measuring the temperature and sends the measured data to other devices. One of these devices is a BeagleBoard xM running Java7 incl. JavaFX for ARM which is visualizing the measured data from the Raspberry Pi on a touch screen. Also involved in the use case will be a desktop application running JavaFX to visualize the data and at least a mobile device visualizing the measured data using HTML5 Canvas.
Eclipse M2M: Open Source building blocks for the Internet of ThingsBenjamin Cabé, Sierra WirelessThe Eclipse M2M Industry Working Group (http://m2m.eclipse.org) is an open-source initiative delivering a set of building blocks for creating IoT solutions. This talk will walk you through the different projects and technologies this group is developing (from embedded application framework, to communication protocols, including development tools) and a live demo will show you how you can very quickly combine the components we provide with Open-Source Hardware platforms (Arduino & Raspberry Pi) to build a complete solution. Join us if you want to learn more about the Lua programming language, the MQTT protocol, and all the cool technologies that we use :)
How To Do Kick-Ass Software DevelopmentSven Peters, AtlassianWith Kick-Ass Software Development you actually get stuff done. Feedback cycles are short, code quality is awesome and customers get the features they lust after. Less mangers managing, less testers testing and less IT-operators operating. The developers take the power back, making them much happier. Sound like paradise? It is! This session will show you how we do Kick-Ass Software Development at Atlassian. I will talk about how we: use pull requests for better code quality; collaborate fast to develop ideas; avoid meetings to get more stuff done; tighten our feedback loops to fail faster; shorten our release cycles; and work together happily on different continents. It's a great way to develop software and we think it can work in your company, too.
Robots and Oceans with Liquid RoboticsJames Gosling, Liquid RoboticsLiquid Robotics have a growing fleet of autonomous vehicles that rove the ocean collecting data from a variety of on board sensors and uploading it to the cloud. The robots have a pile of satellite uplink/GSM/WiMax communication gear and redundant GPS units. For example, one is a set of robots patrolling the ocean around the Macondo well in the Gulf of Mexico monitoring water chemistry. These craft harvest energy from the waves for propulsion and can stay at sea for a very long time. They can cross oceans.... Slowly.
NOTE: THIS TALK WILL BE STREAMED FROM USA
Secure NFC services with Java Card and a new approach to physical access controlCarlo Pompili, TelcredAfter several false starts, NFC (Near Field Communications) is finally starting to appear in mobile phones. But having an NFC phone does not by itself mean that it can be used for secure services, such as payments or access control. In this presentation, the difference between NFC and secure NFC will be explained and also how the latter relates to Java Card. An alternative use of Java Card as an embedded cryptographic co-processor will also be introduced through the example of Telcred?s innovative model for offline physical access control.
Opportunities and Challanges with Embedded & Internet of ThingsJoakim Eriksson, SICSIn this open space BOF you can take all your questions on Internet of Things, Embedded and M2M. Will discuss solutions to specific problems as well as discuss business opportunities and challenges in the Embedded space. Bring your knowledge and your questions and be active. This BOF will be shaped us together.
Raspberry Pi NightHacking BOFStephen Chin, OracleThe 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 Java Virtual Machine. The possibilities are endless!
In this BOF we will discuss tips and trix on how to get up and running with the Rasberry Pi. Everyone can join and we are eager to here all about your cool projects and experiences.