raspberry pi gaming 4 kids - dutch version

43
Raspberry Pi Gaming 4 Kids Stephen Chin (@steveonjava) Monday, 28 October 13

Upload: stephen-chin

Post on 15-Jan-2015

11.796 views

Category:

Technology


2 download

DESCRIPTION

Presentation on teaching Raspberry Pi and Java to kids 10 and up. This is the Dutch translated version used for Devoxx 4 Kids Netherlands.

TRANSCRIPT

Page 1: Raspberry Pi Gaming 4 Kids - Dutch Version

Raspberry Pi Gaming 4 KidsStephen Chin (@steveonjava)

Monday, 28 October 13

Page 2: Raspberry Pi Gaming 4 Kids - Dutch Version

Wat draait er op Java?

Monday, 28 October 13

Page 3: Raspberry Pi Gaming 4 Kids - Dutch Version

Wat draait er op Java?

Monday, 28 October 13

Page 4: Raspberry Pi Gaming 4 Kids - Dutch Version

Java en 3G in een Klein Pakketje> Cinterion EHS5

Monday, 28 October 13

Page 5: Raspberry Pi Gaming 4 Kids - Dutch Version

Heel Klein....

27.6mm

18.8

mm

Monday, 28 October 13

Page 6: Raspberry Pi Gaming 4 Kids - Dutch Version

http://upload.wikimedia.org/wikipedia/commons/3/3d/Cloud_forest_Ecuador.jpgMonday, 28 October 13

Page 7: Raspberry Pi Gaming 4 Kids - Dutch Version

=Neem wat Java bij je toetjeRaspberry Pi

Monday, 28 October 13

Page 8: Raspberry Pi Gaming 4 Kids - Dutch Version

Pi’s zijn Betaalbaar

€35Monday, 28 October 13

Page 9: Raspberry Pi Gaming 4 Kids - Dutch Version

Pi’s zijn Betaalbaar

€35 3/4 Pak Luiers

Een Fiets(alleen het wiel)

Een Luxe Taart

Monday, 28 October 13

Page 10: Raspberry Pi Gaming 4 Kids - Dutch Version

Chalkboad Electronics Touchscreen

§ 10" or 7" Form Factor§ Verbind via HDMI/USB§ Getest met JavaFX 8§ 10% Exclusieve Korting:

G1F0U796Z083

Monday, 28 October 13

Page 12: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 13: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 14: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 15: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 16: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 17: Raspberry Pi Gaming 4 Kids - Dutch Version

Inloggen

Bij login, type je gebruikersnaam:> piEn voer het wachtwoord in:> raspberry

Monday, 28 October 13

Page 18: Raspberry Pi Gaming 4 Kids - Dutch Version

Draai je eerste Programma

Verander de map naar de project map> cd MaryHadALittleLambdaRun(=uitvoeren van) het script> ant

Monday, 28 October 13

Page 19: Raspberry Pi Gaming 4 Kids - Dutch Version

19

Monday, 28 October 13

Page 20: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 21: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 22: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 23: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 24: Raspberry Pi Gaming 4 Kids - Dutch Version

24

Monday, 28 October 13

Page 25: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 26: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 27: Raspberry Pi Gaming 4 Kids - Dutch Version

27

Monday, 28 October 13

Page 28: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 29: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 30: Raspberry Pi Gaming 4 Kids - Dutch Version

30

Monday, 28 October 13

Page 31: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 32: Raspberry Pi Gaming 4 Kids - Dutch Version

Single Map (enkele map)s.getAnimals().setAll(s.getAnimals()        .stream()        .map(sv  -­‐>  new  Eggs(sv.getFollowing())        .collect(Collectors.toList()));

32

Monday, 28 October 13

Page 33: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 34: Raspberry Pi Gaming 4 Kids - Dutch Version

34

Monday, 28 October 13

Page 35: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 36: Raspberry Pi Gaming 4 Kids - Dutch Version

Broedeierens.getAnimals().setAll(s.getAnimals()        .stream()        .flatMap(SpriteView.Eggs::hatch)        .collect(Collectors.toList()));

36

Monday, 28 October 13

Page 37: Raspberry Pi Gaming 4 Kids - Dutch Version

37

Monday, 28 October 13

Page 38: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 39: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 40: Raspberry Pi Gaming 4 Kids - Dutch Version

40

Monday, 28 October 13

Page 41: Raspberry Pi Gaming 4 Kids - Dutch Version

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

Page 42: Raspberry Pi Gaming 4 Kids - Dutch Version

Stephen Chin (@steveonjava)http://steveonjava.com/

nighthacking.com

Real GeeksLive Hacking

NightHacking Tour

Monday, 28 October 13

Page 43: Raspberry Pi Gaming 4 Kids - Dutch Version

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