Post on 15-Jan-2015
description
Raspberry Pi Gaming 4 KidsStephen Chin (@steveonjava)
Monday, 28 October 13
Wat draait er op Java?
Monday, 28 October 13
Wat draait er op Java?
Monday, 28 October 13
Java en 3G in een Klein Pakketje> Cinterion EHS5
Monday, 28 October 13
Heel Klein....
27.6mm
18.8
mm
Monday, 28 October 13
http://upload.wikimedia.org/wikipedia/commons/3/3d/Cloud_forest_Ecuador.jpgMonday, 28 October 13
=Neem wat Java bij je toetjeRaspberry Pi
Monday, 28 October 13
Pi’s zijn Betaalbaar
€35Monday, 28 October 13
Pi’s zijn Betaalbaar
€35 3/4 Pak Luiers
Een Fiets(alleen het wiel)
Een Luxe Taart
Monday, 28 October 13
Chalkboad Electronics Touchscreen
§ 10" or 7" Form Factor§ Verbind via HDMI/USB§ Getest met JavaFX 8§ 10% Exclusieve Korting:
G1F0U796Z083
Monday, 28 October 13
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
Wat zit er in jouw Lab Kit
1. Touch Screen2. SD Card3. Toetsenbord4. Gele Doos:
l Stroom Adapterl LVDS Kabel/Bordl Raspberry Pi Model Bl Mini-USB Kabel (stroom)l Micro-USB Kabel (toetsenbord)
AUB: Bewaar de verpakking voor later!
Monday, 28 October 13
Electriciteit en Veiligheid!> Stekker uit de muur voordat je begint
> Verwijder statische electriciteit door een metaal oppervlak aan te raken
> Raak onbeschermde snoeren/metaalniet aan
> Nooit de SD Kaart verwijderen ofaansluiten als er stroom op staat
13
Monday, 28 October 13
Aansluiten van de Pi (Deel 1)
1. Plaats de SD Kaart in de Pil Lijkt ondersteboven van boven af bekeken
2. Plaats het HDMI bord in de HDMI plug van de Pi
3. Verbind de Pi stroom kabel aan het HDMI bord
l Gebruik de Micro USB Kabel (de kortere)
14
Belangrijk: Sluit alles eerst aan voordat je er stroom op zet!
Monday, 28 October 13
Aansluiten van de Pi (Deel 2)
4. Schuif de LCD kabel aan de achterkant van het scherm
l De kant met gouden aansluiters moet bovenl Voorzichtig, de aansluiting is kwetsbaar!
5. Sluit de USB uitgang aan een van de USB ports van de Pi
l Dit is voor de touch input6. Sluit het toetsenbord aan
1. Gebruik de Mini USB kabel (de langere)
15
Controleer de verbindingen en sluit de stroom aan
Monday, 28 October 13
Werkt het nu?> Als het goed is zie je een aantal LED lampjes oplichten, dit geeft aan
dat de Pi aan het opstarten isl Opstarten duurt ongeveer 30 seconden
> Het LCD scherm zou nu moeten aangaanl 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
Inloggen
Bij login, type je gebruikersnaam:> piEn voer het wachtwoord in:> raspberry
Monday, 28 October 13
Draai je eerste Programma
Verander de map naar de project map> cd MaryHadALittleLambdaRun(=uitvoeren van) het script> ant
Monday, 28 October 13
19
Monday, 28 October 13
Hack de Code
Run(=uitvoeren van) de Nano tekst editor:> nano src/sample/MapObject.javaBewaar je aanpassingen:> Control-O EnterVerlaat Nano:> Control-XCompileer/Run:> ant
Monday, 28 October 13
Mary Had a Little Lamb(da)
Mary had a little lambdaWhose fleece was white as snowAnd everywhere that Mary wentLambda was sure to go!
https://github.com/steveonjava/MaryHadALittleLambda
Dit is een Engels Kinderliedje overeen meisje met een Lammetje!
Monday, 28 October 13
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
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
24
Monday, 28 October 13
Het filteren van “Streams”
Predicate Expression (een soort gezegde)> public interface Predicate<T> {> public boolean test(T t);> }
Filter de kinderen eruit> volwassenen = deelnemers.filter(a -‐> a.getLeeftijd() >= 18)
25
Monday, 28 October 13
Lammetjes in de kleuren van de regenboog!s.getAnimals().stream() .filter(a -‐> a.getNumber() % 4 == 2) .forEach(a -‐> a.setColor(Color.YELLOW));s.getAnimals().stream() .filter(a -‐> a.getNumber() % 4 == 3) .forEach(a -‐> a.setColor(Color.CYAN));s.getAnimals().stream() .filter(a -‐> a.getNumber() % 4 == 0) .forEach(a -‐> a.setColor(Color.GREEN));
26
Monday, 28 October 13
27
Monday, 28 October 13
Filteren van Collections (=verzamelingen)
Collection.removeIf> Verwijdert alle elementen die voldoen the ‘if’ expressieList.replaceAll> Filteren en vervanging met gebruik van 1 input
ObservableCollection.filtered> Geeft een lijst terug van het gefilterde
28
Monday, 28 October 13
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
30
Monday, 28 October 13
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
Single Map (enkele map)s.getAnimals().setAll(s.getAnimals() .stream() .map(sv -‐> new Eggs(sv.getFollowing()) .collect(Collectors.toList()));
32
Monday, 28 October 13
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
34
Monday, 28 October 13
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
Broedeierens.getAnimals().setAll(s.getAnimals() .stream() .flatMap(SpriteView.Eggs::hatch) .collect(Collectors.toList()));
36
Monday, 28 October 13
37
Monday, 28 October 13
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
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
40
Monday, 28 October 13
Mary Had a Little Lambda Project> Open-source project om lambda kenmerken te demonstreren> Visuele representatie van streams, filters en maps
41
https://github.com/steveonjava/MaryHadALittleLambda
Monday, 28 October 13
Stephen Chin (@steveonjava)http://steveonjava.com/
nighthacking.com
Real GeeksLive Hacking
NightHacking Tour
Monday, 28 October 13
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