Τετάρτη, 13 Απριλίου 2016

WordPress: Πως να βάλουμε plugins στο template μας


Πολλές φορές όταν φτιάχνουμε κάποιο template από την αρχή, για κάποιο cms, χρειαζόμαστε κάποιο plugin το οποίο θα θέλαμε να φορτώσει, αν δεν είναι ήδη active, μαζί με το template που φτιάχνουμε.
Παρακάτω λοιπόν γράφω πως μπορούμε να κάνουμε κάτι τέτοιο σε wordpress.

Το παράδειγμα που θα χρησιμοποιήσω θα χρησιμοποιήσω το plugin Add category to pages με το οποίο μας δίνεται η δυνατότητα να δώσουμε κατηγορία σε pages του template με την προοπτική να μπορούμε να φορτώσουμε επιλεκτικά τα pages που θέλουμε σε κάποιο σημείο του Template.

Το πρώτο πράγμα που πρέπει να κάνουμε φυσικά είναι να κάνουμε unzip τα αρχεία του plugin μέσα στο φάκελο του template που δημιουργούμε. Αφού το κάνουμε αυτό θα πρέπει να δηλώσουμε στο wordpress πως κάθε φορά που φορτώνεις αυτό το template θα φορτώνεις μαζί και το συγκεκριμένο plugin ΜΟΝΟ αν δεν είναι ήδη active. Οπότε, ελέγχουμε τον κώδικα του plugin για να δούμε αν φορτώνει κάποια κλάση ή κάποια function που θα μπορούμε να ελέγξουμε αν είναι τρέχει και πάμε στο μαγικό αρχείο του wordpress που ακούει στο όνομα functions.php και γράφουμε τα παρακάτω:

