mrpc’s Blog

Development

PHP Tutorial: Αυτόματες αλλαγές του σχήματος της βάσης δεδομένων

του στις 12/04/2011, στην κατηγορία Development, Open Source, php, web development

Είχα πολύ καιρό να γράψω tutorial για το Freestuff, βρήκα όμως επιτέλους λίγο χρόνο το Σ/Κ που πέρασε και ετοίμασα μερικά. Ανέβασα ήδη το ένα από αυτά. Πρόκειται για έναν απλό τρόπο ενημέρωσης αλλαγών στη βάση δεδομένων κάθε φορά που κάνουμε upgrade της εφαρμογής μας, περίπου στη λογική του wordpress.

Μπορείτε να το διαβάσετε από εδώ: Freestuff.gr - Αυτόματες αλλαγές του σχήματος της βάσης δεδομένων.

Μοιράσου το με: buzzcullbobitdigmeforacampfreestuffdeliciousgooglefacebooktwitterdiggyahoobuzz
Αφήστε σχόλιο :, , , , , , , περισσότερα...

Security stuff

του στις 11/06/2010, στην κατηγορία Open Source, php, web development, Περιπέτειες

Σήμερα το πρωί με ενημέρωσαν από την εταιρεία που διαχειρίζεται τους server μου ότι  από κάποιο αρχείο σε ένα site έφευγαν  spam mails. Με μια σύντομη αναζήτηση εντόπισα ότι το αρχείο είχε ανέβει με ftp κανονικότατα, χωρίς κάποια hackια. Πολύ πιθανό να ξέφυγε από τον πελάτη το pass μέσω κάποιου malware που διαβάζει τα passwords από τον ftp client.

Αυτό με έκανε να σκεφτώ λίγο πως θα αποφύγω ανάλογα περιστατικά. Έφτιαξα λοιπόν ένα php script το οποίο συνδέεται με ftp στον server και σκανάρει όλα τα αρχεία με executable extensions (php, php5 κλπ) και αποθηκεύει τη λίστα σε μια βάση. Την επόμενη φορά που θα τρέξει, με ενημερώνει για ότι νέο αρχείο υπάρχει, ώστε αν είναι κάτι που δεν το έχω προσθέσει εγώ, να το ελέγχω για πιθανά προβλήματα.

Δεν είναι και η πιο optimal λύση (θα μπορούσα με shell να ψάξω απλά όλα τα php αρχεία με ημερομηνία ως και μια μέρα πριν π.χ.) , όμως το υλοποίησα έτσι γιατί έχω σκοπό να προσθέσω μερικά ακόμα πράγματα στο script και να το ελευθερώσω σαν open source για όποιον χρειάζεται κάτι ανάλογο.

Μερικά πράγματα που θέλω να κάνω είναι:

  • Να ελέγχει όλα τα νέα αρχεία για περίεργες functions (exec, base64_decode κλπ)
  • Να με ενημερώνει για τα αρχεία που για κάποιο λόγο σβήστηκαν ή άλλαξαν (για αυτό και η βάση)
  • Να τρέχει αυτόματα με ένα cron job και να με ενημερώνει με email, μια φορά κάθε 3-4 μέρες

Πολύ απλά πράγματα, λογικά σε λίγες μέρες θα το ανεβάσω κάπου. Αν έχετε κάποια ιδέα… στείλτε μου.

Πάντως μια γρήγορη λύση για τα δείτε αν υπάρχει κάποιο ύποπτο αρχείο είναι να τρέξετε από shell την παρακάτω εντολή:

grep -RPn "(passthru|shell_exec|system|phpinfo|base64_decode|chmod|mkdir|fopen|fclose|readfile) *\(" public_html/

η οποία θα σας δείξει αμέσως ότι υπάρχει με αυτές τις εντολές. Μπορείτε και να το περάσετε σε ένα cron job και να εκτελείται μόνο του, ενώ τα αποτελέσματα θα σας έρχονται στο email σας.


Μοιράσου το με: buzzcullbobitdigmeforacampfreestuffdeliciousgooglefacebooktwitterdiggyahoobuzz
Αφήστε σχόλιο :, , περισσότερα...

Δουλεύοντας με το Kodingen.com

του στις 26/03/2010, στην κατηγορία Development, Open Source, php, web development

Όσοι από εσάς δουλεύετε σαν 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 ένα παράδειγμα:

Kodingen.com : Online Development Environment, ODE from Kodingen on Vimeo.

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

Πρέπει να αναφέρω ότι το Project είναι βασισμένο σε open source τεχνολογίες και είναι και το ίδιο Open Source. Η σελίδα του στο Google Code αναφέρει ως άδεια την GNU GPL2.

Μοιράσου το με: buzzcullbobitdigmeforacampfreestuffdeliciousgooglefacebooktwitterdiggyahoobuzz
3 Σχόλια :, , , περισσότερα...

CaptainBook.gr

του στις 23/12/2009, στην κατηγορία Open Source, web development

Το τελευταίο project που ανέβασα είναι ένα ηλεκτρονικό κατάστημα το οποίο έστησα για λογαριασμό τριών φίλων, σε συνεργασία με τον εξαιρετικό γραφίστα Γιάννη Αγάθο.

Το Logo

Το Logo

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

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

Η υλοποίηση έγινε με τη βοήθεια δύο πολύ δυνατών open source projects. Το ένα είναι το Zen Cart για τις λειτουργίες του cart, το άλλο είναι το wordpress για τις λειτουργίες της κοινότητας.

