The jing-jang of hardware and software support

Ever since the 1980s, a vicious cycle of software and hardware requirements and updates has ‘plagued’ users and maintained high and constant rents to the vendors who systematically collude to render their previous offerings obsolete, while forcing (not enticing) their customers to upgrade to the latest incarnation of their products.

The justification for this form of planned obsolescence has — invariably — involved mention of changing standards, APIs, market and technical requirements, certifications and so on. Perfectly good products have time and again been condemned to retirement only because their manufacturer deemed it uneconomical to maintain support for them.

During the late 1990s and early 2010s, the open source community did much to reverse this process, with varying results. Open source drivers, initially developed by individuals and, later, by small companies aiming to attract revenue from disgruntled users that wanted to preserve their investment in hardware devices, proved that the ‘market’ and ‘economics’ arguments were invalid at best (and deeply hypocritical at worst). Some OEMs quickly embraced open source, providing access to their device driver source code; others maintained a binary blob. Others, when their positioning afforded them the option, maintained their limited support policy.

Sadly the allure of SaaS and cloud-based solutions, the gradual conversion of personal computing equipment to ‘appliances’, both through the proliferation of Android and iOS-based devices, through the integration of erstwhile external components (sound cards, networking, I/O interfaces) and the inevitable demotion of activities previously requiring support for device interconnection (printing is an example), has led to the apparent sidelining of this issue, by both consumers and regulators.

There are many major vendors guilty of this. Canon, who limits support to printers and scanners only a few years after they are released. Native Instruments, who ceases to support hardware devices only a mere 5-6 years post release, citing changing APIs in Windows or macOS, even though those devices are extremely simplistic (the Rig Kontrol 2 and 3 are good examples here) and the community might be able to keep providing support for them for years, had the company released the specifications for writing a device driver. Apple and Microsoft itself, the former removing new features when their software runs on older devices, even though said devices were perfectly adequate, the latter requiring the use of a new CPU to run the latest version of Windows 10, again for no good reason.

This type of behaviour, along with vendor lock in, constitutes rent-seeking and is harmful, for all the reasons rent-seeking is harmful, both to the economy, consumers, the environment and competition.

And this is one case where regulators should step in. In the EU the warranty for defects is mandated to be at least 2 years. But there is no mention of support periods for dependent products. Regulators require either longer term support for products sold (explicitly setting minimum terms to the pre-sale specifications put forth by the vendor) or opening up of full, detailed specifications for all parts, components or mechanisms involved in the product(s) involved to the public at no cost for the community (or competitors) to maintain.

As long as the operating framework remains unchanged there is little to no incentive for any vendor to change their ways and start supporting their devices for the long haul.



Δυο ημέρες με το Myo

Πριν από τρία περίπου χρόνια εξετάζαμε το ενδεχόμενο ανάπτυξης του AthensBook ως ένα ‘φυσικό’ αντικείμενο (κιόσκι) το οποίο θα βρισκόταν σε συγκεκριμένα σημεία στην πόλη (π.χ. στο lobby ενός ξενοδοχείου, ενός δημόσιου κτηρίου ή την σάλα ενός καταστήματος) και θα επέτρεπε σε περαστικούς αλλά και τακτικούς χρήστες της εφαρμογής να λάβουν υπερ-τοπικές πληροφορίες ακόμη και όταν δεν είχαν μαζί τους κάποια συσκευή που υποστηρίζουμε (η διείσδυση των smartphones το 2011 ήταν αρκετά — πιο — περιορισμένη απ’ότι σήμερα). Στα πλαίσια της αρχικής έρευνας έκανα μια αίτηση στην Leap Motion για την, ιδιαίτερα καινούργια τότε, συσκευή τους το Leap Motion Controller. Η ιδέα ήταν απλή: να αντικαταστήσουμε το ‘άγγιγμα’ με ‘gestures’ στον αέρα. Να δώσουμε τη δυνατότητα χρήσης της ‘εφαρμογής’ δηλαδή χωρίς την υποχρέωση του αγγίγματος μιας οθόνης (κάτι που είναι, δυνητικά, δύσκολο σε κάποιες περιπτώσεις, όπως π.χ. όταν συναντώνται capacitive touchscreens και γάντια). Λίγο καιρό αργότερα η αίτηση έγινε δεκτή και λάβαμε το Leap Motion SDK και ένα prerelease unit του Leap.

