Sunday, November 18, 2012

Typewriting Accessibility

My grandfather used to typewrite in the past, but has used computers very little. He recently turned 90, and begins to use an android tablet. His main motivation for the use of the tablet, is to be able to write a book he cares about. It has been for me the opportunity, to improve my skills with regards to accessibility. The problem I have to resolve is to make the task accessible to my grandfather, so that he can use it without me, without errors, without losing his work and still be able to get my help from a distance when he needs it.

It was also my first experience with an android tablet. Well It was really disappointing. Globally it works OK, but the devil is in the details. My first idea was to check for an easy typewriting application. But I couldn't find any which was not missing a key feature : Only one action to open document, fullscreen, autosave, automatic versioning, block caret, simplest possible use, and keyboard accessibility features. 

Then I basically have two choices, either I roll my own android application, or I go for the quick win with remoting. I choose to go with the quick win. I go to the android market to get a vnc app. The free android vnc app looks exactly like the one I want : one click access to the remote location. But it's missing a key simple feature, which makes it useless over distance : compression (and encryption)!!! Other numerous free vnc applications are all harder to use, and miss some features. Except for one : "free bVNC",  which is the open souce android vnc app with the missing feature added by some russian developper. Exactly what I needed. 

Then I'm back in kwown world. On a computer somewhere in the world, I create a virtual machine, install Centos 6, install geany (i.e. notepad++), configure block caret in geany, configure current line color, configure keyboard with accessibility options (filter fast repeated key), adding autosave/autoarchive plugin to geany. Adding the file to a versionning system (mercurial with a little script to autocommit and an occasionnal save to a remote location). Then fullscreen in geany. (The only drawback of geany is that in fullscreen mode you have still a menu line (but you can modifiy the source if you want) ). I also configure Centos to accept multiple vnc user on the same display.
I launch the vncserver -geometry 1280x752, and configure free bVNC to be able to connect in one action.

Then it's OK, my grandfather can type his book. He plugs his azerty keyboard in the android tablet. And then the tablet recognize it as an qwerty. If you want to be able to use it as a azerty keyboard, you have to use an app which you have to grant full permission !!! Without rooting the tablet, there is no easy way to use the azerty keyboard, (probably because this allows Acer to sell specific 100$ keyboards for this tablet). But because I use a remoting system, I configure the Centos keyboard, and the keyboard is now OK to type the book.

Latency is very low, even over distance, and everything is working like a charm, (obviously the tablet needs internet but that is the one thing that usually works with tablets).
I'm even starting to consider using tablets for my usage as remote screens to clouds. It's a bit of an overkill, but at least, overkilling is easy and generic. One negative point noted is the sound over VNC is not yet supported.

Friday, November 16, 2012

CloudFlare

A company which as experienced a great increase in usage over the last years, but which is unknown to non IT specialists. It's a content delivery network. It helps internet sites to load webpages faster. CloudFlare also prevents Distributed Denial Of Service.

The principle is easy, from the website user perspective, it's like your site is hosted by CloudFlare. The user never know the real ip of your server, and dialogs only with a CloudFlare machine. Your server only dialog with CloudFlare machines (so you can block all other traffic easily and fast if your ip is somehow discovered). For the technical details : They have a bunch of worldwide distributed ips, and behind each of these ips hides a reverse proxy (a customized nginx server using consistency hashing).

They are a very small structure of less than 50 people. And have scaled very rapidly using opensource and big data technologies. They analyse and filter all the data that goes through them, i.e. all the data of CloudFlare websites. They act as a SSL endpoint. This mean you don't have to own a ssl certificate. But it also means they decrypt all the traffic, and possibly inject anything. Oh, by the way, their terms of use, grant them ownership of everything that pass through them...

But they have very attractive pricing starting gratis. Lots of users, lots of traffic, very easy to use. An other player which is centralizing Internet. This is Man in The Middle 2.0.