Re: Bull*** !

From: Rex Ballard (r.e.ballard_at_usa.net)
Date: 09/13/04


Date: 13 Sep 2004 10:12:03 -0700

Jeff Relf <Usenet_2_@JeffRelf.Cotse.NET> wrote in message news:<_Jeff_Relf_2004_Sep_13_Rb6m@Cotse.NET>...
> Hi Grant Edwards,
>
> Mike Cox asked: <<
>
> If I sent you a tilt wheel mouse free,
> how long would it take you to create a driver for it
> at your hourly rate ? >>
>
> And you replied: <<
>
> If the protocol is documented
> and the hardware actually works,
> I would guess 8-16 hours. >>
>
> Bull*** ! You are Not a programmer.
>
> It would take 40 to 80 hours
> to do a half-reasonable hack job.

Keep in mind that he also has access to the SOURCE CODE
for about 8 varieties of mice. The real question is whether
the Tilt Wheel mouse follows any traditional mouse protocol.

It took a about 20 hours to add scroll-wheel support, once the
protocol was actually documented.

I would guess that you are probably right though. It might take
**someone** around 40-80 hours to properly implement all of the
features of the tilt-wheel mouse for Linux. It's a pretty good bet
that once they did, we could download it via most of the distributor
websites. It would probably be included in the next CD/DVD release of
each major distribution. Wish I had a bit more time to work on it, it
might be fun.

> Even then, you'd have to ask yourself:
>
> If it's so damn easy to write a driver for
> Microsoft's tilt-wheel mice
> how come _ No _ one on
> this God-damned planet has done it ? !

How long has it been out?
Who has access to the protocol specifications?
Are there nondisclosure agreements?
Are there restrictions on reverse engineering?
Are there DMCA harassment issues.
Are there new patents on the tilt-wheel mouse?

Since Microsoft is the one who "invented" (is marketing) it,
there is a good probability that only Microsoft and the manufacturer
have the protocol specifications. There are probably strict
nondisclosure agreements. There are probably license terms which
forbid reverse engineering of the mouse itself. There may be patent
issues. Microsoft would probably harass anyone who published a driver
for Linux, for violating NDAs or violating reverse engineering
restrictions, or for patent royalties.

Remember, the coding is only about 5% of the total effort. When there
are legal issues, marketing issues, distribution issues, and
organizational hurdles, the trivial 2 staff-weeks of coding turns into
20-40 staff weeks of negotiations, legal maneuvering, and marketing
development.

Let's just assume that, at this moment, Microsoft doesn't WANT there
to be a Linux driver for the track-wheel mouse.

> Further, how come Linux doesn't have a driver
> for my Trackball Explorer ?

Another Microsoft product? Same problem.

I've had no problem with any of the Logitech trackballs. The X11
signals for the extra buttons are available, but I haven't seen anyone
coding anything special to do with it.

> As a professional programmer,
> I've been using mice ever since the start of 1982...

With the Apple Lisa? The Xerox Smalltalk Alto?
The Mac came out in 1984 didn't it?

> And I've written drivers too.

So have I. Of course, the mouse drivers are pretty generic. You have
events (mouse up,down,left,right, scroll-up, scroll-down, button-1
through button-X that are available for X11 to act on. I doubt that
Windows NT 4.0 with Service pack 3 would even support scroll-wheels,
let alone tilt-wheel mice.

> And I think the Trackball Explorer
> is the best pointing device ever invented.

Just curious, what makes it so different from other trackballs or
mice?
I've used a Microsoft Trackball Explorer mouse before - with both
Linux and Windows, but I didn't see much difference between either of
them and the Logitech.

> Yet Linux ignores that,
> along with nearly every other device
> sold at places like Office Depot.

Actually, it may be that X11 ignores the special buttons or wheels -
because no one has implemented "scroll-wheel" handling on most Window
managers. I think KDE 3.0 (SuSE 9.0+) supports it, but I don't think
GNOME is doing anything with those extra buttons and the wheel.