Δυστυχώς η εμπειρία χρήσης ήταν κατώτερη των προσδοκιών. Αφήνοντας τα προβλήματα στη πλευρά του λογισμικού (το οποίο συνεχώς ενημερώνεται και βελτιώνεται) η εμπειρία που είχαμε ήταν αντίστοιχη αυτής που έχει καταγραφεί από αρκετούς, κάποιους περισσότερο και άλλους λιγότερο διάσημους, καθώς και διάφορα μέσα: το Leap είναι ένας πολλά υποσχόμενος, ίσως και επαναστατικός τρόπος χρήσης του υπολογιστή σου αλλά σήμερα δεν είναι ούτε κατ’ελάχιστον έτοιμος για χρήση από το ευρύ κοινό. Τα προβλήματα του είναι αρκετά και πολυδιάστατα: αφενός πρέπει να κρατάς σε σταθερή σχετικά απόσταση το χέρι σου από τον αισθητήρα. Και όσο γυμνασμένο χέρι, μπράτσο και ώμο κι αν έχεις, αυτό γίνεται πολύ γρήγορα κουραστικό, αν όχι αδύνατο. Αφετέρου, δεν έχει καθόλου εύκολο τρόπο να ‘κλείσεις’ τη συσκευή προσωρινά. Τα ‘όρια’ μεταξύ λειτουργίας και παύσης είναι εντελώς αυθαίρετα. Υπάρχουν κάποια gestures που τείνουν να γίνουν πρότυπο αλλά αφενός δεν είναι αποδεκτά απ’όλους ακόμη, αφετέρου πολλές φορές στο μεσοδιάστημα μερικών δεκάτων του δευτερολέπτου που μεσολαβεί ενδέχεται να εκληφθούν κινήσεις και εντολές από τη κίνηση του καρπού, κάτι που σε περιπτώσεις μπορεί να είναι καταστροφικό. Το τελευταίο μέρος σταδιακά βελτιώνεται με καλύτερες βιβλιοθήκες και καλύτερους ‘πελάτες’ αυτών, όμως τέτοια ζητήματα διεπαφής είναι πολύ βασικά και, όπως φαίνεται, δεν έχουν αντιμετωπισθεί συστημικά από το Leap μέχρι στιγμής.

Κατά συνέπεια το Leap είναι μια συσκευή όπου πρέπει διαρκώς να σκέφτεσαι που βρίσκεται το χέρι σου, τι θέση έχει σε τρεις διαστάσεις, κάτι αρκετά κουραστικό πέραν από φυσικά και νοητικά. Τέλος, οι σημερινές υπολογιστικές συσκευές κατά κανόνα δεν ταιριάζουν με το Leap. Ίσως μια μελλοντική συσκευή, απόγονος ενδεχομένως του ‘παραδοσιακού’ υπολογιστή εργασίας (desktop, laptop κλπ), με αισθητήρα μεγαλύτερης διακριτικής ικανότητας, όχι χρονικά (το Leap παίρνει δείγματα στα 290Hz) αλλά χωρικά, που θα απευθύνεται δηλαδή σε άτομα που κάθονται π.χ. πάνω σε ένα ‘έξυπνο’ τραπέζι (βλ. Microsoft Surface — το αυθεντικό, πλέον γνωστό ως PixelSense — όχι η αποτυχημένη-εμπορικά-και-φρανκενστάιν-χρηστικά-ταμπλέτα) να ήταν τελικώς πολύ εύχρηστο. Και φυσικά φαίνεται πως έχει μεγαλύτερο πεδίο εφαρμογής σε ειδικόυς τομείς, όπως π.χ. την μετάφραση νοηματικής γλώσσας σε ‘πραγματικό χρόνο’, κάτι που ήδη γίνεται από προσπάθειες όπως το MotionSavvy, ή την διάγνωση της νόσου του Πάρκινσον κλπ. Λίγους μόνο μήνες μετά την παραλαβή του Leap έμαθα για το Myo της καναδικής Thalmic Labs. Μια συσκευή που επίσης υπόσχεται πολλά, όμως παίρνει έναν εντελώς διαφορετικό δρόμο για να το επιτύχει.

Τι είναι το Myo



» Fira Sans and Fira Mono

