Αρχείο ετικέτας Open Source

Netbeans Netcat 7.1

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

Ανά διαστήματα, αντί για το κανονικό release χρησιμοποιούσα κάποια beta ή release candidate, ώστε να δώσω και εγώ το feedback μου στους προγραμματιστές. Μου αρέσει η λογική του να προσπαθώ να βοηθήσω στη βελτίωση του προϊόντος που χρησιμοποιώ. Άλλωστε είναι και open source, πράγμα που με κάνει να θέλω να το στηρίξω παραπάνω.

Τελευταία ήθελα να ασχοληθώ λίγο πιο ενεργά με την κοινότητα πίσω από το Netbeans. Έτσι ως πρώτο βήμα, μπήκα στην ομάδα Netcat 7.1, δηλαδή NetBeans Community Acceptance Testing program. Είναι ομάδα εθελοντών που δοκιμάζουν τις nightly builds του Netbeans σε πραγματικά projects και δίνουν feedback στην ομάδα των προγραμματιστών, είτε βρίσκοντας bugs, είτε κάνοντας συγκεκριμένες δοκιμές που έχουν ζητηθεί και ψηφίζοντας για κάποια features ώστε να μπουν στις release candidate.

Θεωρώ ότι αυτός είναι ο πιο απλός τρόπος συμμετοχής σε ένα open source project, καθώς το μόνο που χρειάζεται να κάνεις είναι να δοκιμάζεις το project σε πραγματικές συνθήκες, και να «ξοδεύεις» λίγο παραπάνω χρόνο στα reports που δίνεις.

Έτσι, πλέον δουλεύω σε όλα μου τα project, με τις nightly build του netbeans, βλέποντας και τα feature που θα μπουν στην έκδοση 7.1.

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

Όποιος έχει λίγο χρόνο και διάθεση για πειραματισμό και θέλει να βοηθήσει, μπορεί να μπει στην ομάδα και να βάλει ένα χεράκι στις δοκιμές, από εδώ: http://wiki.netbeans.org/NetCAT.

LustDecade.com

Lust Decade
Είμαστε σε beta!

Τις τελευταίες μέρες δούλεψα σε ένα αρκετά πρωτότυπο για τα ελληνικά δεδομένα project, το LustDecade.com.

Με μια γρήγορη ματιά, είναι ένα ηλεκτρονικό κατάστημα το οποίο πουλάει t-shirts.  Η πρωτοτυπία του όμως είναι το ποιος σχεδιάζει αυτά τα μπλουζάκια: Εσείς!

Με λίγα λόγια, όποιος θέλει μπορεί να υποβάλει ένα σχέδιο για t-shirt το οποίο θεωρεί ότι είναι πρωτότυπο και θα αρέσει σε κόσμο. Αυτό μπαίνει στην ειδική ενότητα που έχουμε ετοιμάσει: Vote For Design, όπου παραμένει για ένα μήνα. Στο τέλος του μήνα, τυπώνονται τα μπλουζάκια τα οποία έχουν συγκεντρώσει την μεγαλύτερη βαθμολογία!

Με αυτό τον τρόπο, το κατάστημα θα έχει πάντα φρέσκα σχέδια, τα οποία τα έχει επιλέξει ο κόσμος. Ουσιαστικά δημιουργούμε αυτό που λέει και το tagline του site: A designers collective!

Εγώ ανέλαβα το Development και όλα τα mods που δημιουργήσαμε για το Zen Cart (τα οποία θα κυκλοφορήσουν αργότερα ως Open Source, μόλις καθαρίσω λίγο τον κώδικα), ενώ το σχεδιασμό τον έκανε η Media Designers.

Μπείτε και πείτε μας τη γνώμη σας, με το μαλακό όμως, αφού είναι ακόμα work-in-progress.

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

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

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

Linux Inside

Για όσους δεν το έχουν δει ακόμα, κυκλοφόρησε το πρώτο τεύχος ενός νέου ελληνικού περιοδικού για το Linux και το ανοιχτό / ελεύθερο λογισμικό, το Linux Inside.

