Monday, December 31, 2012

Ανακοίνωση Κυκλοφορίας: FreeBSD 9.1-RELEASE


Στις 30/12/2012, το FreeBSD Project ανακοίνωσε επίσημα την κυκλοφορία της έκδοσης 9.1-RELEASE. Το 9.1-RELEASE έρχεται να βελτιώσει με διορθώσεις και νέα χαρακτηριστικά το πολύ καλό 9.0-RELEASE. Mπορείτε να δείτε τα νέα χαρακτηριστικά του στη σχετική ανακοίνωση:

FreeBSD 9.1 Release Announcement

Μπορείτε να κατεβάσετε οποιαδήποτε διαθέσιμη έκδοση του FreeBSD από κάποιο από τα πολλά mirror sites. To 9.1-RELEASE έχει ήδη εμφανιστεί στους FTP servers μεγάλων ελληνικών ISPs.

Διαβάστε άρθρα σχετικά με το λειτουργικό ή κατεβάστε έτοιμο VirtualBox image με xfce desktop από το site του περιοδικού deltaHacker.

Τέλος, μην παραλείψετε να επισκεφθείτε την Δικτυακή Τοποθεσία της Ελληνικής Κοινότητας FreeBSD

Kαλή εγκατάσταση!

Friday, December 28, 2012

DHCP και Dynamic DNS Updates

Σε παλιότερο μας άρθρο είχαμε συζητήσει τη δημιουργία ενός DHCP server για την απόδοση διευθύνσεων και ρυθμίσεων δικτύου στα client μηχανήματα του δικτύου μας. Σε άλλο μας άρθρο είχαμε συζητήσει τη δημιουργία ενός DNS Server κατάλληλο για σχολικά εργαστήρια - αλλά γιατί όχι και για το οικιακό ή εταιρικό σας δίκτυο. Μάλιστα του είχαμε φτιάξει και μια ωραία... μαύρη τρύπα για να κόψουμε κάποιες διευθύνσεις.

Αν τώρα καταφέρουμε τον DHCP server μας να ενημερώνει το DNS κάθε φορά που αποδίδει μια νέα διεύθυνση (δημιουργεί / τροποποιεί ένα lease) θα έχουμε πετύχει το τέλειο. Πάμε να δούμε πως!

Το Σενάριο

Σε ένα δίκτυο έχετε ένα FreeBSD server με υπηρεσίες DHCP & DNS. Τα client μηχανήματα παίρνουν δυναμικές διευθύνσεις (και λοιπές ρυθμίσεις δικτύου) από τον DHCP server. Θέλετε να μπορείτε ανά πάσα στιγμή να έχετε πρόσβαση στα μηχανήματα αυτά από οποιοδήποτε άλλο μηχάνημα χρησιμοποιώντας το όνομα τους και όχι το IP τους - που έτσι και αλλιώς δεν ξέρετε.

Παράδειγμα: Το μηχάνημα workstation01.lab1.local πήρε χθες δυναμική IP 192.168.0.33. Μια βδομάδα μετά, πήρε την 192.168.0.24. Οι διευθύνσεις είναι αδιάφορες: Θέλουμε να μπορούμε να αναφερθούμε σε αυτό γράφοντας κάτι σαν:

# ping workstation01.lab1.local

Είναι φανερό, ότι ο DHCP server θα πρέπει να ενημερώνει τον DNS: Να δημιουργεί εγγραφές για νέα μηχανήματα της ζώνης αλλά και να ανανεώνει υπάρχουσες. Καλώς ήλθατε στα dynamic DNS updates! Για το παράδειγμα μας θα υποθέσουμε οτι ο DNS/DHCP server εκτελούνται στο ίδιο μηχάνημα με IP 192.168.0.1

Γενικές γνώσεις

Αν ψάξετε λίγο το αρχείο σας /etc/named.conf, θα βρείτε κάτι σαν το παρακάτω για τις ζώνες σας:

zone "lab1.local" {
        type master;
        file "/etc/namedb/master/lab1.local.db";
};

zone "0.168.192.in-addr.arpa" {
       type master;
       file "/etc/namedb/master/0.168.192.in-addr.arpa";
};