After many years of using Inconsolata Hellenic on my linux and OS X boxes as the monospace font of choice for development, I switched to Fira Mono, commissioned by Mozilla for their Firefox OS and designed by Erik Spiekermann. Inconsolata might have been one of the best looking monospace fonts I’ve ever seen – and the fact that it was free made it an insanely great choice – but it was time for a change. Oh and one more thing, Fira has full support for (monotonic) Greek.


» Go and Javascript.

I’m going to go out on a limb and predict that Python is being replaced by Go. I don’t have a lot of information to back up this prediction except that most of the positive articles I read about Go are written by Python developers, and a lot of them say that they are now actively migrating their code base from Python to Go. I don’t see as much enthusiasm for Go from developers using statically typed languages, probably because of Go’s antiquated type system (which is still a big step up from Python, obviously).



geodata.gov.gr: Στις ‘ελληνικές καλένδες’ των Δημόσιων Δεδομένων

Πριν από περίπου τέσσερα χρόνια υπέπεσε στην αντίληψή μου το geodata.gov.gr. Ήταν ένα από τα οράματα του τότε Πρωθυπουργού, για μια Ελλάδα τεχνολογικά ανεπτυγμένη, κοινωνικά δίκαιη, δημοσιονομικά εύρυθμη κλπ. Το geodata.gov.gr ήταν (αναφέρομαι εκούσια και επιτηδευμένα σε παρελθοντικό χρόνο) ένα portal δημόσιας γεωγραφικής πληροφορίας που στόχο είχε να συσσωρεύσει δημόσια πληροφορία και να την διαθέσει στο κοινό, συχνά κάτω από όρους ευνοϊκούς τόσο για προσωπική όσο και για ερευνητική ή εμπορική χρήση.

Ταυτόχρονα με το geodata.gov.gr έγινε αισθητή και η κρίση και το (αφελές) όραμα του τότε Πρωθυπουργού μετασχηματίστηκε σε έναν (έμπρακτο) οικονομικό, πολιτικό και, εν τέλει, κοινωνικό εφιάλτη από τον οποίο ακόμη δεν έχουμε ξυπνήσει. Η πρώτη προσπάθεια δημιουργίας μιας ενημερωμένης, πλούσιας βάσης γεωχωρικών δημόσιων δεδομένων σύντομα άρχισε να δείχνει την ηλικία της. Μέχρι το φθινόπωρο του 2011, όταν διατέθηκαν τα δεδομένα του δικτύου του ΟΑΣΑ, η παρακμή ήταν ήδη εμφανής: τα περισσότερα από τα στοιχεία του geodata.gov.gr ήταν ήδη παρωχημένα, ενώ τα μόλις ανακοινωθέντα δεδομένα του ΟΑΣΑ, που διατέθηκαν βάσει του προτύπου GTFS που σχεδιάσε και χρησιμοποιεί η Google για να προσφέρει λειτουργίες πλοήγησης σε δίκτυα ΜΜΜ ήταν τόσο προβληματικά που ο Phil Stubbings, ένας βρετανός μηχανικός λογισμικού που κατοικούσε εκείνη την εποχή στην Αθήνα και είχε δημιουργήσει, μετά από πολύ κόπο και μεράκι, το zee.gr, ένα φανταστικό project καταγραφής και κωδικοποίησης του δικτύου των ΜΜΜ στην Αθήνα με σκοπό την δημιουργία ενός διαδικτυακού journey planner, έγραφε στο FAQ του zee.gr:

The data however contained many errors, for example buses traveling at the speed of light, missing and corrupt trips and incorrect ordering of stops. For this reason, I have corrected many schedules, added/removed routes and in combination with my initial data-set, effectively have a distinct set of transit data. I believe that OASA (and soon OAS.TH) will provide an updated feed. If interested, keep checking here for updates.

Δυστυχώς, η πίστη του Phil στην Ελληνική κυβέρνηση μάλλον τον πρόδωσε. Παρ’ότι ο ΟΑΣΑ ανανέωσε τον περασμένο Δεκέμβριο τα δρομολόγια (ομολογώ πως δεν έχω ελέγξει την ποιότητα των νέων δρομολογίων για να μπορώ να κρίνω αν είναι καλύτερα από τα παλαιότερα που αναφέρει ο Phil παραπάνω) οι στάσεις και το γενικότερο δίκτυο του οργανισμού παραμένει ανενημέρωτο από το 2011. Η ίδια εικόνα επικρατεί στις περισσότερες άλλες κατηγορίες πληροφορίων, με τον αριθμό των ενημερώσεων που έχουν λάβει χώρα στον δικτυακό τόπο τον τελευταίο χρόνο να μετρούν λιγότερες από δέκα.



