development


Μελέτη του Αμερικανικού Υπουργείου Άμυνας για το ανοιχτό λογισμικό στις Ένοπλες Δυνάμεις 2

Staff Pre-Combat ChecksΚαταλαβαίνω ότι πολύ από εσάς μάλλον αισθάνονται τουλάχιστον άβολα στην αναφορά και μόνο του Υπουργείου Αμύνης των ΗΠΑ και αρκετοί που αισθάνονται άβολα στην αναφορά σε οποιοδήποτε οργανισμό φέρει όπλα. Ο οργανισμός αυτός ειδικά στις ΗΠΑ, αποτελεί σημαντικότατο παράγοντα αυτό που κάποιοι βλέπουν ως την ραχοκοκαλιά της Αμερικάνικης ισχύος, την δυνατότητα της να προβάλει σημαντική στρατιωτική ισχύ σε περισσότερα του ενός μέρη του κόσμου.

Ανεξάρτητα από αν συμφωνεί κανείς είναι προφανές ότι το υπουργείο άμυνας των ΗΠΑ είναι ένας πολύ μεγάλος οργανισμός, για την ακρίβεια έχει περίπου 718000  σε πολιτικό προσωπικό, 1418000 εν ενεργεία στρατιωτικό προσωπικό και κάτι παραπάνω από 1100000 σε εφεδρεία και ο προϋπολογισμός του υπολογίζεται γύρω στα 550 δισεκατομμύρια δολάρια (είναι όσα χρωστάει η Ελλάδα μαζί με όσα βγάζει μέσα σε ένα χρόνο).

Λίγες ημέρες πριν, βρήκα στο site της Chief Information Officer του Department of Defence (ναι δεν έχουν μόνο οι πολυεθνικές από ότι φαίνεται) αν και οι περισσότερες αναφορές που βρήκα θα έλεγα ότι για διαδικτυακά δεδομένα και για τα δεδομένα της ταχύτητας με την οποία αναπτύσσεται το ελεύθερο λογισμικό θα έλεγα ότι είναι κάπως πεπαλαιωμένες διαπίστωσα ένα σημαντικό ενδιαφέρων στο ελεύθερο λογισμικό και λογισμικό ανοιχτού κώδικα από την πλευρά του Αμερικανικού Υπουργείου Αμύνης ήδη από το 2003, πολύ πριν ο όρος open source γίνει ευρύτερα διαδεδομένος.

arizonaΩστόσο ένα κείμενο ήταν αρκετά ενδιαφέρον και εκτενές που νομίζω ότι άξιζε να του ρίξω μια ματιά. Το κείμενο είχε το τίτλο Open Source Development – Lessons and best practices for military software και είχε αρχική ημερομηνία δημοσίευσης τον Ιανουάριο του 2011 σε επιστημονικό περιοδικό και δημοσιεύτηκε στο site της CIO του DoD τον Μάιο του ίδιου έτους. Οφείλω να ομολογήσω ότι όταν πρωτοάνοιξα το pdf δεν περίμενα να διαβάσω κάτι ιδιαίτερα ενδιαφέρον, για την ακρίβεια πίστευα ότι μάλλον απλά θα έστελνα ένα link σε δύο-τρία άτομα που γνωρίζω και εργάζονται στις Ένοπλες Δυνάμεις. Όμως βιάστηκα  γιατί όταν άρχισα να διαβάζω τα περιεχόμενα του κειμένου πείστηκα ότι πρόκειται για πολύ ενδιαφέρον ανάγνωσμα.

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

“Φανταστείτε μόνο ο κατασκευαστής ενός όπλου να επιτρεπόταν να καθαρίσει, να διορθώσει, να τροποποιήσει και να βελτιώσει το όπλο αυτό. Οι ένοπλες δυνάμεις συχνά βρίσκονται στην θέση αυτή με χρηματοδοτημένο από τους φορολογούμενους λογισμικό που έχουν αναπτύξει οι προμηθευτές τους, προμηθευτές που έχουν το μονοπώλιο στην γνώση του συστήματος λειτουργίας αμυντικού λογισμικού και στον έλεγχο του πηγαίου κώδικα του. Αυτή η κατάσταση είναι ιδανική μόνο για τον προμηθευτή αλλά συνδράμει στην κυβερνητική αναποτελεσματικότητα, μειώνει της ευκαιρίες για την βιομηχανική βάση, περιορίζει σοβαρά τον ανταγωνισμό για τις αναβαθμίσεις λογισμικού, εξαντλεί πόρους που θα μπορούσαν να χρησιμοποιηθούν αποτελεσματικότερα και σπαταλά χρήματα των φορολογουμένων.”

