Data is piling up. There are more and more interactions with more and more people and more and more sensors every day and the amount of data collected in each encounter grows continuously. In order to cope with the huge influx of data, we need more than just storage and strategies for maintaining the data.
The Data track GOTO London 2016 includes presentations that discuss this – watch the videos from the Data track at GOTO London 2016 below.
Designing Cypher – A Graph Query Language
with Tobias Lindaaker, Software Engineer at Neo4j
This is a talk about language design. It is also a talk about language implementation, and how the two go hand in hand. We’ve spent the past 5 years building Cypher for Neo4j, and have now opened it up for other vendors as well. This is the story of what we learned along the way so far.
This is a talk for anyone who is interested in learning about the things that are important to consider when designing a language for wide use.
We set out to build a language that was specialised while being expressive, a language where simple things are easy, and complex things possible. We desired a language that is easy to learn, with a straight path to mastery. We wanted a high level declarative language for which we could write a high performance implementation. We knew that we would make mistakes and needed a way to correct those, our language needed to be able to evolve while being reliable. We have not been very scientific about our process, but have still learned a lot along the way. In this talk we will share those learnings with you, so that you too can learn from our successes and mistakes.
This is not a story from an ivory tower, but a story about moving fast and breaking things. We never intended to build a language, but reluctantly found ourselves there anyway. With a small team and no budget we still produced something that a lot of people find very useful. We built something we are proud enough about to want to share the story of with the world.
with Dr. Kresten Krab Thorup, CTO at Humio
Humio is a Log Aggregation tool for monitoring your applications. It gathers data from multiple sources and consolidates them in a single location, making analysis and statistics possible. Humio lets you feel “the hum of the engine” for your system. What makes Humio special is that it allows you to see your data in real-time and build Dashboards and Alarms. Also, Humio enables explorative analysis of data with no predefined data format or upfront creation of search indexes. Its vision and mission is Data for Humans. Make the huge amounts of data produced by modern applications and infrastructure approachable and valuable. Give people insights into their running IT systemes – let them feel the “hum of their engine”.
Automated driving – Are we taking the Human Factors Researcher out of the Loop?
with Dr. Sanna Pampel, Researcher for Automotive Human Factors at the University of Nottingham
Automation is the replacement of tasks previously conducted by humans with machines or computation. It is anticipated that within a few years it will be possible to replace the human driver by fully automated vehicles. This would mean that the traditional role of human factors in driving would change. However, having cars making decisions on an autonomous basis presents a new set of challenges that cannot be resolved without taking the human factor into account.
The presentation starts with a journey into levels of automation, state-of-the-art technology and hot topics in current research. Then we will look into the future, into a world with fully autonomous vehicles, and consider the role of human factors, exploring issues such as the acceptance by other road users, the predictability of autonomous behaviours, as well as the acceptance by vehicle ‘drivers’ and passengers. Decisions based on artificial intelligence and deep learning provide particular challenges. For example, the Google car accident illustrates how machine learning can pick up bad habits of humans. The presentation will provide an outlook into possible human factors solutions.
Concursus: Event Sourcing Evolved
with Tareq Abedrabbo, CTO at OpenCredo and Dominic Fox, Senior Consultant for OpenCredo
What if the pitfalls identified in Peter Deutsch’s “eight fallacies of distributed computing” were not inconveniences but opportunities? We present our view of the emerging patterns within distributed systems architecture and argue for a modern semantics of distributed systems based on sympathy with the network. In our approach, event sourcing and stream processing provide the processing model, while microservices and bounded contexts provide the domain model.
We discuss the implementation of Concursus, an open source framework for bringing event sourcing patterns to distributed applications, which represents the evolution of our thinking about event sourcing, based on our practical experience of implementing distributed systems in production.
Tensorflow and deep learning, without a PhD
with Martin Gorner, Developer Relations at Google
Google has recently open-sourced its framework for machine learning and neural networks called Tensorflow. With this new tool, deepmachine learning transitions from an area of research into mainstream software engineering. In this session, we will teach you how to choose the right neural network for your problem and how to make it behave. Familiarity with differential equations is no longer required. Instead, a couple of lines ofTensorflow Python, and a bag of “tricks of the trade” will do the job. No previous Python knowledge required.
with Jan Machacek, CTO at Cake Solutions
Jan will talk about his experience rearchitecting and migrating a system that appeared reactive and microservice-based, but was in fact a monolith with RPC calls to a truly reactive architecture. The migration work had to be done without causing disruption to the current system, and without taking time to rewrite the system. The result is a biometric computer vision system with a distributed domain in Akka / Scala with storage in Apache Cassandra, with the computer vision components in OpenCV in C++, connected with RabbitMQ and with batch analytics code in Apache Spark.
The talk will show the architectural and code smells that were the result of half-harted reactive implementation and the way to address them, but also the impact of the changes on privacy and security of the stored biometric information.
Declarative, Secure, Convergent Edge Computation: An Approach for the Internet of Things
with Christopher Meiklejohn, Ph.D. Candidate in Distributed Computation
Consistency is hard and coordination is expensive. As we move into the world of connected ‘Internet of Things’ style applications, or large-scale mobile applications, devices have less power, periods of limited connectivity, and operate over unreliable asynchronous networks. This poses a problem with shared state: how do we handle concurrent operations over shared state, while clients are offline, and ensure that values converge to a desirable result without making the system unavailable?
We look at a new programming model, called Lasp. This programming model combines distributed convergent data structures with a dataflow execution model designed for distribution over large-scale applications. This model supports arbitrary placement of processing node: this enables the user to author applications that can be distributed across data centers and pushed to the edge. In this talk, we will focus on the design of the language and show a series of sample applications.