Saturday, March 29, 2008

Αποστολή SMS από τη γραμμή εντολών

Από τα πρώτα προγράμματα που έγραψα σε C ήταν το mycosmos, ένα πρόγραμμα αποστολής SMS από τη γραμμή εντολών μέσω μιας web υπηρεσίας.

Όμως ο καιρός πέρασε, η web υπηρεσία άλλαξε και το mycosmos έπαψε να δουλεύει. Έτσι τον Δεκέμβριο του 2007 το ξαναέγραψα από την αρχή, δημιουργώντας αυτή τη φορά το climycosmos.

Η έκδοση 0.4 του climycosmos είναι αρκετά πλήρης. Είναι απολύτος αυτόνομη από εξωτερικές εξαρτήσεις και πλήρως παραμετροποιήσιμη για καθημερινή χρήση. Τις παράμετρους αποτελούν:
i) ο λογαριασμός χρήστη και οι κωδικοί εισόδου μέσω του οποίου θα αποσταλεί το μήνυμα
ii) ο ονομαστικός προσδιορισμός του παραλήπτη, μέσω ενός στοιχειώδους τηλεφωνικού ευρετηρίου
Τα παραπάνω αποτελόυν ιδιαίτερα σημαντικά γνωρίσματα, απαραίτητα κατά την γνώμη μου, που δίνουν μεγάλη ευχρηστία στην εφαρμογή.

Όλες οι παράμετροι του προγράμματος ορίζονται από τον χρήστη και αποθηκεύονται σε ένα αρχείο κειμένου με όνομα .climycosmos.ini Η μορφή του αρχείου είναι εξαιρετικά απλή και ξεκάθαρη:

username: 69XXXXXXXX
password: XXXXXXXX

username: 69XXXXXXXX
password: XXXXXXXX

contact1: 69XXXXXXXX
contact2: 69XXXXXXXX
contact3: 69XXXXXXXX

Μέσω αυτής της παραμετροποίησης καθίσταται δυνατή η αποστολή μυνημάτων από τη γραμμή εντολών με τις ελάχιστες δυνατές παραμέτρους, πχ:
climycosmos -t contact1 -m "Γεια σου". 
Ασφαλώς το σύνολο των παραμέτρων μπορούν να περάσουν και άμεσα από την γραμμή εντολών.

Το climycosmos διανέμεται δωρεάν, κάτω από την GPLv2 άδεια χρήσης.

Tuesday, March 25, 2008

Office decoration using origami

My interest in origami folding, found some usage as means of office decoration. Some nice examples are given in the photographs that follow.


Bird (flying parrot) over Chamaedorea

Birds hanging from the ceiling

This technique creates quite a good result and a pleasant environment. The existence of moving decorations that one can even play with, give joy. Also, the addition of colors in the working place is great!

Tuesday, March 11, 2008

Report compilation total time using GNU make

When working constantly on the same application, it is very useful to have an idea of the time it takes to compile. Having this information allows you to plan your work ahead, compare machines, developing environments, etc.

I have put together this Makefile, to print the total compilation time. It requires gmake and the UNIX shell utilities date, bc, echo and printf.


# Time expressed as the seconds of the year. More portable than seconds since
# the epoch: `date +%s'
COMPILE_START_TIME := $(shell date +\(%j\*24\*60\*60+%H\*60\*60+%M\*60+%S\))
COMPILE_CURRENT_TIME = `date +\(%j\*24\*60\*60+%H\*60\*60+%M\*60+%S\)`

# Print the time difference between Tcurrent and Tstart. This function can be
# used after any target, as shown in the form: (see example)

# args: Tcurrent = $(1), Tstart = $(2)
define print_timer
@CT=$(1) && \
printf "Compilation total time: %.2d:%.2d (min:sec)\n" \
`echo "($$CT - $(2))/60" | bc` \
`echo "($$CT - $(2))%60" | bc`

all: target

@echo "Compiling for 2 seconds ..." && sleep 2 && echo Done

Using this Makefile and running make, produces the following output:

Compiling for 2 seconds ...
Compilation total time: 00:02 (min:sec)

Sunday, March 09, 2008

Folding paper for fun and office decoration

A few months ago I became interested on paper folding as a hobby. I searched the web for origami diagrams. Following the instructions I found, I created some of my own.

I showed them around and after motivation from a colleague, I used these paper foldings to decorate my office space. I hanged some of the from the ceiling using a fishing rod. I chose shapes of birds to hand and placed them on top of plants. The result was quite good and other people came and asked me to fold them some shapes to have on their desks.

An incomplete list of the shapes I have folded:

Pencil holder

Pencil holder origami

Candy dish
Candy dish origami


Swan origami

Rose origami

I folded flying parrots and a cranes to hang for decoration from the ceiling. Pictures will be included on a later post.