Sunday, March 15, 2015

The last laugh

A lot of people have laughed at me over the last few years because of the Warmouse, but I have to say, the 18-button brute is an absolute lifesaver when it comes to editing books. One of the new van Creveld books has nearly 500 footnotes and the process of adding them would be considerably more time-consuming if I couldn't so easily cut, paste, backspace, space, enter, page up, page down, and delete with one hand.

I know that our tests reliably proved one could work 2x faster with the Warmouse interface, but on this particular task, I'm definitely going at a pace about 3X faster than before.



Blogger wrf3 March 15, 2015 12:33 PM  

Vox wrote: A lot of people have laughed at me over the last few years because of the Warmouse...

The only proper response is: "Where were you when the page was blank?"

Find a better manufacturer and make it Bluetooth instead of wired and I'd buy one.

Anonymous Mark Uren March 15, 2015 1:01 PM  

Does it have a drink holder?

Anonymous Rabbitmouse March 15, 2015 1:14 PM  

A lot of editors are womyn. Does it come in pink?

Blogger Nate March 15, 2015 1:17 PM  

isn't there an 18 button Razr mouse now that looks almost exactly like the WarMouse?

Blogger Nate March 15, 2015 1:17 PM

There. Tell me that doesn't look familiar.

Anonymous Salt March 15, 2015 1:24 PM  

Fav mouse is the R.A.T. 7

OpenID spastic0plastic March 15, 2015 1:26 PM  

That's closer to a Logitech g600 knockoff

Blogger MATT March 15, 2015 1:42 PM  

Oh damn I forgot about Warmouse

Blogger automatthew March 15, 2015 1:43 PM  

Vim is like a 50+ key mouse.

Blogger JaimeInTexas March 15, 2015 1:52 PM  

"Does it have a drink holder?"


Blogger Cluttermonkey March 15, 2015 1:54 PM  

Vox, you truly are the Charlie Sheen of bloggers. After all this time, and no matter how the nay-sayers and ankle-biters flail, you're still winning.

Blogger Markku March 15, 2015 2:08 PM  

The side button design is crap. Makes the pointer move a few pixels sdeways every time you press a button.

Blogger Vox March 15, 2015 2:12 PM  

Vox, you truly are the Charlie Sheen of bloggers. After all this time, and no matter how the nay-sayers and ankle-biters flail, you're still winning.

It's the tiger's blood.

Blogger Markku March 15, 2015 2:23 PM  

Just a little bit of history repeating

Blogger Cluttermonkey March 15, 2015 2:32 PM  

It's the tiger's blood.

How many speeds do you have?

Blogger Markku March 15, 2015 2:42 PM  

By the way, nerds, my current codebase of Modeware has been upgraded to the modern FlatUI look, and now has an API. It no longer needs the Warmouse at all. Whatever can distinguish inputs from each other, like a joystick, can execute Warmouse macros by creating a plugin to the API.

"Can I have it?"


Anonymous Earl March 15, 2015 2:58 PM  

Razr Naga is a great mouse for mil sim gaming. Arma3 in particular. 12 buttons on the thumb, fully programmable including macros and inter device controls.

Anonymous Ain March 15, 2015 4:04 PM  

Mark Uren: "Does it have a drink holder?"

They should make one that is also a coffee mug.

Blogger Noah B March 15, 2015 4:04 PM  

"Can I have it?"

Would you consider a trade for rifle pics?

Anonymous ? March 15, 2015 4:43 PM  

what inna hell is warmouse?

Blogger Noah B March 15, 2015 4:49 PM  

"Vox, you truly are the Charlie Sheen of bloggers."

Minus the drugs, drunkenness, and prostitutes. I think.

Blogger TontoBubbaGoldstein March 15, 2015 4:53 PM  

"Can I have it?"

Not just "No"...

Blogger maniacprovost March 15, 2015 5:03 PM  

The real solution is a foot-operated mouse. Then you can use the keyboard as the lord intended.

Studies show that a foot-operated mouse is actually 40% more ergonomic than emacs.

Blogger Noah B March 15, 2015 5:06 PM  

"The real solution is a foot-operated mouse."

Sounds like an awesome idea. I got used to a foot operated sink and I still miss having one.

Blogger Markku March 15, 2015 5:07 PM  

I have been thinkin about feet. I could probably fit four macros into a normal wheel pedal set. Six if it has clutch. Halfway, and full down.

Blogger LP 999/Eliza March 15, 2015 5:16 PM  

Superior technology you've created will catch up with the low grade MPAI types. I dont know when or how but they will eventually regret their very oddball sort of scorn.

I mean what is the problem with the mouse? There was none, your critics are jealous and out of ideas.

Blogger LP 999/Eliza March 15, 2015 5:21 PM  

No pink, blood red!

