Disclaimer

The content of this blog is my personal opinion only. Although I am an employee - currently of Nvidia, in the past of other companies such as Iagination Technologies, MIPS, Intellectual Ventures, Intel, AMD, Motorola, and Gould - I reveal this only so that the reader may account for any possible bias I may have towards my employer's products. The statements I make here in no way represent my employer's position, nor am I authorized to speak on behalf of my employer. In fact, this posting may not even represent my personal opinion, since occasionally I play devil's advocate.

See http://docs.google.com/View?id=dcxddbtr_23cg5thdfj for photo credits.

Tuesday, January 05, 2016

Dynamic Keypad / User Interface Elements (Quadro, Keypad)

BRIEF

When I started I expected this to be a review of several user interface packages, beginning with Keypad.   But I fell in love with the second package I tried, Quadro, so it has turned into a set of notes, mainly about problems, with Quadro.

Let me be clear:

Quadro (and Keypad, and several other apps) are "dynamic UI touchpads".  Software apps running on your touchpad cellphone or tablet, where you can define macros to interact with apps, typically on another device like your Apple Mac or Windows PC.

Quadro runs on an iPhone or iPad, and controls a Mac or PC.  Closed source, questionable security.

But... I love Quadro.   I want Quadro, or tools like it, to be popular, available everywhere, and successful - because I believe that tools like Quadro will help make me more successful in my work.

I like Quadro enough that I very quickly paid 50$ to support its development. Quadro is freemium, free to most users - but I believe in supporting stuff that I like.

I like Quadro enough that I am considering buying a used iPad so that I can get more surface area for buttons.

Quadro has problems, some noted here.   Some of these problems are severe enough that at the time I am writing (Jan 8, 2016), I would not recommend Quadro to most users.  But if these problems are fixed, if Quadro works reliably, I would recommend it to almost anyone who uses the computer for more than a few hours a day.



DETAIL

ISO of better User Interfaces

Not just "apps written by the original author that have better user intefaces" - although that is good.  Here I am specifically talking about tools to give myself a better user interface for an existing app written by someone else.

I have long been an advocate of "single command key big button email reading" (se notes at bottom). I have mashed up macros and menus and buttons to do this in many systems: AutoHotKey, various web tools.  Custom keyboard shortcuts. Etc.  Emacs, of course.

Recently, over Xmas, sharpening this particular saw: started off by starting to use Karabiner on MacOS (which allowed me to create keyboard shortcuts bound to spacebar, the only "big button" that is commonly available).  Frustrated because I need more than one big button, I started googling for physical buttons that I might be able to bind actions to, which led me to https://flic.io/.  Looks neat; if I had seen this during the funding phase, I would have signed up; but the current flick button looks too thick for my application: I would like to have a few such buttons stuck to my laptop, next to the trackpad.  Thin enough so that the laptop would close. Besides, I really wish that it had electric paper display surface so that I could display its current binding.

This line of thought led me to thin about an app or apps that would run on my iPhone (or one of my old Android devices), touchscreen key shapes, that would send commands, shortcuts, to my laptop, or to other apps on the iPhone.   User definable, so that I could always have a custom pad of the 4 or so commands that I am using most often.

Searching for things like "Android remote keyboard for laptop" and "iPad touch control of PC" led to first the Keypad app for iPhone http://keypad.iosproapps.com/, and then to Quadro  http://quadro.me/

Actually, to many, many, remote keyboard, mouse, keypad, joystick and other apps.  Keypad and Quadro are just the first two that I have started to look at.

Briefly: (more detail in separate sections)

Keypad easy to use.  VNC based.   Does not work with encrypted VNC - 8 character passwords. Gah!!!!  But easy to use.   Got something working in a few hours.  And then ran into problems like lack of version control, GUI only, no text file representation.

Looking for something better: of the many alternatives, Quadro seemed to have the biggest aspirations.   Security unknown.  Handshakes, interacts, with apps, not just macros sent blindly across. Version control?  Text files?  Harder to set up than Keypad.  Nevertheless, has aspirations, expressed in incoherent Italian inspired English: putting my money where my mouth is, I am about to pay 50$ to support further development.

This blog entry to record notes about Keypad, Quadro, and the overall field of such apps.   Notes about Quadro to collect and hopefully suggest to developer; notes overall because I want such better user interfaces.   I'm a CPU designer, but it's all about the user interface, baby!!!


