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.

Thursday, June 28, 2018

Treadmill (desk) needs speed ramps and intervals

I continue to love my LifeSpan TR1200-DT3 treadmill, since 2014.

At first I could only walk slowly, 1-1.4mph, while working.

Then, a year or so ago, I started being able to hit 2-2.5mph for some tasks, like email triage.

Recently I have started being able to run >= 4mph, typically while listening to "XXX Update Meetings", where I don't participate, and often don't need to take notes.

But... sometimes I need to take a note, and may need to slow down.  Not suddenly stop, but ramp down safely. 

(Stopping suddenly can be dangerous - I have twisted my knee several times when the emergency stop engaged.)

PROBLEM: the LifeSpan console changes speeds in clicks of 0.1mph.  Having to lean over and click 20 times to ramp down from 4.0 -> 3.9 -> 3.8 -> ... -> 2.1 -> 2.0 mph is inconvenient, and somewhat dangerous.

WISH: 2 or 3 speed buttons, with designated speeds.  And a smooth transition between them, not instantaneous.

EXTRA WISH: I sometimes do intervals on my treadmill desk, while listening to such meetings. 20 clicks to change speed is a pain.  After the 2 or 3 speed buttons, programmable intervals, would be nice.

DIY: yeah, I should do this in my copious spare time. There's a small community of folks who have made their own treadmill controllers using Arduino or Raspberry Pi or the like.


BTW, one big reason why I did not start running fast earlier was not my fitness level or even my sense of balance, but that I have had trouble adjusting the treadmill tension: if it runs smoothly at 0.4 mph it slips at 5mph, or it binds at 1mph when smooth at 5mph.

Google Blogger/Blogspot "Blog This!" plugin dead?

As of June 2018 the "Blog This!" plugin seems to have disappeared. Sob! My second most frequently used plugin. This may be my final straw for using Google Blogger / Blogspot. Google Blogger / Blogspot has been dying slowly for years.

Monday, May 21, 2018

I want to like Windows Controlled Folder Access, but ...

'via Blog this'

I want to like Windows Controlled Folder Access.  Essentially, restriction of access not just by user or group, but also by app.

But, of course, Microsoft made it so simplistic that gets in the way of my usage model.