Παρατηρήστε ότι τα αρχεία αυτά βρίσκονται στον υποκατάλογο master στον οποίο ο χρήστης bind (με τα δικαιώματα του οποίου εκτελείται ο DNS server στο FreeBSD) δεν έχει δικαιώματα εγγραφής. Άρα ακόμα και αν στείλετε με κάποιο τρόπο μήνυμα "update" στον server, δεν θα μπορέσει να γράψει κάτι σε αυτό τον κατάλογο.

Μη βιαστείτε να αλλάξετε τα δικαιώματα: Αν αλλάξετε το χρήστη/group του καταλόγου σε bind:wheel, το bind θα τα αλλάξει ξανά στην επόμενη εκκίνηση της υπηρεσίας και θα δείτε και το παρακάτω μήνυμα:

Stopping named.
Waiting for PIDS: 6707.
etc/namedb/master changed
 user expected 0 found 53 modified
Starting named.

Το οποίο σε απλά ελληνικά σημαίνει: "μη πειράζετε τα δικαιώματα σε αυτό τον κατάλογο!". Και τι πρέπει να κάνουμε; Μα πολύ απλά. Θα μεταφέρετε τα αρχεία στον κατάλογο dynamic. Γιατί εκεί θα γίνονται οι δυναμικές ανανεώσεις και o bind έχει την κατάλληλη πρόσβαση.

# service named stop
# cd /etc/namedb/master
# mv lab1.local.db   ../dynamic
# mv 0.168.192.in-addr.arpa   ../dynamic

Και πριν επανεκκίνησετε, φυσικά θα αλλάξετε και τις καταχωρίσεις ώστε να δείχνουν στον κατάλογο dynamic:

zone "lab1.local" {
        type master;
        file "/etc/namedb/dynamic/lab1.local.db";
};

zone "0.168.192.in-addr.arpa" {
       type master;
       file "/etc/namedb/dynamic/0.168.192.in-addr.arpa";
};

Μπορείτε τώρα να επανεκκινήσετε την υπηρεσία όση ώρα θα ψάχνετε πως γίνεται το dynamic DNS update από τον DHCP server. Όχι τίποτα, άλλο μη γκρινιάζουν και οι χρήστες που δεν θα έχουν δίκτυο στο μεταξύ :)

# service named start

Δημιουργία... μυστικών

Για να γίνεται το DNS update, θα πρέπει ο DHCP server να στέλνει το κατάλληλο μήνυμα στον DNS κάθε φορά που απαιτείται να δημιουργηθεί ή να τροποποιηθεί μια εγγραφή. Όμως δεν μπορούμε να αφήσουμε τον DNS να δέχεται updates από παντού. Οι εποχές είναι πονηρές! Πρέπει να δημιουργήσουμε ένα μυστικό κλειδί που θα γνωρίζουν ο DNS και ο DHCP για να συννενοούνται:

# dnssec-keygen -a hmac-md5 -b 128 -n USER dhcpupdatekey
Kdhcpupdatekey.+157+10817

Δείτε το περιεχόμενο του αρχείου με κατάληξη .key που δημιουργήθηκε:

# more Kdhcpupdatekey.+157+10817.key 
dhcpupdatekey. IN KEY 0 3 157 dw5akl5zJw8Rc/8za61TLA==

Το κλειδί που θέλετε είναι αυτό το τελευταίο πεδίο:

dw5akl5zJw8Rc/8za61TLA==

Τροποποιήστε το /etc/named.conf όπως φαίνεται παρακάτω:

key "dhcpupdatekey" {
  algorithm hmac-md5;
  secret "dw5akl5zJw8Rc/8za61TLA==";
};

zone "lab1.local" {
        type master;
        file "/etc/namedb/dynamic/lab1.local.db";
        allow-update { key "dhcpupdatekey"; };
};

zone "0.168.192.in-addr.arpa" {
       type master;
       file "/etc/namedb/dynamic/0.168.192.in-addr.arpa";
       allow-update { key "dhcpupdatekey"; };
};

Κάντε restart το bind και για να πείσετε τον εαυτό σας ότι το dynamic update λειτουργεί, δοκιμάστε να του στείλετε ένα update χειροκίνητα. Επιλέξτε μια διεύθυνση που γνωρίζετε και περάστε την:

# service named restart
# nsupdate
> server 192.168.0.1
> key dhcpupdatekey dw5akl5zJw8Rc/8za61TLA==
> zone lab1.local
> update add workstation01.lab1.local. 600 IN A 192.168.0.24
> send
> quit

