Πριν από αρκετό καιρό έγραψα ένα προγραμματάκι μόλις 17 γραμμών σε python με σκοπό να συγχρονίζει δεδομένα μεταξύ δύο διαφορετικών καταλόγων σε δύο διαφορετικά συστήματα κάνοντας χρήση της δυνατότητας του πυρήνα να καταγράφει τα inode events.
Ήταν (και είναι ακόμα) το πρώτο και μοναδικό μου πρόγραμμα σε python! Χρησιμοποίησα python γιατί βρήκα την καλύτερη τεκμηρίωση και υλοποίηση του inotify σε python κι ήταν αφορμή να δω αυτή την scripting γλώσσα που οι περισσότεροι γνωστοί μου, μου παρουσίαζαν ως την καλύτερη scripting γλώσσα προγραμματισμού.
Στην αρχή τα πράγματα φάνηκαν αρκετά απλά, έγραψα το πρόγραμμα που έκανε την δουλειά που ήθελα κι άρχισα να το εμπλουτίζω σιγά,σιγά. Χωρίς πολλές φανφάρες το δημοσίευσα μέσω του πλανήτη κι έπειτα από λίγο καιρό σκέφτηκα να το διαφημίσω και μέσω του freshmeat.
Η συνέχεια με εξέπληξε πολύ ευχάριστα. Κοιτώντας από τα στατιστικά μου διαπίστωσα πως αρκετός κόσμος το έχει ήδη κατεβάσει (φυσικά δεν αναφέρομαι σε bots) και τουλάχιστον 13 άτομα παρακολουθούν πότε βγάζω νέα έκδοση! Κι αυτό δεν ήταν τίποτα σε σχέση με την πρώτη φορά που πήρα feedback για το προγραμματάκι, που πλέον μεγάλωνε σε γραμμές και λειτουργίες. Κι ύστερα ήρθαν τα πρώτα requests κι έπειτα τα πρώτα patches!!
Το προγραμματάκι που μέχρι πριν από λίγο καιρό έγραφα μόνος μου κι εξυπηρετούσε μόνο εμένα, αυτή την στιγμή λειτουργεί σε production υποδομές εξυπηρετώντας κι άλλους. Μάλιστα έχω φτάσει στο σημείο να κάνω πλέον review σε patches για να προσθέτω νέες λειτουργίες. Οι τελευταίες δύο εκδόσεις του PIrsyncD είναι βασισμένες σε patches και οι προσθήκες που έχω κάνει εγώ είναι μόνο για error handling κυρίως και διορθώσεις των patches ώστε να ακολουθούν την KISS φιλοσοφία.
Από 17 γραμμές έχει φτάσει τις 302. Κι εάν εδώ ακούσω κάποιον να λέει: σιγά τις πολλές γραμμές, να αναφέρω ότι είναι 17φορές περισσότερες από το αρχικό κι ο σκοπός ύπαρξής του είναι υπερβολικά συγκεκριμένος. Να συγχρονίζει καταλόγους χωρίς την ύπαρξη κάποιου cron script ή κάποιας άλλης εξωτερικής παρέμβασης!
Είμαι πολύ ενθουσιασμένος για την πορεία. Εύχομαι να μην σταματήσει εδώ.
Έχω μερικές ιδέες για την συνέχεια μακάρι να βρω και τον χρόνο να τις υλοποιήσω.
Εν κατακλείδι:
- Μην διστάζετε να υλοποιείται και να δημοσιεύετε τις ιδέες σας. Ακόμα κι εάν δεν είστε προγραμματιστής (όπως εγώ!) ή εάν δεν πιστεύετε ότι γράφετε ποιοτικό κώδικα. Ανήκουμε σε μία ευρύτερη κοινότητα, αυτή του ανοιχτού κώδικα, του ελεύθερου λογισμικού και η συνεισφορά μας μπορεί να μας φαίνεται μικρή για την ώρα αλλά σαν τσουνάμι μπορεί να φτάσει στην google και να μας αγοράσει (”δανεισμένο” από φίλο εκ πατρών).