Φυσικά για να τα παντρέψω χρειάστηκε αρκετές τροποποιήσεις, ενώ για τις ιδιαίτερες ανάγκες του καταστήματος χρειαστήκαμε πάρα πολλά custom modules και plugins, ενώ αναπτύσσουμε σταδιακά και άλλα.

Για να είμαι και σωστός απέναντι στην κοινότητα, κάποια στιγμή που θα είναι 100% ολοκληρωμένο το site, θα δημοσιεύσω κάποιο από τα modules ως open source.

Όσοι λοιπόν ψάχνετε για κάποιο βιβλίο… ρίξτε και μια ματιά από το CaptainBook.gr. Εννοείται ότι κάθε σχόλιο είναι ευπρόσδεκτο!

Μοιράσου το με: buzzcullbobitdigmeforacampfreestuffdeliciousgooglefacebooktwitterdiggyahoobuzz
13 Σχόλια :, , , , , , περισσότερα...

WordPress plugins

του στις 18/07/2009, στην κατηγορία Development, Open Source, Βlogs

Σήμερα ασχολήθηκα λίγο με το blog μου και εγκατέστησα μερικά plugins για το wordpress. Αυτά είναι:

  • Align RSS Images
    IMG_0587Δυστυχώς το rss feed που παράγει το wordpress είναι λίγο προβληματικό στο θέμα του σωστού alignment των φωτογραφιών, με αποτέλεσμα ένα άρθρο που έχει π.χ. 3 φωτογραφίες και το έχετε κάνει έτσι ώστε οι φωτογραφίες να εμφανίζονται ωραία δίπλα στο κείμενο, όταν δείτε το feed, οι φωτογραφίες έχουν χάσει το alignment και διακόπτουν το κείμενο. Με αυτό το plugin το πρόβλημα διορθώνεται.
  • FFDirect (Friendfeed Direct Post)
    Ένα πολύ καλό plugin από τον Παναγιώτη Βρυώνη όπου με το οποίο τα Post σας εμφανίζονται στο FriendFeed μόλις τα δημοσιεύσετε, μαζί με απόσπασμα από το κείμενό τους, ενώ επιστρέφει στο αρχικό κείμενο τον αριθμό των likes. Αν το εγκαταστήσετε θα πρέπει να αφαιρέσετε το feed σας από το FriendFeed.
  • WP-Slimbox2
    Ένας πολύ ωραίος τρόπος εμφάνισης των φωτογραφιών που εισάγετε στα posts.  Κάντε κλικ στη φωτογραφία αυτού του post για παράδειγμα. Το είχα εγκαταστήσει αρχικά για το beautymakeup.gr και μου άρεσε, οπότε το έβαλα και στο δικό μου. Και μάλλον αυτό το jquery εφέ θα το χρησιμοποιήσω και σε άλλα μου site.
Μοιράσου το με: buzzcullbobitdigmeforacampfreestuffdeliciousgooglefacebooktwitterdiggyahoobuzz
3 Σχόλια :, , , , , , , περισσότερα...

Από cvs σε svn

του στις 25/05/2009, στην κατηγορία Development, Open Source

Αν και γενικά στη δουλειά μου δουλεύω κυρίως μόνος μου τον κώδικά μου και οι συνεργάτες μου ασχολούνται με τα γραφιστικά, παρ’ όλα αυτά πάντα χρησιμοποιούσα version control. Αυτό με βολεύει γιατί χρησιμοποιώ πολλούς υπολογιστές (laptop – macbook και μερικά pc) και έτσι μπορώ να συγχρονίσω τα project μου. Και φυσικά είναι μια καλή λύση για backup και είναι εύκολο να ανατρέξω σε κάποια παλιά έκδοση ενός αρχείου όταν καταστρέψω κάτι :D

Πάντα λοιπόν χρησιμοποιούσα το cvs. Όχι για κάποιο συγκεκριμένο λόγο, απλά ήταν το πρώτο που έμαθα όταν άρχισα να παίζω με linux, και αφού άρχισα με αυτό, αποφάσισα να το χρησιμοποιήσω. Η τελευταία έκδοση του Dreamweaver όμως έχει υποστήριξη για subversion μέσα από το interface του. Έτσι αποφάσισα να γυρίσω σε svn.

Η ενσωμάτωσή του στο DreamWeaver είναι πραγματικά πολύ βολική. Μέχρι τώρα πολλές φορές δεν έκανα check in τις αλλαγές μου γιατί βαριόμουν να κάνω μια επιπλέον κίνηση εκτός του editor που χρησιμοποιώ. Τώρα όμως είναι πολύ πιο εύκολα τα πράγματα. Απλά μετά από τις αλλαγές κάνω check in μέσα από το DW.

Φυσικά έχω περάσει και το αντίστοιχο TortoiseSVN.

Τώρα μένει να δω πως θα πάμε με τον συχρονισμό με τα υπόλοιπα μηχανήματα…

Μοιράσου το με: buzzcullbobitdigmeforacampfreestuffdeliciousgooglefacebooktwitterdiggyahoobuzz
Αφήστε σχόλιο :, , , , περισσότερα...

Ψάχνετε για κάτι;

Κάντε αναζήτηση από την παρακάτω φόρμα:

Δεν βρίσκετε αυτό που ψάχνετε; Αφήστε ένα σχόλιο ή επικοινωνήστε μαζί μου!

Μερικές προτάσεις:

Μερικοί φίλοι που προτείνω να επισκεφτείτε...