English version of the Devoxx4Kids workshop deck to teach programming using the NAO humanoid robot. (Credit to Daniel De Luca for content creation and Nicolas Rigaud on translation)
RetroPi Handheld Raspberry Pi Gaming ConsoleStephen Chin
In this session I will walk you through how to build your own retro handheld console that is powered by Java, runs on a Raspberry Pi, and is printed on a 3D printer. Some of the topics that we will cover along the journey include:
• Hacking Java on the Raspberry Pi
• Rigging input devices with Pi4J
• Insane performance tuning on the JVM
• Why your boss [or SO] needs to buy you a 3D printer!
And of course your retro gaming mettle will be put to the test, so make sure to dust off your old 8 and 16 bit consoles to prepare.
This presentation is about the most fun you can have while still legitimately calling this conference “work.” In fact, I will hopefully inspire you to do your own creative “work” leveraging Java and Raspberry Pi to hack the real world.
Confessions of a Former Agile Methodologist (JFrog Edition)Stephen Chin
I am best known for my work as a technology author and evangelist, but before this I used to be a methodology guru. Find out about what I learned in my 14+ year journey through the Agile methodologies and trends that have reshaped what we know as modern software development practices. This version of the talk has a few Easter Eggs for the JFrog guys who were instrumental in the build and test infrastructure I succeeded with, and invited me to speak at their awesome SwampUP event in Napa.
Slides for a Lego Workshop using Java coding via Lejos to create a wind turbine using the Lego EV3 core education set. Workshop was given at the Devoxx4Kids bay area chapter on May 2nd.
English version of the Devoxx4Kids workshop deck to teach programming using the NAO humanoid robot. (Credit to Daniel De Luca for content creation and Nicolas Rigaud on translation)
RetroPi Handheld Raspberry Pi Gaming ConsoleStephen Chin
In this session I will walk you through how to build your own retro handheld console that is powered by Java, runs on a Raspberry Pi, and is printed on a 3D printer. Some of the topics that we will cover along the journey include:
• Hacking Java on the Raspberry Pi
• Rigging input devices with Pi4J
• Insane performance tuning on the JVM
• Why your boss [or SO] needs to buy you a 3D printer!
And of course your retro gaming mettle will be put to the test, so make sure to dust off your old 8 and 16 bit consoles to prepare.
This presentation is about the most fun you can have while still legitimately calling this conference “work.” In fact, I will hopefully inspire you to do your own creative “work” leveraging Java and Raspberry Pi to hack the real world.
Confessions of a Former Agile Methodologist (JFrog Edition)Stephen Chin
I am best known for my work as a technology author and evangelist, but before this I used to be a methodology guru. Find out about what I learned in my 14+ year journey through the Agile methodologies and trends that have reshaped what we know as modern software development practices. This version of the talk has a few Easter Eggs for the JFrog guys who were instrumental in the build and test infrastructure I succeeded with, and invited me to speak at their awesome SwampUP event in Napa.
Slides for a Lego Workshop using Java coding via Lejos to create a wind turbine using the Lego EV3 core education set. Workshop was given at the Devoxx4Kids bay area chapter on May 2nd.
DukeScript is a new way of writing JavaScript applications that lets you take advantage of a powerful binding model to connect to Java code running in a local JVM.
Confessions of a Former Agile MethodologistStephen Chin
While I am best known as a Java evangelist, my day job prior to joining Oracle was Chief Agile Methodologist where I facilitated 3 company-wide Agile rollouts. If you are skeptical of folks trying to sell you certifications, frustrated with the institution of new processes and tracking systems, or wary of process experts taking the place of technical leadership, then this is the session for you. Come learn the insider secrets of how Agile works in a large enterprise from someone who has been in the eye of the hurricane. However, be warned that this knowledge will give you the power to change the development culture in your organization for better or worse -- are you ready to shoulder this responsibility?
What do magicians and programmers have in common? They are good at juggling, have very nimble fingertips, often make things vanish, and have lovely assistants! Ok, so maybe not all of those describe your average hacker (unless your pair programmer partner happens to be Penny), but we are going to try to put on the most spectacular magic show that has ever been seen on the stage at a tech conference! [geeks only]
As proper geeks, we are going to make heavy use of embedded wearable and internet connected devices to make up for our lack of dexterity and supernatural powers. Also, all tricks will be revealed with the designs available to reproduce in the spirit of open source and creative commons. Come join us to see for yourself what real [hacker] magic looks like!
Surviving as a zombie is tough... with the constant risks of sunlight, fire, and pesky mobs, doing your job of infecting the local villagers can be deadly. Fortunately, with the new JavaFX ZombieTime app, powered by the JSR 310 Date and Time API, you can rest easy. With built-in time zone and DST support you no longer have to worry about roaming around under the scorching hot sun. Accurately calculate out how long you have to infect the villagers before you decompose using Durations. And coordinate global attacks on the humans by syncing with your undead brethren on Instants. With the power of Java 8, eradicating the human race with a highly infectious virus has never been easier!
This presentation is designed to teach Java Date and Time APIs to the undead, but the living are welcome to be our "guests". You may also learn some JavaFX in the process -- that is entirely my fault. Any correlation between the characters and events in this presentation and the impending extinction of mankind is purely coincidental.
When JavaFX Script was released, the mobile component was an important part. It was also one of the reasons many people and analysts believed in JavaFX as a real cross-platform client-side framework. For a number of reasons, JavaFX on mobile disappeared from the official Java roadmap. Fortunately, the OpenJFX team at Oracle made all the required sources available, and the JavaFXPorts initiative worked on providing JavaFX SDK's for the mobile platforms. In this session, we will show the current state of JavaFX on Mobile. We will show how to create a real cross-platform JavaFX Application using an IDE, and how easy it actually is to deploy that application on Android and iOS devices. We will show some of the features and limitations, and talk about the eco-system that is starting to take shape.
Java 8 is the most impactful update to the Java ecosystem since Java 5, introducing an entirely new programming model with lambda expressions, and a whole new platform of applications with support for ARM embedded devices. In this presentation, you will see live demonstrations of Java 8 technology running on embedded platforms such as Raspberry Pi and Lego Mindstorms EV3, allowing Java-based applications to support the internet-of-things.
With new low cost devices entering the market, access to the world of embedded computing is become more cost affordable. And, with continued advances in Java, developers can easily begin creating innovative applications that leverage these low cost devices. Come and learn how to build the future of Java.
Presentation given to the Dallas Spring User Group on how to use JavaFX technology together with the Spring Framework. Covers a basic pattern for loading the Spring context in a JavaFX application thread as well as how to leverage Spring Security on the front end.
With the rise of DevOps, Cloud Computing, and Container technologies, how you approach development has dramatically changed. Learn how to take advantage of microservices, serverless, and cloud-native technologies with the latest DevOps techniques to create hyperproductive teams.
10 Ways Everyone Can Support the Java CommunityStephen Chin
Foojay is all about the community helping to take Java forward, so as an attendee of the Friends of OpenJDK FOSDEM devroom you are already on your way towards making the Java community better!
But what can we all encourage our friends and colleagues to do in order to make the Java community more vibrant, active, and welcoming.
In this presentation, you will learn all of the insider secrets on how to support the worldwide community of 12 million Java developers.
Java Clients and JavaFX: The Definitive GuideStephen Chin
This talk is for professionals building Java applications for desktop, mobile, and embedded devices in the cloud age. It will help you build enhanced visual experiences and deploy modern, easy-to-maintain client applications across a variety of platforms. These applications can take advantage of the latest user interface components, 3D technology, and cloud services to create immersive visualizations and enable high-value data manipulation. Learn from Stephen Chin, lead author of the definitive Java client reference, how to leverage the latest open-source Java client technologies to build rich, responsive, and modern UIs.
Speaker: Stephen Chin
Bio: Stephen Chin is Senior Director of Developer Relations at JFrog, author of Raspberry Pi with Java, The Definitive Guide to Modern Client Development, and Pro JavaFX Platform. He has keynoted numerous Java conferences around the world including Oracle Code One (formerly JavaOne), where he is an 8-time Rock Star Award recipient. Stephen is an avid motorcyclist who has done evangelism tours in Europe, Japan, and Brazil, interviewing hackers in their natural habitat and posting the videos on http://nighthacking.org/. When he is not traveling, he enjoys teaching kids how to do embedded and robot programming together with his teenage daughter.
With the rise of DevOps, low cost Cloud Computing, and emerging Container technologies, the landscape for how you approach development has dramatically changed. This talk is focused on helping Java developers to adapt to this new landscape and take advantage of microservices, serverless, and cloud-native technologies with the latest DevOps techniques to simplify their build and create hyperproductive teams. Some of the technologies you will learn about in this talk include source control, build declaration, CI/CD, package management, containerization, and security.
Learn from the combined experience of the presenters who are experts in the Java and DevOps domains on the best tools, technologies, and methodologies to build your next cloud-native application or refactor your monolith. We cover the entire DevOps toolchain from source control through CI/CD through containerized deployments with an emphasis on maintaining efficiency and control from the source code and dependencies.
Java Clients and JavaFX - Presented to LJCStephen Chin
This session is for professionals building Java applications for desktop, mobile, and embedded devices in the cloud age. It will help you build enhanced visual experiences and deploy modern, easy-to-maintain client applications across a variety of platforms. These applications can take advantage of the latest user interface components, 3D technology, and cloud services to create immersive visualizations and enable high-value data manipulation.
Learn from Stephen Chin, lead author of the definitive Java client reference, how to leverage the latest open-source Java client technologies to build rich, responsive, and modern UIs.
DukeScript is a new way of writing JavaScript applications that lets you take advantage of a powerful binding model to connect to Java code running in a local JVM.
Confessions of a Former Agile MethodologistStephen Chin
While I am best known as a Java evangelist, my day job prior to joining Oracle was Chief Agile Methodologist where I facilitated 3 company-wide Agile rollouts. If you are skeptical of folks trying to sell you certifications, frustrated with the institution of new processes and tracking systems, or wary of process experts taking the place of technical leadership, then this is the session for you. Come learn the insider secrets of how Agile works in a large enterprise from someone who has been in the eye of the hurricane. However, be warned that this knowledge will give you the power to change the development culture in your organization for better or worse -- are you ready to shoulder this responsibility?
What do magicians and programmers have in common? They are good at juggling, have very nimble fingertips, often make things vanish, and have lovely assistants! Ok, so maybe not all of those describe your average hacker (unless your pair programmer partner happens to be Penny), but we are going to try to put on the most spectacular magic show that has ever been seen on the stage at a tech conference! [geeks only]
As proper geeks, we are going to make heavy use of embedded wearable and internet connected devices to make up for our lack of dexterity and supernatural powers. Also, all tricks will be revealed with the designs available to reproduce in the spirit of open source and creative commons. Come join us to see for yourself what real [hacker] magic looks like!
Surviving as a zombie is tough... with the constant risks of sunlight, fire, and pesky mobs, doing your job of infecting the local villagers can be deadly. Fortunately, with the new JavaFX ZombieTime app, powered by the JSR 310 Date and Time API, you can rest easy. With built-in time zone and DST support you no longer have to worry about roaming around under the scorching hot sun. Accurately calculate out how long you have to infect the villagers before you decompose using Durations. And coordinate global attacks on the humans by syncing with your undead brethren on Instants. With the power of Java 8, eradicating the human race with a highly infectious virus has never been easier!
This presentation is designed to teach Java Date and Time APIs to the undead, but the living are welcome to be our "guests". You may also learn some JavaFX in the process -- that is entirely my fault. Any correlation between the characters and events in this presentation and the impending extinction of mankind is purely coincidental.
When JavaFX Script was released, the mobile component was an important part. It was also one of the reasons many people and analysts believed in JavaFX as a real cross-platform client-side framework. For a number of reasons, JavaFX on mobile disappeared from the official Java roadmap. Fortunately, the OpenJFX team at Oracle made all the required sources available, and the JavaFXPorts initiative worked on providing JavaFX SDK's for the mobile platforms. In this session, we will show the current state of JavaFX on Mobile. We will show how to create a real cross-platform JavaFX Application using an IDE, and how easy it actually is to deploy that application on Android and iOS devices. We will show some of the features and limitations, and talk about the eco-system that is starting to take shape.
Java 8 is the most impactful update to the Java ecosystem since Java 5, introducing an entirely new programming model with lambda expressions, and a whole new platform of applications with support for ARM embedded devices. In this presentation, you will see live demonstrations of Java 8 technology running on embedded platforms such as Raspberry Pi and Lego Mindstorms EV3, allowing Java-based applications to support the internet-of-things.
With new low cost devices entering the market, access to the world of embedded computing is become more cost affordable. And, with continued advances in Java, developers can easily begin creating innovative applications that leverage these low cost devices. Come and learn how to build the future of Java.
Presentation given to the Dallas Spring User Group on how to use JavaFX technology together with the Spring Framework. Covers a basic pattern for loading the Spring context in a JavaFX application thread as well as how to leverage Spring Security on the front end.
With the rise of DevOps, Cloud Computing, and Container technologies, how you approach development has dramatically changed. Learn how to take advantage of microservices, serverless, and cloud-native technologies with the latest DevOps techniques to create hyperproductive teams.
10 Ways Everyone Can Support the Java CommunityStephen Chin
Foojay is all about the community helping to take Java forward, so as an attendee of the Friends of OpenJDK FOSDEM devroom you are already on your way towards making the Java community better!
But what can we all encourage our friends and colleagues to do in order to make the Java community more vibrant, active, and welcoming.
In this presentation, you will learn all of the insider secrets on how to support the worldwide community of 12 million Java developers.
Java Clients and JavaFX: The Definitive GuideStephen Chin
This talk is for professionals building Java applications for desktop, mobile, and embedded devices in the cloud age. It will help you build enhanced visual experiences and deploy modern, easy-to-maintain client applications across a variety of platforms. These applications can take advantage of the latest user interface components, 3D technology, and cloud services to create immersive visualizations and enable high-value data manipulation. Learn from Stephen Chin, lead author of the definitive Java client reference, how to leverage the latest open-source Java client technologies to build rich, responsive, and modern UIs.
Speaker: Stephen Chin
Bio: Stephen Chin is Senior Director of Developer Relations at JFrog, author of Raspberry Pi with Java, The Definitive Guide to Modern Client Development, and Pro JavaFX Platform. He has keynoted numerous Java conferences around the world including Oracle Code One (formerly JavaOne), where he is an 8-time Rock Star Award recipient. Stephen is an avid motorcyclist who has done evangelism tours in Europe, Japan, and Brazil, interviewing hackers in their natural habitat and posting the videos on http://nighthacking.org/. When he is not traveling, he enjoys teaching kids how to do embedded and robot programming together with his teenage daughter.
With the rise of DevOps, low cost Cloud Computing, and emerging Container technologies, the landscape for how you approach development has dramatically changed. This talk is focused on helping Java developers to adapt to this new landscape and take advantage of microservices, serverless, and cloud-native technologies with the latest DevOps techniques to simplify their build and create hyperproductive teams. Some of the technologies you will learn about in this talk include source control, build declaration, CI/CD, package management, containerization, and security.
Learn from the combined experience of the presenters who are experts in the Java and DevOps domains on the best tools, technologies, and methodologies to build your next cloud-native application or refactor your monolith. We cover the entire DevOps toolchain from source control through CI/CD through containerized deployments with an emphasis on maintaining efficiency and control from the source code and dependencies.
Java Clients and JavaFX - Presented to LJCStephen Chin
This session is for professionals building Java applications for desktop, mobile, and embedded devices in the cloud age. It will help you build enhanced visual experiences and deploy modern, easy-to-maintain client applications across a variety of platforms. These applications can take advantage of the latest user interface components, 3D technology, and cloud services to create immersive visualizations and enable high-value data manipulation.
Learn from Stephen Chin, lead author of the definitive Java client reference, how to leverage the latest open-source Java client technologies to build rich, responsive, and modern UIs.
9. Pi’s zijn Betaalbaar
Een Luxe Taart
Een Fiets
(alleen het wiel)
€35
Monday, 28 October 13
3/4 Pak Luiers
10. Chalkboad Electronics Touchscreen
§ 10" or 7" Form Factor
§ Verbind via HDMI/USB
§ Getest met JavaFX 8
§ 10% Exclusieve Korting:
G1F0U796Z083
Monday, 28 October 13
11. Hoe installeer je jouw Pi
>
Stap 1: Installeer Linux
>
Stap 2: Download/Copieer Java 8 voor ARM EA
>
Stap 3: Deploy and Run JVM Language Apps
http://steveonjava.com/
javafx-on-raspberry-pi-3-easy-steps/
Monday, 28 October 13
12. Wat zit er in jouw Lab Kit
Touch Screen
SD Card
Toetsenbord
Gele Doos:
1.
2.
3.
4.
l
l
l
l
l
Stroom Adapter
LVDS Kabel/Bord
Raspberry Pi Model B
Mini-USB Kabel (stroom)
Micro-USB Kabel (toetsenbord)
AUB: Bewaar de verpakking voor later!
Monday, 28 October 13
13. Electriciteit en Veiligheid!
>
Stekker uit de muur voordat je begint
>
Verwijder statische electriciteit door
een metaal oppervlak aan te raken
>
Raak onbeschermde snoeren/metaal
niet aan
>
Nooit de SD Kaart verwijderen of
aansluiten als er stroom op staat
13
Monday, 28 October 13
14. Aansluiten van de Pi (Deel 1)
Belangrijk: Sluit alles eerst aan voordat je er stroom op zet!
Plaats de SD Kaart in de Pi
1.
l
Lijkt ondersteboven van boven af bekeken
Plaats het HDMI bord in de HDMI plug van
2.
de Pi
Verbind de Pi stroom kabel aan het HDMI
3.
bord
l
Gebruik de Micro USB Kabel (de kortere)
14
Monday, 28 October 13
15. Aansluiten van de Pi (Deel 2)
Schuif de LCD kabel aan de achterkant van het
scherm
4.
l
l
De kant met gouden aansluiters moet boven
Voorzichtig, de aansluiting is kwetsbaar!
Sluit de USB uitgang aan een van de USB ports
van de Pi
5.
l
Dit is voor de touch input
Sluit het toetsenbord aan
6.
1.
Gebruik de Mini USB kabel (de langere)
Controleer de verbindingen en sluit de stroom aan
15
Monday, 28 October 13
16. Werkt het nu?
>
Als het goed is zie je een aantal LED lampjes oplichten, dit geeft aan
dat de Pi aan het opstarten is
l
>
Het LCD scherm zou nu moeten aangaan
l
>
Opstarten duurt ongeveer 30 seconden
Als de licht sensor belemmerd is, dan lijkt deze wat schemerig
Als het goed is zie je een Linux opstart scherm met heel veel tekst
Hacking Time!
Monday, 28 October 13
17. Inloggen
Bij login, type je gebruikersnaam:
> pi
En voer het wachtwoord in:
> raspberry
Monday, 28 October 13
18. Draai je eerste Programma
Verander de map naar de project map
> cd MaryHadALittleLambda
Run(=uitvoeren van) het script
> ant
Monday, 28 October 13
20. Hack de Code
Run(=uitvoeren van) de Nano tekst editor:
> nano src/sample/MapObject.java
Bewaar je aanpassingen:
> Control-O Enter
Verlaat Nano:
> Control-X
Compileer/Run:
> ant
Monday, 28 October 13
21. Mary Had a Little Lamb(da)
Dit is een Engels Kinderliedje over
een meisje met een Lammetje!
Mary had a little lambda
Whose fleece was white as snow
And everywhere that Mary went
Lambda was sure to go!
https://github.com/steveonjava/MaryHadALittleLambda
Monday, 28 October 13
22. Het genereren van “Streams”
Van een collection (=verzameling):
> anyCollection.stream();
Bekende reeks van objecten:
> Stream.of("bananen",
"peren",
"appels");
Numerieke reeks:
> IntStream.range(0,
50)
Iteratief:
> Stream.iterate(Color.RED,
>
c
-‐>
Color.hsb(c.getHue()
+
.1,
c.getSaturation(),
>
c.getBrightness()));
22
Monday, 28 October 13
23. Nu gaan we boerderij dieren maken!
SpriteView
tail
=
s.getAnimals().isEmpty()
?
s
:
s.getAnimals().get(s.getAnimals().size()
-‐
1);
Stream.iterate(tail,
SpriteView.Lamb::new)
.substream(1,
8)
.forEach(s.getAnimals()::add);
23
Monday, 28 October 13
28. Filteren van Collections (=verzamelingen)
Collection.removeIf
> Verwijdert alle elementen die voldoen the ‘if’ expressie
List.replaceAll
> Filteren en vervanging met gebruik van 1 input
ObservableCollection.filtered
> Geeft een lijst terug van het gefilterde
28
Monday, 28 October 13
29. Moeilijke eters…
Predicate<SpriteView>
pure
=
a
-‐>
a.getColor()
==
null;
mealsServed.set(mealsServed.get()
+
s.getAnimals().filtered(pure).size()
);
s.getAnimals().removeIf(pure);
29
Monday, 28 October 13
31. Mapping Streams
Past een Map Functie toe op elk element:
> Function<?
super
T,
?
extends
R>
Resultaat: Lijst is even groot, maar kan van een ander type zijn.
31
Monday, 28 October 13
32. Single Map (enkele map)
s.getAnimals().setAll(s.getAnimals()
.stream()
.map(sv
-‐>
new
Eggs(sv.getFollowing())
.collect(Collectors.toList())
);
32
Monday, 28 October 13
33. Of een Double Map! (dubbele map)
s.getAnimals().setAll(s.getAnimals()
.stream()
.map(SpriteView::getFollowing)
.map(Eggs::new)
.collect(Collectors.toList())
);
33
Monday, 28 October 13
35. Flat Map (platte map)
Past een Een-op-Veel Map Functie toe op elk element:
> Function<? super T, ? extends Stream<? extends R>>
En maakt het dan weer plat naar een enkele map (single map).
Resultaat: De lijst kan langer worden en het type kan anders zijn.
35
Monday, 28 October 13
38. Reduce (=verminderen)
Vermindert een lijst naar een enkel element:
> Identity: T
> Accumulator: BinaryOperator<T>
Resultaat: Lijst van hetzelfde type, maar slechts 1 element blijft over.
38
Monday, 28 October 13
39. En de (voorheen) kleine vos at ze allemaal op!
Double
mealSize
=
shepherd.getAnimals()
.stream()
.map(SpriteView::getScaleX)
.reduce(0.0,
Double::sum);
setScaleX(getScaleX()
+
mealSize
*
.2);
setScaleY(getScaleY()
+
mealSize
*
.2);
shepherd.getAnimals().clear();
39
Monday, 28 October 13
41. Mary Had a Little Lambda Project
>
>
Open-source project om lambda kenmerken te demonstreren
Visuele representatie van streams, filters en maps
https://github.com/steveonjava/MaryHadALittleLambda
41
Monday, 28 October 13
42. NightHacking Tour
Stephen Chin (@steveonjava)
http://steveonjava.com/
Real Geeks
Live Hacking
nighthacking.com
Monday, 28 October 13
43. Safe Harbor Statement
The preceding is intended to outline our general product
direction. It is intended for information purposes only, and may
not be incorporated into any contract. It is not a commitment
to deliver any material, code, or functionality, and should not
be relied upon in making purchasing decisions. The
development, release, and timing of any features or
functionality described for Oracle’s products remains at the
sole discretion of Oracle.
Monday, 28 October 13