Sessions at Jfokus 2012 about Java

Your current filters are…

Monday 13th February 2012

  • Building Next-generation Enterprise Applications in Java a.k.a. Duke's Duct Tape Adventures

    by Bert Ertman and Paul Bakker

    Java EE 6 contains new APIs that revolutionary change the way you can build enterprise level applications with an even stronger focus on ease-of-development and further reducing the need of boilerplate code and configuration. The result is a strongly simplified programming model, while still keeping enterprise features such as transactions, security, load-balancing and fail-over.

    In this session we'll demonstrate how to use the APIs together to build a portable, full stack enterprise application and solve real-world problems. We'll not only focus on the APIs but we'll also show you how to set up a vanilla Maven build from scratch and do unit and integration testing going into almost all parts of the Java EE 6 specs.

    At the end we'll discuss the architectural consequences of this simplified programming model. Do we still need business delegates, transfer objects or DAOs? And what about separation of concerns? The session is fun and very interactive while still showing the technology in depth.

    At 1:30pm to 5:00pm, Monday 13th February

  • HANDS-ON LAB: Get started with Play! framework for web development in Java and Scala

    by Peter Lundberg

    Play! framework brings expressive and productive development to the Java world to match Rails, Django etc. This tutorial will teach what is great about playframework, how it differs from traditional java web development and illustrate this with live coding tutorial where participants build a small web application supported by experienced practitioners. We will also briefly touch on common pitfalls, the Scala module, the upcoming 2.0, and other back ends.

    Bring a laptop with your favourite editor!

    At 1:30pm to 5:00pm, Monday 13th February

Tuesday 14th February 2012

  • jHome: Having Fun with Home Automation and Java

    by Yara M H Senger and Vinicius Senger

    jHome is complete Java EE 6 API for home automation. With jHome you can control wall jackets, lamps, RGB LEDs, gates and much more. The reference implementation application is using EJB's, REST, WebService, JMS, JSF and jQuery to show how you can use Java EE 6 in a totally different application context. The proposed hardware is open-source, so you do it your self. During the talk we will be showing nice and funny demos:

    - Controlling lamps;

    - Color RGB led stripe;

    - Controlling via Twitter;

    - Feed a web page with a temperature sensors. We also will be showing the software architecture and some pieces of interesting code.

    At 5:00pm to 5:50pm, Tuesday 14th February

  • MongoDB and JVM: Bringing NoSQL and Java Together

    by Alvin Richards

    MongoDB is a scalable, high-performance, open source, document-oriented NoSQL database. It features document-oriented, JSON-based document storage and dynamic schemas providing simplicity, power and flexibility, combined with full indexes similar to what a traditional RDBMS user would expect. MongoDB also provides solid replication & high availability features as well as an auto-sharding system for transparent horizontal scalability.

    This talk introduces MongoDB for developers who aren't familiar with it, and discusses various integration points for MongoDB & the JVM including Spring's "Spring Data" component for MongoDB, the Morphia Object Mapper for Java, MongoDB's Scala Drivers (Casbah, as well as a new experimental Asynchronous driver), Akka Durable Mailboxes, Lift's MongoDB Active-Record integration, and MongoDB's Hadoop integration.

    At 5:00pm to 5:50pm, Tuesday 14th February