Αν τα παραπάνω ισχύουν στις Ηνωμένες Πολιτείες φανταστείτε ότι στην χώρα μας αλλά και σε χώρες που επικρατούν ανάλογες συνθήκες ορισμένα από τα στοιχεία αυτά είναι ακόμη περισσότερο οξυμένα. Θα μπορούσε μια χώρα σαν την Ελλάδα να αναπτυχθεί λογισμικό αμυντικών εφαρμογών ανοιχτού κώδικα; Φυσικά, άλλωστε όλες οι ανάγκες λογισμικού στις ένοπλες δυνάμεις δεν είναι αυστηρά λογισμικό για πχ το firmware του τελευταίας γενιάς πυραύλου. Μπορεί να είναι από λογισμικό γενικής χρήσης (από τα βασικά όπως ένα λειτουργικό σύστημα) μέχρι λογισμικό που κανένας δεν μπορεί να έχει ιδέα για ποιο λόγο μπορεί να χρησιμοποιείται.

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

Δεν είναι η πρώτη φορά που το DoD ασχολείται με την ανάπτυξη λογισμικού ανοιχτού κώδικα, είναι χαρακτηριστικό ότι το Δεκέμβριο του 2010 έγραφα για ότι το DoD έχει αναπτύξει δική του διανομή Linux για να εξασφαλίσει την ασφάλεια στις επικοινωνίες του. Νομίζω ότι η χρήση ελεύθερου λογισμικού και σε κάποιες περιπτώσεις ακόμη και υλικού ανοιχτού κώδικα θα μπορούσε να είναι μια βιώσιμη λύση.

 

 


σχεδιάστε ανοιχτό hardware και κερδίστε

Αν σχεδιάζετε ηλεκτρονικά κυκλώματα και έχετε εμπειρία με την Propeller  Platform ή Propeller Platform USB, (ειδικά θα έλεγα ότι το Propeller USB είναι το πλέον διαδεδομένο από τα δύο, τα σχέδια της πλατφόρμας έχουν γίνει διαθέσιμα κάτω από την άδεια Creative Commons Zero) μπορείτε να συμμετάσχετε στο ανεπίσημο διαγωνισμό της Gadget Gangster που ανακοινώθηκε στο φόρουμ των Savage Circuits και να κερδίστε κάποιο τα ακόλουθα δώρα αναπτύσσοντας ανοιχτού κώδικα modules για την πλατφόρμα.

Ο διαγωνισμός λήγει στις 1ο Οκτωβρίου 2011 όποτε αν τα καταφέρετε μέχρι τότε θα έχετε πιθανότητα να κερδίστε ένα από τα ακόλουθα.

Πρώτος Νικητής: Το πλήρες κιτ της Gadget Gangster και ένα Nook Color της Barnes & Noble.

Δεύτερος Νικητής: Το Propeller Multicore Startup Special και ένα t-shirt Gadget Gangster

Τρίτος Νικητής: ένα El Jugador Module και ένα kit του Propeller Platform

οι διοργανωτές μου επιβεβαίωσαν ότι ο διαγωνισμός είναι διεθνής και αν κάποιος είναι νικητής τα δώρα θα έρθουν ως προσωπικά δώρα που τυπικά στα περισσότερα μέρη του κόσμου (λογικά και στην Ελλάδα) αυτό σημαίνει ότι δεν υπόκεινται σε τελωνεία

Πως θα υπολογιστεί ο νικητής; Θα εξαρτηθεί από τους εξής παράγοντες.

κατά 30% από την δυνατότητα για συμμετοχή από την κοινότητα: οι διαγωνιζόμενοι καλούνται αρχίσουν ένα thread για το project τους στο forum των Savage Circuits και θα προσθέσουν ένα link στο thread του διαγωνισμού. Οι διαγωνιζόμενοι οφείλουν να αναπτύξουν δημόσια τα project τους και να συνεργαστούν με τα άλλα μέλη για το τελικό αποτέλεσμα. Επίσης αν αναθεωρούν τα σχέδια τους ή τον κώδικα τους είναι καλό να παραμένει στο thread ώστε να μαθαίνουμε καλύτερα ο ένας από τα λάθη του άλλου.

κατά 25% από τις δυνατότητες και καταλληλότητα του σχεδίου: τα modules που καλείστε να σχεδιάστε θα πρέπει να είναι συμβατά με την Propeller Platform (ή άλλες συμβατές dev boards), λογικά καθώς οι περισσότεροι χρησιμοποιούν το Propeller Platform USB καλό είναι να το λάβετε αυτό υπ’όψιν σας.