Πρόκειται ουσιαστικά για τη συνέχεια του Linux Format, το οποίο σταμάτησε να κυκλοφορεί, αν κατάλαβα καλά λόγω λήξης της σύμβασης του εκδότη με το ξένο περιοδικό. Παρ’ όλα αυτά, το Linux Inside έχει αρκετές βελτιώσεις σε σχέση με το προηγούμενο, καθώς και διάφορα ενδιαφέροντα στοιχεία, όπως π.χ. 3D barcodes με όλα τα link στα άρθρα.

Γενικά έχω σταματήσει εδώ και καιρό να αγοράζω περιοδικά, αφού όλες τις ανάγκες μου σε ενημέρωση τις καλύπτω online. Ειδικά μάλιστα για τα νέα σχετικά με open source και linux, έτσι κι αλλιώς ενημερώνομαι αρκετά γρήγορα, ακόμα και από τους ίδιους τους συντάκτες του περιοδικού, αφού ο καθένας στο δικό του blog καλύπτει ήδη όλα τα σχετικά θέματα πριν την κυκλοφορία του περιοδικού (π.χ. τα νέα του elkosmas.gr). Παρ’ όλα αυτά, το Linux Inside θα συνεχίζω να το αγοράζω όσο είμαι στην Ελλάδα, αφού πιστεύω ότι τέτοιες προσπάθειες χρειάζονται στήριξη για να συνεχίσουν. Βοηθάνε πολύ τους νέους χρήστες (όταν έκανα τα πρώτα μου βήματα κι εγώ, τα περιοδικά μου είχαν φανεί πολύ χρήσιμα), βοηθάνε στην ανάπτυξη της κοινότητας κ.λ.π.

Δείτε περισσότερα για το περιοδικό στη σελίδα http://www.linuxinside.gr.

Βρείτε τα διαγραμμένα sms από το iPhone

Πριν μερικές μέρες σκάλισα λίγο τον τρόπο που αποθηκεύει τα δεδομένα μας το iPhone. Για τα περισσότερα πράγματα χρησιμοποιεί τη βάση sqlite. Είναι ένα αρκετά βολικό και portable format.

Όταν κάνει backup (κατά τη διάρκεια του συγχρονισμού με το iphone) αντιγράφει όλα τα αρχεία sqlite από το κινητό σας, στο folder που κρατάει το backup. Στο mac είναι στο φάκελο:
~Library/Applications Support/MobileSync/Backup
.
Στα windows xp είναι στον φάκελο:
C:\Documents and Settings\USERNAME\Application Data\Apple Computer\MobileSync\Backup.
Στα windows 7 είναι
c:\Users\USERNAME\AppData\Roaming\Apple Computer\MobileSync\Backup\.

Μέσα θα βρείτε ένα subfolder για κάθε backup που υπάρχει. Τα ονόματα των αρχείων σε αυτό είναι πολύ περίεργα για να βγάλουμε άκρη, όμως το αρχείο με τα sms έχει συγκεκριμένο όνομα: 3d0d7e5fb2ce288813306e4d4636395e047a3d28.mddata.

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

Τι γίνεται όμως με τα διαγραμμένα; Γενικά στην sqlite όταν διαγράφουμε μια εγγραφή από ένα πίνακα, η εγγραφή στην πραγματικότητα δε σβήνεται από το αρχείο που κρατάει τα δεδομένα της. Όπως γράφει στο FAQ της:

When you delete information from an SQLite database, the unused disk space is added to an internal «free-list» and is reused the next time you insert data. The disk space is not lost. But neither is it returned to the operating system.

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

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

Αν ψάξετε στο internet θα βρείτε διάφορα εργαλεία τα οποία εξάγουν τα δεδομένα αυτά. Προσωπικά απλά άνοιξα το αρχείο με έναν text viewer και ψάχνοντας λίγο βρήκα ότι έψαχνα.

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

(photo by: Eric Rice)

Security stuff

Σήμερα το πρωί με ενημέρωσαν από την εταιρεία που διαχειρίζεται τους 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 σας.