Java 8 brings Streams to the JVM, an easy way of dealing with stream based data evolution either sequentially or in parallel. So JVM now has data parallelism covered. There has been a lot of marketing of actors as a tool for handling concurrency and parallelism, systems such as GPars and Akka bring this to Java, Scala and Groovy programming. However there are other architectures: communicating sequential processes (CSP) and dataflow. Go has brought these models of concurrency and parallelism to the world of native code systems but what about the JVM? GPars has dataflow capability.
This hands on lab will present a number of applications which have been built to include some common significant performance bottlenecks. Attendees will be able to work through the applications using a variety of free and open source tooling to get practical experience of identifying and resolving the bottlenecks. The techniques required will be covered at the start of the labs, and the exercises will give hands-on experience of using the various tools and techniques.
Java 8 isn't your parent’s Java anymore. It is the largest update to Java in its history. Its a very exciting time. Some of the best ideas from functional programming are migrating their way into Java 8. This means easier to read, more flexible code that scales to multicore. This one day workshop is a hands-on lab session comprising slides, live coding and exercises which covers many important Java 8 topics.
Knowledge exchange is one of the primary reasons people go to a conference or attend a workshop. But talking about experience is not always enough. Talking about it and then experiencing it through doing is what makes the difference. That’s why I have combined knowledge sharing and improvisation theatre in our workshop “Agile Knowledge Exchange through Acting”.
This workshop will give you a rapid introduction to working with Data Grid technologies like Hazelcast, Infinispan, Coherence and others. This workshop will be a mixture of brief slides on the concepts of Data Grids followed by a large amount of hands on Java code. In the workshop we will configure a data grid on Amazon EC2 with a node on each attendees machine. We will also create a simple chat application using Data Grid Events, and finally we will hunt the POJO across the grid using Entry Processors for On Grid parallel processing.
You spend your precious time building the perfect application. You do everything right. You carefully craft every piece of code and rigorously follow the best practices and design patterns, you apply the most successful methodologies software engineering has to offer with discipline, and you pay attention to the most minuscule of details to produce the best user experience possible. It all pays off eventually, and you end up with a beautiful code base that is not only reliable but also performs well.
The world is becoming connected: more than 3 billion people online, 8 billion devices, millions of apps. What does this mean to developers? It means that you developers are becoming the creators of a new world - a connected world. In this talk, Paul Fremantle, CTO at WSO2 will talk about the characteristics of connected organizations: what they do that is different, and why it makes a difference. He will look at key technologies and approaches to create differences and explain the necessary steps to participate in the new world.
The rise of NoSQL is characterized with confusion and ambiguity; very much like any fast-emerging organic movement in the absence of well-defined standards and adequate software solutions. Whether you are a developer or an architect, many questions come to mind when faced with the decision of where your data should be stored and how it should be managed. The following are some of these questions: What does the rise of all these NoSQL technologies mean to my enterprise? What is NoSQL to begin with? Does it mean “No SQL”? Could this be just another fad?
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.
Probably everyone has heard of retrospectives. How you to use them to take a look at past events and learn how to improve in the future with your team. But have you ever tried to run a retrospective on your own? We used to practice “personal retrospective” for some time. We would like to tell a bit about our approach, our mistakes and share our experiences. What makes them different from team retrospectives? How can you adapt them to yourself for learning and improving your effectiveness? Which simple ideas can help you get started with “personal retrospectives”?
Writing code is fun: It's great to build something that works. But more so, it is very satisfying to create a software product that does a great job for the users and customers, and that fulfills its business goals. But who are the customers and users? What problem does the software address or which benefit does it provide? What are the business goals? I find that many teams struggle to answer these basic and fundamental questions and consequently struggle to make the right decision.
Alright, so maybe "bootiful" won't ever work, but I tried, and it was worth it too because you're reading this. Spring Boot, the new convention-over-configuration centric framework from the Spring team at Pivotal, marries Spring's flexibility with conventional, common sense defaults to make application development not just fly, but pleasant!
Most software development teams deliver applications over budget, not on time, and with a distinct lack of quality. So how do you transform your organization and teams from a cost center into part of your revenue-generating business? How do you get your IT teams to work at their creative best? How do you create those magic “x10” teams that people keep talking about? Over the past 13 years, Martijn Verburg (a.k.a. The Diabolical Developer) has specialized in transforming technical teams.
From a Product Manager’s perspective, one of the main challenges in software development is determining what to build next and what not. There are always far more ideas flying around than can realistically be implemented. When deciding what to focus on, one way is to determine the impact you are looking to generate and how much effort it will take to get there. In a perfect world, we could predict both variables precisely (impact and effort) and make nothing but flawless decisions. The reality is that we can’t and that’s where our jobs get interesting.
Solid state drives are changing many concepts and assumptions related to data storage and access in general and data access technologies in particular. Specifically, they allow us to randomly access data in speeds that are closer to RAM, and on the other hand not be as volatile and expensive as the latter.
Mobile devices, sensors and GPS are driving the demand to handle big data in Both batch and real-time . This presentation discusses how we used complex event processing (CEP) and MapReduce based technologies to track and process real-time data from a football match. Taking a data set generated by a real football match in which sensors were placed in the ball and the players' shoes. This session will show how we processed 100k event / sec using time-enhanced SQL queries in Open Source engine (WSO2 CEP / Siddhi). It therefore wants to examine how we extended the solution to conduct batch proc
One of the most important “ilities” in software is the ability to delete it and start over. In this talk we will look at this “ility”, why it is important, and how we can optimize for it. Imagine never being afraid of your code ever again!
Graphs are one of the best abstractions we have for modeling connectedness. Graph databases, in turn, are one of the best tools at our disposal for modeling, storing and querying complex, densely-connected data. Today, graphs and graph databases are helping solve some of the world's most challenging data problems, in domains as diverse as search, social networking, recommendations, datacenter management, logistics, entitlements and authorization, route finding, network monitoring, and fraud analysis. In this session we'll take a peek inside the graphista's toolbox.
Business Process Model and Notation (BPMN) is a well-established ISO standard that allows you to draw AND execute business processes. As a Java developer you should not be afraid of BPMN thanks to a new generation of lightweight, embeddable process engines. This session gives a hands-on introduction into the Open Source camunda BPM platform - expect more live coding than slides. Furthermore I want to share insights of our real-life project experience, for example about the online retailer Zalando, who is currently processing huge amounts of orders using camunda.
Java reflection has some lesser known interesting abilities, such as the setting of final fields, discovering where in the call chain we are and the ability to make objects without calling a constructor. Based on topics from the Java Specialists Newsletter, it will make your ears buzz and head explode.
Rather than focusing on transitioning to agile, this talk looks at how agile really works at a successful company that has used it from the beginning. With over 8,000 Acceptance Tests LMAX Exchange has always been test driven but the agile process used today is different to that used initially as we adapt and try out new ideas and methodologies to keep a sustainable pace of development. Quality is the responsibility of everyone at LMAX Exchange, with testers being seen as specialists in assuring quality through all means possible.
The DevOps movement resounds throughout the land and everybody might confirm: companies will benefit from developers and operations working closely with each other. The implementation of this revolutionary method usually results in introducing "Continuous Delivery" and "Infrastructure as Code" strategies. Beyond that, a complex deployment scenario demands close collaboration of participants and monitoring of the workflow. “Process as Code” is a viable approach to meet these requirements and helps to deliver software in quality and in time.
We hear it’s common to create an MVP (Minimum Viable Product) in a language that facilitates rapid prototyping, and then migrate to the JVM when the application requires better stability and performance.
There has been much talk about apprenticeships for software developers, but between employers, academia and practitioners we've struggled to find a model that works for proper long-term apprenticeships. After nearly a decade of personal research into the problem, I'm embarking on my first apprenticeship with Computer Science undergraduate Will Price, applying an experimental model where experienced practitioners like me coach and mentor young programmers directly.
In this talk @sleepyfox takes us on a journey of what software quality means, how we might measure it, and how this influences our lives as software professionals.
Almost everyone who has worked in a large organisation and has seen Metrics programmes implemented has experienced the strange organisational (mis)behaviour that these programmes seem to engender. Why does this happen, and what can we do about it? What does it make sense to measure on a software project, and how can we ensure that measurement reflects reality?
Brandwatch is a world-leading social media monitoring tool. We find, process and store nearly 50M mentions from the Web every day from our crawlers. As the amount of data we find continually increases, the harder it becomes to separate the signals from the noise for our customers.
In this session, you will learn how to write hybrid applications that take advantage of both ecosystems.
For years we’ve been exploring how to layer and separate our code to test in isolation on the unit level. We’ve kept integration and functional testing as a big ball of mud; jumping straight from unit to full system testing. But can we apply some of the same lessons learned from unit to integration testing?This session explores the different technologies within the Java Enterprise specification and you can see how our application can be tested in isolation; layer for layer, module for module and component for component. Can we isolate and stay real at the same time?
new Thread(() -> System.out.println("I am a thread")).start(); /* This is how easily you can create and start a Thread (Java 8). If used correctly, threads can boost your performance and give you a competitive advantage. If used correctly ...
Event Sourcing has been becoming more and more popular over the last few years. Greg has been talking, teaching, and innovating in the Event Sourcing space since 2006. This talk will look in depth at what Event Sourcing is, when it may be valuable (more importantly when its not), and how problems can change when looked at through a different lens. There are many trade offs, misconceptions, and of course FUD associated around Event Sourcing, hopefully we can sort them all out.
The micro-service architecture, which structures an application as a set of small, narrowly focused, independently deployable services, is becoming an increasingly popular way to build applications. This approach avoids many of the problems of a monolithic architecture. It simplifies deployment and let’s you create highly scalable and available applications. In this keynote we describe the micro-service architecture and how to use it to build complex applications.
Agile has come of age, everyone seems to be doing Agile, or at least talking about Agile, and yet more and more people are talking about *failing* with Agile, or the *failure of Agile*. In this talk @sleepyfox answers the questions: How did this come about? Is Agile not really the panacea that it was cracked up to be? Is Agile more hype than help? How can we avoid failing with Agile? If Agile is so over, what is the next big thing, and how can I jump on the bandwagon?
With the advent of lambdas in Java 8, functional programming truly has returned to the mainstream, sitting proudly alongside its object-oriented brother. We now have the tools to create applications that use the best of both paradigms, but our knowledge and understanding of the concepts under the hood needs to catch up.
Class loaders are at the core of the Java language. Java EE containers, OSGi, NetBeans modules, Tapestry 5, Grails and many others use class loaders heavily. Yet when something goes wrong, would you know how to solve it?
Platform-as-a-Service (PaaS) is a technology designed to make DevOps easier and to allow developers to focus on application development. The PaaS takes care of provisioning, scaling, HA, and other cloud management aspects. Apache Stratos is a PaaS codebase developer in Apache and designed to create a highly productive developer environment while also supporting powerful deployment options.
Building Java applications for the Cloud is easy, right? Perhaps, but if you want to build effective and reliable applications that not only work correctly within the Cloud, but also take advantage of running within this unique environment, then you might be in for a surprise.
The need to accommodate the slew of user requests and the deluge of data that comes with radically changed the way we design and build software. New architectural styles, programming paradigms, novel data storage models, and software engineering methodologies emerged to tame the ever-increasing complexity of use cases. This talk discusses the most promising trends and technologies out there, and more importantly how they fit together to build scalable distributed systems.
Java EE is a rich platform widely used in the Enterprise. This session will look at the relevance of Java EE outside of this traditional domain., i.e. how Java EE is also relevant for connected home and more generally for IoT. We will look at the various extension points and technologies available in Java EE to integrate external systems such as using JCA to connect to a KNX Bus, the most widely used protocol in home automation, etc.
Home Automation is by nature highly event driven so we will look how Message Driven Bean and CDI can be leveraged in this context.
How can we quickly tell what an application is about? How can we quickly tell what it does? How can we distinguish business concepts from architecture clutter? How can we quickly find the code we want to change? How can we instinctively know where to add code for new features? Purely looking at unit tests is either not possible or too painful. Looking at higher-level tests can take a long time and still not give us the answers we need. For years, we have all struggled to design and structure projects that reflect the business domain.
Public Web APIs are increasing at an exponential rate resulting in an ever more connected web. This connected contagion is not just relegated to the domain of Web 2.0 but has infected the corporate world. In fact, companies are becoming more reliant on Software as a Service (SAAS) to provide key business functions.
In this session, I will give an overview of Android Wear and how to integrate it in your product strategy. We will look at the underlying design principles and discuss a number of use cases for apps that connect to wearable devices. After that, we will take a look at some code examples and learn how to use the Android Wear SDK.
This talk will explain some of the features of In-memory data grids, as well as new approaches for designing your application for optimal performance. It will cover topics like EntryProcessor, ExecutorService, Near-Cache, etc.
DevOps - is it for you? Heard about the wonderful ways it could benefit your organisation, but put off by the scary stories? Can you really make the transition to DevOps, and is it worth it? Listen and learn from two DevOps practitioners about their hands-on experiences in making the change. Covering a range of real life examples, this talk will explain the real business benefits to be had from using DevOps techniques, as well as the technical and personal aspects involved.
These days fast code needs to operate in harmony with its environment. At the deepest level this means working well with hardware: RAM, disks and SSDs. A unifying theme is treating memory access patterns in a uniform and predictable way that is sympathetic to the underlying hardware. For example writing to and reading from RAM and Hard Disks can be significantly sped up by operating sequentially on the device, rather than randomly accessing the data.
These days, it seems everyone is either using Cloud Foundry or moving to support it. What's the big deal? Cloud Foundry is all about the slopey-shouldering of work to someone else - no more installing middleware, sorting out databases, and banging heads against complex deployments.
Authoring and maintaining the complex structures, calculations or rules that lie at the core of many businesses is tedious and error prone. In many cases, Word, Excel or form-based web applications are used to capture this data. This may be convenient for end users, but it is very hard to check the data for correctness. Since the data is often not backed by a well-defined language, programmers have to manually encode the data in a programming language to make it executable for example as part of a calculation engine in a bank or insurance.