κατά 25% από την χρησιμότητα: το σχέδιο σας θα πρέπει να είναι χρήσιμο όχι μόνο σε εσάς αλλά και στους άλλους

και κατά 2ο% από την ευκολία αναπαραγωγής:όλα τα σχέδια και ο κώδικας θα πρέπει να είναι ανοιχτά, αν δεν γνωρίζετε πως να χρησιμοποιήστε ένα εργαλείο δημιουργίας schematics ή PCB δώστε καλή και αναλυτική τεκμηρίωση της δουλειά σας

Αν έχετε αρχίσει να ψήνεστε ρίξτε μια ματιά σε αυτόν τον οδηγό για να αποκτήστε μια αρχική εικόνα για το τι είναι και τι μπορεί να κάνει ένα module στην πλατφόρμα Propeller.

 


Αndroid + Αrduino = έξυπνες συσκευές παντού; 1

Στο Google I/O Summit (όπου I/O βγαίνει από το input/output δηλαδή είσοδος/έξοδος δεδομένων) ανακοινώθηκε μεταξύ ένα σωρό άλλων πραγμάτων όπως το Chromebook (laptop που θα τρέχουν το ChromeOS, το οποίο μπορείτε να δείτε πάνω-κάτω πως δουλεύει τα ωραιότατα builds που έχει φτιάξει ο Hexxeh χρησιμοποιώντας ένα USB ), την νεώτερη έκδοση (3.1) του Android SDK  και ένα νέο στοιχείο την πλατφόρμας Android που μάλιστα είναι (backported δηλαδή συμβατό με την έκδοση Android 2.3.4) την υποστήριξη Android Open Accessory.

Τι είναι είναι όμως αυτό το Android Open Accessory και γιατί είναι σημαντικό για το την πλατφόρμα του Android, και που κολλάει το Arduino; Λοιπόν ας τα πάρουμε ένα ένα με την σειρά για να βγάλουμε άκρη. Μέχρι πρόσφατα, όταν είχατε ένα κινητό Android ουσιαστικά δεν μπορούσατε να χρησιμοποιήστε παρά ελάχιστα το USB σας. Οι πιο συνηθισμένες επιλογές που είχατε ήταν να το χρησιμοποιήστε το κινητό σας ως συσκευή εξωτερικής αποθήκευσης είτε σε ορισμένες περιπτώσεις ως τρόπο για να έχετε internet στο υπολογιστή σας. Αλλά το κινητό σας δεν είχε τρόπο να αρχίζει επικοινωνία προς μια άλλη συσκευή USB και να την ελέγξετε.

Τώρα με το Android Open Accessory δίνεται η δυνατότητα στο κινητό σας να βλέπει συσκευές σχεδιασμένες ειδικά για το Android Open Accessory με ένα απλό πρωτόκολλο επικοινωνίας.  Ενώ στο μέλλον θα έχουμε την δυνατότητα επικοινωνίας και μέσω Bluetooth. Ωραία! Θα μου πείτε αλλά το πρώτο πράγμα που θα σκεφτείτε είναι ο μπελάς για το πως θα φτιαχτούν τέτοιου είδους συσκευές σωστά; Εδώ έρχεται το Arduino! Βλέπετε μπορεί όπως πολύς κόσμος εκεί έξω μπορεί να γκρινιάζει ορισμένες φορές για το πόσο υπερβολικό είναι να χρησιμοποιεί κανείς την πλατφόρμα ηλεκτρονικών Arduino για να κάνει απλά πράγματα. Όμως το Arduino έχει ένα βασικό ατού, είναι ότι πρέπει για την ανάπτυξη πρωτοτύπων και δοκιμαστικών συσκευών. Ειδικά με την χρήση shields μπορείς κανείς να προσθέσει μια πλειάδα από έτοιμα προς χρήση κυκλώματα (λες και είναι τουβλάκια) lego από την άλλη το Arduino έχει μια σαφώς πολύ εύκολη γλώσσα προγραμματισμού (από την Assebly που συνήθως χρειάζεται για να προγραμματίσει κανείς ένα μικροελεγκτή).

Τι κάνει λοιπόν η Google, προσφέρει το Android Open Accessory Development Kit ή ADK. Μια υλοποίηση του Arduino (είδατε τι καλό που είναι όταν μια πλατφόρμα είναι ανοιχτό hardware) που υποστηρίζει το Android Open Accesory. Φυσικά μπορείτε να κατεβάστε το απαραίτητο λογισμικό ώστε να λειτουργήσει στο ίδιο πακέτο θα βρείτε και τα σχέδια για το hardware αν μπορείτε και θέλετε να τα φτιάξτε μόνοι σας (ανοιχτό hardware λέμε όχι αστεία) φυσικά υπάρχει η δυνατότητα να τα αγοράστε. (Κοστίζει γύρω στα 275 euros και φτιάχνεται στην Ιαπωνία)

