Evaggelos Balaskas's logs

My 127.0.0.1 on the web

PIrsyncD ένα χρόνο μετά aka η εμπειρία μου ως προγραμματιστής!

Πριν από λίγες μέρες το PIrsyncD (”πάι - αρ-σινκ - ντι”), έκλεισε ένα χρόνο ζωής και πριν από λίγα λεπτά βγήκε μία ακόμα έκδοση: PIrsyncD_20100724.

Κοιτώντας λίγο τις αρχικές εκδόσεις, νοσταλγώ την αθωότητα που είχα όταν ξεκίνησα να γράφω για 1η φορά στην ζωή μου python. Το έχω ξαναγράψει σε παλαιότερα posts, ότι το πρόγραμμα αυτό ήταν μία ιδέα 17γραμμών ! που χώραγε σε ένα και μόνο post (έκδοση: 20090712).

Τότε είχα αποφασίσει να μην ακολουθήσω το major-minor-build σχήμα ή τις alpha - beta - releases εκδόσεις, αλλά το ISO Date scheme: YYYY-MM-DD. Πίστευα και πιστεύω ότι είναι ευκολότερο να ακολουθείς ένα τέτοιο σχήμα εκδόσεων, παρά να θυμάμαι νούμερα κ.λ.π.-κ.λ.π.

Κάπου στην πορεία (20091115) δλδ μετά από 4/5 μήνες είχε έρθει η ώρα να χρησιμοποιήσω ένα version control σύστημα ώστε να διατηρώ τις αλλαγές που κάνω, αλλά και να μπορώ να κάνω εύκολα rollback σε περίπτωση λάθους!

Κάποια στιγμή ξεκίνησαν και να πρώτα emails ! Ερωτήσεις και feedback, patches & reviews.
Είχα εκπλαγεί με αυτό το γεγονός.

Φέτος με την έναρξη των συνεδρίων στην Ελλάδα, άρχισα να παρακολουθώ ανθρώπους που γράφουν ή έγραφαν χρόνια Python, ώστε να μπορώ να πάρω ιδέες με σκοπό να διορθώσω τυχόν λάθη στον κώδικά μου.

Το μέγεθος του κώδικα αυξανόταν, το ίδιο και οι λειτουργίες του προγράμματος! Θεώρησα καλό να δημιουργήσω μία ξεχωριστή σελίδα με παραδείγματα χρήσης (./PIrsyncD –examples) καθώς η βοήθεια (./PIryncD -h) είχε ήδη γεμίσει μία σελίδα στο τερματικό.

Δυστυχώς όμως οι ευθύνες και οι δουλείες δεν μας αφήνουν πάντα να προχωρήσουμε με την ίδια ταχύτητα που θέλουμε. Έτσι πέρασαν 4 μήνες για να ανακοινώσω άλλη μία έκδοση του PIrsyncD.

Για να δούμε την πορεία του project, θα είναι ανάλογη του 1ου χρόνου ή απλά θα χαθεί στην πορεία του χρόνου …

Add a comment(38 views)




PIrsyncD new version: 20100724

PIrsyncD stands for: Python Inotify Rsync Daemon.

Description:
This is an attempt of writing a daemon to watch a directory for kernel’s inotify events and then execute an rsync command to synchronize two different directories (local or remote). This is a poor man’s mirroring or an alternative (not so) real data replication mechanism and it is based on Pyinotify.

PIrsyncD

A lot of changes over the past couple releases

From ChangeLog:

  • Rewrite code for duplicate inode events, using python dictionary
  • Added option to run PIryncD in foreground
  • Added code for mirroring in first run, without looking inode events.
  • Scoring 7.35 with pylint (better code styling)
  • Redifind global variables (errors may occured, plz notify me).

plz try ./PIrsyncD –help to see more

Get the latest version of PIrsyncD v20100724

Add a comment(60 views)




1η Συνάντηση www.archlinux.gr

Ναι είναι γεγονός,
κι εδώ οι πρώτες φωτογραφίες:

1η Συνάντηση ArchLinux.Gr

Add a comment(63 views)




Remove duplicate mails from mailbox

A couple of days back, i wrote a perl script to remove backscatter mails from a mailbox file using perl.
You can take a look on the code here:
Remove backscatter mails from mailbox.

Today i wanted to remove the duplicate mails from a mailbox. I’ve used, till now, mergembox, but i wanted to write something on my own.

So, without further ado:

  1 #!/usr/bin/perl -w
  2 
  3 use strict;
  4 use Mail::MboxParser;
  5 
  6 die $0 =~ /([^/]+)$/, "  >  n" unless @ARGV == 1;
  7 
  8 my $mb = Mail::MboxParser->new($ARGV[0]);
  9 my $field = "message-id";
 10 my @MessageIds = ();
 11 
 12 while ( my $msg = $mb->next_message ) {
 13 
 14         my @msgid = split(/@/, $msg->header->{$field});
 15          
 16         if ( grep(/$msgid[0]/, @MessageIds ) ) {
 17                 warn "Duplicate Message-ID: " . $msgid[0] . ", already exists ! n" ;
 18         } else { 
 19                 push( @MessageIds, $msgid[0] );
 20                 print $msg."n" ;
 21         }
 22 }

You can see the code with syntax highlight here:
Remove duplicate mails from mailbox

Add a comment(96 views)




The return of enter key

Προς όλες τις εταιρείες που κατασκευάζουν πληκτρολόγια.

Το Enter-Key, ή όπως το θυμούνται και οι παλαιότεροι Return, πρέπει να είναι έτσι:

enter-key.jpg

Για αυτό παρακαλείσθε να σταματήσετε τις ανοησίες στην αναζήτηση του Holy Grail κι επιτέλους να αποφασίσετε πως σε κάθε πληκτρολόγιο πρέπει να έχει το ίδιο σχήμα στην ίδια θέση!

1 comment(105 views)




Valid XHTML 1.0 Transitional