Blogger Noah B March 15, 2015 5:22 PM  

Agreed, you guys had the huevos to think out of the box and try a new idea. That's worth a lot even if the idea doesn't pan out (though I'm not saying yours didn't).

Anonymous jack March 15, 2015 5:30 PM  

WarMouse is still available? How much, if I might ask.

Blogger Markku March 15, 2015 5:37 PM  

WarMouse is still available? How much, if I might ask.

Sadly, no. We just have our own pile of units, obviously. The Chinese factory invented so many - dozens - of different ways to screw up a unit, and the unit testing list became so long and complicated, that it just plain killed the profits.

Blogger maniacprovost March 15, 2015 6:09 PM  

Markku, where I work I use DFMA (Design for Manufacture and Assembly) as well as DFI (Design for Idiots).

1. Any part should ideally be symmetrical, so it can be assembled in either direction and still work. Failing that, it should be made so utterly asymmetrical that it is physically impossible to install the wrong way without destroying the entire assembly.

2. Similar parts should be identical, even if there is a slight cost or "performance" advantage to making them not-identical. You'd be amazed how quickly your savings from using a shorter screw will vanish when your product does not function on a multi-million dollar contract.

3. All parts should be assembled in the most barbaric, ignorant way by design, because that is how they will get assembled.

4. Assembly instructions. If you make them, they have to be 100% correct, or they won't be followed at all. Don't put too many check boxes, or they'll just be checked off en masse.

5. There should be a simple function test that cannot be passed unless the product is made correctly. For example, does the green light come on, or does the mouse catch on fire? As computer nerds, I assume you did this step with some kind of test program.

6. Any assembly sub process must be completed in its entirety before it is able to pass that stage. If it's possible to do 90% of the assembly and then move on to the next step, then the other 10% will be skipped.

Blogger Markku March 15, 2015 6:20 PM  

I didn't say "imaginative" for nothing. Once, our thumbstick was produced entirely from the coating material, which was soft rubber. Assembly was very seldom a problem. It was manufacture.

Blogger Markku March 15, 2015 6:24 PM  

The main problem was a huge number of bubble switches, all of which would have to work 99.9% reliably, or it would kill the user experience. Imagine getting accidental double-click even one time, where the double-click assignment is delete, or close without saving.

And at least at the time, there were no microswitches that were:
a) small enough, and
b) were guaranteed to last an adequate number of presses before breaking down.

Blogger Markku March 15, 2015 6:30 PM  

But there will be new adventures. Right now, I have a version that displays the buttons on your phone or tablet, and it's already good enough for pre-alpha. And this time, the worst usability problem will be gone - not remembering your assignments after some weeks of disuse. People tend to be so lazy that they rather stop using the product than re-learn it. That's really what killed the macro buttons in keyboards, that were so popular at one time.

That is solved by touchscreen. Now, if the assignment is "delete", the button shows "delete" on it. Not something useless like "B3". It will be available for a couple of dollars, when we have time to get to it.

Blogger Noah B March 15, 2015 6:45 PM  

Did you guys run into any major challenges on the design side, or were the design issues all pretty minor compared to the manufacturing problems?

Blogger Noah B March 15, 2015 6:48 PM  

Other than the bubble switches, that is.

Blogger Markku March 15, 2015 6:49 PM  

Well, connecting the plastic buttons to the bubble switch board was kind of both a design and manufacture problem, in which we tried to find the design that would be most tolerant to variances in manufacture. But we couldn't come up with anything that would prevent the necessity of an insanely long process of testing each button by pressing it enough times. For every single unit.

Nothing else major, that I know of or can remember.

Blogger Mark March 15, 2015 6:54 PM  

Looks nifty, but I mouse left-handed (as a right-handed person). The asymmetry would drive me bonkers. However, one shouldn't discount the giant button-list as a productivity booster. Back when I learned Autocad, a digitizer tablet with a 16-button mouse was just about the best thing going.

Blogger rycamor March 15, 2015 7:22 PM  

Markku, I am *seriously* digging the idea of a smartphone as a programmable mouse or touchpad. At present is the phone app just for macro buttons, or is there mouse movement from moving or touching the phone?

Blogger rycamor March 15, 2015 7:26 PM  

Markku March 15, 2015 6:24 PM
The main problem was a huge number of bubble switches, all of which would have to work 99.9% reliably, or it would kill the user experience. Imagine getting accidental double-click even one time, where the double-click assignment is delete, or close without saving.

It's amazing how one teeny tiny little problem can become a big one. My latest Windows 8 laptop (and wrap-around tablet) works just fine until, on the odd occasion just starts going screen-click-happy, simulating clicks anywhere and everywhere in fast succession until you shut down. In a connected world, this can cause any number of embarassments, as in my case it kept trying to Skype-dial a business associate who I had just finished having a long Skype talk with. I didn't realize this was happening at first, but on his end it was like "why the hell is he bothering me now?"