For example:

  • Lack of Exclusion
    • There are protected folders.  This is good.   
    • You can add more protected folders.  This is also good.
    • But you can't EXCLUDE subfolder trees from protection.
    • This is bad..
    • My usage model:
      • I do a lot of my work in subfolders of Desktop.
      • I do a lot of my work using ad-hoc tools, like Perl and Cygwin
      • I would LIKE most of Desktop to be protected.
      • But I would like to allow all or most, at least a large number, of cygwin apps to have access to subfolder trees such as Desktop/Work-In-Progress
  • Apps are given all or nothing access
    • You can add apps to the permitted list. This is good.
    • But when you do so, the app is allowed to access all Cntrolled Folders. This is bad.
    • E.g. I would like EMACS to be able to access my working areas, like Desktop/Work-In-Progress.  
    • But I would like to disallow EMACS from accessing, say, system folders, or Music, or ...
    • Instead it's all or nothing. :-( 
  • Apps are individual
    • You can add apps to the permitted list. This is good.
    • But you have to add them one by one. This is bad.
    • E.g. I use cygwin.   I would like to add C:/Cygwin/bin/* to the permitted list.
      • But that is too much of a pain, so I just disable Controlled folders
Basically, app permissions are just like user permissions.  They need the same flexibility.

Controlled Folders does not.


This feels very much like Microsoft's initial, >10 years long approach to evolve network share permissions.

I hope that app permissions do not take so long.

Thursday, May 17, 2018

WISH: windows 10 dynamic lock - non-phone, non-paired

windows 10 dynamic lock fitbit - Bing:

'via Blog this'

  1. Lock your Windows 10 PC automatically when you step away from it.
    • Sounds great! :-)
  2. If you forget to lock your PC or tablet when you step away, Windows Hello can use a phone that's paired with your device to automatically lock it shortly after you're out of Bluetooth range. 
    • This sucks! :-(
What fraction of the population pair their phone with their PC?

  • I used to do device-PC pairing, back when I backed up my phone by synching to my PC.  And/or synched podcasts from net through PC to phone.
  • But now I mostly go direct from phone to cloud.  I don't Bluetooth pair phone to PC, not unless I am tethering a personal hotspot via BT.
  • In general, I try to avoid phone-to-PC paring, because it is a security hole.
Heck, what fraction of people have their phone in their pocket whenever they are at their PC?
  • OK, probably most
  • But not me.  
That's what I have a SmartWatch for.  Actually just a FitBit Versa, but good enough.

Dynamic Lock would be more useful to me if it detected the presence or absence of my FitBit.

But, again, I don't want to pair my FitBit with my PC.  I pair my FitBit with my phone.  I wear my FitBit even when my phone is far away, but even then there's an identifiabke BT signal.

NOTE: I don't want this to log IN>

Just to lock.

Wednesday, April 18, 2018

Rule Order Matters [in Outlook] [I wish]

The Three Most Important Outlook Rules for Processing Mail - Scott Hanselman: "rule order matters"

'via Blog this'

Yeah, ruke order matters.

Unfortunately, Outlook does not reliably process rules in order.

Not if some are server and some are not server rules

And if your machine is not always connected to the server - e.g. if mobile, or at home but net is unreliable.


For many years, many of the most useful rules - eg rules that handled Internet, as opposed tgo MS Exchange, addresses were client-side rules.

I have not checked where MS draws the line nowadays, but I have been burnt badly by MS inconsistency in rule order.

"Microsoft SurfBook 3-finger taps"

Krazy Glew's Blog: What Else I have Tried: "Microsoft SurfBook 3-finger taps"

'via Blog this'

The Surface Book Precision Touchpad can be configured to supposedly

emit {MButton}, the middle button, for a 3 finger tap.

This is the only key mapping available for the touchpad;

all of the other mappings go straight to Windows 10 GUI shell functions.

My trackball is also configured to emit MButton when BL+BR are pressed.

This is commonplace - often on a mouse left+right=>middle

It is unfortunate that the touchpad can only emit MButton in a remappable way,

since MButton has certain standard definitions.

 E.g. "normal" uses of MButton, e.g. in xterm

  •  MiddleMouse ==> paste PRIMARY selection
  •  Ctrl+MiddleMouse ==> select to clipboard or show alternate screen

But, we are lucky!!!!

Actually the SurfBook Touchpad 3-finger "MButton"

is <#<+<+{F22}{MButton};

I thought at first to use this as a filter,

but even better[*] just hooking <#<+<+{F22}{MButton};

filters out the {MButton}.

I conjecture this is srelated to timing and buffering.

I conjecture it is fragile.

But, for now, I can bind Touchpad 3-finger to a menu. NAV_MENU_fn

and pass Trackball MButton through unaffected

elsewhere, in click+hold.ahk, I bind X1 doubleclick-hold to the same NAV_MENU_fn

The Surface Book Precision Touchpad

can be configured to supposedly emit {MButton}, the middle button, for a 3 finger tap.

actually, it emits:  LWin+LControl+LShift+F22, and then MButton

     5B  05B a d 0.88 LWin

     A2  01D a d 0.02 LControl

     A0  02A a d 0.00 LShift

     85  06D a d 0.00 F22

     85  06D a u 0.00 F22

     A0  02A a u 0.00 LShift

     A2  01D a u 0.00 LControl

     5B  05B a u 0.00 LWin

     04  000 h d 0.00 MButton

     04  000 a u 0.00 MButton

and in my present AutoHotKey c onfigurationthe MButton disappears - probably because of all of the zero latencies.

What Else I have Tried



I have tried many, many, trackballs.   I prefer finger trackballs to thumb-balls –
the larger the better.

I have tried many keyboards, including ergonomic keybopards.
I have GoldTouch, and Maltron.  I haven’t
tried Kinesis – mostly because I don’t touchtype. And I depend on mobility –
laptops, convertible tablets – so I like stuff I can use on plane.

I have tried many gaming mice. Also joysticks.   I occasionally break out some of my collection
when I have a lot of “triage” work to do. 8-16 buttons on each hand…

I have an XKey-16 stick, and have just ordered another for
work.  16 bindable keys, with AHK.  I sure wish that the keytops could have
dynamically changing symbols.

I have a lot of AutoHotKey bindings.  E.g. click, hold, double-click,
click-and-hold.  E.g. I have CapsLock-click
mapped to Backspace in Outlook, to archive with my left hand, and CapsLock-hold
mapped to legacy CapsLock.

Meta-observation: the biggest problem I have with AHK is
keycode collision. E.g. I have to resort to using ctl-alt-shift-Fn on my
Xkey-16, which I then map to app depend commands using AHK.  But I am running out of unique keycodes, and
am unhappy when the keycodes I want my devices to send collide with Windows and
app shortcuts.   

I really like https://www.quadro.me/,
which allows a touch iOS device, iPhone or iPad, to be used as a dynamically
remapped per-app button pad. But Quadro only works on an iOS device, and has other
limitations, so I implemented similar functionality in Python using
AppleScript. Was able to use cheap old Android phones and tablets as my “button-pads”.
When I switched back to using Windows touch devices, I started reimplementing
the button pads in AutoHotKey.  But I am
afraid that work got put on hold when I joined Nvidia.

I really like the touchscreen programmable button pads
(which I call gUIx, graphical User Interface extenders).   But having them emit keyboard sequences is
quite fragile. AppleScript works better. In Windows…

I have not tried http://www.e3-keys.com/english/index.htm,
nor Optimus Maximus.  I have not yet
preordered the Sonder keyboard, but am tempted.

I usually dislike touchpads - eg I wish that my laptop did not have an ALPs touchpad, so that I could have the keyboard that much closer to me, and possibly open the clamshell on a plane in economy class.   But on a recent long trip, no trackball, I started to enjoy the multi-finger-touch abilities of Microsoft's "Precision Touchpad", https://support.microsoft.com/en-us/help/4027871/windows-10-touchpad-gestures.  3-finger swipes to switch between open windows.  Especially, Microsoft SurfBook 3-finger taps - the only programmable gesture - supposedly mapped to Middle Button, but which actually produces
Win+Ctl+Shift F22. Which I have bound tap to Back, double-tap to Forward, and hold to a navigation menu.  Works nicely in web browsers and Outlook.  I wish that I could program 4 finger taps and other gestures.

I say the above mostly to say that I have tried a lot of
things – but if somebody
wants to recommend a “gaming trackball” with lots of buttons, I am listening
Or a crowdfunded project.

3Dconnexion: SpaceMouse

3Dconnexion: SpaceMouse:

'via Blog this'

I may be in love.  Although this is the sort of product I will want to try before I buy.

I don't do much 3D, although my daughter does.

I would be happy to try/buy this device, if it is usable for trackball-comparable navigation - it probably needs good ballistics.   However, 3DConnexion selling kits of the 3D device in conjunction with a fancy mouse for selection make me worried that the 3D device is not precise enough.   Although it might be a question of scene motion vs pointer motion, segregated by device.

Apart from 3D, the fancier versions of these have many
buttons, reducing greatly the need to move hands between pointing device and
  • Even
    the most basic compact SpaceMouse has two buttons – not much, but they can
    open radial menus, which Bill Joy says can be much more efficient that
    linear menus
    • Radial
      menus in AHK have been a project for my copious spare time
  • the
    fancier “Pro” version has
    • 4
      function keys
    • But
      more importantly
      • Left
§  3
modifiers – control, alt, shift – which if fully chordable, gives 8x the bindings
§  ESCape
and MENU keys
      • Right
        • 6
I would that these are not
hardwired, and/or can be redefimned so that they can be usefully hooked in AHK,
 but even if not, the modifier keys and ESCape
would help greatly in menu navigation and selection without using the pointing
  • The
    top of the line “Enterprise” version has
    • Total
      8 keys on left – the Pro 6, plus Enter and Space
    • Total
      11 keys on left – although looks likely to be not as programmable as I
      would like
    • Most
      • 12
        “programmable” function keys on top
with a small LCD screen
that can switch to show current bindings.

Not quite the Optimus
Maximus keyboard with OLED keytops,

Nor the Sonder keyboard
with e-Ink keytops

but steps towards the holii

I think that I may be in love!

I think that I would like to buy this device with a
trackball in the middle, not necessarily the 3D 6dof device.  But if the 3D device works, sure.

But this is the sort of device that I would like to try before
I buy.  Even with full-$$$ refund, returning
it if it doesn’t work is a hassle.

I wish the Kensington TurboBall Trackball was still around :-(

Amazon.com: Kensington TurboBall Trackball (PC/USB Mac): Electronics:

'via Blog this'

I used the Kensington TurboBall for years - had 4 of them, work, home, etc.  Unfortunately, using mechanical rollers, eventually all jammed up beyond hope of lubrication.   I replaced them with the Kensington Expert Mouse  Trackball, which uses an optical sensor.  The ExpertMouse doesn't jam, but its ergonomics are much WORSE than the old TurboBall - it forces my wrists to bend backwards.  Therefore, here I am,  >10 years later, looking to buy used TurboBalls to replace my ExpertMice trackballii.

TurboBall - the best trackball I have ever used.  If it were redesigned with optical sensing, I would buy a dozen of them!

ExpertMouse Trackball - the best of the rest; the best being sold new.

BTW I have also tried the Kensington SlimBlade and the two shapes of Orbit trackballs. Plus trackballs from other vendors.


+ Ball Size - the larger the better.  The ExpertMouse has a 55mm trackball, as does the SlimBlade, The Orbit has a 40mm trackball, as did the TurboBall.  Since I prefer the TurboBall to the ExpertMouse, I guess wrist angle outweighs trackball size, but not by much.

+ Buttons - I really prefer 2 to 4.  I think that's why I prefer the ExpertMouse to the SlimBlade.   My usual bindings are LL=left mouse button, LR=right, LL+LR=middle, UL=back/forward, UR=app specific.  I.e. 2 buttons just aren't enough. In fact, I use AutoHotKey to create different actions for trackball button click, hold, double-click, click-and-hold, etc. - i.e. I have 2 or more actions per button, even without modifiers.

     BTW, I remember fondly an older trackball, where you could tap or depress the ball itself.

+ Ergonomics - wrist angle.  The TurboBall allowed a neutral wrist angle.  The SlimBlade only required a slight back angle (extension), but the ExpertMouse requires a much worse wrist extension

The ExpertMouse is so bad in this respect, requiring so much wrist backwards bend (extension), that: ...

a) I have actually used the ExpertMouse reversed - so that the part closest to me is tallest - which allows wrist flexion, a nice negative angle.  It is surprisingly usable this way. It takes getting used to rolling right moves the cursor left, etc.  But it makes it very hard to use other people's trackballs.

     WISH: some sort of USB adapter that would negate X and Y signals.

b) If I don't manage to find a TurboBall, I will try foam wedges to adjust the ExpertMouse angle.  Trouble is, my keyboard/mouse tray are not adjustable enough.

Saturday, April 07, 2018

WISH: pictures in version control system logs

More and more I am wanting to be able to embed pictures everywhere.  Typically bitmaps, screen clips - but vector pictures if ... they efer become uniquitous.  Colors. Colored text also nice.


For example, I just checked into .gitconfig some aliases to prettify my got log output. It sure woyuld be nice to be able to show the pretty colors.

Similarly, I would like to embed suich colored examples in the comments for programs.,

No, links to image files do not cut it.  Anyone who thinks that does not understand version control, divergence, consistency.  You may think that images are overkill - that I will accept as a legitimate position, but one that I disagree with more and more - but

Links do not cut it - unless the links are "local inside an archive file".  More and more thinking in terms of any interesting file being an archive, e.g. a tar file, with perhaps a default .txt or other "primary".   With "links to files" that are neighboring in the archive.

Archive files, and directories for that matter, are the natural objects of UNIX derived filesystems.  Pity that their atomicity is not enforced, on systems like MacOS.

Friday, April 06, 2018

WISH: Browser Save Passwords only for Regex Match Domain(s)

Manage saved passwords - Computer - Chromebook Help: "Stop Chrome from asking to save passwords
By default, Chrome offers to save your password. You can turn this option off or on at any time.

On your computer, open Chrome.
At the top right, click More  Settings.
At the bottom, click Advanced.
Under "Password and forms," click Manage passwords.
Turn the setting off."
'via Blog this'
I prefer to use a password manager like LastPass to manage my passwords.

I would prefer not to have my web browser, like Chrome, offer to save passwords.   Normally I disable this.

However, my employer has many sites that use password systems that LastPass in Chrome cannot recognize and manage.  Like HTTP Basic Authentication - although I hope that IT does not do THAT. Not just myemployer.com and www.myemployer.com, but many, many, subdomains.

So, unfortunately, I have to use browser based password management for many sites in *.myemployer.com (plus a few others that are outsourced).

It is annoying that browser based password management is either ON for all sites, or OFF.  At least in Chrome.  Not just annoying, but fragile.  If a password is saved in both my briwser and LastPass, it can become inconsistent, and can get lost. I wish that I could provide a few regexps to indicate which sites the browser should and should not try to save passwords.

I wonder if FireFox supports that.

Saturday, March 24, 2018

Missed flight because Lyft

I just missed a flight because Lyft on my iPhone turned up its nose at my credit card, saying ...

I entered the information Lyft asked for, it thanked me ... and then sent me back to the same screen when I attempted to get a ride. 

I tried changing the credit card Lyft used.  No good, same message.

I called the credit card company.  No problem on their end.

It looks like Lyft may be doing their own fraud monitoring. Lyft may have noticed transactions from out of country. This is an issue, since I alerted my credit card company as to my travel, but not Lyft, or similar companies.  Not to mention the privacy issue, if Lyft is monitoring my credit card transactions.

Lyft tech support?  What's that?

Friday, March 09, 2018

Idea?: symlinks to reorganized content marked, aged, and deprecated

I am reorganizing a number of my directory trees (actually, moving Windows "stuff" out of a Cygwin repo to make it easier to use when I have not installed Cygwin).

As I am doing this, I am (often) leaving symlinks in the old location pointing to the new.

The problem with such symlinks is that the filesystem never gets clean.  Not until you actually delete the symlinks.  But then you may not be able to find old references.

Version control .... yeah, but who wants to go through VC logs.

IDEA:  mark such "legacy symlinks".  Hide them by default.   When code tries to follow such a symlink, return an error - but a special error, that a suitable UI could provide meaningful info about.

Something like HTTP status codes

  • 3xx Redirection
    • 301 Moved Permanently
    • 308 Permanent Redirect
But we can do better:

Instead of returning an error and expecting the user to understand, we might allow the user to set configuration options that 
  • ? automatically follow such redirects ?
    • with a verbose warning
    • only if valid as of time T
    • only if not conflicting with current redefinitions of the name.

Essentially providing some sort of version control functionality.

And encouraging true cleanups, while still keeping the "find out where it went functionality".