For a few years now I’ve been a happy user of the SwiftKey app. SwiftKey is a predictive keyboard for Android and iOS. I was very skeptical when I tried it the first time, but my mind was blown almost instantly. The app does not just make generic predictions T9 style, but learns from your SMS history, emails, social network posts, and even your blog’s RSS (obviously, only those channels that you allow it access to). With that, the predictions are so accurate that you rarely have to type more than a couple of characters for it to guess. In fact, sometimes it guesses the next word without you even typing anything.
Well, OK, so I wrote this all before. Why am I suddenly retyping this? Because I got an email from SwiftKey with some updates as to what’s happening there. And I think that it’s pretty cool how they’ve taken something so seemingly simple as a keyboard and turned into a … well, not industry yet, but something more and something exciting.
For all those touch-typing fans, they’ve released two keyboard themes Ninja Pro and Ninja Trainer. If you mastered your laptop’s keyboard, enhance and extend your skill to the mobile and tablet now.
SwiftKey 6 beta version is out with some cool features. Most notably – Double-Word Prediction, which should save you even more typing. SwiftKey has also reached 100 supported languages, so you can recommend it to your foreign friends much easier.
And if SwiftKey wasn’t awesome already, they are pushing the boundaries with some real high end computing – neural networks and machine learning. The blog post goes into detail of how this whole approach works and how it makes predictions better.
Wow! Talk about a simple keyboard app for the mobile now … The sky is truly the limit.
Sometimes when I tell people that I have the worst handwriting ever, they think that I’m joking. So, here is some real proof. This is a snapshot of the A1 paper which I used yesterday on a meeting. This is me describing the shipping industry to a colleague of mine.
And that’s me not being limited to either space or time. This is one of the most readable things I’ve ever created. Mostly, because here you can see a diagram ,a list of things, and at least the first letters of the words that I was writing. And, I haven’t layered topic over topic over topic, as I usually do.
The comment from the colleague in regards to this:
There are doctors with the better handwriting than you!
I know. That’s why I touch type.
If you don’t know or remember the expression “death by a thousand cuts”, it refers to an ancient Chinese torture.
Slow slicing [..], also translated as the slow process, the lingering death, or death by a thousand cuts [..], was a form of execution used in China from roughly AD 900 until its abolition in 1905. In this form of execution, the condemned person was killed by using a knife to methodically remove portions of the body over an extended period of time. The term língchí derives from a classical description of ascending a mountain slowly. Lingchi was reserved for crimes viewed as especially severe, such as treason and killing one’s parents. The process involved tying the person to be executed to a wooden frame, usually in a public place. The flesh was then cut from the body in multiple slices in a process that was not specified in detail in Chinese law and therefore most likely varied. In later times, opium was sometimes administered either as an act of mercy or as a way of preventing fainting. The punishment worked on three levels: as a form of public humiliation, as a slow and lingering death, and as a punishment after death.
Then, of course, there is a modern day office variant – “death by a thousand papercuts”, which I won’t go into any detail – you can get the idea.
Well, today I discovered yet another, even more modern variation of that – death by a thousand mouse clicks. And even if you’ve heard that before in regards to a bad user interface, there is another meaning to it. Yesterday I paper cut my right index finger. While it’s not that bad on its own, when combined with a mouse button it is indeed a new form of torture.
Do you have any idea how many times you click, double-click and wheel-scroll every day? A lot! I tried to count but I don’t know a number that large. Except gadzillion, to which I don’t know how to count. Anyway, even if you don’t use your mouse so much, you still need to type, don’t you? And typing with the cut on the index finger is more annoying than with any other finger. All because of those little nobs they put on keys F and J so that you could find the home row. Good thing I’m not bleeding at least…
Miguel de Icaza – a very well known programmer in Linux circles – shares a few tips to having a better experience in Unix environments. Here is a summary of what he recommends:
- Read, learn, and memorize the “Unix Programming Environment” book by Kernighan and Pike.
- Read and learn the “Unix for the impatient” book by Abrahams and Larson.
- Learn Emacs.
- Use Midnight Commander, which Miguel is the author of. Here is a handy manual.
- Keep a copy of the “Unix Power Tools” book nearby.
- Learn touch typing.
These are all solid recommendations. I’d suggest to use Vim instead of Emacs, but that’s more of a personal preference – learn one or the other. And I can’t agree more on the touch typing. That is indeed the most important skill that you will ever learn. Right next to the camp fire starting.
At this point you might be thinking “I am awesome”, “the world is my oyster” and “Avatar 3D was not such a bad movie”.
But unless you touch-type, you are neither awesome, nor you are in a position to judge the qualities of the world as an oyster or any James Cameron movies.
You have to face the fact that not only you are a slow typist, you do look a little bit ridiculous. You are typing with two maybe three fingers on each hand and you move your head like a chicken as you look at you alternate looking at your keyboard and looking at your screen.
Do humanity a favor and learn to touch type.
Today I engaged in yet another discussion about the need of touchtyping for programmers with few of my collegues. My position on this issue is ver well known – I think that touchtyping is a requirement for a good programmer. I accept, of course, that there are few good programmers out there who can’t touchtype, but they are very few and they are only an exception that supports the rule.
While in said discussion, I was trying to come up with a good analogy from a non-IT area for a programmer who can’t touchtype. I know of two ways to come up with a good analogy.
Continue reading “Touchtyping analogy”