Δεν θα πρέπει να δείτε κανένα μήνυμα μετά το send. Μπορείτε να επιβεβαιώσετε την εγγραφή τρέχοντας την nslookup:

# nslookup
> workstation01.lab1.local

Server:  192.168.0.1
Address: 192.168.0.1#53

Name:  workstation01.lab1.local
Address: 192.168.0.24
> exit

Αφού λειτουργεί, δεν μένει παρά να βάλουμε τον DHCP να κάνει τη δουλειά που κάναμε εμείς χειροκίνητα! Πάμε λοιπόν να επεξεργαστούμε το /usr/local/etc/dhcpd.conf

Αλλαγή του dhcpd.conf

Και εδώ πρόκειται για πολύ απλές και αναμενόμενες αλλαγές. Προσθέτουμε το ίδιο μυστικό κλειδί (προσέξτε εδώ χωρίς εισαγωγικά!):

key dhcpupdatekey {
  algorithm hmac-md5;
  secret dw5akl5zJw8Rc/8za61TLA==;
}

Προσθέτουμε τη γραμμή που ενημερώνει το DHCP server ότι θα κάνει πλέον dynamic dns updates:

ddns-update-style interim;

Και τέλος τα στοιχεία για τις ζώνες που θα ενημερώνονται:

zone lab1.local. {
  primary 192.168.0.1;
  key dhcpupdatekey;
}

zone 0.168.192.in-addr.arpa. {
  primary 192.168.0.1;
  key dhcpupdatekey;
}

Κάντε και μια επανεκκίνηση το DHCP σας και είμαστε έτοιμοι:

# service isc-dhcpd restart

Μπορείτε να διαβάσετε και αυτό το σχετικό άρθρο με το οποίο ξεκινήσαμε και εμείς τις αναζητήσεις μας.

Ελπίζουμε να περάσετε ένα ευχάριστο χειμωνιάτικο απόγευμα. Καλές γιορτές!

Saturday, September 1, 2012

Παιχνίδια σε Python & Pygame - Το Βιβλίο

Η ιδέα για αυτό το βιβλίο ξεκίνησε κοντά στις γιορτές Χριστουγέννων του 2011. Είχα αναλάβει το μάθημα "Εφαρμογές Πολυμέσων" της Γ' τάξης των ΕΠΑΛ και ήθελα να κάνω κάτι αρκετά διαφορετικό από τα καθιερωμένα. Τι νόημα έχει ένα τέτοιο μάθημα αν δεν φτιάξεις πραγματικά μια πολυμεσική εφαρμογή; Και τι καλύτερο από ένα παιχνίδι - κίνηση, γραφικά, ήχος, συνδυάζει όλα τα στοιχεία πολυμέσων.

Μετά τα πρώτα μαθήματα - όπου πάντα διδάσκουμε στοιχεία πολυμέσων, είδη αρχείων εικόνας, ήχου κλπ - μεσολαβούσαν οι διακοπές των Χριστουγέννων. Σκέφτηκα ότι θα ήταν μια ευκαιρία να γράψω μια σειρά μαθημάτων για δημιουργία παιχνιδιών σε Python & Pygame και να αρχίσω να τη χρησιμοποιώ αμέσως μετά τις γιορτές.

Καθώς επεξεργαζόμουν την ιδέα, ο Χρήστος Βαρελάς, εκδότης του deltaHacker αναζητούσε ιδέες για νέα άρθρα. Συμφωνήσαμε λοιπόν να γίνει το Python Game Programming μια σειρά άρθρων στο περιοδικό (αλλά και στο site του περιοδικού) και να κυκλοφορήσει σε free ebook με την ολοκλήρωση της.

Η σειρά πράγματι ξεκίνησε στο τεύχος Φλεβάρη 2012 και ολοκληρώθηκε στο τεύχος Αυγούστου 2012. Ταυτόχρονα γίνονταν και η μεταφορά της στο XeLaTeX για τη δημιουργία του βιβλίου. Να συμπληρώσω εδώ ότι η εργασία παρουσιάστηκε και στην Έκθεση Μαθητικής Δημιουργίας στα Χανιά όπου και είχε μεγάλη απήχηση!

