Java 8 bring 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 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 Javas 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.
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 fulfill 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 goal? I find that many teams struggle to answer these basic and fundamental questions and consequently struggl eto 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!
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.
Building performance critical in-memory database using Java may force you to reconsider many established performance stereotypes. In this session I would like to share some lessons I have learned.
Memory. When working set is as large as few gigabytes, cost of main memory access (cache miss) becomes major performance factor for data structure. Proven red-black tree suddenly becomes order of magnitude slower than BTree or radix tree. Organization of memory caches is forcing you to design in-memory structures much like on-disk structures.
We have TDD, BDD, CI, CD, cloud, and REST - it was supposed to be all great, ended up being "as usual". We forgot about the human bit: "your code is not clean", "people on the team think you’re really arrogant", "I don't want to work here". In this presentation I will talk about:
the neuroscience of logic and emotions in humans,
the challenges you come across when giving feedback,
patterns, useful for receiving feedback effectively,
and many other concepts, which make it easier to use feedback on your team.
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
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.
Highlight Summary: Java reflection has some lesser known interesting abilities, such as 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.Abstract: In this presentation, we will look at some advanced uses of reflection to delegate method calls automatically, to determine where we are being called from and to create new enum values dynamically for unit test purposes, including modifying the switch statements on-th
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.
Most 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.
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 ...
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.
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 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.
In this talk you will learn about a modern way of designing applications that’s very different from the traditional approach of building monolithic applications that persist mutable domain objects in a relational database.We will talk about the microservice architecture, it’s benefits and drawbacks and how Spring Boot can help. You will learn about implementing business logic using functional, immutable domain models written in Scala.
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 the some code examples and learn how to use the Android Wear SDK.
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 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.
SOA has become a dirty word, yet the principals behind it are still going strong, and many of the most popular development frameworks around today have their roots in a service oriented approach. The Enterprise Service Bus was once the holy grail deal for big-vendor sales people, but what was driving companies to pay such huge fees for SOA products? Yet even while company CEOs were signing on the dotted line, developers were suspicious that these monolithic products and company-wide projects were viable.
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.
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.