(Gosh, I wish that blogger had a TOC.  Need to stop using this.)

Keypad App

http://keypad.iosproapps.com

Very easy to set up a custom keypad.  Nice collection of buttons, widets.  Swipe pad. For that matter, allows full touch control.

The usual problem of macro shortcut bindings: lack of interaction.  What happens if a binding is pressed, but not appropriate for the current app? Etc.

VNC based.  Recommends non-encrypted VNC, only 8 characters of password.  Gah!

Security offputting.  My last straw was realizing that there was no easy way to diff configurations.  No text file.   They do allow you to save and email config fules to yourself, but the format is binary.

So I kept looking.

Quadro

http://quadro.me/

Googling kept turning up Quadro.

Eventually realized that I had written enough about Quadro to warrant aa page of its own: http://blog.andy.glew.ca/2016/01/quadro-i-love-it-when-it-works-but-it.html

Currently, Jam 10, 2016, after a week of using Quadro, 
  • I am still hopeful that Quadro will be a good tool
  • I am frustrated, driven to exasperation, by how unreliable and flakey Quadro is.
    • Almost par for the course with this sort of application, although I suspect that Quadro, because of its command rather than keyboard orientation, hangs more than most more "Raw I/O" based tools in this class.
    • I was about to give up using Quadro today, but I am figuring out that it is more reliable in some environments than others.
  • I can't say that I regret contributing 50$ to support Quadro development, the maximum freemium they provide.  But I sure wish that it was more reliable.
  • I remain concerned about security, lack of.

After trying Quadro

As mentioned above and elsewhere, I became quite exited about Quadro, hopeful that the Quadro developer had improved the state of the art in such applications, which often have problems wrt error handling.   However, Quadro drive me almost to tears, being *almost" good enough - good enough for much of my needs - but failing, hanging, crashing a slot.  So I have kept looking.

Android "Remote Macro Keys"

I have not yet installed to try.  Notes from the Google Play store and googling.

"Very light"

Java server on PC.

Sounds as if mainly macro based.

No mention of Mac.

No mention of non-I/O macro, OSA/AppleScript or VBAS or ...

Limited ads.

Sounds "sincere", but the usual worries.

Security: UNKNOWN.

Open Source: UNKNOWN.  Have not verified whether the Java server is bytecodes or source.

Config file: ??
Diffable: ??
Version controllable: ??
Text config file: ??

I am not sure of whether "Remote Macro Keys" has a versionable-diffable-text config file.  



I do know that just before I found Remote Macro Keys, I found a similar Android project, macro keys or the like, that describved itself as Open Source and having an XML config file - but I am not sure if it was local macros, or remote.

It is rather typical for Android products to be more open source, more likely to use text config files, in "the UNIX way".



Android "Mouse and Keyboard Remote"

More Android SW.  PC Server.  Speech?


DIY physical keypad 

http://www.instructables.com/id/Making-a-powerful-programmable-keypad-for-less-tha/

These guys reminded me about xkeys.



X Keys 

http://xkeys.com

This was the sort of physical device that I was originally looking for, when I decided to go search for programmable

Reputation: good: I have used XKeys products before, mainly the Y-mouse. Never bought the keypads before, but vaguely remembered them.

Keypad flavors

  • XK-24 keys, 4 horizontal x 6 vertical
  • XK-80, 10 horizontal by 8 verrtical
  • XK-128, 16 horizontal by 8 vertical
  • sticks: XK-4, 8, 16 - that many keys in a 1 high row, nice to put at top edge of keyboard.
All keys same size (I remember seeing similar products with keys of different sizes, possible addons)

Modern devices all USB.  Macros are programmable using PC/Mac software; once programmed, retains state, so that can use on other devices that accept USB input.

Keytops are NOT dynamically changeable, the way something like Quadro or "Remote Macro Keys" is.



LCD Keytops - E3-Keys

Finally Google coughed up a device that has physical keys with LCD, dynaimic, keytops:

http://www.e3-keys.com/english/index.htm

I knew it was out therre.   ICAWTK, googling "LCD keytops" found it (too many false hits for "LCD keypad", etc.)

Nice: they have history going back to 1978 in an IBM Technical Disclosure Bulletin. http://www.e3-keys.com/english/history.htm.  Apparent a German company LcBloc Computer Technologie GmbH  1984.

(Mouse Parker between these two.)