Για την υποστήριξη του βιβλίου και τη διανομή των προγραμμάτων και των αρχείων υποστήριξης έχει δημιουργηθεί ο ιστότοπος pygamegr.wordpress.com. Για τους βιαστικούς δίνουμε παρακάτω απευθείας τους πιο βασικούς συνδέσμους:

Στο βιβλίο παρέχονται επίσης και άλλα μικρότερα προγράμματα και παραλλαγές των παραπάνω και είναι κατάλληλο για (αυτο)διδασκαλία τόσο μαθητών όσο και ενηλίκων στον προγραμματισμό με ευχάριστο τρόπο!

Εύχομαι να το διασκεδάσετε διαβάζοντας το, όσο το διασκέδασα γράφοντας το. Και φυσικά να το χρησιμοποιήσετε αντί για κάποιο βαρετό εγχειρίδιο εκμάθησης προγραμματισμού. Τα σχολεία μας είναι ήδη γεμάτα από τέτοια!

Saturday, August 18, 2012

Python Game Programming

Pygame Invaders

Με την ολοκλήρωση της σειράς Python Game Programming στο περιοδικό deltaHacker μπορείτε πλέον να κατεβάσετε στη πλήρη του μορφή και το τελευταίο παιχνίδι που δημιουργήσαμε για τη σειρά, γνωστό ως Pygame Invaders.


Σκοπός βέβαια δεν είναι μόνο να παίξετε τα έτοιμα παιχνίδια, αλλά να δοκιμάσετε να τα διορθώσετε, να τα επεκτείνετε και φυσικά να δημιουργήσετε δικά σας. Από την 1η Σεπτέμβρη θα μπορείτε επίσης να κατεβάσετε σε ελεύθερο PDF το αντίστοιχο βιβλίο:

Παιχνίδια σε Python και Pygame

το οποίο με διασκεδαστικό τρόπο διδάσκει βασικές αρχές στην Python και στο Pygame μέσα από σειρά απλών και πιο σύνθετων παιχνιδιών, με τελικό φυσικά παιχνίδι το Pygame Invaders.

Εννοείται φυσικά ότι τα παιχνίδια τρέχουν σε οποιοδήποτε λειτουργικό, Windows, OSX, Linux, BSD αρκεί να έχετε Python 2.7 και Pygame εγκατεστημένα. Οδηγίες για τα περισσότερα λειτουργικά θα βρείτε στο pygame.org.

Καλή διασκέδαση και καλά ξενύχτια! (στον κώδικα πάντα).

Saturday, May 12, 2012

Εγκαταστήστε το FreeBSD 9.0 χωρίς το bsdinstall

Έχει περάσει κάποιο διάστημα από το FreeBSD 9.0-RELEASE και μάλλον ήρθε η
ώρα να δούμε πως μπορούμε να το εγκαταστήσουμε χωρίς την βοήθεια του
installer. Για όποιον έχει χάσει επεισόδια, το FreeBSD 9.0 έρχεται με τον
νέο installer, bsdinstall. Η αλήθεια είναι ότι δεν μας ξετρέλανε κιόλας όταν
τον είδαμε, αλλά δεν πειράζει: η λογική του ευχάριστου απογεύματος είναι να
δούμε πως θα τον παρακάμψουμε για να κάνουμε μια χειροκίνητη εγκατάσταση.


Η γενική ιδέα είναι εύκολη, θέλουμε όμως να εκμεταλλευτούμε και το νέο
σύστημα partitioning, το GPT. Βλέπετε, το bsdinstall το υποστηρίζει και δεν
θέλουμε η δική μας λύση να είναι κατώτερη. Αν μάθουμε να κάνουμε GPT
partitioning χειροκίνητα, θα μπορούμε επίσης να χρησιμοποιήσουμε την
λειτουργία LiveCD του FreeBSD 9.0 και με άλλους τρόπους (π.χ. να κάνουμε
partitioning και να ρίξουμε κάποιο έτοιμο dump που έχουμε χωρίς να κάνουμε
νέα εγκατάσταση).


Ο Warren Block, FreeBSD Doc committer, έχει γράψει ένα μικρό αλλά πολύ
κατατοπιστικό οδηγό για το GPT που ουσιαστικά περιγράφει ότι θέλουμε να
κάνουμε όσο αφορά το partitioning. Για να ξεκινήσουμε, χρησιμοποιήστε το
FreeBSD 9.0-RELEASE CD (ή DVD) για να εκκινήσετε το μηχάνημα σας.
Στο παράθυρο Welcome επιλέξτε LiveCD και κάντε login ως root.