Blogger maniacprovost March 15, 2015 7:26 PM  

I would like to use a mouse with solid-state inputs... operating by of piezoelectricity or stress-induced resistivity changes. It's reliable. I'm not sure if that could replace buttons, since there's no tactile feedback, but it could eliminate having to actually move the mouse.

Anonymous jack March 15, 2015 7:46 PM  

@Markku: sadly, no. We just have our own pile of units, obviously.

Darn. I'm sorry to hear that. What a good idea it seemed. Well, don't stop innovating; the world is very short of real genius these days and innovators.

Anonymous dantealiegri March 15, 2015 9:09 PM  


very interesting .. let us know what you are doing.

I for one have a love of the old 90s style logitech trackballs with the large ball.

It additionally had 5 buttons when no one else did, and it has room for so many, due to it being a large unit.

Blogger Markku March 15, 2015 10:08 PM  

rycamor, I've thought about making it a virtual touchpad too, so that you could switch between all-button mode and touchpad mode with a button. Have not yet tried if the lag is acceptable. Computer side runs a minimalist http server, and Android communicates events through a RESTful API.

OpenID cailcorishev March 15, 2015 10:30 PM  

The real solution is a foot-operated mouse. Then you can use the keyboard as the lord intended.

Foot, heck. I should be able to THINK the cursor around the screen and click on things while keeping my hands on the keyboard. I first read about rudimentary cursor control with the MindDrive (a device that fit over one finger and used galvanic skin response) at least 20 years ago, and we're still waiting.

Blogger swiftfoxmark2 March 15, 2015 11:25 PM  

I used my Warmouse for about a year until the mouse wheel became unreliable, which was crucial for some games I play and Internet browsing. I still have it stored away, but I haven't been using it for a while.

Anonymous rho March 16, 2015 12:21 AM  

I never laughed at the Warmouse. I used a 16-button Kurta puck for years.

I'm just pissed that I now have no way of talking to my Warmouse, so it's just a dumb hunk of plastic. Markku, be a pal and share something, anything.

Blogger Markku March 16, 2015 12:27 AM  

What's the problem? Did you switch to Mac, or did something malfunction in your mouse?

Blogger rycamor March 16, 2015 12:36 AM  

Markku, if you want someone to help beta test, consider me a resource.

Anonymous Holmwood March 16, 2015 12:50 AM  

I strongly second Earl's nomination of the Razer Naga. (Aimed, I believe, at MMO gamers). Markku's argument of right thumb buttons resulting in a pixel targetting twitch is likely correct, though utterly irrelevant to certain types of games and applications.

wrf3's desire to have the putative Warmouse2 be Bluetooth seems very dubious to me: Anything with computational complexity is going to last at most a few days on battery instead of the weeks or months very simple wireless mice last. Be very sure you value wireless over sudden rapid periodic failure.

Nate's Redragon Perdition Precision might be very good at a price of $36 which it is when I click it in the US. At $80, I'll take the cheaper and predictable Razer over a random unknown. Maybe I'll order one Perdition for when I next travel to the US.

Warmouse seemed an early prototype in search of adherents to me.

Glad it's working for you Vox.


Blogger Markku March 16, 2015 12:52 AM  

It's not computationally complex. It uses the cheapest, 8-bit processor from Atmel that was available, and even THAT has way too much processing power.

Blogger rycamor March 16, 2015 1:08 AM  

A RESTful API used to be considered anathema for stuff like fine-grained mouse tracking, but I suppose if the http server is minimal enough, and the URL being called is minimal enough, it can work. Have you tried the direct socket approach? Dunno how hard that is with Android.

Blogger Markku March 16, 2015 1:12 AM  

Yes, I tried direct sockets as my first attempt, but it was too complicated to manage all the disconnections and whatnot. Especially if there was a possibility of several devices connecting at the same time. But I might opt for a hybrid approach if it seems necessary, and do everything else with HTTP but then allow one optional socket connection for movement.

Blogger rycamor March 16, 2015 1:28 AM  

At one point I had a project where I made a simple socket server that could alternate between requests from multiple clients, essentially operating like a chat server. It was based loosely on Beej's guide. Even though he claims his example is super-ugly C code, it is a nice starting point.

Blogger Markku March 16, 2015 1:30 AM  

Yeah, well, I've made a robust socket server to a life-critical system. So I know exactly how much effort it takes to make it reliable. It's easy to get to 99%.

Blogger rycamor March 16, 2015 1:37 AM  

Gotcha. Although 99% is probably good enough for Android mouse. If there is a glitch, just reset and allow the cursor a moment of discontinuity. I like the hybrid idea.

