Did you miss my last post?
Were you out of town?
Was the notice too short?
Are you concerned that your absence indicates the fact that you are a
fundamentally bad person? That by abandoning your fellow man in his hour of
great need, you have thereby fallen out of God's favor, and thereby damned
your immortal soul?
Can you feel the fires of Hell itself already lapping
at your feet?
Don't worry! It's not too late. You still have two more chances!
Today we moved most of the knickknacks and books, as well as the TV and
several small bits of furniture. Tomorrow I'm moving clothing, boxing up the
books that were already moved but now located in ungainly stacks in the new
place, taking apart and throwing away furniture which cannot be moved whole,
and moving my bed.
On Tuesday, when my Internet arrives upstairs, I will be boxing up the
router, and moving my desk and Ying's desk. This is happening "after work",
which, since I can do pretty much whatever the heck I want at work (and a
faster move is certainly better for productivity) is whenever people start
showing up to help. I would suggest 4PM.
I have to move all my worldly belongings ... up two floors.
Ying has purchased the apartment (now condominium) unit that we live in (#1203). As part of that package we are getting some renovations done. However, in order to do those renovations, we've got to move out. The management office has provided us with a second unit to live in for the duration (#1603). However, we still have to schlep our stuff up the elevator and back down again.
Here's what's happening. This weekend (mostly on saturday, but depending on who can come and when, maybe sunday too), my friends, whoever they may be, and I, will move lots of boxes and furniture and random crap up 4 stories with the help of a small-furniture-sized elevator. There will be laying of ethernet cable. There will be much rejoicing.
Are you my friend? Because if you are, you will be here, helping me to prevent a triple hernia from moving two thousand pounds of books by myself. The aforementioned sad news has Ying flown out to Dallas this week, and possibly NYC the next; she won't be able to help with the move.
In all seriousness this is more of an excuse to get together (since we have two whole apartments to hold people!) than a huge amount of work. Our stuff is mostly in boxes already, we don't have much furniture, and there are no stairs to negotiate. If a few people show up, we should make short work of it. Considering that there is labor involved though, I do plan to provide food and refreshment of some variety for whoever shows up.
Do you have to get on a train or bus to get here? No problem! I don't think they're keeping track of who is in what apartments too carefully. I bet easily 3 people could stay here over the weekend and the office wouldn't care.
Ying has purchased the apartment (now condominium) unit that we live in (#1203). As part of that package we are getting some renovations done. However, in order to do those renovations, we've got to move out. The management office has provided us with a second unit to live in for the duration (#1603). However, we still have to schlep our stuff up the elevator and back down again.
Here's what's happening. This weekend (mostly on saturday, but depending on who can come and when, maybe sunday too), my friends, whoever they may be, and I, will move lots of boxes and furniture and random crap up 4 stories with the help of a small-furniture-sized elevator. There will be laying of ethernet cable. There will be much rejoicing.
Are you my friend? Because if you are, you will be here, helping me to prevent a triple hernia from moving two thousand pounds of books by myself. The aforementioned sad news has Ying flown out to Dallas this week, and possibly NYC the next; she won't be able to help with the move.
In all seriousness this is more of an excuse to get together (since we have two whole apartments to hold people!) than a huge amount of work. Our stuff is mostly in boxes already, we don't have much furniture, and there are no stairs to negotiate. If a few people show up, we should make short work of it. Considering that there is labor involved though, I do plan to provide food and refreshment of some variety for whoever shows up.
Do you have to get on a train or bus to get here? No problem! I don't think they're keeping track of who is in what apartments too carefully. I bet easily 3 people could stay here over the weekend and the office wouldn't care.
Since I often use this space to complain or talk about tragedy in various
forms[1], I thought I should balance it out.
Divmod is doing awesome. I can't wait to show you all some applications! Our team is fantastic.
In the infrastructure, we have some great stuff in Mantissa, which I've mentioned in previous posts. Today JP and I merged the "Offering" branch, which sets up a structure for code that plugs in to Mantissa as a product with public functionality in its own database and private functionality that users get access to when they create their accounts or when an administrator grants it to them.
We have code which acts as a telephone server and records calls, as well as responding to DTMF signals (you pushing the buttons on your phone), thanks to Allen Short[2].
We've got a new mail server that receives email and puts it into a browser, and view the message as well as it's MIME attachments, thanks to Moe.
Amir has been keeping it all together, working on the Quotient stuff with Moe, and keeping our focus sharp. In addition to re-designing our entire customer experience for a re-launch, Amir has been exuding one of the qualities of a really good manager: not one second of the team's time is being spent in useless meetings or procedural issues - it feels like Divmod runs itself.
Finally, I've had some time to do some blogging, to talk to people on the team on a regular basis, polish our tools, and start engaging the community. After years of slogging away in the open source salt mines it's really nice to see patches which do things that we need spontaneously emerge from contributors on a semi-regular basis. There are things happening behind the scenes in the community that I'm even more excited about.[3]
[1]: Sadly, I fear I may need to again soon - I almost didn't post this entry because despite all this great news, as I was writing it I received some bad tidings about both of Ying's grandmothers' health failing rather badly, simultaneously. I decided it's probably best not to let the bad vibes drown everything out though.
[2]: If you click on that link you'll probably notice it's taken a toll on him. The standards related to voice on the internet are not pretty things. ;-)
[3]: Hear that, Alex? Things are happening, aren't they?
Divmod is doing awesome. I can't wait to show you all some applications! Our team is fantastic.
In the infrastructure, we have some great stuff in Mantissa, which I've mentioned in previous posts. Today JP and I merged the "Offering" branch, which sets up a structure for code that plugs in to Mantissa as a product with public functionality in its own database and private functionality that users get access to when they create their accounts or when an administrator grants it to them.
We have code which acts as a telephone server and records calls, as well as responding to DTMF signals (you pushing the buttons on your phone), thanks to Allen Short[2].
We've got a new mail server that receives email and puts it into a browser, and view the message as well as it's MIME attachments, thanks to Moe.
Amir has been keeping it all together, working on the Quotient stuff with Moe, and keeping our focus sharp. In addition to re-designing our entire customer experience for a re-launch, Amir has been exuding one of the qualities of a really good manager: not one second of the team's time is being spent in useless meetings or procedural issues - it feels like Divmod runs itself.
Finally, I've had some time to do some blogging, to talk to people on the team on a regular basis, polish our tools, and start engaging the community. After years of slogging away in the open source salt mines it's really nice to see patches which do things that we need spontaneously emerge from contributors on a semi-regular basis. There are things happening behind the scenes in the community that I'm even more excited about.[3]
[1]: Sadly, I fear I may need to again soon - I almost didn't post this entry because despite all this great news, as I was writing it I received some bad tidings about both of Ying's grandmothers' health failing rather badly, simultaneously. I decided it's probably best not to let the bad vibes drown everything out though.
[2]: If you click on that link you'll probably notice it's taken a toll on him. The standards related to voice on the internet are not pretty things. ;-)
[3]: Hear that, Alex? Things are happening, aren't they?
PC programmers originally wrote programs for DOS. It was simple. It was
direct. A program could do whatever it wanted. It could write directly to
video memory, it controlled the whole screen.
Later PC programmers had to learn to write programs for Windows. At first, that was a big pain. The Windows API, even Win16, is hundreds of times more complex than the DOS "API", if you could even say it had one. Applications had to be changed so that their UIs behaved like Windows did, rather than what was "best" for their application domain. Most programs had to abandon their crazy key-bindings to make room for C-c and C-v to mean "copy" and "paste". (Even we geeks only have room in our hearts for one or two sets of crazy key bindings.)
Browsers are today's "video memory"; applications put information wherever they want, with no user-interface conventions that aren't enforced by the browser itself. There is no operating system for the web, no mechanism to make different applications play nicely together on a single server, let alone on a single page. The web is in need of a major shift.
Many would have you believe that "Web 2.0" - AJAX and such - is this shift. "Web 2.0", insofar as I can tell that it refers to anything concrete, is the idea that web applications should respond to the user interactively. This is something that applications have been doing even before DOS; it is not a new idea, and in a sense, it is only the web playing catch-up in an area where desktop applications have long been the clear winner.
What I want to know is, where is the integration paradigm? Where is the clipboard for the web?
I think that whatever answers this question will rightly deserve the moniker "Web 3.0". It will be providing a leap forward over non-web applications which will really be worth something, and hopefully won't be worthy of brutal derision at the hands of industry pundits.
Web 3.0 is going to come with a price, though. By way of an analogy: DOS developers didn't understand the value of Windows programming at first. They objected: Windows is slow. It's ugly. The UIs are boring and everything looks the same. It takes too much memory. Why couldn't they just use DOS like they used to?
Today's web frameworks are generally more like DOS than like Windows, in this respect. Don't get me wrong, I don't mean they're bad: DOS was a huge step up from its predecessor, which was, basically, "you have to write DOS yourself in every application". The "Web 2.0" frameworks I'm familiar with: Rails, Seaside, Subway, Django, and TurboGears are geared (no pun intended) towards providing those parts of your application that you'd have to write yourself, if they weren't provided. They are sometimes libraries, sometimes frameworks, but their purpose is to provide you with a quick path to development and make your application interactive. They aren't really geared towards providing a context in which your application can communicate with other applications.
The infrastructure Divmod is building, we hope, will provide some of the imposed structure that has thus far been lacking on the web. The first step, by way of Mantissa, and our recent work on the "Offering" system, is to provide a way for multiple installed applications to be easily installed on the same website, an idea that Zope, among others, pioneered with some success. That's the front-end, the Windows-1.0 phase. Later, we hope to build clustering and inter-application remote integration with Vertex, the "networking" and "multitasking" that came with Windows 95, following in that same metaphor.
Let's escape the metaphor for a second. The concrete features we want to provide will be things like: You want to write a social network application. Social networks implicitly use telephones and email. With Divmod's framework you can (in the future, when we have finished these systems) write an application as a set of plug-ins which will be activated by the Address Book page, the "Email Inbox" page, and the "Place Call" page from our VoIP application. You can automatically create To-Do items for the user's existing task-tracker. Similarly, if you provide appropriate plug-in interfaces (which the system does make pretty easy and idiomatic)
In the process of writing this essay, I discovered that wikipedia says others are already speculating about Web 3.0 and with similar ideas. It will be distributed, it will be decentralized, it will involve connections within and between web services.
So, how does this all relate to Divmod? What could we hope to gain by providing this kind of technology, especially by giving it all away for free? I'll explain the part of our business model that this impacts, because I am personally always suspicious of people telling me of great stuff they'll do for me without an idea of how it's helping them.
To start with, we have a lot of different ideas for applications, and we want to make sure they can all inter-operate. All the standard reasons for using open source apply - making bugs shallow with more eyeballs, etc - and we also want to make sure that as we're focusing on our first few uses we are preparing for a broader and broader use of our technology, and what better way to do that than by having other people with other use-cases take a look at it.
We have another reason too, though. Once we're done with all of our ideas for applications, (and by all that is good and holy in this world, one day we will be done!) we want to step back and allow the service to keep growing through the contributions of our users, and eventually compensate those contributors who provide us with useful code. Taking a page from Red Hat's book, rather than attempt to sell a commodity into a market, we want to define a market for "web 3.0" products, and then be the market leader and provide a marketplace for good products, rather than simply sell our own.
By providing a structure that will allow lots of different applications to be installed on the same site, we provide a way for independent developers to provide us with applications that can be run together on our site. We can then run all those applications through our account management system and make it easy for those developers to get compensated based on usage patterns and that sort of thing. Of course, any applications we're going to run on our cluster will have to be licensed as open source so that we can have the same expectation the developer does: we won't sue them for using our stuff, they won't sue us for using theirs.
In other words, we're trying to leverage this technology shift to make a way for hackers to get rich writing open source software, without going through the process of starting a startup.
Later PC programmers had to learn to write programs for Windows. At first, that was a big pain. The Windows API, even Win16, is hundreds of times more complex than the DOS "API", if you could even say it had one. Applications had to be changed so that their UIs behaved like Windows did, rather than what was "best" for their application domain. Most programs had to abandon their crazy key-bindings to make room for C-c and C-v to mean "copy" and "paste". (Even we geeks only have room in our hearts for one or two sets of crazy key bindings.)
Browsers are today's "video memory"; applications put information wherever they want, with no user-interface conventions that aren't enforced by the browser itself. There is no operating system for the web, no mechanism to make different applications play nicely together on a single server, let alone on a single page. The web is in need of a major shift.
Many would have you believe that "Web 2.0" - AJAX and such - is this shift. "Web 2.0", insofar as I can tell that it refers to anything concrete, is the idea that web applications should respond to the user interactively. This is something that applications have been doing even before DOS; it is not a new idea, and in a sense, it is only the web playing catch-up in an area where desktop applications have long been the clear winner.
What I want to know is, where is the integration paradigm? Where is the clipboard for the web?
I think that whatever answers this question will rightly deserve the moniker "Web 3.0". It will be providing a leap forward over non-web applications which will really be worth something, and hopefully won't be worthy of brutal derision at the hands of industry pundits.
Web 3.0 is going to come with a price, though. By way of an analogy: DOS developers didn't understand the value of Windows programming at first. They objected: Windows is slow. It's ugly. The UIs are boring and everything looks the same. It takes too much memory. Why couldn't they just use DOS like they used to?
Today's web frameworks are generally more like DOS than like Windows, in this respect. Don't get me wrong, I don't mean they're bad: DOS was a huge step up from its predecessor, which was, basically, "you have to write DOS yourself in every application". The "Web 2.0" frameworks I'm familiar with: Rails, Seaside, Subway, Django, and TurboGears are geared (no pun intended) towards providing those parts of your application that you'd have to write yourself, if they weren't provided. They are sometimes libraries, sometimes frameworks, but their purpose is to provide you with a quick path to development and make your application interactive. They aren't really geared towards providing a context in which your application can communicate with other applications.
The infrastructure Divmod is building, we hope, will provide some of the imposed structure that has thus far been lacking on the web. The first step, by way of Mantissa, and our recent work on the "Offering" system, is to provide a way for multiple installed applications to be easily installed on the same website, an idea that Zope, among others, pioneered with some success. That's the front-end, the Windows-1.0 phase. Later, we hope to build clustering and inter-application remote integration with Vertex, the "networking" and "multitasking" that came with Windows 95, following in that same metaphor.
Let's escape the metaphor for a second. The concrete features we want to provide will be things like: You want to write a social network application. Social networks implicitly use telephones and email. With Divmod's framework you can (in the future, when we have finished these systems) write an application as a set of plug-ins which will be activated by the Address Book page, the "Email Inbox" page, and the "Place Call" page from our VoIP application. You can automatically create To-Do items for the user's existing task-tracker. Similarly, if you provide appropriate plug-in interfaces (which the system does make pretty easy and idiomatic)
In the process of writing this essay, I discovered that wikipedia says others are already speculating about Web 3.0 and with similar ideas. It will be distributed, it will be decentralized, it will involve connections within and between web services.
So, how does this all relate to Divmod? What could we hope to gain by providing this kind of technology, especially by giving it all away for free? I'll explain the part of our business model that this impacts, because I am personally always suspicious of people telling me of great stuff they'll do for me without an idea of how it's helping them.
To start with, we have a lot of different ideas for applications, and we want to make sure they can all inter-operate. All the standard reasons for using open source apply - making bugs shallow with more eyeballs, etc - and we also want to make sure that as we're focusing on our first few uses we are preparing for a broader and broader use of our technology, and what better way to do that than by having other people with other use-cases take a look at it.
We have another reason too, though. Once we're done with all of our ideas for applications, (and by all that is good and holy in this world, one day we will be done!) we want to step back and allow the service to keep growing through the contributions of our users, and eventually compensate those contributors who provide us with useful code. Taking a page from Red Hat's book, rather than attempt to sell a commodity into a market, we want to define a market for "web 3.0" products, and then be the market leader and provide a marketplace for good products, rather than simply sell our own.
By providing a structure that will allow lots of different applications to be installed on the same site, we provide a way for independent developers to provide us with applications that can be run together on our site. We can then run all those applications through our account management system and make it easy for those developers to get compensated based on usage patterns and that sort of thing. Of course, any applications we're going to run on our cluster will have to be licensed as open source so that we can have the same expectation the developer does: we won't sue them for using our stuff, they won't sue us for using theirs.
In other words, we're trying to leverage this technology shift to make a way for hackers to get rich writing open source software, without going through the process of starting a startup.
The first step is "I don't have a problem, I can stop whenever I want",
right?
This week I purchased some "gaming" input peripherals, because "gaming" has come to mean "good" in the eyes of peripheral manufacturers. I wasn't disappointed by that assumption.
Given this previous problem with stand-charger-based mice (the MX1000 is not the first wireless mouse I've had this happen to) the G7 was impressive right out of the box. There are 2 battery cartridges: one stays in the charger at all times, one is in the mouse. That means the charger is smaller, doesn't have to be located on my desk, and when the mouse does need charging, I have 30 seconds without a mouse instead of an hour and a half. The charger, while itself small, also has a tiny, detachable USB transmitter, making it a cinch to pop this mouse into my laptop bag for short trips.
What else can a mouse do? Comfortable in my hand: check. Tracks smoothly: very check. I have no objective way to measure it but it certainly feels at least as smooth as any other mouse I've used. Works on glossy surfaces... check? Color me impressed, it worked on at least 3 different surfaces, including my Wacom tablet, that caused my MX1000 grief. It still gets upset if I put it on a mirror, though.
The feature that impressed me the most, and that gives it a real claim to being a "gaming" mouse, was that it has a speed shifter. This never would have occurred to me. Two buttons under the scroll wheel increase and decrease the mouse's speed (in hardware, so it works with linux) from "slow" to "fast" to "crazy". Playing Quake 4 this weekend, this feature was super-handy when getting into an armored vehicle that slows down the mouse to simulate a feeling of weight . Even using regular applications, it's handy; with 2560 pixels to cover on my desktop from edge to edge, it's nice to be able to crank up the speed, rocket over to my left desktop, slow down to pinpoint emacs's title bar, then speed up again to yank it all the way over to the right.
This keyboard is probably the largest that I've ever seen, let alone used or purchased. The IBM model M, named the "desk-dominator" for its unnatural size, is 492 mm x 210 mm (19.4” x 8.3”). This thing is 546mm x 267mm (21.5” x 10.5”).
So far though, the size seems to be worth it. It has the best tactile response I've gotten from a membrane keyboard ever, blowing even the previous front-runner in that category, the Eclipse, out of the water. I can routinely do slightly better than usual in gtypist, even after only having used this keyboard for a day. The "squeak" I've mentioned in previous reviews is completely absent.
The basic layout is a no-nonsense PC-104 key, Everything in the right place, with escape offset slightly - I find I don't mind, but I suspect die-hard Vim fans will likely have a more intense reaction, whether they love it or hate it.
It also includes some special features, which are an annoyance on many keyboards, but which I am generally pleased with on this one. It has a standard set of media keys and a volume knob, all of which worked out of the box on Ubuntu. There's also a switch to turn off the "windows key". It's handy when playing games on Windows; although obviously not a terribly useful feature in Linux when Windows => Hyper and won't magically break you out of a running game. Nevertheless, it works in Linux as well.
It also features backlit keys, a first in a Logitech keyboard. The backlight is subtle, and when it's off, the keycaps are almost black. There's a switch to toggle it on and off, and between two levels of intensity.
The G15 also includes 2 USB ports, which is a welcome addition, and something I've wished every USB keyboard has done since I stopped using a Mac as my primary machine. I now have somewhere convenient on my desk to plug in my USB SSH key and camera. Unfortunately Windows seems to (wrongly?) believe that the keyboard hub doesn't have enough power to drive the thumb drive. Linux powers it without complaint. There are also 2 small grooves to run wires under the keyboard, which is great as they allow me to run my headset cable underneath the keyboard without it rocking slightly where it balances on the cord.
The special "G" keys on the left side of the keyboard are the main attraction. On Linux they are just repeats of F1-F12 and 1-6, which isn't great, but at least the keys provide some default behavior and they're not totally dead, as many special keys are. Since I regrettably must boot into Windows for the majority of gaming these days anyway, this lack of functionality didn't disappoint me too much.
On Windows, with the included driver software (which I will note, did not ask me to reboot!) the G key functionality really shines. They can be bound to any other key, or any sequence of keys, including delays. There is a Macro Record (MR) button which allows you to quickly and easily configure any key to be a timed sequence of keystrokes. This means that in World of Warcraft, I can script a sequence of attacks, including cooldown times, simply by hitting MR, a G key, doing the attacks, then the MR key again to finish. Unfortunately it's unlikely that this functionality will be useful in anything other than a MMORPG, but given how useful it is there, I think it's worth the extra few inches of desk real estate.
Finally, the keyboard also includes an LCD display. I wish I had more to say about this, since it seems like it could be a really killer feature, but the included applications are really sparse; a clock, a CPU meter, a volume meter. I'll be watching g15mods.com to see if anything interesting comes out (not least of which, Linux drivers).
I can't be quite so unequivocal about the G15, but I'm still pretty pleased with it. The tactile response is good; the frame is incredibly sturdy, it looks cool, if massive, the USB ports are handy and the G-keys are really useful in the place where they're supposed to be, to wit, a video game. The jury's still out on the LCD display, and lack of linux support is always a problem with funky features, although offering the Windows SDK on the CD with the keyboard was a nice touch.
This week I purchased some "gaming" input peripherals, because "gaming" has come to mean "good" in the eyes of peripheral manufacturers. I wasn't disappointed by that assumption.
G7 Gaming Mouse
Logitech really has no competition for mice. My previous mouse, an MX1000, was, when I purchased it, by far the best mouse I'd ever used. My only complaint about it, aside from the "doesn't work well on reflective surfaces" problem that many optical mice have, was that it was getting to the point where the (internal, non-replaceable) battery was run down all the time, and the transmitter / stand was slightly warped after much usage, so the contacts no longer directly lined up where they were supposed to and I had to spend 20 minutes fiddling with it every time I wanted to get it to charge.Given this previous problem with stand-charger-based mice (the MX1000 is not the first wireless mouse I've had this happen to) the G7 was impressive right out of the box. There are 2 battery cartridges: one stays in the charger at all times, one is in the mouse. That means the charger is smaller, doesn't have to be located on my desk, and when the mouse does need charging, I have 30 seconds without a mouse instead of an hour and a half. The charger, while itself small, also has a tiny, detachable USB transmitter, making it a cinch to pop this mouse into my laptop bag for short trips.
What else can a mouse do? Comfortable in my hand: check. Tracks smoothly: very check. I have no objective way to measure it but it certainly feels at least as smooth as any other mouse I've used. Works on glossy surfaces... check? Color me impressed, it worked on at least 3 different surfaces, including my Wacom tablet, that caused my MX1000 grief. It still gets upset if I put it on a mirror, though.
The feature that impressed me the most, and that gives it a real claim to being a "gaming" mouse, was that it has a speed shifter. This never would have occurred to me. Two buttons under the scroll wheel increase and decrease the mouse's speed (in hardware, so it works with linux) from "slow" to "fast" to "crazy". Playing Quake 4 this weekend, this feature was super-handy when getting into an armored vehicle that slows down the mouse to simulate a feeling of weight . Even using regular applications, it's handy; with 2560 pixels to cover on my desktop from edge to edge, it's nice to be able to crank up the speed, rocket over to my left desktop, slow down to pinpoint emacs's title bar, then speed up again to yank it all the way over to the right.
G15 Gaming Keyboard
In a word: huge.This keyboard is probably the largest that I've ever seen, let alone used or purchased. The IBM model M, named the "desk-dominator" for its unnatural size, is 492 mm x 210 mm (19.4” x 8.3”). This thing is 546mm x 267mm (21.5” x 10.5”).
So far though, the size seems to be worth it. It has the best tactile response I've gotten from a membrane keyboard ever, blowing even the previous front-runner in that category, the Eclipse, out of the water. I can routinely do slightly better than usual in gtypist, even after only having used this keyboard for a day. The "squeak" I've mentioned in previous reviews is completely absent.
The basic layout is a no-nonsense PC-104 key, Everything in the right place, with escape offset slightly - I find I don't mind, but I suspect die-hard Vim fans will likely have a more intense reaction, whether they love it or hate it.
It also includes some special features, which are an annoyance on many keyboards, but which I am generally pleased with on this one. It has a standard set of media keys and a volume knob, all of which worked out of the box on Ubuntu. There's also a switch to turn off the "windows key". It's handy when playing games on Windows; although obviously not a terribly useful feature in Linux when Windows => Hyper and won't magically break you out of a running game. Nevertheless, it works in Linux as well.
It also features backlit keys, a first in a Logitech keyboard. The backlight is subtle, and when it's off, the keycaps are almost black. There's a switch to toggle it on and off, and between two levels of intensity.
The G15 also includes 2 USB ports, which is a welcome addition, and something I've wished every USB keyboard has done since I stopped using a Mac as my primary machine. I now have somewhere convenient on my desk to plug in my USB SSH key and camera. Unfortunately Windows seems to (wrongly?) believe that the keyboard hub doesn't have enough power to drive the thumb drive. Linux powers it without complaint. There are also 2 small grooves to run wires under the keyboard, which is great as they allow me to run my headset cable underneath the keyboard without it rocking slightly where it balances on the cord.
The special "G" keys on the left side of the keyboard are the main attraction. On Linux they are just repeats of F1-F12 and 1-6, which isn't great, but at least the keys provide some default behavior and they're not totally dead, as many special keys are. Since I regrettably must boot into Windows for the majority of gaming these days anyway, this lack of functionality didn't disappoint me too much.
On Windows, with the included driver software (which I will note, did not ask me to reboot!) the G key functionality really shines. They can be bound to any other key, or any sequence of keys, including delays. There is a Macro Record (MR) button which allows you to quickly and easily configure any key to be a timed sequence of keystrokes. This means that in World of Warcraft, I can script a sequence of attacks, including cooldown times, simply by hitting MR, a G key, doing the attacks, then the MR key again to finish. Unfortunately it's unlikely that this functionality will be useful in anything other than a MMORPG, but given how useful it is there, I think it's worth the extra few inches of desk real estate.
Finally, the keyboard also includes an LCD display. I wish I had more to say about this, since it seems like it could be a really killer feature, but the included applications are really sparse; a clock, a CPU meter, a volume meter. I'll be watching g15mods.com to see if anything interesting comes out (not least of which, Linux drivers).
Overall
The G7 is definitely the best mouse I've yet used, gaming or no; I think I'd recommend it to anyone looking for a good wireless mouse.I can't be quite so unequivocal about the G15, but I'm still pretty pleased with it. The tactile response is good; the frame is incredibly sturdy, it looks cool, if massive, the USB ports are handy and the G-keys are really useful in the place where they're supposed to be, to wit, a video game. The jury's still out on the LCD display, and lack of linux support is always a problem with funky features, although offering the Windows SDK on the CD with the keyboard was a nice touch.