Apple UX Regressions

These past few years have been a somewhat turbulent time for Apple. Its market dominance in the smartphone race diminished, its profits holding strong, but investor and analyst confidence evaporated, its once infallible strategy, product line, image and appeal gone and its appeal lacklustre compared to the past.

The post-Steve Jobs Apple gradually shifted its culture as new executives took the reigns and old ones departed. Much publicised was Tim Cook’s change regarding the company’s relationship with analysts and shareholders with the company giving out dividends for the first time in many years, after Steve Jobs steadfastly refused to do so. Also widely reported was Scott Forstall’s firing back in 2012, allegedly for refusing to apologise for botching Apple Maps.

And while Apple’s products are probably as polished as they ever were, there are issues here and there that are more subtle, less obvious and less publicised than Forstall’s joke of a Maps application; issues that differ significantly from Steve Jobs approach of releasing feature-limited versions of extremely polished software cheaply and slowly building upon it until it became a class-leading product with an extremely solid foundation. iOS 7, with its revamped UX and æsthetic was initially riddled with an insane amount of bugs, but also with subtle usability regressions that Apple has been struggling to fix these past few months with its numerous point releases. Design issues like the fact that e.g. in the Calendar application you cannot slide your finger over dates and quickly see events scheduled for the date under your finger, as you could do in the iPhone calendar since the very beginning. Or the moronically coloured shift key in the iOS 7.x keyboard that is way less usable and whose state is not as obvious as it were in the classic iOS keyboard. Or in OS X on the menu bar where the Time Machine icon changes so subtly when a backup is in progress, in stark contrast to earlier versions where an animated icon clearly indicated backup activity. UX regressions that are not merely bugs; they are design decisions.

We have not heard much about the next release of OS X, other than the fact that many of iOS 7’s ‘revamps’ are coming to the Mac. Hopefully the slew of iOS 7 issues and usability regressions will have taught Apple a lesson and 10.10 (or whatever they may number it) won’t suffer from usability issues, regressions and ‘rushed’ releases that were previously not part of Apple’s playbook.


» There goes your airgap.

This latest leak details how the NSA accessed targets by inserting tiny circuit boards or USB cards into computers and using radio waves to transmit data without the need for the machine to be connected to a wider network.

It is a significant revelation in that it undermines what was seen to be one of the simplest but most effective methods of making a system secure: isolating it from the internet.

In other words: the NSA planted tranmitters (or tranceivers) and effectively turned air-gapped machines into machines transmitting to (/receiving from) their systems. Somewhat different from actually snooping on ‘offline’ machines, ala Tempest, as what many ‘news’ organizations hinted at by using inaccurate titles (the BBC, quoted above from this article, included).

Unless all your offices are room-sized Faraday cages, with physical security and extensive background checks of the machine operators, the NSA just invalidated your airgap policy. But then again, your security was probably flawed anyway, especially against an adversary that competent/determined/resourceful.


»  A Colourable iOS 7 Map Pin (Photoshop)

For anyone developing iOS 7 maps-enabled apps, you probably know that the pin image has changed for this version of iOS. iOS has long limited the provided pin colours to Red, Green and Purple. Here is a layered Photoshop file that we used in the latest version of AthensBook and you can use to change the pin colour. Besides the base layer, there are two hue-saturation-brightness layers. You use the first layer titled ‘Brightness’ to change the brightness of the colour. Don’t touch the hue or saturation sliders on this layer. The second layer allows you to change the hue and saturation of the pin colour.

Using both layers allows you to set the pin colour to anything.


Disclaimer: This is obviously based on a pin image that I extracted using UIImagePNGRepresentation and copied the resulting PNG after running the extracting code in the iOS Simulator. The original pin image is (almost certainly) copyrighted by Apple Inc. I am not affiliated with Apple Inc. in any way whatsoever and I am only providing this composite to assist developers in creating iOS 7 applications. I do not claim any copyright on Apple’s intellectual property. If you are an Apple employee or, dog forbid, lawyer, and object to the use of this bitmap, please let me know and I will remove the image. Hopefully you’re not that bothered/braindead and appreciate its value to the Apple Developer community.


Download Spinalonga's Podsafe rock music for your podcast. From Athens, Greece, with love.'