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: 52671 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: 24708 Parleys
Views: 17031 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: 17244 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: 4328 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: 28976 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: 5594 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: 4641 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: 9587 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: 10378 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: 10236 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: 16395 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: 4182 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: 18273 Parleys
Views: 4002 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: 3450 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: 7905 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: 1186 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: 7791 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: 20315 Parleys
Views: 17899 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: 2562 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: 3398 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: 23516 Parleys
Elasticsearch est schemaless : il n'est pas nécessaire de décrire le contenu d'un index pour commencer à écrire des données. C'est pratique pour démarrer rapidement une application et la faire évoluer facilement au gré des développements.Pourtant, dans le cas d'Elasticsearch, le mapping, influence fortement les résultats de la recherche, jusqu'à en changer le fonctionnement dans les cas les plus extrêmes.Nous verrons par des exemples concrets comment le mapping influence les résultats de recherche, puis nous verrons comment retrouver de la souplesse avec les modèles d'index. Author: Jérôme Mainaud Architecte et développeur Java chez Ippon Technologies, j'interviens en assistance pour la mise en œuvre de projet utilisant des moteurs de recherche comme Elasticsearch et des bases NoSQL Cassandra. Auparavant, j'ai assuré pendant cinq ans la responsabilité technique d'un progiciel d'archivage . Mon principal chantier fut de réaliser une nouvelle version capable de gèrer de façon unifiée les documents papier et électronique. Les volumes de données étant conséquents, ce fut l'occasion étudier les bases NoSQL. Mais aussi de rafraîchir les outils de recherche en remplaçant l'utilisation directe de Lucene par Elasticsearch. C'est alors que j'ai commencé à fréquenter la mailing-liste francophone elasticsearch-fr. Blog: http://www.linkedin.com/pub/j%C3%A9r%C3%B4me-mainaud/17/5b8/201
Views: 4090 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: 3888 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: 6665 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: 2769 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: 7646 Parleys
It is hard to be pragmatic without delivering micro services on Java EE 7. Micro services are already the default architecture for many focussed Java EE 5+ projects. After introducing the concepts of micro services and pragmatic Java EE 7 architectures on Java 8, I will implement an application live and demonstrate cloud inspired deployments on services like docker. Because Java EE 7 applications are skinny and nimble, micro does not apply any more. Lets talk about pico . Questions are going to be answered in real time. Author: Adam Bien Consultant and author Adam Bien is an Expert Group member for the Java EE 6 and 7, EJB 3.X, JAX-RS, and JPA 2.X JSRs. He has worked with Java technology since JDK 1.0 and with Servlets/EJB 1.0 and is now an architect and developer for Java SE and Java EE projects. He has edited several books about JavaFX, J2EE, and Java EE, and he is the author of Real World Java EE Patterns—Rethinking Best Practices and Real World Java EE Night Hacks—Dissecting the Business Tier. Adam is also a Java Champion, Top Java Ambassador 2012, and JavaOne 2009, 2011, 2012 and 2013 Rock Star. Adam occasionally organizes Java EE workshops at Munich’s airport (http://airhacks.com).
Views: 978 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: 2836 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: 4709 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: 19269 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: 2831 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: 5251 Parleys
Vous avez l'idée qui va vous rendre riche et le budget, maintenant il vous faut les programmeurs. Pas juste les 2 gugus qui parlent de spring à la cafet et qui livrent jour après jour une application de plus en plus buggé, mais des PROGRAMMEURS, des vrais. Ceux qui murmurent à l'oreilles des programmes pour faire des applications extraordinaires. Mais je les trouves où ces types là ? Cette session présente des réponses concretes en explorant la culture de ces programmeurs. Comprendre cette culture est un facteur determinant pour bâtir une équipe produit extraordinaire. Author: Jean-laurent de Morlhon CTO @ Xebia Studio, Mr FooBarQix @ CodeStory, adore développer simplement & intelligement avec des développeurs passionnés. Fidèle défenseur du développeur, explore le mouvement Software Craftsmanship.
Views: 1316 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: 2646 Parleys
Views: 73836 Parleys
na Author: Erik Meijer Erik Meijer is a Dutch computer scientist and entrepreneur. From 2000 to early 2013 he was a software architect for Microsoft where he headed the Cloud Programmability Team. He then founded Applied Duality Inc. in 2013. Before that, he was an associate professor at Utrecht University. He received his Ph.D from Nijmegen University in 1992.
Views: 2662 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: 5789 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: 1786 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: 2407 Parleys
Techniques such as automated testing, continuous integration and continuous deployment allow software to be developed to a high standard and easily packaged and deployed to test environments, resulting in the ability to rapidly, reliably and repeatedly push out enhancements and bug fixes to customers at low risk and with minimal manual overhead. What container-agnostic tools are available for testing, continuous integration and deployment of a Java EE application ?This talk will provide a quick overview of Arquillian and how it helps in testing across multiple containers. Separate approaches for greenfield and brownfield applications will be shown. Configuring Jenkins for Continuous Integration will be shown. Setting up multiple WildFly containers on OpenShift for testing and production will be shown in detail. At the end of this session, attendees would have converted their development environment to leverage the power of Jenkins, Arquillian, and OpenShift to setup an automated Continuous Delivery pipeline for Java EE application. Author: Arun Gupta Arun Gupta is Director of Developer Advocacy at Red Hat and focuses on JBoss Middleware. As a founding member of the Java EE team at Sun Microsystems, he spread the love for technology all around the world. At Oracle, he led a cross-functional team to drive the global launch of the Java EE 7 platform through strategy, planning, and execution of content, marketing campaigns, and program. After authoring ~1400 blogs at blogs.oracle.com/arungupta on different Java technologies, he continues to promote Red Hat technologies and products at blog.arungupta.me. Arun has extensive speaking experience in 35+ countries on myriad topics. An author of a best-selling book, an avid runner, and a globe trotter, he is easily accessible at @arungupta.
Views: 2531 Parleys
Le protocole de cryptographie TLS (ex-SSL) permet de s'assurer de l'authenticité de la machine à qui on se connecte (en HTTP, ou bien avec un autre protocole). Mais son utilisation correcte depuis un programme n'est pas facile, comme l'a montré le fameux article « The Most Dangerous Code in the World : Validating SSL Certificates in Non-Browser Software ». On va donc parler de ce que TLS garantit... et de ce qu'il en garantit pas. Author: Stéphane Bortzmeyer I am an engineer working on Internet infrastructure, mostly DNS but also things like BGP, security, DNSSEC, new naming systems, etc. I develop also, but only little things.
Views: 851 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: 6201 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: 1665 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: 105586 Parleys
Java 8 est là, on en parle au présent. La nouveauté majeure de Java 8 est bien sûr l'introduction des lambda expressions. Cette introduction n'aurait pas été utile si l'API Collection n'avait été revue. Cette révision s'appelle l'API Stream, qui, ajoutée à la notion de Collector, rend un peu vieillot notre bon vieux pattern Iterator. Cette université se propose de présenter les patterns construits sur les Streams, et de montrer sur de nombreux exemples, simples et complexes, les nouveaux patterns proposés par cette API. On parlera patterns, parallélisation, implémentation et performances. Author: José Paumard Passionate about programming computers for over 20 years, Jose made his debut in assembler and C, C for SIMD parallel machines before adopting Java as an object-oriented language. Assistant professor in Paris University for 15 years, PhD in applied maths and computer science, Jose also has a passion for education. He writes a blog, Java le soir, French documentary source on Java technologies for thousands of french speaking developers around the world. He is a member of the french Paris JUG, and have been co-organizing Devoxx France for 3 years. He is also a speaker for various conferences including Devoxx and JavaOne, as well as many JUGs.
Views: 4756 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: 4600 Parleys
The CQRS (Command-Query Responsibility Segregation) pattern is a thought provoking way to look at the architecture of modern application systems and provides a way to put an end to some established and rarely challenged assumptions that have been guiding our architectural decisions for decades. In this session, I'm going to introduce the basic idea behind CQRS and demonstrate how the pattern can be applied to applications as a sequence of smaller steps. I'll end up with an Event Sourcing architecture and close the session with some guidelines on when and where to apply the pattern. Author: Oliver Wolf Software architect with a strong interest and practical experience in service-oriented architectures (SOA), Web service technology and Java, prior experience in IT security and IT consulting
Views: 5588 Parleys