Ζαγοροχώρια - Κοιλάδα στην Αστράκα (29/05/2010)

Μια κοιλάδα στη διαδρομή από το καταφύγιο της Αστράκας προς Δρακόλιμνη.

Ζαγοροχώρια - Το όρος Τύμφη (29/05/2010)

Το όρος Τύμφη όπως φαίνεται κατά την ανάβαση από το Μικρό Πάπιγκο προς το καταφύγιο της Αστράκας

Κόνιτσα - Μονή Στομίου (19/06/2010)

Πανοραμική φωτογραφία των βουνών περιμετρικά της Μονής Στομίου

Migrating to CakePHP 1.3.0

Εδώ και λίγο καιρό έχει κυκλοφορήσει η καινούργια έκδοση του CakePHP 1.3.0.

Σε σχέση με τις προηγούμενες (1.2.x) υπάρχουν μια σειρά από διαφορές. Αναλυτικά περιγράφονται εδώ.

Cake και custom όνομα πίνακα Βάσης Δεδομένων

Και αυτό το θέμα έχει εν μέρει να κάνει με τον πληθυντικό και το CakePHP. Πάλι ο controller ονομάζεται Stuff και ο πίνακας με τα δεδομένα στη Βάση Δεδομένων δεν μπορεί να λέγεται Stuffs (όπως θα περίμενε το Cake με βάσει το naming convention του). Για να δηλώσεις custom όνομα πίνακα στη Βάση Δεδομένων πρέπει να δημιουργήσεις το Model (αν δεν το έχεις κάνει ήδη) στο αρχείο app/models/stuff.php

και μέσα να δηλώσεις

var $useTable = "stuff"

Πληθυντικός και cake

Πολλές φορές η αυτόματη μετατροπή ονομάτων του CakePHP σε πληθυντικό δεν δουλεύει σωστά. Για παράδειγμα, σε μια εφαρμογή που φτιάχνω, ένας controller με όνομα stuff. To CakePHP για πληθυντικό περιμένει το Stuffs που είναι λάθος.

Για να υποδείξεις στο CakePHP να μην το πειράξει όταν πάει να το μετατρέψει σε πληθυντικό πρέπει να δηλώσεις ένα Infliction.

Μέσα στο αρχείο /app/config/inflections.php

βάζεις

$uninflectedPlural = array('stuff');

 

ΠΡΟΣΟΧΗ: Το παραπάνω ισχύει για Cake 1.2.x! Από την έκδοση 1.3.0 αλλάζει ο τρόπος ορισμού των inflictions στο cakephp. (περισσότερα εδώ).

Archives tar.gz (tgz) και tar.bz2 - Δημιουργία και αποσυμπίεση

.tar.gz (.tgz)

Δημιουργία: tar cvzf archive.tar.gz dir01/ dir02/ ....

Αποσυμπίεση: tar xvzf archive.tar.gz

 

.tar.bz2

Δημιουργία: tar cvjf archive.tar.bz2 dir01/ dir02/ ....

Αποσυμπίεση: tar xvjf archive.tar.bz2

ΣΗΜΕΙΩΣΗ: Σε όλα τα παραπάνω commands το flag v σημαίνει verbose (δηλαδή εκτύπωση σχολίων) οπότε μπορεί να απαλειφθεί χωρίς πρόβλημα.

[via]

Πως ψάχνω το pid ενός process για να την τερματίσω;

Μέχρι σήμερα χρησιμοποιούσα το

ps -e | grep 'name'

σήμερα όμως δεν έβρισκα έτσι το process που έψαχνα με τον παραπάνω τρόπο (ήταν ένας tomcat application server). Βρήκα λοιπόν αυτή τη σελίδα που δίνει αυτή τη λύση

ps xu | grep 'name'

και για να γίνει ακόμη καλύτερο και να δώσει κατευθείαν το pid

ps xu | grep 'name' | awk '{print $2}'

και ακόμη καλύτερα για να τη "σκοτώσει" με τη μια

ps xu | grep 'name' | awk '{print $2}' | xargs kill -9

Δικαιώματα σε φακέλους (Windows) από την command line

Επειδή ορισμένα πράγματα γίνονται καλύτερα και γρηγορότερα από την command line, ένα μικρό tip για ορισμό δικαιωμάτων φακέλου σε M$ Windows (NTFS File System).

Η εντολή είναι η cacls η οποία υποστηρίζει μια σειρά από ορίσματα. Εγώ χρησιμοποίησα την παρακάτω εκδοχή της:

cacls <dir_name> /T /G <username>:<permission>

Όπου φυσικά <dir_name> το όνομα του φακέλου, <username> το όνομα χρήστη (ιδιαίτερα χρήσιμα για domains), <permission> το κατάλληλο flag για το κατάλληλο permission.

Σημειώσεις:

  1. Μετά το /G μπορεί να μπει μια σειρά ορισμάτων <username>:<permission> αντί για ένα μόνο.
  2. Για να εφαρμοστούν τα ίδια δικαιώματα αναδρομικά σε υποφακέλους και αρχεία (recursion) πρέπει να βάλουμε και τον /T
  3. Το παραπάνω σβήνει όλα τα υπάρχοντα δικαιώματα και αφήνει μόνο αυτά που ορίζουμε!! Αν θέλουμε απλά να διορθώσουμε την access list και όχι να την ξαναγράψουμε από την αρχή πρέπει να δώσουμε το /E (από το edit).

Περισσότερα από το help της cacls.

Άλλος ένα λόγος για Cake...

Υπάρχουν πραγματικά πάρα πολλοί λόγοι για να χρησιμοποιήσει κάποιος ένα application framework για να "γράψει" μια εφαρμογή.

Εγώ θα γράψω την δικιά μου εμπειρία. Πριν λίγο καιρό έφτιαξα, στα πλαίσια της δουλειάς μου, το site της Επιτροπής Διαχείρισης του Ειδικού Λογαριασμού του Διεθνούς Πανεπιστημίου της Ελλάδος. Αρχικά το είχα φτιάξει σε php γραμμένο από το μηδέν. Τους τελευταίους μήνες έχω ασχοληθεί αρκετά με το cakephp και σκέφτηκα να το ξαναφτιάξω πάνω σε cakephp ώστε να γίνει πιο αξιόπιστο, επεκτάσιμο και εύχρηστο (με clean urls).

Ένα από τα προβλήματα στις περιπτώσεις που "ανακαινίζεται" ένα site είναι αυτό των εισερχόμενων links. Για παράδειγμα αν κάποιο τρίτο site έχει ήδη ένα link για το site μας, αυτό μπορεί να χαθεί (να βγάζει σε 404 σελίδα) μετά την "ανακαίνιση".

Αυτό το θέμα μπορεί να λυθεί πολύ εύκολα στο cake δημιουργώντας το κατάλληλο routing (στο app/config/routes.php) για κάθε "παλιό" url. Ειδικά αν το site έχει και google analytics τότε μπορούν να βρεθούν ακόμη και τα links των άλλων σελίδων που οδηγούν στο site μας.

Απ' οσο είμαι σε θέση να γνωρίζω, το παραπάνω (url routing) γίνεται και μέσω του apache αλλά αυτό προϋποθέτει καλή γνώση του format των configuration αρχείων του apache και σχετικά δικαιώματα. Πιστεύω ότι η λύση του cakephp είναι πολύ ευκολότερη...

Who's new

  • ale3andro

Who's online

There are currently 0 users and 1 guest online.

feed icon
Grab my feed
feed icon
or my FriendFeed ;-)
Feed icons by Dirceu Veiga