C#


αυτοματοποιήστε τις πληκτρολογήσεις σας…

Το Autokey είναι ένα πρόγραμμα που έχει σαν στόχο να δώσει στους χρήστες Linux την δυνατότητα να συνδυάσουν δημιουργήσουν ένα συνδυασμό πλήκτρων ώστε να  πληκτρολογούν κείμενα σε όποια εφαρμογή χρειάζεται. Η εγκατάσταση του είναι πολύ εύκολη ενώ υπάρχει ήδη σε πολλά repositories για να το εγκαταστήσει κανείς χωρίς ιδιαίτερο κόπο. Για να  χρησιμοποιήσει κανείς το Autokey και να πληκτρολογήσει αυτοματοποιημένα  ένα ή περισσότερα κείμενα μπορεί να το επιλέξει είτε μέσω ενός συνδυασμού πλήκτρων (πχ. shift+F1), μέσω μια συντόμευσης στο ίδιο το κείμενο (πχ adr1) είτε μέσω εικονιδίου στο system tray.

Κατ’αρχάς πρέπει να πούμε ότι υπάρχουν δύο διαφορετικές εκδόσεις του  το Autokey για το KDE και το Gnome αντίστοιχα ώστε να προσαρμόζεται στα δημοφιλή περιβάλλοντά εργασίας στο Linux με πολύ εύκολο τρόπο.

Εκτός από απλό κείμενο μπορείτε να γράψετε ολόκληρα script γραμμένα σε python, μάλιστα το Autokey χρησιμοποιεί ενσωματωμένο code editor (το QScintilla στο KDE και το GtkSourceView2 στο GTK). Μάλιστα μπορείτε να χρησιμοποιείτε regular expressions ώστε ένα script στο Autokey να έχει διαφορετική συμπεριφορά δύο παράθυρα που έχουν διαφορετικό τίτλο.

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

Εναλλακτικά για τους χρήστες Windows υπάρχει το ιδιαίτερα δημοφιλές (και μάλιστα κάτω από άδεια GPLv2) ΑutoHotKey που έχει πολλές και εντυπωσιακές δυνατότητες (μακράν περισσότερες αυτών του Autokey) επίσης μια αξιόλογη προσπάθεια για δημιουργία μιας διαπλαφορμικής έκδοσης του AutoHotKey (με την βοήθεια της C#) είναι το IronAHK.


H C#, το Mono, ο Stallman και η “υπόσχεση της MS” 2

escapeΜια από τις πλέον σύγχρονες γλώσσες προγραμματισμού που πολλοί προγραμματιστές πίνουν νερό στο όνομα της είναι η (προφέρεται η ως C sharp). Αυτή η γλώσσα προγραμματισμού αναπτύχθηκε από την Microsoft και εμφανίστηκε το 2001 (στα πλαίσια του .NET) και δανίζεται στοιχεία και σύνταξη από την C και την C++.  Σύντομα η C# και το Commoun Language Infrastructure (CLI) που είναι απαραίτητο για να γράψει κανείς λειτουργικό κώδικα σε C# έγιναν στάνταρ από το ISO και από την ECMA.

Καθώς λοιπόν η C# και η CLI αποτελούν διεθνή καθιερωμένα στάνταρ είναι αδειοδοτημένα βάση της συμφωνίας RAND (reasonable and non-Discrimatory) που ορίζει ότι αν μια εταιρεία έχει πατέντες πάνω σε μια τεχνολογία που ειναι διεθνές στάνταρ οφείλει να δώσει δικαίωμα χρήσης των τεχνολογιών αυτών σε τρίτα μέρη που επιδιώκουν να υλοποιήσουν τα στάνταρ αυτά. Πρόσφατα η Microsoft θέλησε να επιβεβαιώσει την συμφωνία αυτή εφαρμόζοντας την περίφημη Community Promise της στα ECMA 334 (περιγραφή της C#) και ECMA 335 (που περιγράφει το CLI). Τονίζω ότι η Community Promise δεν έχει ακόμη εξεταστεί από ανεξάρτητους νομικούς για την συμβατότητα της με την GPL ή με οποιαδήποτε άλλη άδεια ελεύθερου λογισμικού.

Από την άλλη πρέπει να υπενθυμίσουμε πρόσφατο άρθρο του Richard Stallman του προέδρου του ιδρύματος ελεύθερου λογισμικού και εμπνευστή της άδειας GPL που χρησιμοποιούν πολλά προγράμματα όπως το Linux ο οποίος προειδοποιούσε του χρήστες ελεύθερου λογισμικού να μην βασίζονται στην Mono (την open source υλοποίηση του .NET που έχει σπόνσορα την Novell) καθώς υπήρχε ο κίνδυνος η Microsoft να προχωρήσει σε νομικές κινήσεις ενάντια ελεύθερων υλοποιήσεων της C#.  Σε απάντηση των πρόσφατων εξελίξεων ο Miguel de Icaza που είναι ηγέτης του Mono project προχώρησε σε ένα άρθρο στο blog του που όχι μόνο περιγράφει την κατάσταση αλλά αναφέρει σε διαχωρισμό του Mono σε δύο κομάτια το ένα θα ακολουθεί πιστά τα στάνταρ της ECMA και το άλλο θα περιλαμβάνει και τις υλοποιήσεις του Mono για το ASP .NET, το ADO .NOT, τα Winforms και ένα σωρό άλλα.

Με λίγα λόγια αυτό δεν αλλάζει πολύ τα πράγματα κατά την γνώμη μου καθώς για να φτιάξεις πραγματικά χρήσιμο ή τουλάχιστον κάτι που να βγαίνει στο web, να έχει πρόσβαση σε βάσεις δεδομένων ή απλά να έχει ένα βασικό γραφικό περιβάλλον χρειάζονται κομμάτια του Mono που δεν τεκμηριώνωνται από την ECMA. Τελικά ο προγραμματιστής αποφασίζει σε τι γλώσσα προγραμματισμού θα γράψει το λογισμικό του και μην ξεχνάτε ότι οι πατέντες λογισμικού δεν έχουν εφαρμόζωνται στην Ευρώπη (τουλάχιστο όχι ακόμη, ευτηχώς).