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