Επειδή φυσικά το Arduino είναι μεγαλούτσικο, ακριβούτσικο και γενικά δεν είναι ότι πρέπει για μαζική παραγωγή συσκευών υπάρχει και η δυνατότητα χρήσης μιας development board βασισμένης στο πολύ διαδεδομένο και μακράν φθηνότερο και μικρότερο microcontroler PIC με το οποίο μπορείτε να φτιάξτε πρωτότυπα που θα είναι πιο κοντά σε προϊόντα παραγωγής η οποία έχει μεν μικρότερο κόστος (γύρω στα 56 euros) που αν και δεν είναι βασισμένη στο ADK μπορείτε να την χρησιμοποιείστε για να φτιάξτε τα δικά σας Open Accessories.

Τα συγκεκριμένα στοιχεία είναι τα απαραίτητα για να δούμε μια ολόκληρο σειρά από νέου τύπου συσκευές (open accessories) που θα επικοινωνούν με συσκευές Android (και επειδή τελικά το πρωτόκολλο του Android Open Accessory είναι ανοιχτό και τεκμηριωμένο σε βάθος ίσως στο μέλλον δούμε και άλλου τύπου συσκευές με λειτουργικά εκτός του Android να επικοινωνούν με τέτοια μπλίμπλίκια). Δυνητικά η τεχνολογία αυτή έχει την δυνατότητα να δημιουργήσει μια νέα αγορά gadgets που μπορεί να μετατρέψει πλέον το κινητό τηλέφωνο μας ή το tablet μας σε ένα universal τηλεχειριστήριο.

Ένα από τα βασικά στοιχεία που μπορούν να επιδράσουν στην υιοθέτηση του Android Open Accesory είναι το γεγονός ότι τα απαραίτητα εργαλεία για την δημιουργία πρωτοτύπων συσκευών είναι όχι μόνο διαθέσιμα αλλά και ανοιχτά που σημαίνει ότι στο μέλλον μπορεί να δούμε ακόμη περισσότερα εργαλεία ανάπτυξης στο συγκεκριμένο πρωτόκολλο. Είμαστε κατά την γνώμη μου πολύ μακριά από το “έξυπνο” σπίτι που όλες οι συσκευές διαχειρίζονται και δίνουν δεδομένα στο κινητό μας τηλέφωνο όμως το γεγονός ότι πολλές από τις εταιρείες που φτιάχνουν συσκευές κινητής τηλεφωνίας που χρησιμοποιούν το Android είναι κατασκευαστές και άλλων ηλεκτρονικών με ονόματα όπως η Alcatel, η Haier, η Kyocera, η LG, η NEC, η Samsung, η Sharp, η Toshiba.

Δεν είναι η πρώτη φορά που έχουμε δει συνδυασμό των τεχνολογιών του Android και του Arduino σε πρωτότυπα, μόλις πριν λίγες ημέρες είχαμε αναφερθεί στο Paperphone, το εύκαμπτο smartphone που το λειτουργικό του σύστημα βασίζεται στο Android και χρησιμοποιεί το Arduino για την συλλογή δεδομένων. Ο συνδυασμός του Android και του Arduino ειδικά σε επίπεδο πρωτότυπου αποτελεί μια εξαιρετική λύση για την ανάπτυξη και το σχεδιασμό συσκευών τεχνολογίας που αξίζει να του ρίξουμε μια ματιά.


ένα δώρο από την Lockheed Martin για τους προγραμματιστές C++ 1

F-35 Lightning II (Nose)Γνωρίζω ότι πολλοί φίλοι αναγνώστες του blog ασχολούνται με τον προγραμματισμό στη γλώσσα C++, πρόσφατα η Lockheed Martin η εταιρεία που είναι υπεύθυνη για την ανάπτυξη του νέου μαχητικού πολλαπλού ρόλου των Αμερικανικών Ένοπλων Δυνάμεων έδωσε στην δημοσιότητα ένα εσωτερικό έγγραφο με τίτλο Joint Strike Fighter Air Vehicle C++ coding standards for the system development and demostration program. Αν ασχολείστε ή επιθυμείτε να ασχοληθείτε με την ανάπτυξη κώδικα στην C++ μην διστάσετε να ρίξε μια ματιά στο κείμενο αυτό, η χρήση του ίσως σας γλυτώσει πολλές ώρες δουλείας.

JSF_AV_C++_Coding_Standards_Rev_C

Καλές Γιορτές.