function start_plugin() { 
   if (!function_exists('category_and_tag_archives'){
         include_once(TEMPLATEPATH.'/plugins/add-category-to-pages/add-category-to-page.php');
      }
}

add_action('after_setup_theme', 'start_plugin');


Και είναι έτοιμο. Τώρα κάθε φορά που φορτώνουμε το template αυτό φορτώνουμε και το plugin που χρειαζόμαστε.

Πέμπτη, 7 Απριλίου 2016

Οι Ασιάτες Supermen


Τον Superman τον ξέρουμε όλοι μας. Από τη γιαγιά που περιμένει με ανυπομονησία την σύνταξη της μέχρι το πεντάχρονο που μόλις είδε τη ταινία Superman v Batman. Είναι το αρχέτυπο του υπερήρωα. Δυνατός, ανίκητος και πάντα κάνει αυτό που η κοινή γνώμη θεωρεί "καλό". Ειδικά μετά τη πρώτη ταινία το 1978 o Superman έγινε...υπερδιάσημος. Και όπως κάθε τι που γίνεται ιδιαιτέρα γνωστό και αγαπητό στο κοινό έγιναν πολλές απόπειρες να αντιγραφεί. Ειδικά από τις ασιατικές χώρες. Έτσι λοιπόν έχουμε τους Ινδούς Supermen και Τούρκους Superman. Για να τους δούμε:

Τετάρτη, 6 Απριλίου 2016

Γραμματοσειρές Google - Πως τις χρησιμοποιούμε


Η Google έχει μια σειρά φοβερών εργαλείων για τους web developers ώστε να τους βοηθήσει να χτίζουν ομορφότερες και πιο αποδοτικές ιστοσελίδες. Ένα από αυτά τα εργαλεία είναι και τα Google Fonts για τα οποία θα μάθουμε πως να τα χρησιμοποιούμε.

Το πρώτο βήμα για να επιλέξουμε τις γραμματοσειρές που ταιριάζουν περισσότερο στο project μας είναι φυσικά να δούμε όλες τις επιλογές που μας δίνει η google. Αρκεί λοιπόν να επισκεφθούμε την ιστοσελίδα https://www.google.com/fonts και να κάνουμε την επιλογή μας.

Αφού λοιπόν κάνουμε την επιλογή της κατάλληλης γραμματοσειράς τότε κάνουμε click στην επιλογή Quick-use όπως φαίνεται στην παρακάτω εικόνα.


Η επιλογή αυτή θα μας οδηγήσει στην επόμενη σελίδα που θα πρέπει να επιλέξουμε τι ακριβώς χρειαζόμαστε από τη γραμματοσειρά αυτή (κόκκινο τετράγωνο 1). Αν για παράδειγμα δεν θα χρησιμοποιήσουμε καθόλου τα bold της γραμματοσειράς δεν τα επιλέγουμε ή αν θα μας χρειαστούν τα italics τα επιλέγουμε. Καλό είναι η επιλογές μας να είναι ακριβής σε σχέση με το τι θέλουμε να κάνουμε αφού όσο περισσότερες επιλογές κάνουμε τόσο περισσότερο θα καθυστερεί η σελίδα να φορτώσει. Δεξιά στη σελίδα αυτή βλέπουμε και το ανάλογο μέτρο που μας ενημερώνει πόσο βαρύτερη γίνεται η γραμματοσειρά μας (κόκκινο τετράγωνο 2).


Και τώρα φτάνουμε στο τελικό στάδιο. Στην ίδια σελίδα, λίγο ποιο κάτω η google μας δίνει τρεις επιλογές για να φορτώσουμε τη γραμματοσειρά της στη σελίδα μας. Ο πρώτος τρόπος είναι απλά ένα link που βάζει κάποιος στη σελίδα του σαν να φόρτωνε ένα οποιοδήποτε css αρχείο. Ο δεύτερος τρόπος (κόκκινο τετράγωνο 4) είναι μια γραμμή κώδικα που πρέπει να αντιγράψουμε στο style.css της σελίδας μας και ο τρίτος είναι ένα javascript. Προσωπικά προτιμώ τον δεύτερο τρόπο όμως μια απλή αντιγραφή δεν αρκεί.



 Θα πρέπει αμέσως μετά την γραμμή κώδικα που μας δίνει η google να ενημερώσουμε το css μας πως, αν για παράδειγμα θέλουμε να έχει όλο το site μας την ίδια γραμματοσειρά:

body{ font-family: 'Open Sans', sans-serif; }

Με αυτό το τρόπο ορίζουμε τη γραμματοσειρά μας ως βασική και στην περίπτωση που δεν μπορεσει να τη φορτώσει κάνει fallback σε sans-serif.

Έχουμε πλέον όμορφες γραμματοσειρές με ελάχιστο κόπο.

Δευτέρα, 4 Απριλίου 2016

Τρομακτικές Ιστορίες


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

Την περίοδο εκείνη που εγώ "έψαχνα τον εαυτό μου" είχε έρθει στο σχολείο μια νέα μαθήτρια. Από την πρώτη ματιά που της έριχνε κάποιος μπορούσε να αντιληφθεί πως δεν ήταν και το πιο φυσιολογικό παιδί. Φορούσε πάντα μαύρα δερμάτινα κολάν και μαύρες μπλούζες που συχνά είχαν απεικόνισης κάποιου δαίμονα. Τα κοντά μαλλιά της ήταν κατάμαυρα επίσης και πάντα φορούσε μαύρες σκιές κάτω από τα μάτια. Κάποιοι την φώναζαν κοροϊδευτικά "κοράκι" εξαιτίας της εμμονής της με το μαύρο χρώμα. Όχι όμως πως είχε και μεγάλη σημασία η γνώμη των άλλων αφού δεν μιλούσε ποτέ σε κανέναν. Ούτε καν στους καθηγητές όταν τη ρωτούσαν σχετικά με το μάθημα. Ποτέ δεν είχε ακούσει κανείς τη φωνή της. Στα διαλείμματα διάβαζε κάτι χοντρά βιβλία με τίτλους όπως η "Η μαύρη μαγεία στην αρχαιότητα", "Πως να βρείτε το σκοτάδι μέσα στο φως" και "Οι μάγισσες του 18ου αιώνα".

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

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

Ένα βράδυ, ενώ γύριζα από το φροντιστήριο και ήμουν, όπως συνήθως, χαμένος στις δικές μου σκέψεις σταμάτησε μπροστά μου μια μηχανή από αυτές που αρκετοί μαθητές χρησιμοποιούσαν για να μετακινούνται στις διάφορες εξωσχολικές δραστηριότητες. Ο αναβάτης φορούσε μαύρα όμως από τη φιγούρα κατάφερα να καταλάβω πως ήταν κάποια κοπέλα. Φορούσε ένα μαύρο γυαλιστερό κράνος με μαύρο τζάμι που δεν άφηνε να δουν το πρόσωπο του αναβάτη. Με γρήγορες κινήσεις έβγαλε το κράνος της και αποκαλύφθηκε το πρόσωπο της. Ήταν αυτή, το "κοράκι". Είχα χάσει τα λόγια μου. Δεν ήξερα πως έπρεπε να αντιδράσω ή αν έπρεπε να αντιδράσω. Κάρφωσε το βλέμμα της πάνω μου για λίγα δευτερόλεπτα και μετά μου είπε:

- Με γουστάρεις;

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

- Θες να σου δείξω κάτι που θα σε αφήσει με το στόμα ανοιχτό, μου ξαναείπε.

Εγώ έγνεψα θετικά με το κεφάλι μου και εκείνη μου έκανε νόημα να ανέβω στη μηχανή της. Μετά από μισή ώρα περίπου είχαμε φτάσει σε ένα παλιό απομονωμένο κτίριο που οι αστικοί θρύλοι της περιοχής το ήθελαν στοιχειωμένο. Είχα ακούσει πολλές φορές την ιστορία και παρά το ότι δεν πίστευα σε αυτά πάντα με έπιανε ρίγη στη σκέψη αυτού του κτιρίου. Ήταν ένα παλιό διώροφο που πριν 20 χρόνια ένας πατέρας είχε σκοτώσει το παιδί και τη γυναίκα του. Όταν η αστυνομία τον συνέλαβε είχε πει πως δεν θυμόταν τίποτα από τις δολοφονίες. Μετά από λίγες μέρες τον είχαν βρει οι αστυνομικοί μέσα στο κελί του κρεμασμένο. Το κτίριο μετά από αυτό το περιστατικό δεν θέλησε ποτέ κανείς να το αγοράσει και να το αξιοποιήσει οπότε είχε μείνει για να θυμίζει την απίστευτη ιστορία που είχε συγκλονίσει τη μικρή μου πόλη.

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

- Θα μπεις; 

- Ναι, είπα και πέρασα κι εγώ τη κατεστραμμένη πόρτα.

Το κοράκι, αφού μπήκαμε, έβγαλε από το σακίδιο της ένα σακουλάκι με μια κόκκινη σκόνη άρχισε να σχηματίζει με αυτή στο βρώμικο έδαφος ένα σχέδιο. Ήταν ένα γνωστό σχέδιο από πέντε τρίγωνα με τέτοιο τρόπο συνδυασμένα που έφτιαχναν αυτό που ονομάζουν πεντάλφα. Στη συνέχεια έβγαλε από το σακίδιο της πέντε κόκκινα κεριά, έναν αναπτήρα και ένα πακέτο τσιγάρα. Άφησε τα κεριά στα πόδια και άναψε το τσιγάρο.

- Θέλω να κάνουμε έρωτα, μου είπε.

- Κι εγώ, της είπα και δεν ξαναμιλήσαμε μέχρι που τελείωσε το τσιγάρο της.

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

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

Έβγαλα βιαστικά τα ρούχα μου και ξάπλωσα μαζί της. Άρχισε να με φιλάει. Δεν είχα νιώσει ποτέ το ερωτικό φιλί μιας γυναίκας και ήταν ένα πρωτόγνωρο και συνάμα υπέροχο συναίσθημα. Με τα χέρια μου προσπάθησα να χαϊδέψω κάθε σημείο του κορμιού της. Βασιζόμενος στο ερωτικό ζωώδες ένστικτο μπήκα μέσα της και άρχισα να πάλλομαι ρυθμικά ώσπου ψέλλισε κάτι στο αυτί μου σε μια γλώσσα που δεν είχα ξανακούσει.

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

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

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

- Είναι η σειρά του να γευτεί το παρθένο κορμί μου, είπε το κοράκι και χωρίς να το καταλάβω βρέθηκα στο σημείο που είχα αφήσει τα ρούχα μου. Προσπάθησα βιαστικά να κρύψω τη γύμνια μου ενώ η μορφή που είχε παρουσιαστεί από το πουθενά πήρε τη θέση μου και άρχισε να κάνει έρωτα με το κοράκι.

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

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






Παρασκευή, 1 Απριλίου 2016

SNES code Injection - Κώδικας με το χέρι


Κάποτε, οι πρώτοι χάκερς, χρησιμοποιούσαν το τηλέφωνο και τις τηλεφωνικές υπηρεσίες με διάφορους τρόπους. Είχαν ανακαλύψει μεθόδους να κάνουν κλήσεις με χρήση σφυρίχτρας, χωρίς καν να ακουμπούν το αριθμητικό πληκτρολόγιο, να κάνουν κλήσεις με άλλες αυτοσχέδιες μηχανές κ.λ.π. Όποιος έχει δοκιμάσει κάτι τέτοιο θα ξέρει πόσο δύσκολο είναι να καλέσεις ακόμα κει τριψήφιο νούμερο "παίζοντας" με το hook της συσκευής του.

Η λογική αυτή των πρωτόγονων εκείνων χάκερ έχει πάει σε άλλο επίπεδο το 2016. Μπορούν πλέον να κάνουν injection κώδικα assebly σε προγράμματα χωρίς να μεταφέρουν δεδομένα μέσω υπολογιστή. Κάτι τέτοιο έκανε και ο χάκερ του video που κατάφερε με χρήση bugs του παιχνιδιού Super Mario World να περάσει με το χέρι όλες τις εντολές για να μπορέσει να παίξει Flappy Bird στο Super Nintendo. 

Για να γίνει πιο απλή η εισαγωγή των κώδικα, παραμετροποιήθηκε ο κώδικας έτσι ώστε να καταλαμβάνει το μικρότερο δυνατό μέγεθος δηλαδή 331 bytes. Αυτό σημαίνει 331 εισαγωγές κώδικα με το χέρι. Πραγματικά φοβερό κατόρθωμα τόσο στη σύλληψη του όσο και στη δεξιότητα εκτέλεσης του.

Η είδηση αυτή είναι τόσο αληθινή όσο θα μπορούσε να είναι μια είδηση πριν τριών ημερών. Οπότε δεν πέφτει στη κατηγορία πρωταπριλιάτικου αστείου. Είναι αληθινή.