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!
One of the Cloud Foundry PaaS's lovely features is that it's extensible. A Platform as a Service (Paas) is only as useful to you as the platform being provided. Cloud Foundry has the most popular runtimes and technologies well covered; there are integrations to MySQL, MongoDB, and RabbitMQ services, and support for Java, Node.js, Ruby, and PHP. However, things would be pretty dull if we all used the same databases and application containers, and only coded the same four languages.
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”.
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.
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.
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.
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.
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 talk we describe the micro-service architecture and how to use it to build complex applications.
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?
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.
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?
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
In this session, you will learn how to write hybrid applications that take advantage of both ecosystems.
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.
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.
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.
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?
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.
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.
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 ...
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.