Βήμα 1ο - Διαγράψτε τα πάντα και δημιουργήστε GPT Scheme


Προσοχή: Σε αυτό το σημείο θα διαγράψουμε όλα τα περιεχόμενα του δίσκου!
Υποθέτουμε ότι ο δίσκος μας είναι ο ada0 αλλά μπορείτε να διαπιστώσετε στο
δικό σας μηχάνημα με ένα ls /dev/ad*


# gpart destroy -F ada0

ada0 destroyed

# gpart create -s gpt ada0

ada0 created


Βήμα 2ο: Δημιουργία freebsd-boot partition και εγκατάσταση GPT bootcode


Το boot partition θα κρατήσει το loader. Το φτιάχνουμε σε μέγεθος 128Κ το
οποίο μάλιστα περισσεύει - αλλά αν αργότερα κάνουμε ZFS boot θα μας
χρειαστεί.


# gpart add -t freebsd-boot -l gpboot -s 128K ada0

ada0p1 added

# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0

bootcode written to ada0


Βήμα 3ο: Δημιουργία UFS filesystem για το root partition


Δημιουργούμε το partition για το /. Ξεκινάει στο 1Μ boundary για να έχουμε
σωστή ευθυγράμμιση τομέων σε δίσκους με μέγεθος τομέα 4Κ. Εφ'όσον όλα τα
μεγέθη partition που θα ακολουθήσουν θα είναι σε ζυγό μέγεθος, η ευθυγράμμιση
θα παραμείνει σωστή. Στο παράδειγμα μας, θα βάλουμε 8Gb root filesystem.
Παρατηρήστε ότι δίνουμε και ετικέτες (labels) στα partitions. Οι ετικέτες
αυτές θα εμφανίζονται στο /dev/gpt και μας επιτρέπουν να προσαρτήσουμε το
σύστημα αρχείων χωρίς να αναφερθούμε στη συσκευή δίσκου.


# gpart add -t freebsd-ufs -l gproot -b 1M -s 8G ada0

ada0p2 added


Μπορούμε να το διαμορφώσουμε και άμεσα, χρησιμοποιώντας μάλιστα και το νέο
soft updates journaling:


# newfs -j /dev/gpt/gproot

...αριθμοί sectors που μόνο ο McKusick καταλαβαίνει...
newfs: soft updates journaling set


Βήμα 4ο: Δημιουργία filesystem για το home partition


Είναι προφανώς καλή ιδέα να φτιάξουμε ένα χωριστό partition για τα δεδομένα
των χρηστών. Θα βάλουμε εδώ άλλα 8G σαν παράδειγμα.


# gpart add -t freebsd-ufs -l gphome -s 8G ada0

ada0p3 added

# newfs -j /dev/gpt/gphome
...
newfs: soft updates journaling set


Βήμα 5ο: Δημιουργία swap partition


Το τελευταίο μας partition και εδώ θα χρησιμοποιήσουμε απλώς ότι χώρο έχει
απομείνει (υποτίθεται είχαμε υπολογίσει από πριν με βάση τα υπόλοιπα
partitions το χώρο που μένει για το swap). Όταν δεν δώσουμε συγκεκριμένο
χώρο στην εντολή, χρησιμοποιείται όλος ο υπόλοιπος διαθέσιμος χώρος.


# gpart add -t freebsd-swap -l gpswap ada0

ada0p4 added


Βήμα 6ο: Προσάρτηση του νέου root filesystem και αποσυμπίεση αρχείων


Μπορούμε τώρα να προσαρτήσουμε το νέο σύστημα αρχείων root σε ένα προσωρινό
χώρο και να αποσυμπιέσουμε τα αρχεία εγκατάστασης από το CD. Τα ελάχιστα που
χρειαζόμαστε είναι τα kernel.txz και base.txz:


# mount /dev/gpt/gproot /media
# cd /media
# xz -dc /usr/freebsd-dist/kernel.txz | tar xvpf -
# xz -dc /usr/freebsd-dist/base.txz | tar xvpf -


Προαιρετικά, μπορείτε να κάνετε το ίδιο και για τα games.txz, doc.txz, src.txz και ports.txz.


Βήμα 7ο: Δημιουργία του fstab