Wednesday 15th February 2012

  • Building iOS applications in Java

    by Johannes

    Vaadin gives a server-centric programming model for building rich web applications in any JVM compatible language. The presentation shows how this development model can be extended to mobile touch devices, how server-side tooling and languages can be used to build rich applications for mobile and what are the limitations of Vaadin in respect to mobile application development.

    During the presentation, the programming model is introduced by developing a native looking iPhone and iPad applications for managing enterprise wide address book. This is done step by step to teach you how to use the technology to build iPhone and iPad user interfaces for your existing enterprise applications really fast. In the example, Vaadin TouchKit components are used to make the application look and feel like a native iOS application. The same programming concepts can be used to develop applications for Android, Windows Mobile, Symbian and other mobile platforms with modern web browser and if the native look is not required, they can be programmed with just the core Vaadin Framework.

    As a conclusion the pros and cons of the programming model of Vaadin are compared to developing mobile web applications using JavaScript with jQuery Mobile and developing native applications using the iOS and Android platform SDKs.

    At 9:00am to 9:50am, Wednesday 15th February

  • Functional Thinking

    by Neal Ford

    Learning the syntax of a new language is easy, but learning to think under a different paradigm is hard. This session helps you transition from a Java writing imperative programmer to a functional programmer, using Java, Clojure and Scala for examples. This session takes common topics from imperative languages and looks at alternative ways of solving those problems in functional languages. As a Java developer, you know how to achieve code-reuse via mechanisms like inheritance and polymorphism. Code reuse is possible in functional languages as well, using high-order functions, composition, and multi-methods. I take a variety of common practices in OOP languages and show the corresponding mechanisms in functional languages. Expect your mind to be bent, but you?ll leave with a much better understanding of both the syntax and semantics of functional languages.

    At 9:00am to 9:50am, Wednesday 15th February

  • JSR107: The new Java Caching Standard

    by Greg Luck

    In this session Greg Luck, founder of Ehcache and spec lead for JSR107 will walk you through this important new caching standard, which will form part of Java EE 7. You will learn how to:

    • Abstract your caching implementation, much as with JDBC
    • Use the rich and modern API
    • Use the new caching annotations
    • Use the API before Java EE 7 is released within the Java SE, Java EE 6, and Spring environments
    • Plug in Ehcache as the caching provider and configure it for standalone and distributed contexts

    At 9:00am to 9:50am, Wednesday 15th February

  • Developing Enterprise-Scale Java Applications on Windows Azure

    by Vijay Rajagopalan

    The Windows Azure Platform is an open and interoperable platform which supports development using many programming languages and tools In this session you will see how to build large-scale applications for the cloud using Java, Eclipse Tools, Apache Tomcat, and the Windows Azure SDK for Java. You will also learn how to leverage the latest Windows Azure Platform as a Service features.

    At 10:10am to 11:00am, Wednesday 15th February

  • SQL, NoSQL, NewSQL? What's a developer to do?

    by Chris Richardson

    The database world is undergoing a major upheaval.

    NoSQL databases such as MongoDB and Cassandra are emerging as a compelling choice for many applications. They can simplify the persistence of complex data models and offering significantly better scalability and performance.

    But these databases have a very different and unfamiliar data model and APIs as well as a limited transaction model. Moreover, the relational world is fighting back with so-called NewSQL databases such as VoltDB, which by using a radically different architecture offers high scalability and performance as well as the familiar relational model and ACID transactions. Sounds great but unlike the traditional relational database you can't use JDBC and must partition your data.

    In this presentation you will learn about popular NoSQL databases - MongoDB, and Cassandra - as well at VoltDB. We will compare and contrast each database's data model and Java API using NoSQL and NewSQL versions of a use case from the book POJOs in Action. We will learn about the benefits and drawbacks of using NoSQL and NewSQL databases.

    At 10:10am to 11:00am, Wednesday 15th February

  • "git push" Java & Play! Apps to the Cloud

    by James Ward

    Heroku is a Polyglot Cloud Application Platform that makes it easy to deploy Java & Play! apps on the cloud. Deployment is as simple as doing a "git push". This session will teach you how to deploy and scale Java & Play! apps on Heroku.

    At 11:10am to 12:00pm, Wednesday 15th February

  • The Art of (Java) Benchmarking

    by Cliff Click

    People write toy Java benchmarks all the time. Nearly always they "get it wrong" -- wrong in the sense that the code they write doesn't measure what they think it does. Oh, it measures something all right -- just not what they want. This session presents some common benchmarking pitfalls, demonstrating pieces of real, bad (and usually really bad) benchmarks such as the following: SpecJVM98 209_db isn't a DB test; it's a bad string-sort test and indirectly a measure of the size of your TLBs and caches. SpecJAppServer2004 is a test of your DB and network speed, not your JVM. SpecJBB2000 isn't a middleware test; it's a perfect young-gen-only garbage collection test. The session goes through some of the steps any programmer would go through to make a canned program run fast -- that is, it shows you how benchmarks get "spammed."

    The session is for any programmer who has tried to benchmark anything. It provides specific advice on how to benchmark, stumbling blocks to look out for, and real-world examples of how well-known benchmarks fail to actually measure what they intended to measure.

    At 11:10am to 12:00pm, Wednesday 15th February

  • Zero Downtime Continuous Deployment of Java Web Applications

    by Fabiane Bizinella Nardon

    Continuous Deployment allows to deploy code in production as soon as it has passed the quality assurance tests. This technique can dramatically reduce the release cycles, giving the company the speed expected in today's world, specially for internet based services. With the right tooling and techniques, a company can create an error free and secure process to automatically deploy its applications in production.

    Continuous deployment, however, is only viable if you can guarantee zero downtime for your application during the deployment process. With dynamic languages like PHP and Ruby, this is straightforward. Just copy the new files to the deployment folder and voilà! With Java web applications, however, things are not so simple. Although many application servers offer autodeploy features, you'll still have a few seconds of downtime while the server is deploying the application.

    This presentation will show how to create a continuous deployment process with zero downtime for Java web applications. Using tools like Hudson/Jenkins, REST services and open source application servers, you'll learn through real world examples how to create a secure and error free continuous deployment process for your application. We will also show how to deploy to cloud based servers, like Amazon AWS, what are pitfalls and limitations for these cloud offers and how you can overcome them.

    At 11:10am to 12:00pm, Wednesday 15th February

  • It Is Possible to Do Object-Oriented Programming in Java

    by Kevlin Henney

    OO means different things to different people, but they normally focus on defining terms such as encapsulation, polymorphism and inheritance, and talk about data abstraction, abstract data types and so on. In this talk we take a brief look at what one particular theory of OO suggests and what it means for regular Java programmers and their practice.

    At 1:00pm to 1:50pm, Wednesday 15th February