Doesn't look consumer ready.   Doesn't look cheap.   But may be able to find somebody else.

Of course, why would I want LCD keys, if I can get a touchpad like Quadro working?   Only if one does USB and works everywhere, and one does not.  Making an IOS or Android device into a HID doesn't seem to have been done.

Optimus Keyboards

Same query as found e3-keys also found

Optimus family - Art. Lebedev Studio

www.artlebedev.com/portfolio/optimus/

and

https://en.wikipedia.org/wiki/Optimus_Maximus_keyboard

I have seen this before, and lusted after it.   But it appeared at the time to be vaporware, indeed receiving a Wired Magazine Vaporware award, 2007.  However, if wikipedia is to be believed, it is shipping now - not just full keyboard, but also smaller keypads.  The ArtLebedev website shows some as "sold out", the Popularis as shipping now, and several concepts.

Reviews are mixed.

http://www.artlebedev.com/ shows several more, such as the Tactus, no physical keys, just touch everywhere, or the Upravlator.  But "Expected to be available for sale in the second half of 2008" several with no updates in 7 years do not inspire confidence.

Overall, http://www.artlebedev.com/ seems to be a design house, with many neat ideas.  But probably not so much a consumer computer products company.

The keyboards are not for sale on their web.store. Well, maybe the Optimus Popularis is, at
http://store.artlebedev.com/electronics/optimus-popularis/  - the website has twisty pasages that do not directly connect.  1500$US.  Ouch!

Sonder Keyboard

https://www.sonderdesign.com/

e-Paper keytops.

Bluetooth.

Website with a pre-order button in Jan 2016, 200$, Pilot 2016Q2.


Virtual Laser Keyboard

There are several "virtual laser keyboards that project a pattern onto a flat surface, and sense where the user types.

http://www.ctxtechnologies.com/products/vk-200-keyfob-virtual-keyboard/

All that I know of provide a standard keyboard or numeric keypad.

I wonder if any of them could be programmed dynamically?


Some Personal History

Single Command Key Big Button Processing

of Email, and other Repetitive Stuff


I have long been an advocate of "single command key big button email reading".

But I oversimplify:

+ Not just single command: I often use multiple commands, e.g. the command I use most often in email, Archive, as well as a few others: Defer to handle later, file into one of 2-4 top projects, etc. Just not the full set of commands that the application provides.

+ Not just single key: although I prefer to use a single big key, like spacebar or caps lock spacebar for archiving,

++ sometimes I multiple key chords or sequences, and more than one of those: e.g. control+spacebar, and sometimes multiple keys - command+1 fir project 1, command+2 for project 2

++ sometimes I will use menus - especially menus that I can navigate by keystrokes as well as mouse

++ sometimes I bind the commands to the many buttons on my trackball (4 buttons, with various click combinations and modifiers)

++ sometimes I mash up controller pages, like webpages, with hot touch areas

++ Not just big keys:  as above, although if I am at a keyboard in an editor where keystrokes are hardwired, I may use small keys

+ Not just email: although email is my current hot button task, I have done things like this for repetitive tasks such as evaluating patents.  Whereas many folks were only able to read 100 patents a day, because of the slowness of clicking around to various information sources, I mashed up an interface (in Excel, last time), that traversed a list, automatically opened the information sources I needed, and which allowed me to give a score plus certain keywords - and was thereby able to process tens of thousands of patents.  So many that I cannot remember details of most of them (so don't accuse me).

More Personal History - Devices

I have a collection of I/O devices that I have used for this sort of task: gamer joysticks, keypads, gamer gauntlets that I could bind commands to ever finger motion of.  Foot pedals, etc.

These separate from my collection of I/O devices for normal use.  I never expected to use these gamer button pads for day-to-day computer use.  But when I have 2-3 months of a repetitive task,  like reviewing patents or papers, I felt tat a bit of investment in custom hardware was warranted.

I have long wanted a keyboard that had LCD or e-Paper tops, where the current bindings could be indicated.  e-Paper for long lasting.  LCD or other quickly changeable, e.g. for Emacs multi key bindings.  Type in ESC, and see symbols on the keytops for next actions.   I vividly remember a McGill meeting, circa 1984, with some vendor showing us a then state-of-the-art workstation, and Der Mouse Mike Parker flummoxing him by asking for LCD keytops.  I re,ember there was a Russian company promising such a keyboard, more than two decades later, but nothing came of it.