Lambda expressions are coming soon. They promise to be a nice complexity cocktail with the 9 years old generics. So, before confronting the lambdas, are you sure you're mastered the generics?
This quick talk will give you some tips to learn to swim before the flood.
Microsoft does it again! With .Net Framework 4 Microsoft takes the C# language to new levels. In this session we will learn how to write better code using Dynamically Typed Objects, Optional & Named Parameters and Co-variance and Contra-variance.
This is a roughly O(n) algorithm that generates the kth lexicographically ordered permutation of an n-element array from the integer k. Example, for a three-element array:
0 --> 0 1 2
1 --> 0 2 1
2 --> 1 0 2
3 --> 1 2 0
4 --> 2 0 1
5 --> 2 1 0
Microsoft does it again! With .Net Framework 4 Microsoft takes the C# language to new levels. In this session we will learn how to write better code using Dynamically Typed Objects, Optional & Named Parameters and Co-variance and Contra-variance.
This is a roughly O(n) algorithm that generates the kth lexicographically ordered permutation of an n-element array from the integer k. Example, for a three-element array:
0 --> 0 1 2
1 --> 0 2 1
2 --> 1 0 2
3 --> 1 2 0
4 --> 2 0 1
5 --> 2 1 0
Reactive Extensions (Rx) originated in the .NET world, devised and built by Erik Meijer and his team at Microsoft, Rx is a library to compose asynchronous and event-based programs. Available, among other languages, for Javascript(RxJS) it is meant for usage in frontend and backend programming. In this session we will see an introduction to Rx, why it is so useful to deal with async computation and how you can use RxJS in your code.
A presentation I gave in Expert Days 2012. In this presentations I explain how most of the features in the C# language work, including Iterators, Lambdas, Linq, Dynamics, and more.
Clojure is wonderful new language for the JVM that's really making waves: a functional Lisp dialect with full interoperation with Java, and a suite of excellent concurrency utilities ... but it's more than that.
Clojure is a highly expressive and highly adaptable language that allows you to focus on your craft in a way traditional languages such as Java and C# do not. In this session, we'll introduce the language and its core utilities and then introduce the fundamental concepts of functional programming as they apply to Clojure. Clojure has been described as a "high level language beamed back from the near future" ... come see what your future may hold, and why you're really going to like it!
Lego for Software Engineers at Silicon Valley Code Camp 2011 (2010-10-10)Theo Jungeblut
My first presentation at the Silicon Valley Code Camp 2010 about better Software Architecture, Design and Implementation applying Design Patterns and Best Practices using Lego Technic models and parts as visualization of the ideas.
1- Modeling Hierarchy
2- Creating Testbenches
Skills gained:
1- Reuse design units several times in a design hierarchy
2- Automate testing of design units
This is part of VHDL 360 course
Handling error conditions is a core part of the software we write. However, we often treat it as a second class citizen, obscuring our intent through abuse of null values and exceptions that make our code hard to understand and maintain. In the functional programming community, it is common to use datatypes such as Option, Either or Validated to make our intentions explicit when dealing with errors. We can leverage the compiler to verify that we are handling them instead of hoping for the best at runtime. This results in code that is clearer, without hidden path flows. We’ll show how we have been doing this in Kotlin, with the help of the Arrow library.
This session, delivered at Devoxx Poland, covers all the major changes to the Java platform between JDK 12 and JDK 17. All language features are covered, as well as many of the important API changes.
Java 8, lambdas, generics: How to survive? - NYC Java Meetup GroupHenri Tremblay
Lambdas are sexy. But they are adding complexity. Mixed with generics, it creates a dangerous cocktail. Together, we will start from the bottom of generics and go straight through lambda inference. To explain why it is the way it is and tell you how to survive.
PerfUG - Disruptor at ABC Arbitrage - March 2018Olivier Coanet
This talk is split in two parts:
- The first part describes how and why we end up using the Disruptor at ABC Arbitrage.
- The second part is a catalogue of Disruptor specific patterns and practices.
Similar to DevoxxFR 2013: Lambda are coming. Meanwhile, are you sure we've mastered the generics? (20)
Java is moving faster and faster. A lot of features are not as known as they should be.
Let’s review together the old ones you missed.
Then show you the ones you never had time to look at in 9, 10, 11, 12 and 13.
And go crazy to check how it’s implemented under the hood (yes, there will be bytecode).
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?Henri Tremblay
Those are the slides for my presentation at OracleCode One 2018.
Java is moving faster and faster. A lot of features are not as known as they should be.
Let's review together the ones I think you've missed in old versions.
Then I will kickstart you on 9, 10 and 11 features that you never had time to look at.
Être pragmatique en développement logiciel est plus rare que l'on pourrait penser. J'ai vu toutes sortes d'aberrations à travers les années. Des architectes, des analystes, des développeurs faisant et croyant des choses qui ne font simplement aucun sens dans aucune dimension.
À partir d'exemples tirés de mon expérience, je vais vous enseigner quelques trucs pour être vraiment pragmatique. Ceci va vous permettre d'avoir les bons réflexes face à une décision. Pour rapidement développer des logiciels que les gens veulent utiliser. Que vous soyez gestionnaire ou développeur, vous devriez y trouver votre compte.
DevNexus 2018: Learn Java 8, lambdas and functional programmingHenri Tremblay
This session walks through tons of examples in live coding. You will learn everything you need to know about lambdas and functional programming in Java 8. I’m the supplier. You’re the consumer (and you will get the joke after the session).
Do you know your mock? - Madras JUG 20171028Henri Tremblay
An important pillar of unit tests is the Mock Object, also known as Test Doubles. They come in many types and flavours. Together, we will name them and demonstrate them using EasyMock and Mockito.
Source code: https://github.com/henri-tremblay/mocks
Be pragmatic in software development is rarer than one would expect or hope. I've seen all sorts of craziness throughout the years. Architects, analysts and developers doing and believing things that simply made no sense in any worlds.
Using examples from my experience, I will teach you tricks to really be pragmatic. This will allow you to quickly develop software that people really want to use. Whether you are a manager or a developer, you should find it useful.
JavaOne 2016 - Learn Lambda and functional programmingHenri Tremblay
This tutorial walks through tons of examples. You will learn everything you need to know about lambdas and functional programming in Java 8. I'm the supplier. You’re the consumer (and you will get the joke after the session).
Generics and Lambdas cocktail explained - Montreal JUGHenri Tremblay
We are in 2015 and Java 8 will slowly but surely become the new standard. Our world will be filled with lambdas. Generics, for themselves, have appeared in 2004. They brought benefits and complexity. Enough to blow up the complexity quota of Java according to Josh Bloch.
But lambdas, whatever are sexy they are, are going to add even more complexity. Mix with generics your now playing with nitroglycerin.
We will travel together through the bottom of the generics, through inference and through lambdas type resolution. To explain why. To provide solutions. To ease Java 8 adoption.
My conference at USI 2014 (http://www.usievents.com/en). Explaining how we arrive to reactive programming, why we should care and what to do about it.
In French
Microbenchmark basic and lesson about being suspicious about benchmark. The source code is here: https://github.com/henri-tremblay/microbenchmarkingwithjmh
Lambdas and Generics (long version) - Bordeaux/Toulouse JUGHenri Tremblay
Lambda expressions are coming soon. They promise to be a nice complexity cocktail with the 9 years old generics.
Lets go deep into the generics to get a better understanding. Mix them with lambdas and wait calmly for Java 8 to arrive.
La programmation parallèle est désormais une incontournable solution aux problèmes de performance. Ce n'est pas la seule, mais elle ne peut être ignorée. Les nombreux coeurs et CPUs qui peuplent nos serveurs en sont la preuve.
Elle peut aussi s'utiliser plus souvent qu'on pourrait le penser. Que ce soit pour diminuer les temps de réponse ou augmenter le débit.
Nous vous proposons un état des lieux. Quels sont les usages? Quel est le degré de facilité? Comment se prémunir de la complexité? CPU ou GPU?
À l'aide d'exemples de code, tout ce qui est nécessaire de mettre dans le cartable du développeur vivant dans l'air du temps.
DevoxxFR 2013: Lambda are coming. Meanwhile, are you sure we've mastered the generics?
1. Les lambda arrivent!
En attendant, êtes-vous sûr d'avoir
compris les génériques?
Henri Tremblay
Architecte Senior
OCTO Technology
@henri_tremblay
27 au 29 mars 2013
2. Henri Tremblay
OCTO Technology Open Source
Responsable R&D EasyMock
Performance Objenesis
Calcul parallèle
34. Useful links
Nice lambda tutorial (in French):
http://lambda.ninjackaton.ninja-squad.com/
Description of inference types on lambda:
http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-4.html
Everything on generics:
http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html