Dagger is a fast dependency injector for both Java and Android. Its second major version not only brings new features for parity with other frameworks but continues to push the boundaries of speed. This talk will start with a brief introduction to Dagger and dependency injection in general. We will then cover the new concepts and new APIs provided by Dagger v2 with real-world examples. Finally we'll demonstrate some powerful and fun behavior which can greatly enhance the quality of your apps. The concepts covered in this talk apply to both Java targeting the JVM and Android. If you are new to Dagger or dependency injection in general you can watch my "Architecting Android Apps with Dagger" talk from last year's Devoxx on Parleys: http://parleys.com/play/529bde2ce4b0e619540cc3ae/ (even if you aren't an Android developer!) Author: Jake Wharton Android, Java, open source, french bulldogs. View more trainings by Jake Wharton at https://www.parleys.com/author/jake-wharton Find more related tutorials at https://www.parleys.com/category/developer-training-tutorials
Views: 56063 Parleys
Views: 18189 Parleys
This talk covers best practices of using the Scala language on the JVM. In this session, hear how to avoid null pointer exceptions, what the use of traits implies on object oriented design and how to best interface Java and Scala programs. This talk promotes general best practices in Scala, as exemplified in the book: Scala In Depth. Author: Joshua Suereth Josh Suereth is a Senior Software Engineer at Typesafe and the author of "Scala In Depth". He has been a Scala enthusiast ever since he came to know this beautiful language in 2007. He started his professional career as a software developer in 2004, cutting his teeth with C++, STL and Boost. Around the same time, Java fever was spreading and his interest was migrating to web-hosted distributed Java-delivered solutions to aide health departments discover the outbreaks of disease. Everything from EJB to Hibernate/Spring and even some Applets. He introduced Scala into his company code base first in 2007 and soon after he was infected by Scala fever, contributing to the Scala IDE, maven-scala-plugin and Scala itself. In 2009 he began writing the book "Scala In Depth" which provides practical support for using Scala in every day applications. Today, Josh is the author of several open source scala projects, including the scala automated resource management library, the PGP sbt plugin, as well as contributing to key components in the Scala ecosystem, like the maven-scala-plugin. His current work at Typesafe Inc. has him doing anything from building MSIs to profiling performance issues. Josh regularly shares his expertise in articles and talks.
Views: 5706 Parleys
There are a number of approaches to Dependency Injection. Some approaches get more attention than others. This talk is about how to do Dependency Injection using the Reader Monad. It will focus on: What Dependency Injection is and why we use it.What the Reader Monad is and how it can be applied to Dependency Injection.Some potential problems applying this pattern in an application, along with possible solutions. Author: Jason Arhart Jason works for Originate as the Scala Architect. He is in charge of setting best practices for the company and ensuring that Scala projects are constantly improving in quality.
Views: 4604 Parleys
Apache ActiveMQ is the most widely used message-oriented middleware that uses messaging to connect remote applications written in Java, C/C++, Python, Perl, Ruby and many more. ActiveMQ is standards based and supports messaging protocols such as AMQP 1.0, WebSockets, Stomp, OpenWire and MQTT. Used from M2M to global enterprise deployments, this talk will cover the features, functionality and secret ninja ticks to get ActiveMQ to both perform and scale, without loosing messages. Author: Rob Davies undefined
Views: 30642 Parleys
In this talk I will discuss six fundamental concepts that underly effective Scala. How can programmers quickly and effectively learn to write idiomatic Scala? This is a question we at Underscore had to answer when developing our own training material. We knew we wanted to go beyond teaching syntax and give developers the concepts and techniques they needed to develop Scala in a systematic and idiomatic way. We identified six core concepts that cover a wide range of Scala programs. These concepts give programmers a reproducible way to create code -- once the problem domain is understood the code follows through a series of systematic and reproducible steps. The resulting code is robust and easily maintained. In this talk I will describe these six concepts, which are: - expressions, values, and types; - objects and methods; - algebraic data types; - structural recursion; - functors and monads; and - type classes. I will show how they let us create code in a systematic manner, and how we can go about teaching the concepts to new Scala developers. This talk should be of interest to anyone who is transitioning to, or leading a team that is transitioning to, Scala, and anyone interested in guidelines for idiomatic Scala code. Author: Noel Welsh Noel is a partner at Underscore, the leading Scala consultancy. Noel has over fifteen years experience in software architecture and development, and over a decade in machine learning and data mining.
Views: 18533 Parleys
Warning: this an an algorithmics talk, and it also involves parallel processing. The MapReduce paper, published by Google 10 years ago (2004!), sparked the parallel processing revolution and gave birth to countless open source and research projects. We have been busy since then and the MapReduce model is now officially obsolete. The new data processing models we use are called Flume (for the processing pipeline definition) and MillWheel for the real-time dataflow orchestration. We are releasing them as a public tool called Cloud Dataflow which allows you to specify both batch and real-time data processing pipelines and have them deployed and maintained automatically - and yes, dataflow can deploy *lots* of machines to handle Google-scale problems. What is the magic behind the scenes ? What is the post-MapReduce dataflow model ? What are the flow optimisation algorithms ? Read the papers or come for a walk through the algorithms with me. Authors: Martin Gorner Martin is passionate about science, technology, coding, algorithms and everything in between. He graduated from Mines Paris Tech, enjoyed his first engineering years in the computer architecture group of ST Microlectronics and then spent the next 11 years shaping the nascent eBook market, starting with the Mobipocket startup, which later became the software part of the Amazon Kindle and its mobile variants. He joined Google Developer Relations in 2011 and now focuses on entrepreneurship outreach. Blog: https://plus.google.com/+MartinGorner Thomas Park Google software engineer working to put the power of BigQuery and Dremel in the hands of developers worldwide. Blog: http://googledevelopers.blogspot.com/
Views: 10695 Parleys
The Business Process Model and Notation (BPMN) is a wordwide ISO standard not only to draw but also to execute business processes. As Java developer you should not be afraid of BPMN thanks to a new generation of embeddable workflow/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 Zalando processing huge amounts of orders over the platform. Afterwards you are able to decide if and how you may apply camunda in your own (workflow) project. Author: Falko Menge Falko is a senior technical consultant at camunda. He has a lot of experience with process automation and application integration and is a co-founder and committer of several Open Source projects in this area including camunda BPM. As the official representative of camunda at the OMG, Falko is a co-author of the BPMN and CMMN standards as well as the OCEB 2 certification. Blog: http://www.bpm-guide.de/
Views: 26031 Parleys
Scala is a very powerful hybrid functional pure object oriented language on the JVM. Scala is known for its conciseness and expressiveness. In this presentation we will look at some common tasks you do everyday in developing applications and see how they manifest in Scala. We will look at the strengths of Scala from application development point of view. Rather than focusing on the syntax of Scala, we will focus here on Scala idioms and powerful Scala libraries to perform routine tasks Author: Venkat Subramaniam Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., and an instructional professor at the University of Houston. He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with agile practices on their software projects. Venkat is a (co)author of multiple books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. His latest book is Functional Programming in Java: Harnessing the Power of Java 8 Lambda Expressions.
Views: 4753 Parleys
Making parallel computing easy to use has been described as "a problem as hard as any that computer science has faced." The goal of the Parallella project is to democratize access to parallel computing through affordable open hardware and open source tools so that the whole world can participate in solving this grande challenge problem.The talk will give an in depth technical review of the Parallella platform and will conclude by showing real parallel code samples written for Parallella in bare metal threads, MPI, OpenCL, and Java 8 fork/join. Author: Andreas Olofsson Andreas Olofsson (@adapteva) founded Adapteva in 2008 with a mission to create a new class of low power parallel processors. Andreas is the architect and designer of the Epiphany processor chips, currently the world's most energy efficient microprocessors in the world. In the fall of 2012, Adapteva launched the Parallella parallel computing project with the goal of producing a $99 credit card sized "supercomputer" that consumes less than 5 watts. Prior to starting Adapteva, Andreas worked at Analog Devices for 10 years developing energy efficiency DSPs and mixed signal SOCs. Andreas holds a BS degree in Physics and BS/MS degrees in Electrical Engineering from the University of Pennsylvania. Blog: http://www.adapteva.com/
Views: 16578 Parleys
This talk will provide an overview of the Guava libraries (http://code.google.com/p/guava-libraries/), touching on topics such as collections, caching, hashing, primitives support, concurrency utilities, common annotations, string processing, I/O, math utilities, etc. Authors: Iulia Ion Iulia Ion is a PhD student and research assistant at ETH Zurich, in the Institute for Pervasive Computing. Previously, she received her B.Sc. and M.Sc. degrees from International University in Germany, and worked in the CREATE-NET research institute, in Trento, Italy. She carried out numerous internships and project collaborations with industry (SAP Walldorf, Nokia Research, Lausanne, Deutsche Boerse Systems, Frankfurt) and academia (University of Cambridge, UK, Carnegie Mellon, Pitsburgh, PA, Université de Provence, Marseille, France). She is currently working on reconciliating usability and security, with a special focus on mobile interactions. Previous work includes extending the Java ME architecture to support and enforce fine-grained security policies. Kurt Kluever Kurt Alfred Kluever is a software engineer at Google in New York City with 9 years of Java experience. Prior to working on Google’s Java Core Libraries team, he worked on backend infrastructure that supported a wide array of products such as Google+, YouTube, Docs, Photos, Ads, and Feedburner.
Views: 10840 Parleys
Views: 1860 Parleys
It's a truism that your builds are never fast enough. But your builds could be faster, be they plain Java, Android apps, native code perhaps used via JNI, or even (whisper it) iOS code. Back in the mists of time, Facebook built its large and complex Android codebase using "ant", as was recommended. However, we found it hard to modularize the codebase, and our build times were a constant source of frustration. Buck was born out of this frustration, and was designed to properly use modern developer hardware --- multiple cores, plentiful memory, fast networks and SSDs --- in order to bring build times down from minutes to seconds. We now have ludicrously fast build times, particularly for incremental builds. Since Buck is Open Source, you could also have lightning fast builds. In this talk, we'll discuss how Buck works, what makes it so fast, and how Facebook structure their code base to take advantage of the ease of modularity that Buck brings, and we'll look at some of the other features, such as exopackage and IDE configuration for IntelliJ and XCode. Being hopelessly honest, we'll also cover some of Buck's flaws too! Author: Simon Stewart Often described as a fire hazard and sporting more hair than most primates, Simon is a Software Engineer on Facebook’s internal tools team primarily working on Buck, a next generation build tool. He is best known for having turned his hairy hands to the invention of WebDriver, the Open Source browser automation tool, as well as leading the Selenium project. When he is not saving kittens from fires he enjoys talking incessantly about Facebook’s commitment to OSS and how the company organizes its source control repos. Please ask him for what makes for a truly pleasurable London bus experience.
Views: 3712 Parleys
What is JMS? When should you use a queue, and when should you use a topic? Should your topic subscriptions be durable or nondurable, shared or unshared? Do your messages need to be persistent, or is nonpersistent better? Which of the four JMS APIs should you be using, and how do they interrelate? These and many other questions about JMS are addressed in this quick-fire session, which answers 50 common questions about how your applications can get the best out of JMS. The introductory-level session is technical in nature, with lots of code examples. Author: Nigel Deakin Nigel Deakin is specification lead for JMS and a principal member of technical staff at Oracle, working on the development of the WebLogic and GlassFish application servers. Blog: https://jms-spec.java.net
Views: 4436 Parleys
Dealing with multiple teams in a product development organization is always a challenge! One of the most impressive examples we've seen is Spotify, a fascinating company that is transforming the music industry. Spotify has kept an agile mindset despite having scaled to over 30 teams across 4 cities and 3 timezones. So how is this managed? How do handle dependencies? How do we avoid technical debt? How do we synchronize multiple teams? How do share knowledge across the organization? How do we get stuff into production? And what the heck are tribes, squads, chapters, and guilds anyway? Authors: Henrik Kniberg Best Speaker Award at Jfokus 2008 - Henrik Kniberg is a consultant at Crisp in Stockholm, specializing in Java and Agile software development. He takes a holistic approach and enjoys adopting different roles such as manager, developer, Scrum Master, teacher, or coach. He is passionate about helping companies build excellent software and excellent teams, taking on whatever role is necessary. His interests and twelve years of experience cover most aspects of the art of software development including team leadership, development, architecture, requirements management, configuration management, and quality assurance. As cofounder of several Swedish IT companies he has spent many years experimenting with agile processes in teams of up to 45 people. In late 2005 Kniberg was contracted as chief of development at a Swedish company in the gaming business. The company was in a crisis situation with urgent organizational and technical problems. Using Scrum and XP as a tool, he helped the company out of the crisis by implementing agile and lean principles at all levels in the company. This is described in the popular book ‘Scrum and XP from the trenches’. Anders Ivarsson Anders works at Spotify as Agile Coach since October 2011. As an agile coach, my goal is to help our squads work as effectively as possible - through continuously improving us, finding better ways of working, making us more autonomous and also to have fun at the same time. Another key challenge for me is enabling the company to grow very fast, while still staying agile and moving closer to our vision on how we want to work.
Views: 10586 Parleys
Most of us have an experience of functional programming that is isolated to small libraries or specific immutable data structures. But can we design our entire application architecture in a purely functional way? Can we do "aspect-oriented" programming with cross-cutting concerns that are compositional and checked by the type system? Yes we can, and in this talk we will look at a conceptually simple recipe for making that happen. We will see that the best things in Scala are Free. Author: Rúnar Bjarnason Rúnar Bjarnason is a senior software developer at Verizon OnCue. Rúnar is co-author of the book "Functional Programming in Scala", and an occasional speaker and blogger on Scala and functional programming.
Views: 8084 Parleys
The GOF design patterns were quite centered around OOP languages. Now that we have dynamic and functional languages on the JVM, there are quite a few other patterns that come in handy with these capabilities. In this presentation we will explore patterns that allow us to make better use of closures and functional style of programming. Author: Venkat Subramaniam Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., and an instructional professor at the University of Houston. He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with agile practices on their software projects. Venkat is a (co)author of multiple books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. His latest book is Functional Programming in Java: Harnessing the Power of Java 8 Lambda Expressions.
Views: 8134 Parleys
Dagger is a new, fast dependency injector for Java and Android. Using dependency injection in your app helps promote clean, modular code that also lends itself very well to testing in both automated and manual fashions. This talk will start with a basic overview of dependency injection including why you would use it and how Dagger differs from other injectors. Following that we will look at what is necessary to use Dagger in the scope of an Android app. We’ll wrap up with some advanced concepts as well as general tips and tricks for achieving maximum utility. Author: Jake Wharton Android, Java, open source, french bulldogs.
Views: 20685 Parleys
Views: 4315 Parleys
Nous ferons une démonstration réelle d’un cas d’usage de machine learning (apprentissage automatique) à l’aide des librairies Python scikit-learn et pandas. Le jeu de données : un set de 30 000 combinaisons Euromillions, soumises par des joueurs réels (via la plateforme de crowdsourcing http://www.onewinner.me) Le challenge : entrainer un modèle pour prédire si une combinaison donnée (exemple : 3 - 9 - 19 - 32 - 45 / 2 6) est plutôt humaine, ou parfaitement aléatoire L'objectif : aider les geeks à choisir des combinaisons vraiment aléatoires ! Author: Christophe Bourguignat Night Data Scientist tweeting fresh content about #BigData #DataScience #MachineLearning #FrenchData. Practicing at Kaggle and OneWinner.Me
Views: 19689 Parleys
After over ten years since the Agile summit, software projects are still failing and developers are still behaving and being treated as factory workers. The software development industry is still very amateur when compared to other professions. Why Agile was not sufficient? Why so many clients are unhappy with their software projects? Why is it so difficult to find good developers? In this talk Sandro will be explaining: what Software Craftsmanship really is, the value of technical practices, what it means to be a professional software developer, and what to do to satisfy our customers. Author: Sandro Mancuso Software craftsman and co-founder of the London Software Craftsmanship Community (LSCC). Sandro has been coding since a very young age but just started his professional career in 1996. He has worked for startups, software houses, product companies and international consultancy companies. Having worked as a consultant for the majority of his career, he had the opportunity to work in a good variety of projects, with different languages and technologies, and across many industries. Currently he is a director at UBS Investment Bank, where he works as a hands-on mentor, giving technical directions, looking after the quality of the systems and pair-programming with developers in the UK and abroad. His main objective is to help developers to become real software craftsmen.
Views: 2884 Parleys
Views: 18435 Parleys
High-volume event streams are becoming widespread: IoT sensor data, activity events on social media, and monitoring events for fraud detection, to mention just a few. Hadoop is great for analysing data after the fact, but it's often too slow to respond to things happening right now. Traditional event processing frameworks are not scalable enough to handle the onslaught of data. Apache Samza and Apache Kafka, two open source projects that originated at LinkedIn, have set out to solve this problem. They are designed to go together: Kafka is a fault-tolerant message broker, and Samza provides a scalable and powerful processing model on top of it. This talk will introduce those projects, and explain how you can use them to solve your real-time big data problems. Author: Martin Kleppmann Martin is a committer on Apache Samza and author of the O'Reilly book "Designing Data-Intensive Applications". Previously he was a senior software engineer at LinkedIn, and he co-founded and sold two startups, Rapportive and Go Test It. He is a regular speaker at conferences and is based in Cambridge, UK.
Views: 4048 Parleys
Les monoïdes , c'est puissant, élégant, indispensable. C'est surtout facile à comprendre et à utiliser en Java, sans framework, et même en Java 1.4. Même si vous ne voulez pas entendre parler de monades, les monoïdes sauront vous convaincre.Expliqué avec des verres de bière et de nombreux exemples de code, découvrez un style de code qui séduit les développeurs dans le monde entier. Vous ne verrez plus les verres de bière ni votre code de la même manière ! Author: cyrille martraire Après 9 ans à développer avec passion des logiciels dans plusieurs startups et banques, Cyrille est co-fondateur et directeur technique d'Arolla, une société spécialisée en développement logiciel. Toujours accro au développement, il consacre une grande partie de son énergie chez des clients dans la finance de marché, en prenant intégralement en charge des projets en équipe, les mains dans le code et avec une forte implication dans l'analyse métier. Passionné de design sous tous ses aspects (Clean Code, TDD, BDD, DDD), il a aussi fondé la communauté Software Craftsmanship Paris.
Views: 1263 Parleys
Cassandra est un système distribué de gestion de données créé par FaceBook puis Open Sourcé en 2008. Cette présentation introduit de manière pragmatique et pédagogique différents concepts avancés mis en oeuvre par Cassandra. Les thèmes suivants sont abordés: Historique de Cassandra Modèle de données de Cassandra et requêtage Ecriture et réplication Tuneable Consistency en lecture et écriture Reprise sur erreur & Communication Peer to Peer inter-serveurs (Gossip) Problématique de la suppression en environnement distribué Réplication inter-datacenter Author: Nicolas Romanetti Nicolas Romanetti et Florent Ramière ont chacun plus de dix années d'expérience dans le développement logiciel et la conduite de projets informatiques. Ils ont passé plusieurs années aux Etats-Unis où ils se sont rencontrés chez un éditeur de logiciels. A leur retour en France, ils ont travaillé en tant que consultants avant de fonder Jaxio. Depuis 2005 ils mettent à la disposition de leurs clients leur savoir-faire et les meilleures pratiques via leur produit de génération de code Celerio.En 2009 ils ont lancé www.SpringFuse.com, une version en ligne de Celerio. Vous pouvez retrouver Nicolas et Florent aux soirées Java sur Paris (JavaCamp, ParisJug, Coding-Dojo, …)
Views: 2928 Parleys
Async is a new Scala module designed to simplify non-blocking concurrency using futures. At first glance, Async appears to be yet another option to do concurrent or parallel programming in Scala, besides actors, futures, and parallel collections. This talk attempts to provide simple and clear guidelines on when to use futures and when to use Async. Concrete real-world examples will shed light on the relationship between futures and Async and their synergy. By showing the idiomatic use of futures and Async, the talk aims to simplify the choice of concurrency constructs in Scala. Author: Philipp Haller Not available
Views: 4916 Parleys
Les logs générés par vos applications, services, systèmes d’exploitations et équipements réseaux (soit toutes les composantes nécessaires au fonctionnement des systèmes d’information) sont typiquement une masse obscure de données non-structurée et décentralisée. La nature non structurée de cette information la rend chaotique et pratiquement incompréhensible.Grâce à sa flexibilité et sa simplicité, Logstash vous permet de transformer cette information non-structurée en données structurées, indexables et analysables.Venez découvrir comment l’outil Open Source Logstash peut vous aider à collecter et transformer les streams de données hétérogènes, décentralisées et non-structurées tels que les logs, pour passer du mode réactif de la recherche de la cause à la visualisation et l’analyse pro-active, en temps-réel, de vos données opérationnelles. Author: Colin Surprenant software engineer @elasticsearch. open source software developer, self-starter/entrepreneur, distributed/realtime data/stream processing. rock climbing.
Views: 2112 Parleys
JHipster est un générateur de code permettant de créer une application Spring Boot + AngularJS en quelques minutes. Cette présentation couvrira rapidement les technologies utilisées par JHipster (Spring Boot, AngularJS, Bower, Grunt, etc...), et se focalisera sur une session de 'live coding' où nous développerons une application métier, la modifierons, et la déploierons dans le cloud. Author: Julien Dubois Julien Dubois est directeur du pôle conseil chez Ippon Technologies, société spécialisée dans le développement et l’architecture d’applications Java. Il y dirige une équipe de consultants et architectes de haut niveau, et intervient régulièrement chez les clients de la société. Julien est connu dans le monde Java pour avoir co-écrit le livre "Spring par la pratique", avoir dirigé la filiale française de SpringSource, et pour parler régulièrement à des conférences.
Views: 6914 Parleys
Un JDK, maven/gradle et votre IDE préféré - c’est tout ce dont vous aurez besoin pour démarrer avec Spring Boot.Ensemble, nous partirons de zéro pour découvrir Spring Boot par la pratique, en construisant une application étape par étape :démarrer un nouveau projet Boot facilementcréer des services RESTintégrer un datastoresécuriser l’applicationconfigurer l’application selon les environnementsutiliser hypermedia dans vos APIs RESTajouter des health checks préparer l’application pour la production (devops)et plus encore!A la fin de cette session, vous connaîtrez les possibilités de Spring Boot et repartirez peut-être avec votre application dans le cloud! Authors: Stéphane Nicoll Stéphane has a thing for code quality and robustness. He's been spreading the word for more than ten years while developing large scale Java enterprise applications in the geospatial, financial, or logistics sectors. An Apache Maven PMC member since 2006, he joined the core Spring Framework development team early 2014, being one of the main contributors to both Spring Framework and Spring Boot since. During his free time, he loves traveling around the world brian clozel Spring Framework core committer, focusing on web and messaging. Lead developer of Sagan, the Spring reference app that powers http://spring.io Blog: http://spring.io/team/bclozel
Views: 26176 Parleys
72% des entreprises françaises prévoient de mettre le cap sur le cloud hybride en 2015 et OpenStack est devenu l'implémentation open-source de choix pour ce type de cloud. Mais en tant que DevOps que peut-t-on en tirer ? Dans cette session, nous allons déployer les différents composants et tuyaux d'une application (load balancer, firewall, ...). Author: Sylvain Avril Geek à toute heure, j'ai eu l'occasion d'avoir une expérience diversifiée qui m'a amenée à occuper différentes responsabilités, à faire du réseau, du système, du dév, de l'architecture... Après mes années de formation de dev-shaolin, c'est donc naturellement que j'évolue plus désormais dans le domaine du DevOps.
Views: 8961 Parleys
The Lightning Memory-Mapped Database (LMDB) is a new database library written by Symas Corp. for the OpenLDAP Project. LMDB is a highly optimized B+tree implementation that is orders of magnitude faster and more efficient than everything else in the software world. Reads scale perfectly linearly across arbitrarily many CPUs with no bottlenecks, and data is returned with zero memcpy's. Writes are on average twenty times faster than commonly available databases such as SQLite. The entire library compiles down to only 32K of object code, allowing it to execute completely inside a typical CPU's L1 cache. Backends for OpenLDAP slapd, Cyrus SASL, Heimdal, SQLite, OpenDKIM and many other projects have already been written. This talk gives an overview of the library design, example code, and operational results of using LMDB in various projects. Author: Howard Chu undefined
Views: 2951 Parleys
Geared towards providing and consuming REST APIs in high-performance systems, akka-http enhances the increasingly popular Akka toolkit (akka.io) with its own client- & server-side HTTP stack: - Fully async & non-blocking - Reactive-Streams "all the way through (reactive-streams.org) - Flexible and concise, yet powerful and type-safe high-level APIs - Entirely written in Scala, no external deps - Deeply typed, immutable HTTP model - Successor of spray.io Akka-http delivers an excellent tool for connecting your applications to the world. In this session we'll look into what akka-http brings to the table, how it is used and how it improves upon previous solutions. You'll learn about best practices, who'll benefit most from its features as well as the roadmap forward. Author: Mathias Doenitz Among many other things Mathias is the original author of spray.io, which was acquired by Typesafe in 2013. As a long-time and active member of the Java and Scala open-source communities he is especially excited about everything performance-, scalability- and web-related.
Views: 3608 Parleys
We all take version control for granted. And it is, when it comes to code. On the database side, however schema evolution is often performed ad-hoc: a quick statement here, a little script there. The result: confusion and uncertainty. Has this update already been applied on this instance? Should we apply this other script first? Is our application going to run against this database? No more! This is where database migration tools come to the rescue! We'll look at a popular open-source choice called Flyway. By the end of the session, you'll have a solid understanding of what it does, how it works and how to effectively integrate it into your project. We'll look at concepts and solutions. We'll tackle the hard problems and show you how this fits in a Continuous Delivery and Zero Downtime workflow. This will transform how you deal with your database, and you'll never look back. Author: Axel Fontaine Axel Fontaine is a software development expert and independent consultant based in Munich. He specializes in Continuous Delivery and hates complexity with a passion. He is the founder and the project lead of Flyway, the agile database migration framework for Java. He is regular speaker at technical conferences. You can find him online at axelfontaine.com and on Twitter as @axelfontaine.
Views: 6560 Parleys
Unit testing ensures your production code is relevant. But what does ensure your testing code is relevant? Come discover mutation testing and make sure your never forget another assert again. In the realm of testing, the code coverage metrics is the most often talked about. A line (or a branch) is considered to have been covered if during test execution this line has been run. However, it doesn't mean that the test has been useful or even that an assert has been coded. Mutation testing creates mutants from code - a deviation from the written code, and test them also. If a test still passes on a mutant, then the test is not relevant. PIT is a Java tool that makes mutation testing possible. Author: Nicolas Frankel Nicolas Fränkel is a Software Architect with +12 years experience in consulting for many different customers, in a wide range of contexts (such as telecoms, banking, insurances, large retail and public sector). He's generally focused on Java and JavaEE technologies, but he's narrowed interests like Software Quality, Build Processes and Rich Internet Applications. I'm currently working for a eCommerce solution vendor leader. He also double as a teacher in universities and higher education schools, and a trainer for experienced pros, and triples as a book author. Blog: http://blog.frankel.ch
Views: 8495 Parleys
Designing the Tesla Model S touch screen UI Author: Joe Nuxoll Joe is best known in the Devoxx world as a former co-host of the popular podcast "The Java Posse". By day, Joe is an independent user experience designer, race driving instructor, and avid photographer. He was the lead user experience designer for the touchscreen in the Tesla Model S, as well as the Tesla Model S mobile application. He has held significant positions at several top-tier Silicon Valley technology companies including Tesla Motors, Apple, Sun, Navigenics, Borland, and more than his fair share of startups. View more trainings by Joe Nuxoll at https://www.parleys.com/author/joe-nuxoll Find more related tutorials at https://www.parleys.com/category/developer-training-tutorials
Views: 19715 Parleys
For many years threads and locks have been the only concurrency model available on the JVM and they are still the default way to develop parallel and concurrent programs in Java. Nevertheless in many cases they are a too low level abstraction: using them correctly is hard and understanding the Java Memory Model even harder. For this reason different alternative concurrency models have been popularized in recent years. Scala and Akka made available on the JVM the actor-based model originally implemented in Erlang. Conversely Clojure's approach clearly separates an identity from the series of different values associated to it over time introducing the concept of Software Transactional Memory. Finally functional programming principles like immutability and referential transparency greatly simplify concurrent programming in many cases and this caused a FP renaissance as also witnessed by the introduction of lambda expressions in Java 8. The purpose of this talk is comparing all these different concurrency models underlining their strengths and weaknesses and giving some guidelines to choose the one that best fit a specific scenario. Author: Mario Fusco Mario joined the Java developers community during his studies at university, and has been a Java enthusiast since. He has a more than decennial experience as Java developer having been involved in (and often leading) many enterprise level successful projects in several industries ranging from media companies to the financial sector. Among his interests there are also the functional programming and languages, mostly Scala, and the development of Domain Specific Languages. By leveraging these 2 passions he also created the open source library lambdaj with the purposes of providing an internal Java DSL for manipulating collections and allowing a bit of functional programming in Java
Views: 2946 Parleys
During the nearly twenty years of evolution of Java, a set of API design idioms and styles have emerged, based on the existing language features and APIs. Certain language features, such as generics, have had great impact: twelve years after generics, APIs that use raw types look distinctly old-fashioned. Java 8 has introduced lambdas, perhaps the most significant new language feature in Java's history. Lambdas introduce new capabilities to the API designer: the ability to parameterize by behavior, and the ability to use higher-order functions. Java 8 has also introduced default methods, which allow implementations to appear on interfaces. Along with the language changes, Java 8 has also introduced significant new core APIs, including the Streams package, the Optional class, and new default method implementations on existing interfaces. These changes raise new design issues for API designers. These new language and core API features create opportunities for designers to make their APIs more concise and more expressive. In this talk we will examine a variety of techniques and idioms enabled by these new features, and show how API design has already begun to evolve in Java 8. Authors: Brian Goetz Brian Goetz has been a professional software developer for more than twenty five years. Brian is the author of the very successful 'Java Concurrency in Practice', and has written over 75 articles on Java development. He was the specification lead for JSR-335 (Lambda Expressions for the Java Language) and has served on numerous other JCP Expert Groups. Brian is the Java Language Architect at Oracle. Stuart Marks Stuart Marks is a Principal Member of Technical Staff in the Java Platform Group at Oracle. He is currently working on enhancing the core libraries of the JDK. He has previously worked on JavaFX and Java ME at Sun Microsystems. He has over twenty years of software platform product development experience in the areas of window systems, interactive graphics, and mobile and embedded systems. Stuart holds a Master's degree in Computer Science and a Bachelor's degree in Electrical Engineering from Stanford University.
Views: 5504 Parleys
When it comes to using relational databases in a reactive, scalable and non-blocking application design, Java's standard JDBC API and the way in which it is traditionally used has always been a sore point. Scoping database sessions correctly and configuring a connection pool in an efficient way were already non-trivial in blocking JEE-style applications, but if you try to fit the inherently blocking JDBC API into a Play or Akka app, it gets even harder. In the newest version of Slick, Typesafe's database library, we provide a different way of sequencing database actions, based on the ideas of Haskell's IO monad. This talk will show you how to use this new API to safely compose and execute database calls, returning Futures and Reactive Streams from them. Bridging the gap between the blocking JDBC API and your non-blocking applications also requires a very different threading model and connection pool configuration than in a blocking app. You will learn what Slick does behind the scenes to take care of these issues in order to give you good scalability and performance out of the box. Author: Stefan Zeiger Stefan Zeiger is the tech lead for Slick. He joined Typesafe in 2011 after developing ScalaQuery, the predecessor to Slick, in order to work on the new project full-time. He has been a user of Java and the JVM platform professionally since 1996, working on a diverse range of projects from web servers to GUI frameworks and programming language design, and moving on from Java to Scala since 2008.
Views: 5975 Parleys
So your Java EE project looks like this: 2 days to get a pom.xml right, 10 days to map the database with JPA, 5 days to deploy your first EJB, 15 days to create the JSF presentation tier, and 20 days for a decent REST interface. If yes, come to this session where you will discover the power of JBoss Forge. In 50 minutes I'll introduce Forge 2.0, its internal architecture, command line ... and will develop a Java EE application. Only 4 slides allowed, and the rest is for live coding! Author: Antonio Goncalves Architecte senior, Antonio Goncalves intervient chez ses clients comme consultant et formateur. Ancien consultant Weblogic chez BEA Systems, il s'est spécialisé depuis 1998 dans l'architecture logicielle et les technologies Java. Antonio est l'auteur du livre Java EE 5 aux éditions Eyrolles, et de "Beginning Java EE 6 Platform With GlassFish 3" chez Apress. Il est membre du JCP et intervient sur les JSR 316 (Java EE 6), JSR 317 (JPA 2.0) et JSR 318 (EJB 3.1). Il enseigne également la plate-forme Java EE au Conservatoire National des Arts et Métiers. Il est rédacteur technique pour les sites DevX et developpez.com. Antonio est co-fondateur et co-responsable du Paris Java User Group.
Views: 3513 Parleys
Java eliminated quite a bit of complexity by eliminating multiple inheritance (MI). But that also meant we lost some design capabilities. The primary problem with MI was method collisions. What if methods can collaborate rather than collide. Traits and mixins, in languages like Scala and Groovy, offer us some real nice design choices. These can be used to implement more elegantly some common design patterns. In this presentation, you'll learn about traits and mixins and how you can benefit from them. Monads are quite unheard of in imperative style of programming. Monads, however, play an interesting roll in a purely functional programming language. Come to this session if you are heard of monads and wondered what in the world they were. What are monads? Why care about them? Where you have used them before. Types of monads. Building your own monads. Author: Venkat Subramaniam Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., and an instructional professor at the University of Houston. He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with agile practices on their software projects. Venkat is a (co)author of multiple books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. His latest book is Functional Programming in Java: Harnessing the Power of Java 8 Lambda Expressions.
Views: 4749 Parleys
Views: 74801 Parleys
Views: 2851 Parleys
Many libraries are asynchronous, and will return everything in a Future. For-comprehensions is a nice way to deal with the contents of Futures, but when the content is wrapped in a container like Option or Either, for-comprehensions alone are not enough. The result is often ugly nested code. This talk will show you how to make for-comprehensions work nicely with such structures. You'll learn how to fuse a Future and an inner container together, and nicely work with them in for-comprehensions. In an asynchronous application, this will give great readability benefits. Finally, we'll see that these friendly and easy to understand things are actually monad transformers. Additional notes --- This talk is a condensed version of a successful longer hands-on session that I did with multiple groups of Scala programmers at companies and a Scala user group event. Most of them really liked this content, because they run into this problem of deeply nested code in practice, usually caused by Future[Option[X]] values. In this talk we don't start with an off-the-shelve monad transformer, but we build one ourselves, by first building a monadic wrapper specialized for Future[Option[X]]. To most people that's surprisingly simple, and immediately after this step we can . We then generalize that into a proper monad transformer for Option inside any other monad, which is also a nice introduction to monads in itself. Finally we highlight a couple use cases for this, one of them being Play Framework action methods, than can often be written as a single for-comprehension, given a proper monad stack. Author: Erik Bakker undefined
Views: 3126 Parleys
In this presentation you will learn how to leverage the features introduced in Akka Persistence: opt-in at-least-once delivery semantics between actors and the ability to recover application state after a crash. Both are implemented by storing immutable facts in a persisted append-only log. We will show you how to create persistent actors using command and event sourcing, replicate events with reliable communication, scale out and improve resilience with clustering. All examples will be available as an Activator template allowing you to get started right away. Authors: Björn Antonsson Björn Antonsson is a passionate software engineer whose experience ranges from the lowest levels of hardware memory models right through the operating system and the JVM as a founder and long time developer of JRockit, and straight up into high volume financial data systems and large traffic website. He has been part of the Akka team for the last 2 years. Konrad Malawski Konrad is a late-night passionate dev living by the motto "Life is Study!". His favourite discussion topics range from distributed systems and type systems to capybaras. In those rare times he's not coding, he spreads the joy of computer science, through helping local user groups and whitepaper reading clubs. Patrik Nordwall Patrik Nordwall is a developer in the core Akka team since 3 years. He has a passion for technology and new knowledge. Professional developer and software architect since 1996.
Views: 2926 Parleys
Today it's easy to expose services as REST/HTTP with frameworks like Jersey and Spring but validating that the server actually behaves as expected can be cumbersome in Java. REST Assured is an open source Java DSL that allows you to avoid boiler-plate code to make requests and validate even complex responses in a simple manner. Come and see how easily you can validate e.g. XML and JSON payloads by making use of Groovy data structures and closures from Java using a simple BDD-like syntax. It also comes with support for popular authentication schemes, integrates flawlessly with JUnit and TestNG and much more. Testing and validating REST services in Java cannot be much simpler! Author: Johan Haleby Johan Haleby is a Swedish developer, speaker, and writer with a profound interest in software engineering and testability in particular. He has founded and contributed to numerous open source projects such as PowerMock, REST Assured and Awaitility and has spoken at several conferences and user groups.
Views: 2416 Parleys
Scala - where it came from, where it's going Author: Martin Odersky Martin Odersky is a professor at EPFL in Lausanne, Switzerland. His research interests focus on programming languages, more specifically languages for object-oriented and functional programming. His research thesis is that the two paradigms are just two sides of the same coin and should be unified as much as possible. To prove this he has experimented with a number of language designs, from Pizza to GJ to Functional Nets. He has also influenced the development of Java as a co-designer of Java generics and as the original author of the current javac reference compiler. His current work centers around the Scala programming language, which unifies FP and OOP while staying completely interoperable with Java and .NET.
Views: 1396 Parleys
The challenge here is to present you 4 command-line tips per minute, one new command or tip per 15 seconds during 15 minutes. This will be very fast-paced and a difficult exercise. Please come support the speaker during this harassing sprint! Have your lunch while entertaining and possibly learning stuff! Author: Pierre-Antoine Grégoire Pierre-Antoine Grégoire is a Software Craftman trained to the arcanes of web and java development since 2000. He has then taken a few steps back thanks to interesting problem-solving opportunities in software integration, and software industrialization optimisations. He is now an I.T. Architect at Agile Partner S.A., advocating Agile practices, and providing expertise in JavaEE, Architecture, Security, and Software development factories. He has participated from time to time in open source projects (Spring IDE, Mule transport...) and initiated some (ORG tools and ORG libs...)
Views: 110199 Parleys
You never develop code without version control, why do you develop your database without it? With Liquibase, database changes are stored in human XML-files and committed to the source control system. Changes are applied to the developers local databases. As changes are committed they are distributed to all other environments including all developers local databases, test databases, staging databases, and even to production databases. This presentation will introduce you to Liquibase and the topic database change management. The presenters will also some advanced topics based on real life experience, a few tips and tricks and lots of demonstrations on stage. Author: Rikard Thulin Rikard Thulin has been working with Java for over 10 years. Rikard is a board member of the Swedish Java User Group ?Javaforum Sweden?. Rikard holds a Master of Science in Software Engineering.
Views: 5384 Parleys
All is not completely rosy in microservice-land. It is often a sign of an architectural approach’s maturity that in addition to the emergence of well established principles and practices, that anti-patterns also begin to be identified and classified. In this talk we introduce seven deadly sins that if left unchecked could easily ruin your next microservices project... This talk will take a tour of some of the nastiest anti-patterns in microservices, giving you the tools to not only avoid but also slay these demons before they tie up your project in their own special brand of hell. Topics covered include: Pride - selfishly ignoring the new requirements for testing; Envy - introducing inappropriate intimacy within services by creating a shared domain model; Wrath - failing to deal with the inevitable bad things that occur within a distributed system; Sloth - composing services in a lazy fashion, which ultimately leads to the creation of a Distributed Monolith ; and Lust - embracing the latest and greatest technology without evaluating the operational impact incurred by these choices. Author: Daniel Bryant Daniel Bryant is leading change within organisations and technology with OpenCredo and Container Solutions. His current work includes enabling agility within organisations by introducing better requirement gathering and planning techniques, focusing on the relevance of architecture within agile development, and facilitating continuous integration/delivery. Daniel’s current technical expertise focuses on ‘DevOps’ tooling, cloud/container platforms and microservice implementations. He is also a leader within the London Java Community (LJC), contributes to several open source projects, writes for well-known technical websites such as InfoQ and DZone, and regularly presents at international conferences such as QCon, JavaOne and Devoxx.
Views: 1689 Parleys
If you want to provide or consume HTTP services with your Actors then this talk is for you: Akka HTTP is the successor of spray.io and building on this excellent foundation it takes reactive web interactions to the next level. Fully asynchronous and non-blocking, a type-safe and very powerful declarative API, an immutable HTTP model without compromises, all these are perfectly fitted to the Actor world. And being based entirely on Akka Streams enables interoperation with all other Reactive Streams implementations for producing or consuming data.This presentation details how Akka HTTP is structured, how it is used and why you will not want to use anything else after having tried it. Author: Roland Kuhn Roland Kuhn is leading the Akka project at Typesafe, a co-author of the Reactive Manifesto and of the book Reactive Design Patterns, co-teaching the Coursera course "Principles of Reactive Programming" and a passionate open-source hakker. He also holds a PhD in particle physics and has worked in the space industry for several years. See also rolandkuhn.com.
Views: 4614 Parleys