Θα χρειαστεί να φτιάξουμε ενα fstab για το νέο σύστημα ώστε να γίνει δυνατή
η εκκίνηση του. Αυτό όμως είναι αρκετά εύκολο γιατί έχουμε τα labels:


# cd /media/etc
# vi fstab


Γράψτε τα παρακάτω:


#Device         Mountpoint      FStype   Options  Dump Pass#
/dev/gpt/gproot /               ufs      rw       1    1
/dev/gpt/gphome /usr/home       ufs      rw       1    2
/dev/gpt/gpswap none            swap     sw       0    0

Θα προσαρτήσουμε το home στο παραδοσιακό /usr/home του FreeBSD, οπότε μην
παραλείψετε να δημιουργήσετε τον κατάλογο:


# mkdir -p /media/usr/home

Βήμα 8ο: Επανεκκίνηση και ολοκλήρωση


Αποπροσαρτήστε το σύστημα αρχείων και επανεκκινήστε:


# cd /
# umount /media
# shutdown -r now


Βγάλτε το CD και αφήστε το σύστημα σας να εκκινήσει κανονικά. Μετά την
επανεκκίνηση, κάντε login ως root και:


  • Δημιουργήστε root password γιατί είναι κενό!
  • Εκτελέστε ln -s /usr/home /home
  • Φτιάξτε κατάλληλο rc.conf (Εντάξει, αντιγράψτε το από την άλλη σας εγκατάσταση)
  • Προσθέστε χρήστες, λογισμικό και οτιδήποτε άλλο θα γεμίσει ευχάριστα το μουντό σας απόγευμα
  • Χορέψτε το χορό της νίκης που απαλλαγήκατε μια για πάντα από το bsdinstall!

Thursday, April 26, 2012

Python Game Programming

Η διδασκαλία μιας γλώσσας προγραμματισμού δεν χρειάζεται να είναι κάτι βαρετό και ούτε πρέπει να εξαντλείται σε προγράμματα κειμένου των περασμένων δεκαετιών. Αντίθετα η δημιουργία παιχνιδιών, ειδικά με γραφικά και κίνηση παρακινεί το ενδιαφέρον των μαθητών ώστε να δουν τον προγραμματισμό όπως πραγματικά είναι: Μια ενδιαφέρουσα και δημιουργική ασχολία.

Με βάση το παραπάνω και καθώς φέτος διδάσκω το μάθημα Εφαρμογές Πολυμέσων, σκέφτηκα ότι είναι πράγματι ευκαιρία να φτιάξουμε κάτι αληθινά ενδιαφέρον αντί για τις χαζές παρουσιάσεις σε Powerpoint ή (μη χειρότερα) Flash που κάνουν συνήθως σε αυτό το μάθημα. Αν σκεφτείτε μάλιστα ότι το εργαστήριο μου τρέχει FreeBSD, ένας λόγος παραπάνω :)

Ταυτόχρονα σκέφτηκα ότι θα ήταν ενδιαφέρον να δημοσιευτεί μια σειρά άρθρων προγραμματισμού για αρχαρίους που να βασίζεται στη δημιουργία παιχνιδιών - όπως δηλ. μάθαμε και εμείς προγραμματισμό πριν (πολλά) χρόνια στους οικιακούς μας υπολογιστές. Δυστυχώς στο μεταξύ η αμεσότητα των πρώτων αυτών υπολογιστών χάθηκε μέσα σε διάφορες γλώσσες προγραμματισμού, λειτουργικά, API, OpenGL, DirectX και δεν ξέρω και εγώ τι άλλο.  Η αρχική δυνατότητα να γράψεις ένα προγραμματάκι 20 γραμμές που να κινεί μια μπάλα ή ένα διαστημοπλοιάκι στην οθόνη και να δίνει τη χαρά της δημιουργίας φαίνεται ότι είχε περάσει ανεπιστρεπτί.

Ευτυχώς δεν είναι ακριβώς έτσι: Η python και η βιβλιοθήκη pygame δίνουν αυτή ακριβώς τη δυνατότητα προσαρμόσμενη στα σύγχρονα δεδομένα αλλά πάντα με αρκετή ευκολία ώστε ο αρχάριος να μην απογοητευτεί αλλά αντίθετα να κολλήσει στο αντικείμενο!  Η σειρά άρθρων για το pygame δημοσιεύεται στο περιοδικό deltaHacker.  Με την ολοκλήρωση της θα γίνει και η δημοσίευση των άρθρων σε μορφή βιβλίου που θα μπορείτε να κατεβάσετε και να χρησιμοποιήσετε στη διδασκαλία.

