Σε όλα τα site για προγραμματιστές είναι δημοφιλή τα άρθρα του τύπου “10 συμβουλές για να κάνετε τον κώδικα σας πιο γρήγορο / πιο ασφαλή” κ.λ.π. Σκέφτηκα να κάνω κάτι τέτοιο για το freestuff.gr, με απλά tips που μπορεί να φανούν χρήσιμα σε κάποιους. Έτσι μάζεψα μερικές συμβουλές που έρχονται κυρίως από προσωπική εμπειρία, πιθανόν σε κάποια από αυτά να υπάρχει και αντίλογος, αλλά ακόμα και έτσι μπορεί να γίνουν αφορμή για συζήτηση.
Όσοι από εσάς δουλεύετε σαν web developers, γνωρίζετε ότι το πιο κλασικό πρόβλημα που υπάρχει πριν δουλέψετε σε οποιονδήποτε υπολογιστή, είναι το σχετικό στήσιμο. Πρέπει να στηθεί ο τοπικός server (στη δική μου περίπτωση apache/php/mysql). Επίσης πρέπει να εγκατασταθούν τα αντίστοιχα εργαλεία (εδώ και κάποιο διάστημα χρησιμοποιώ netbeans). Τέλος, πρέπει αν δουλεύετε και σε άλλους υπολογιστές, να μεταφέρετε τη δουλειά σας και να την συγχρονίσετε τοπικά (για αυτό το λόγο έχω στήσει ένα subversion server). Αυτό είναι σχετικά εύκολο, αφού τα περισσότερα γίνονται μόνο μια φορά, ενώ με κάποιο version control system, ακόμα και η δουλειά σας μεταφέρεται εύκολα.
Οι δυσκολίες όμως ξεκινάνε αλλού:
Τι γίνεται όταν χρειαστεί να δουλέψετε για λίγο σε κάποιον άλλο υπολογιστή για κάποια γρήγορη διόρθωση;
Αν όλα αυτά βαραίνουν πολύ τον υπολογιστή σας (π.χ. σε περιπτώσεις netbook) και σέρνεται όταν δουλεύετε;
Αν θέλετε να δουλέψετε σε κάποιο άλλο λειτουργικό σύστημα, το οποίο απαιτεί διαφορετικό στήσιμο και δεν έχετε τον ανάλογο χρόνο/γνώσεις κλπ;
Υποθέτω ότι ανάλογο θέμα θα υπάρχει όταν κυκλοφορήσει το Chrome OS, το οποίο δεν ξέρω κατά πόσο θα είναι βολικό αφού όλες του οι εφαρμογές είναι web based.
Μια πολύ καλή λύση για όλα αυτά είναι το Kodingen.com. Πρόκειται για μια web εφαρμογή η οποία σας επιτρέπει να ανεβάσετε τα project σας σε έναν δικό τους development server με διάφορες τεχνολογίες (php/perl/python/ruby, mysql/postgresql κλπ) και έπειτα να το επεξεργαστείτε με μια σειρά από editors που έχουν. Μπορείτε να το δοκιμάσετε online και έπειτα να το κατεβάσετε ή να το μεταφέρετε σε κάποιο δικό σας server μέσω ftp.
Η εφαρμογή είναι δωρεάν στη χρήση με κάποια βασικά resources (τα οποία είναι αρκετά για μικρά project), ενώ μπορείτε να αγοράσετε επιπλέον χώρο/domains/bandwidth κ.λ.π. σε εξαιρετικά χαμηλές τιμές.
Επίσης, υποστηρίζεται subversion σύστημα, πρόσβαση σε shell, ενώ για την πλήρη αξιοποίησή του, περιβάλλεται και από ένα social network που μπορεί να σας τροφοδοτήσει με πολύ χρήσιμες πληροφορίες, ή απλά να σας βοηθήσει να συνεργαστείτε με άλλους προγραμματιστές χωρίς να χρειάζεται να μοιραστείτε passwords και ευαίσθητες πληροφορίες μαζί τους.
Τέλος, κάτι πολύ χρήσιμο είναι η εγκατάσταση εφαρμογών στο χώρο σας, με ένα κλικ. Δείτε στο παρακάτω video ένα παράδειγμα:
Το περιβάλλον είναι ακόμα σε beta έκδοση, όμως βελτιώνεται συνεχώς και από ότι φαίνεται πολύ σύντομα θα βγει στον αέρα κανονικά.
Πρέπει να αναφέρω ότι το Project είναι βασισμένο σε open source τεχνολογίες και είναι και το ίδιο Open Source. Η σελίδα του στο Google Code αναφέρει ως άδεια την GNU GPL2.
Τις τελευταίες μέρες για τις ανάγκες ενός project που ετοιμάζω για έναν πελάτη έπρεπε να δημιουργήσω κάποια γραφήματα. Αρχική μου σκέψη για να γλιτώσω χρόνο από το development ήταν να χρησιμοποιήσω το Google Chart API, το οποίο δίνει με πολύ εύκολο τρόπο τη δυνατότητα να ενσωματώσει κάποιος στη σελίδα του μια σειρά από γραφήματα.
Μέχρι ένα βαθμό με κάλυπτε, δέχεται αρκετά μεγάλη παραμετροποίηση, είναι πολύ εύχρηστο και φυσικά έχει πολύ καλό design.
Όμως σκέφτηκα να ψάξω μήπως βρω κάποιο καλύτερο framework – το οποίο να ενσωματώνεται στο project μου και όχι να κάνω κλήσεις σε τρίτα site.
Τελικά έπεσα πάνω στο Open Flash Chart, ένα open source project, το οποίο δημιουργεί γραφήματα σε flash, ενώ παρέχει βιβλιοθήκες για τον χειρισμό τους σε όλες τις δημιφιλείς scripting γλώσσες, όπως την PHP που χρησιμοποιώ.
Κυκλοφορούν μάλιστα δύο εκδόσεις του, η δεύτερη πολύ πιο βελτιωμένη, αλλά παράλληλα συντηρείται η πρώτη που είναι πιο απλή στο χειρισμό.
Τελικά χρησιμοποιώ αυτό. Όποιος χρειάζεται κάποιο εντυπωσιακό framework για να δημιουργεί charts, ας ρίξει μια ματιά.