Blogger Markku March 16, 2015 1:46 AM  

Yep, it's so much simpler to transmit location data. You send numbers at intervals, and that's it. With the rest of it, there were weird corner cases, like "what if part of a JSON string arrives, then there is an error, and then the end of the string arrives? Or what if one complete JSON string arrives, and then in the same callback, half of the next one?

Blogger Markku March 16, 2015 2:04 AM  

And I HAVE dealt with that before. But it produces the kind of code that will drive anyone else reading it utterly bonkers, and it's also exactly the problem that HTTP is designed to answer (alongside with communicating with an unknown number of endpoints simultaneously). So, it seemed like an especially egregious case of reinventing the wheel, to use it for everything.

Anonymous rho March 16, 2015 2:13 AM  

What's the problem? Did you switch to Mac, or did something malfunction in your mouse?

I've always been on a Mac, but at one point I could at least program it with an XP machine that has long since been decommissioned.

Is any version of the software available anywhere?

Blogger Markku March 16, 2015 2:17 AM  

Windows installer

Source code of last official release. Windows/Linux

Instructions for compiling on Linux included. I don't know, maybe you can even find some way to run the Linux version inside your Mac. Virtual machine, perhaps.

Blogger Brad Andrews March 16, 2015 2:19 AM  

I can't even use the extra buttons on my current mouse. Such a mouse would make me less productive. I think my hands are not quite as nimble as is needed for this kind of mouse.

It would be handy, but not for me.

Blogger Markku March 16, 2015 2:40 AM  

For the most adventurous of all, it shouldn't be too difficult to look at how the Linux code communicates with hiddev library, and reimplement for Apple HID Manager. Then it should be pretty easy to compile natively for Mac. That's the only hard part, Qt handles the rest. I also know from experience that to convert the Qt4 code to Qt5 takes about half a day's work for that code. I did it already, but at the same time I purged all hardware-related stuff from the code. So, anyone wanting to do the same while retaining hardware functionality will have to do the same.

The amount of errors will be intimidating the first time you try to compile against Qt5. But the errors are very similar. It is very much doable, now matter how much of a headache you get that first compile.

Blogger Markku March 16, 2015 2:45 AM  

Tell you what. If one of you Warmouse owners manages to send me a source code that does the hard part - switching the HID library and communicating with the mouse - I promise to do Qt4 -> Qt5 again and give you all a source code that works natively on Mac.

Look at mousehardware.c . At least 90%, if not 100% of what you need to change will be there, and in the included headers.

Anonymous rho March 16, 2015 2:57 AM  

Muchas gracias mi amigo. I can cobble something together from that.

(You hinted at one point that you had a version that compiled on a Mac. I know you've got bigger fish to fry, but I am curious about it.)

I can't even use the extra buttons on my current mouse.

It is a very specific base of users. If you script repetitive tasks, you want an UI device that accommodates that. I come from an AutoCAD background, so I think that everything more complicated than a rock should come with a LISP interpreter.

The Warmouse was a v1 device that deserved a v2, and I hate that it didn't get that chance.

Blogger Markku March 16, 2015 3:09 AM  

Yes, it compiles on Mac almost trivially, but the problem is that every operating system has a different library for communicating with HID devices. When it was in active development, I didn't have a Mac, so I didn't have time to investigate how OSX's works. Now that I do have a Mac, it's just not worth the time as new units are not being produced. But it shouldn't be very difficult.

Anonymous rho March 16, 2015 4:00 AM  

Now that I do have a Mac, it's just not worth the time as new units are not being produced. But it shouldn't be very difficult.

What would it be worth to you to do so?

Blogger Markku March 16, 2015 4:10 AM  

With my Castalia House and Alpenwolf responsibilities, that's not really up to just me. But the project seems reasonable enough at first glance that perhaps there indeed is a Warmouse and Mac user out there that will take up the challenge. That's how opensource happens. And it will obviously get that person's name to the credits of that version.

Blogger Markku March 16, 2015 4:14 AM  

The problem with this kind of a thing is that whereas I know the worst case scenario time consumption of the rest of it, I don't know that about the HID library switch. Hence, I have to assume the worst. That's why I promised to do the rest of it, if someone else does that.

Anonymous Elder of The Internet March 17, 2015 8:27 AM  


I need driver/sourcecode for both windows an linux to re-install warmouse.

I tried the usual methods to re-acquire drivers but...

1. Domain is gone.
2. Twitter feed is unmanned.
3. has incomplete backups of warmousemeta

Blogger Markku March 17, 2015 8:43 AM  

My post in this thread, at March 16, 2015 2:17 AM, contains both the latest source and the latest Windows installer

Post a Comment

Rules of the blog
Please do not comment as "Anonymous". Comments by "Anonymous" will be spammed.

<< Home

Newer Posts Older Posts