Για την ώρα μπορείτε να κατεβάσετε τα προγράμματα από το site που έχει δημιουργηθεί για την υποστήριξη του μαθήματος:


Μην παραλείψετε επίσης να επισκεφτείτε την ιστοσελίδα του περιοδικού deltaHacker όπου θα βρείτε και κάποια συμπληρωματικά - βοηθητικά άρθρα.

Το όλο εγχείρημα θα παρουσιάστει επίσης στις 11 Μαίου στην Έκθεση Μαθητικής Δημιουργίας Μαθητών Πληροφορικής που θα πραγματοποιηθεί στα Χανιά, στο Κέντρο Αρχιτεκτονικής Μεσογείου.

Tuesday, April 24, 2012

Το Υλικό του Υπολογιστή... με εικόνες!

Θέλετε να διδάξετε το υλικό του υπολογιστή με απλά λόγια; Έχετε ξεμείνει μήπως με κάποιο από τα αρχαιολογικά βιβλία "Συντήρηση Η/Υ" που δίνονται στα ΕΠΑΛ; Είναι δύσκολο να μιλάει κανείς για Windows... 98 το 2012. Για να μην πούμε ότι δεν είναι δυνατόν να διδάξετε συντήρηση λογισμικού (στο οποίο ουσιαστικά αναφέρεται το μάθημα) χωρίς να διδάξετε πρώτα το το υλικό του υπολογιστή. Καθώς το αντίστοιχο μάθημα καταργήθηκε μαζί με τα ΤΕΕ, αναγκαστικά η ύλη του συνδυάζεται με αυτή του μαθήματος της συντήρησης.
Σε κάθε περίπτωση όμως, αν θέλετε ένα οδηγό στα εσωτερικά του PC - και μάλιστα γραμμένο με ενδιαφέροντα και γλαφυρό τρόπο - κατεβάστε την πρώτη έκδοση του φυλλαδίου:

To Υλικό του Υπολογιστή με Εικόνες

Μελλοντικά το κείμενο θα εμπλουτιστεί με:

  • Πως λειτουργεί - Αρχές λειτουργίας των βασικών εξαρτημάτων του Η/Υ
  • Εγκατάσταση και Συντήρηση Λογισμικού

Το κείμενο διατίθεται φυσικά με άδεια Creative Commons και αν θέλετε να το τροποποιήσετε μπορείτε να το κατεβάσετε σε μορφή odt από εδώ.


Thursday, April 19, 2012

Τεχνικοί Ορισμοί

Γράψτε Σωστούς Τεχνικούς Ορισμούς!


Πολλές φορές παρατηρώ τους μαθητές μου να κατανοούν μια έννοια και να μην μπορούν να την εκφράσουν σωστά. Αν και οι λόγοι είναι πολλοί (δυστυχώς ένας από αυτούς είναι η κακή γνώση της γλώσσας) είναι γεγονός ότι πολλές φορές ζητάμε να μας περιγράψουν τεχνικές έννοιες χωρίς να έχουν διδαχθεί τα βασικά στοιχεία ενός καλού τεχνικού ορισμού. Στην πραγματικότητα είναι μια σχετικά απλή διαδικασία αν ακολουθήσουμε ορισμένα απλά βήματα και κατανοήσουμε τα διάφορα τμήματα ενός ορισμού.

Στο φυλλάδιο που μπορείτε να κατεβάσετε από τον παρακάτω σύνδεσμο θα βρείτε γενικές οδηγίες για τη συγγραφή τεχνικών ορισμών καθώς και μερικές ασκήσεις που μπορείτε να δοκιμάσετε ή να δώσετε σε μαθητές σας. Είναι σίγουρο ότι θα σας βοηθήσουν σε μαθήματα τα οποία έχουν ιδιαίτερο θεωρητικό περιεχόμενο (π.χ. Δίκτυα Υπολογιστών) και όπου πολλές φορές ζητούνται ορισμοί και σε επίπεδο Πανελλαδικών Εξετάσεων.


Γράφοντας Επιτυχημένους Τεχνικούς Ορισμούς