• Functional Programming Patterns w. Java8 /live coding marathon by Victor Rentea

    Agenda 17:30 Doors open 18:00 Buffet 19:00 Presentation: Live Coding Marathon, 5 exercises 20.00 Break 20:15 Live coding in Java: on a topic you choose (see at the end the options) 21:15 Drinks About the talks After leading 2 projects making heavy use of Lambdas and Streams, consulting many others at IBM, and teaching hundreds of developers as an Independent Trainer, Victor gives us a synthesis of the best practices, patterns and anti-patterns he refined over the years. Among the points you will hear: Fat, unhealthy lambdas How to make a Predicate happy Stream wrecks The cure for the most frequent bug of all Monads Passing-a-block and The Loan Pattern 5 ways to implement type-specific logic All via several live coding exercises. However, as this will probably be the fastest live coding you saw in your life, the second part of the meetup will dive into more detailed explanations of the exercises you (the audience) will select. In the menu for the second part we could have (all live-coding): - Refactoring Kata (video store) - Legacy Code Kata: techniques to bring legacy code under unit tests - TDD Coding Kata: Solving a (rather simple) problem using by-the-book Test-Driven Development - The Proxy Fairy - The Magic of Spring: 5 ways to intercept method calls with Java and Spring About the speaker Java Champion Victor Rentea is one of the top Technical Trainers in Romania. He trained and coached more than 1000 developers of 30+ companies over the 6 years of his training activity. At IBM, even though they call him a Lead Architect, he writes code each day: he’s maniac about Clean Code, so expect seeing some hard-core refactoring. Victor is a key community member: organized the largest 3 Bucharest Java User Group meetups in history. In 2018 he founded the Bucharest Software Craftsmanship Community in which he runs open sessions about clean code, refactoring, pair programming and TDD. He posts daily on LinkedIN and Twitter thoughts about culture, technical excellence and Software Craftsmanship. Victor is now regularly invited to speak at major international conferences (30+ talks until now, #2 best at Devoxx Belgium 2018). His live-coding sessions are insane, lightning-fast but well crafted, full of enthusiasm, deep insights and take-away tips. Things that he learned the hard way during his 14 years of experience. You can find out more about him on http://victorrentea.ro

    13
  • [Adopt-a-JSR Day] Adopt JSR 385 - Units of Measurement 2.0 for Java

    ___WARNING___ This is a hacking session. There are limited seats, so please RSVP only in case you are sure you will attend. On the 1st of June, we have the honor to host Werner Keil, Spec Lead of JSR-385, who will help us to adopt JSR-385. What is Adopt-a-JSR and why should I get involved? https://www.youtube.com/watch?v=NgrJZDo9uOM ====================================================================== Agenda 11:00 Welcome 11:15 Learning about JSR 385 by Werner Keil 12.25 Adopt JSR 385 Hacking session with Werner Keil 13:30 Lunch 14:30 Adopt JSR 385 Hacking session with Werner Keil 17:15 Drinks ======== Giveaways A free ticket for JCON 2019 in Düsseldorf What should I bring? This is a hacking session, so, be sure to bring your laptop :-) ======== About the session Adopt JSR 385 - Units of Measurement 2.0 for Java In 1999, NASA lost the $125 million Mars Climate Orbiter as it went into orbital insertion. Due to a mismatch between US customary and SI units of measurements in one of the APIs, the spacecraft came too close to the planet, passed through the upper atmosphere and disintegrated. Sadly, this hasn’t been the only instance where a mismatch between units of measurements had catastrophic consequences, but it’s certainly one of the most spectacular and expensive ones. How could this happen? The bad news: if you use primitive types to handle quantities in your code, due to the same practice at best, you’ve codified the unit in a variable name or database field, e.g. calling it lengthInMetres. Otherwise, you’re only relying on convention, just like Lockheed Martin and NASA did. After a brief history of unit mistakes and how they could have been avoided, we present JSR 385, how it helps to improve data quality and integrity. And how it applies the recent redefinition of SI base units on May 20, 2019. Followed by hands-on live hacking with JSR 385 and the Units of Measurement projects. From transport and logistics to aviation or health and fitness we cover several potential use cases. You have a choice between Java (anywhere from Java ME 8 to Java 12 or 13) and popular JVM languages like Kotlin, Groovy or Scala. This is for architects and developers who want to participate in the Adopt-a-JSR movement, and learn how adopting JSR 385 can help them avoid more $125 million mistakes. About the speaker Werner Keil is a Cloud Architect, Java EE, Microservice and Embedded expert for a security firm. Helping Global 500 Enterprises across industries and leading IT vendors. He worked for nearly 30 years as IT Manager, PM, Coach, SW architect and consultant for Finance, Mobile, Media, Transport and Public sector. Werner develops enterprise systems using Java, Java EE, other Oracle, IBM or Microsoft technologies, JavaScript, Node, Angular, dynamic or functional languages. Werner is committer at Apache Foundation, Eclipse Foundation, Babel Language Champion, UOMo Project Lead and active member of the Java Community Process in JSRs like 321 (Trusted Java), 344 (JSF 2.2), 354 (Money, also Maintenance Lead), 358/364 (JCP.next), 360/361 (ME Embedded), 362 (Portlet 3), 363 (Unit-API, also Spec Lead), 365 (CDI 2), 366 (Java EE 8), 375 (Java EE Security), 380 (Bean Validation 2), 385 (Unit-API 2, also Spec Lead) and was the only Self-employed Member of the Executive Committee for 9 years in a row till 2017. Werner is currently the Community representative in the Jakarta EE Specification Committee.

    8
  • Istio on Kubernetes & Kubernetes Serverless with Knative by Burr Sutter

    Agenda 18:00 Doors open & Buffet 19:00 Istio on Kubernetes: Enter the Service Mesh by Burr Sutter 20:00 Break 20:15 Kubernetes Serverless with Knative by Burr Sutter 21:15 Drinks ======== Giveaways 1 JetBrains license ======== About the talks Istio on Kubernetes: Enter the Service Mesh The first generation of microservices was primarily shaped by Netflix OSS and leveraged by numerous Spring Cloud annotations sprinkled all throughout your business logic. The next generation of cloud native apps and microservices will leverage sidecars and a service mesh. In this session, we will give you a taste of Envoy and Istio, two open source projects that will change the way you write distributed applications on Kubernetes and OpenShift. Istio allows you to deal with traffic shaping, network fault-injection (chaos engineering), smart canary deployments, dark launches, and observability. This session is for application architects and experienced developers who are ready to take their cloud native microservice skills to the next level, potentially increasing deployment frequency of your cloud native apps from weeks to days to minutes. Kubernetes Serverless with Knative In this session, we are going to explore an open source event-driven lambda style serverless programming model and runtime set of capabilities for Kubernetes called Knative. Knative provides a suite of middleware components & building blocks that enhance developer productivity, enable a "source-to-url" pipeline and event-driven Serverless application architectural pattern. Developers have run their code in application servers for many years. However, the cloud paradigm brought new ways to think and design applications. One example of this change is serverless architecture where event-driven code is executed on an ephemeral Linux container on an as-needed basis. It does not mean that there are no servers involved, but for the developer's perspective, it means that they don't need to worry about those servers so they can more focus on differentiating business logic, often designed as microservices and functions. About the speaker Burr Sutter is a lifelong developer advocate, community organizer, and technology evangelist, Burr Sutter is a featured speaker at technology events around the globe—from Bangalore to Brussels and Berlin to Beijing (and most parts in between)—he is currently Red Hat’s Director of Developer Experience. A Java Champion since 2005 and former president of the Atlanta Java User Group, Burr founded the DevNexus conference—now the second largest Java event in the U.S.—with the aim of making access to the world’s leading developers affordable to the developer community. When not speaking abroad, Burr is also the passionate creator and orchestrator of highly-interactive live demo keynotes at Red Hat Summit, the company’s premier annual event.

    9
  • Extending Spring Boot for the Enterprise & Welcome to JUnit 5 with Billy Korando

    Agenda 17:30 Doors open 18:00 Buffet 19:00 Extending Spring Boot for Enterprise 20.00 Break 20:15 Welcome to JUnit 5 21:15 Drinks ======== Giveaways 1 JetBrains License 1 free ticket for GOTO Amsterdam conference ======== About the talks Extending Spring Boot for Enterprise Spring Boot has been an incredibly successful at reducing the time and complexity of spinning up new projects. However enterprise demands often cause Spring Boot projects to become bloated, out of date, and have inconsistent implementations, leading to them being difficult to maintain both for the teams responsible for a project and from an enterprise level of ensuring projects properly implement features like security, logging, database connectivity, and other common concerns. In this presentation we will look at some of the underlying philosophies of Spring Boot and see at how to apply them to the enterprise. Specific topics include creating customs starter libraries, BOMs, and easing project initialization steps all with the goal of reducing developer toil and frustration while ensuring consistent behavior across large enterprises but not blocking experimentation. If your organization has been struggling with bloated poms, projects full of dead code, and long pipelines from project conception to deployment to production this is a presentation you will definitely want to check out. Welcome to JUnit 5 JUnit 5 has been out for a year, so what is the big fuss and why should I take the time to update my existing automated tests to use JUnit 5? In this presentation we will look at many of the new features that have been added in JUnit 5 and not only how they make automated testing easier, but allow developers to write tests in ways that were difficult or impossible to do before. If you have been wondering why you should make the switch from JUnit 4 to JUnit 5 you will definitely want to check out this presentation. About the speaker Billy is a developer advocate with IBM and has over a decade of experience. Billy is passionate about finding ways to reduce mental capacity waste from tedious work; such as project initiation, deployment, testing and validation, and so on through automation and good management practices. Outside of work Billy enjoys traveling, playing kickball, and having his heartbroken by cheering on the Kansas City Chiefs.

    5
  • Utrecht JUG 3rd anniversary meetup with Java Champion James Strachan

    April 2019 we celebrate our 3rd anniversary and guess what...we will rock the city once again! Our toolbox for making this happen involves the following buzzwords: James Strachan, Pathe Leidsche Rijn, Capgemini, delicious food, great surprises and of course...Utrecht Java User Group! Agenda 17:30 Doors open 18:00 Buffet 18:40 Drive innovation on Java platform by Jade Eloff 19:00 Accelerate your Continuous Integration and Delivery with Kubernetes and Jenkins X by James Strachan 20.00 Break 20:15 Let's go Serverless with Kubernetes by James Strachan 21:15 Drinks ======== Giveaways 10 TEQNation tickets 2 DevoxxUK tickets 1 JetBrains License Many free tickets for Mendix World 2019 conference Many more! ======== About the talks Drive innovation on Java platform There has been a big shift in custom software development – where environment provisioning, infrastructure as code, containers and microservices and CICD has fundamentally changed the way we build, test and deploy applications. Technological progress and the increasing number of viable use cases for AI, IOT, Distributed Ledger and AR/VR technologies means that the innovation horizon has dramatically broadened. This talk will showcase the Java platform used by Capgemini to drive innovation. Accelerate your Continuous Integration and Delivery with Kubernetes and Jenkins X Times are changing! We all need to get better at delivering business value to customers faster and continuously with a cloud-native strategy - but how? This talk will show you how. Let's go Serverless with Kubernetes Serverless is the talk of the town at the moment. This talk will describe the Knative open source project which brings serverless to the Kubernetes ecosystem and shows how you can create, edit, deploy and promote serverless applications using Jenkins X for your CI/CD About James James Strachan is a Java Champion working as a Distinguished Engineer at CloudBees. He's currently working on Jenkins X (http://www.jenkins.io/projects/jenkins-x) to help developers automate their CI/CD for cloud-native applications and help them go faster. He also created Apache Groovy language & Apache Camel. About Jade Jade Eloff is a Solution Architect with 16 years experience, mainly in the Financial services sector. He has extensive experience consulting to and delivering architectures and bespoke solutions for Financial services clients. Jade has deep Retail, Commercial and Investment Banking experience. He has managed teams throughout the design, implementation and support phases of numerous projects. About the location Pathé Utrecht Leidsche Rijn website: https://www.pathe.nl/bioscoop/utrechtleidscherijn

    8
  • The Battle of the IDE's & Learning Through Tinkering

    March 2019 is our "Back to School / Learning Month". This year we started the "Speaker Incubator Program" and Ko Turk was one of the first members to join this program. He will now do a talk about "The Battle of the IDE's". Tom Cools also spoke for the Utrecht JUG in April 2017. This time Tom will do a talk about how and what you can learn from "just for fun" projects. Agenda 17:30 Doors open 18:00 Buffet 18:45 The Battle ofthe IDE's by Ko Turk 19.35 Break 20:00 Learning Trough Tinkering by Tom Cools 20:50 Drinks ======== Giveaways 1 JetBrains License 1 free ticket for Serveless Architecture conference ======== About the talks The Battle of the IDE's IntelliJ IDEA is the best IDE! Or is it Eclipse? Netbeans perhaps? Or are you working with Emacs/Vi/VSCode or something else? Do you recognize the discussion with your colleagues? Why you should start using another IDE! The one that they use of course! In this session I will show you which IDE you should use (or at least try). Not only based on my opinion but also on that of other developers that filled in the research [What is my favourite IDE and why](https://t.co/VqwdM1C9cu). There are a lot of cool features you definitely need to see! Learning Through Tinkering In the daily drag of requirements and deadlines we often forget to take the time for the fun stuff. Yet it’s these “just for fun” projects that drive us towards greater knowledge and inspire us at our jobs. But… what is it you can learn from them? Moreover, how do you even find something to work on? I will share the paths I have taken to “learn through tinkering”. Join me as I show you my attempts at: Creating an autonomous infra-red battle tank; Unraveling the inner workings of a certain Pocket Monster mobile game; Driving a Lego Boost robot using Java; Creating a game using only vanilla Java (no extra libraries); … and more if time permits! This talk focuses on the lessons I learned along the way and how those insights help me in my daily developer life. Brace yourself, it’s going to be quite a ride! About Ko Ko Turk is a Senior Java Developer at Blue4IT, currently he is working for one of the biggest banks of the Netherlands. He loves to go full stack, creating backend microservices and frontend web applications. Because he likes to know everything about Java, you can find him regularly at the UtrechtJUG or other conferences. About Tom Geek in all facets of the word, including but not limited to boardgames, comic books and programming. Developer without borders, both geographically and technically. Active as a consultant, usually for some of the biggest financial institutions in both Belgium and The Netherlands. Next to that I am trainer/teacher who loves to share not only knowledge but also passion for our craft. Currently working for Info Support NV

    5
  • Rabobank & Utrecht JUG present: Clean Architecture with Uncle Bob (free)

    Agenda 09.00 Opening 09.15 Clean Architecture & Design 10.15 Architecture: The Real Software Crisis 11.15 Short break 11.30 Break-out sessions 12.15 Lunch 13.15 Break-out sessions 14.00 Short break 14.15 Agility & Architecture 15.15 Specification Discipline 16.00 Drinks Robert Cecil Martin, colloquially known as "Uncle Bob", is best known for promoting several software design principles, and for being one of the authors of the Agile Manifesto. He was also the editor-in-chief of C++ Report magazine and served as the first chairman of the Agile Alliance. Martin has authored numerous books and magazine articles, many of which describe the design principles he promotes. He is also an outspoken advocate of Software craftsmanship, Agile software development, and Test-driven development. Today he will bring us 4 tracks: Clean Architecture and Design So we've heard the message about Clean Code. And we've been practicing TDD for some time now. But what about architecture and design? Don't we have to worry about that? Or is it enough that we keep our functions small, and write lots of tests? In this talk, Uncle Bob talks about the next level up. What is the goal of architecture and design? What makes a design clean? How can we evolve our systems towards clean architectures and designs in an incremental Agile way. Architecture: The Real Software Crisis As software applications continue to grow in size and complexity, the software engineering community faces an ever worsening crisis. Many, perhaps most, large software endeavours are constructed in ways that make them ever more difficult to change and maintain. Some have outright failed. Others are becoming intolerably expensive to continue. At the root of these problems is the poor architecture of this software. As a community we must learn and apply the principles of software architecture, and demand that those principles be followed, even in the face of short term schedule pressure. Attendees to this talk will learn the basis for good software architecture, and techniques for creating and preserving it. Agility and Architecture Do agile methods abandon architecture for speed? Do they replace good design decisions with mindless testing? Are agile methods just another way to hack-and-slash systems together without the appropriate discipline, due-diligence, and documentation? In this track Robert C. Martin describes how the principles of Agile Software Development lead to rich and robust architectures, high degrees of discipline, due consideration of design and architecture, and all appropriate levels of documentation. Specification Discipline The first bullet in the "XP Developer Bill of Rights" is: "Programmers have a right to know what is needed…" In other words, they have a right to know the requirements. But rights and responsibilities go hand in hand. The fact that we have the right to know what is needed means that we have the responsibility to find out what is needed. That means that programmers play a critical role in the specification of systems. We've learned, over the last few decades, that the best way to specify a system is with tests. So specification disciplines are test disciplines. What are those disciplines? What are the responsibilities that programmers have? What responsibilities do customers, product owners, business analysts, and QA have? Given that specification error is one of the primary reasons for project failure; what must craftsmen do to mitigate and eliminate such errors? REGISTRATION - IMPORTANT NOTICE To register for this event and get access to the Rabobank building we need your full name and e-mail address. If you sign up for this event you agree that this information will be shared with the Rabobank.

    23
  • Rabobank & Utrecht JUG present: Clean Coding with Uncle Bob (free)

    Agenda 09.00 Opening 09.15 Clean Code I 11.00 Clean Code II 12.30 Lunch 13.30 Break-out sessions 14.15 Are You a Professional?[masked] laws of Test Driven Development 17.00 Drinks Robert Cecil Martin, colloquially known as "Uncle Bob", is best known for promoting several software design principles, and for being one of the authors of the Agile Manifesto. He was also the editor-in-chief of C++ Report magazine and served as the first chairman of the Agile Alliance. Martin has authored numerous books and magazine articles, many of which describe the design principles he promotes. He is also an outspoken advocate of Software craftsmanship, Agile software development, and Test-driven development. Today he will bring us 4 tracks: Clean Code I: Args (Java) Keeping code clean is a simple matter of professional ethics. In this talk Robert Martin shows how a Java module can start clean, grow to become messy, and then be refactored back to cleanliness. Be forewarned: his tutorial is about CODE. We will put code on the screen and we will read and critique it. And then, one tiny step at a time, we will clean it. In this tutorial you will participate in the step by step improvement of a module. You will see the techniques of the Prime Directive (Never Be Blocked), and Agile Design Principles brought into play. You will witness the decision making process that Agile Developers employ to write code that is expressive, flexible, and clean. Finally, you learn an attitude of professional ethics that defines the software developer’s craft. Clean Code II: Craftsmanship and Ethics. What does it mean to be a professional software developer? What rules do we follow? What attitudes do we hold? And how can we maintain our professionalism in the face of schedule pressure? In this talk Robert C. Martin outlines the practices used by software craftsmen to maintain their professional ethics. He resolves the dilemma of speed vs. quality, and mess vs schedule. He provides a set of principles and simple Dos and Don’ts for teams who want to be counted as professional craftsmen. Are You a Professional? The time has come for software developers to define our profession, and to define ourselves as professionals. We must choose the disciplines, attitudes, and practices that comprise our profession, and then we must choose to live within those bounds. We must decide what standards we will keep, and we must pledge to say "No" when asked to breech those standards. In this talk Robert (Uncle Bob) Martin reviews this history that has led us to this culmination, and suggests a suite of disciplines, attitudes, and practices that follow from that history and may well become a definition of our profession The Three Laws of Test Driven Development The jury is in, the case is closed. TDD works, and works well. In this talk Uncle Bob makes the point that TDD is not a testing technique at all. Rather, TDD is a way to ensure good architecture, good design, good documentation, and that the software works as the programmer intended. TDD is a necessary discipline for those developers seeking to become professionals. This talk is half lecture and half demonstration. Examples are in Java and Junit. REGISTRATION - IMPORTANT NOTICE To register for this event and get access to the Rabobank building we need your full name and e-mail address. If you sign up for this event you agree that this information will be shared with the Rabobank.

    49
  • Meetup with Java Champions Michael Simons and Christoph Engelbert

    Details Agenda 17:30 Doors open 18:00 Buffet 19:00 Going from relational databases to databases with relations with Neo4j and Spring Data 20.00 Break 20:15 Instan(t)a-neous Monitoring 21:15 Drinks About the talks Going from relational databases to databases with relations with Neo4j and Spring Data Relational databases still have many use cases. Either being able to handle complex aggregations of time series, dealing with sums, products, either over all tuples or with moving windows. RDBMs are unbeaten handling huge sets with a relatively small number of joins. There has been quite the renaissance of SQL and RDBMs in the past years (and the presenter of this talk might not be innocent here), but there's one type of store whose qualities are not beaten by RDBMs: Graph Databases. Graph databases like Neo4j have several features that no other store has. They are the first choice if your application deals with a lot of real relations, stores object trees that should be queryable and much more. Objects corresponds to nodes and relations are just that. Neo4j facilitates the use of both through its query language Cypher: An easy to learn, pattern matching query language. In this talk I'll present my approach to Neo4j, Object Graph Mapper (OGM) and Spring Data Neo4j (SDN), coming from a relational background. I'll explain the building blocks of SDN, present different ways to to turn some or all of your relational data into a graph and access it from a Spring Boot based application. Instan(t)a-neous Monitoring Continuous Integration, Continuous Delivery, Continuous Monitoring! These days CI and CD are commonly used mechanics to achieve fast turn-around times for high-demand applications. Microservices architectures and highly dynamic envrionments (based on Kubernetes, Docker, …), however, come with a whole different set of problems. Systems, that not only appear and disappear dynamically (e.g. autoscaling), but most commonly tend to be written using multiple different programming languages, are hard to monitor from the point of view that matters: User Requests and User Experience. but the answer is simple; Continuous Monitoring (CM). In this session we'll build a polyglot microservices infrastructure. A way to monitor and trace multi-service requests will be demonstrated using Instana's automatic discovery system. About the speakers Michael Simons Father, Husband, Cyclist and also a programmer: He is a software developer who likes many languages, but Java the most. He wrote the first German book about Spring Boot and works on Spring Data Neo4j and Neo4j OGM at Neo4j. He shares his knowledge on his personal blog and in Java User Groups. Michael founded the Euregio JUG (EuregJUG) in the 3 borders area of the Netherlands, Belgium and Germany. In the summer of 2018 he was announced Java Champion. Christoph Engelbert Christoph Engelbert is a Java Champion and Senior Developer Advocate at Instana and an open source enthusiast and always interested in “Java Next”. In his spare time, he struggles with performance optimizations, the JVM internals or the garbage collector, whereby he is also available to answer questions on these topics as a freelance consultant. He also firmly believes in Polyglot and is familiar with Java, Kotlin, Go, TypeScript and other languages. @noctarius2k

    2
  • Global Day of Coderetreat 2018

    CodeSquad

    • What we'll do Last year we organized in Utrecht the Global Day of Coderetreat 2017: https://www.youtube.com/watch?v=Mp34vCVlSVs This year, on November 17th we will join the worldwide Software Craftsmanship community for the Global Day of Coderetreat 2018. Coderetreat? A coderetreat is a full day hands-on coding workshop focused on the fundamentals of software development, design and communication. During the day you will get multiple chances to try out a completely different approach to the same problem. You will have the opportunity to learn new ways of testing, paradigms, architecture styles, libraries, approaches, languages or IDEs. Who should join? You should join, regardless of whether you're working in an IT job or not. You don't have to be a programmer. We love input from everyone: testers, Scrum Masters, even Product Owners tell us that they've learned a lot... Even if you think you're not experienced enough, we can learn a lot from your questions and input while pairing with you (https://en.wikipedia.org/wiki/Shoshin). Why should I go? • experience modern ways of developing software • question what you think you know already and go deeper • meet nice people with a passion for crafting software What should I bring? Please bring a laptop with an IDE or editor of your choice. Your environment should be set up completely so that we won't have to waste time on installing tools or libraries. Create a project for the day that already has all the libraries you usually use for development. Install at least one tool for testing. You should be able to see a red test for assertFalse(true) and a green test for assertTrue(true); Your syntax might vary... Food and drinks? Delicious catered lunch and snacks will be provided. Rules • You can do the programming in any language you like or like to learn! • We will do the exercises in pairs • Bring a laptop to work on (and have the necessary programming tools installed and ready) • Show respect for the other participants Sponsors • CodeSquad Find out more @ http://coderetreat.org (http://coderetreat.org/)

    9