11. Πώς να στήσετε το Pi σας
> Βήµα 1: Εγκαταστήστε το Linux
> Βήµα 2: Κατεβάστε τη Java 8 για ARM
> Βήµα 3: Εγκαταστήστε και τρέξτε την
> εφαρµογή σας στην εικονική µηχανή
> Java (JVM)
http://steveonjava.com/
javafx-on-raspberry-pi-3-easy-steps/
12. Ηλεκτρονική Ασφάλεια
> Βγάλτε το Pi από την µπρίζα
> Ξεφορτωθείτε το στατικό ηλεκτρισµό
αγγίζοντας µια µεταλλική επιφάνεια
> Μην αγγίζετε καλώδια/µεταλλικές
επιφάνειες του Pi
> Ποτέ µην αφαιρείτε/εισάγετε µια κάρτα
SD όσο το έχετε στο ρεύµα
12
13. Τι περιέχει το κιτ του εργαστηρίου
1. Οθόνη αφής
2. Κάρτα SD
3. Πληκτρολόγιο
4. Κίτρινο κουτί:
l Τροφοδοτικό
l Καλώδιο/Πλακέτα LVDS
l Raspberry Pi Mοντέλο B
l Καλώδιο Mini-USB (ρεύµα)
l Καλώδιο Micro-USB (πληκτρολόγιο)
Παρακαλείστε να µην τα χάσετε
14. Συναρµολογήστε το Pi (Μέρος A)
1. Εισάγετε την κάρτα SD στο Pi
l Θα πρέπει να φαίνεται το κάτω µέρος της όταν
κοιτάτε το Pi από πάνω
2. Εισάγετε την πλακέτα HDMI στην υποδοχή
HDMI
3. Συνδέστε το καλώδιο ρεύµατος του Pi στην
πλακέτα HDMI
l Χρησιµοποιείστε το κοντό καλώδιο Micro USB
14
Σηµαντικό: Συνδέστε τα όλα προτού το βάλετε στη µπρίζα
15. Συναρµολογήστε το Pi (Μέρος Β)
4. Συνδέστε το καλώδιο LCD στο πίσω µέρος της οθόνης
l Η µεριά µε τους χρυσούς συνδετήρες πάει πάνω
l Προσοχή, ο συνδετήρας είναι εύθραυστος!
5. Συνδέστε το πληκτρολόγιο USB
6. Συνδέστε το καλώδιο USB σε µια από τις θύρες USB του Pi
l Παρέχει την αφή
15
Ελέγξτε όλες τις συνδέσεις και συνδέστε το στο ρεύµα
16. Δουλεύει;
> Θα πρέπει να δείτε τα φωτάκια LED να αναβοσβήνουν που σηµαίνει
ότι το Pi ξεκινάει
l Η διαδικασία παίρνει περίπου 30 δευτερόλεπτα
> Η οθόνη LCD θα πρέπει να ανάψει
l Μπορεί να φαίνεται θολή αν παρεµποδίζεται ο αισθητήρας φωτός
> Και θα πρέπει να δείτε την οθόνη εκκίνησης του Linux µε πολύ
κείµενο
20. Η Μαρία είχε ένα µικρό λ
Η Μαρία είχε ένα µικρό λ
Του οποίου το δέρµα ήταν άσπρο σα το χιόνι
Και όπου και να πήγαινε η Μαρία
Πήγαινε και το λ!
https://github.com/steveonjava/MaryHadALittleLambda
21. Δηµιουργώντας Ροές
Από µια συλλογή:
> anyCollection.stream();
Από ένα σύνολο αντικειµένων:
> Stream.of("bananas", "oranges", "apples");
Από µια περιοχή αριθµών:
> IntStream.range(0, 50)
Επαναληπτικά:
> Stream.iterate(Color.RED,
> c -> Color.hsb(c.getHue() + .1, c.getSaturation(),
> c.getBrightness()));
21
27. Φιλτράροντας Συλλογές Αντικειµένων
Collection.removeIf
> Αφαιρεί όλα τα αντικείµενα που ικανοποιούν το κριτήριο
List.replaceAll
> Αντικαθιστά τα αντικείµενα που ικανοποιούν το κριτήριο
ObservableCollection.filtered
> Επιστρέφει µια φιλτραρισµένη λίστα βάσει ενός κριτηρίου
27
30. Αντιστοίχηση Ροών
Εφαρµόζει µια συνάρτηση αντιστοίχισης σε κάθε στοιχείο:
> Function<? super T, ? extends R>
Αποτέλεσµα: Η λίστα έχει το ίδιο µέγεθος αλλά τα στοιχεία της µπορεί να
είναι διαφορετικά.
30
34. Επίπεδη Αντιστοίχιση (Flat Map)
Εφαρµόζει µια συνάρτηση αντιστοίχισης Ένα-προς-Πολλά (One-to-Many)
σε κάθε στοιχείο:
> Function<? super T, ? extends Stream<? extends R>>
Και στη συνέχεια µετατρέπει τις πολλαπλές ροές σε µία µόνο.
Αποτέλεσµα: Η λίστα µπορεί να µεγαλώσει και τα στοιχεία της µπορεί να
είναι διαφορετικά.
34
37. Μείωση (Reduce)
Μειώνει µια λίστα σε ένα µόνο στοιχείο δοθέντος:
> της αρχικής τιµής: T
> του συσσωρευτή: BinaryOperator<T>
Αποτέλεσµα: Λίστα του ίδιου τύπου, αλλά µε ένα µόνο στοιχείο.
37
38. Και η (προηγουµένως µικρή) αλεπού τους έφαγε
όλους!
Double mealSize = shepherd.getAnimals()
.stream()
.map(SpriteView::getScaleX)
.reduce(0.0, Double::sum);
setScaleX(getScaleX() + mealSize * .2);
setScaleY(getScaleY() + mealSize * .2);
shepherd.getAnimals().clear();
38
40. Η Μαρία είχε ένα µικρό έργο λ
> Έργο Ανοικτού Κώδικα για να δείξει τα χαρακτηριστικά του
συναρτησιακού λ-προγραµµατισµού
> Εικονική αναπαράσταση ροών (streams), φίλτρων (filters) και
αντιστοιχίσεων (maps)
40
https://github.com/steveonjava/MaryHadALittleLambda
41. Τι άλλο µπορείτε να κάνετε…
> Αλλαγές στο MaryHadALittleLambda:
l Αλλάξτε τον αριθµό των προβάτων
l Δηµιουργήστε το ουράνιο τόξο µε διαφορετικά χρώµατα
l Αλλάξτε το µέγεθος της αλεπούς να είναι πιο παχιά/αδύνατη
l Προσθέστε νέα γραφικά (νέα αρχεία εικόνων στο φάκελο
images/extra)
41
camel.png lion.png greendragon.png cow.png brownbear.png
42. Αλλάζοντας τον κώδικα
Τρέξτε τον επεξεργαστή κειµένου nano:
> nano src/sample/MapObject.java
Αποθηκεύστε τις αλλαγές σας:
> Control-O Enter
Κλείστε τον nano:
> Control-X
Μεταγγλωτίστε/Εκτελέστε:
> ant
44. Δήλωση Ασφαλούς Λιµανιού
Η παρουσίαση αυτή έχει σκοπό να περιγράψει τη γενική
κατεύθυνση των προϊόντων µας. Προορίζεται µόνο για
ενηµερωτικούς σκοπούς και δεν µπορεί να ενσωµατωθεί σε
οποιαδήποτε σύµβαση. Δεν υπάρχει δέσµευση παράδοσης
οποιουδήποτε υλικού, κώδικα ή λειτουργικότητας και δεν θα
πρέπει να γίνεται επίκληση για τη λήψη αποφάσεων αγοράς.
Η ανάπτυξη, έκδοση, και χρονοδιάγραµµα των οποιονδήποτε
χαρακτηριστικών ή λειτουργιών που περιγράφονται για τα
προϊόντα της Oracle παραµένει στη διακριτική ευχέρεια της
Oracle.