Friday, April 29, 2005

X marks the tab...

So while I'm waiting for the latest new bits of Delphi goodness to be assembled into some machine readable goop... I figured I'd take a few moments to spew a few thoughts...

You know those little “X”s on the editor tabs in Delphi 2005?  The ones that you either absolutely revile as the spawn of the devil, or on the opposite side, they're the Messiah's second coming.  Quite frankly, I'm someplace in the middle... well maybe more toward the Messiah side... When we were considering putting them into Delphi (ie. the Galileo IDE), we looked at how these little images of controversy were handled in other environments.  The first such environment, which was also the most logical, that we looked at was JBuilder.  So we fired up JBuilder to do some research (such as it was).  After playing around with them for a while, I found some usability issues with them, but overall Corbin and I really like the idea. (an aside: the Eclipse IDE has a similar feature as well) Here's a few that I found...

  1. It is easy to accidently click the “X” and close the tab.
  2. They increase the width of the tab, thus decreasing the total number of tabs visible (JBuilder also has a glyph next to the “X“ that shows the content type).
  3. If you want to close many tabs in succession and since the tabs were varying widths, you constantly have to shift the cursor to the new location of the “X“ on the next tab.

The first item is probably the #1 complaint among the “spawn of the devil” crowd.  I, too, sometimes have found myself accidently clicking that little “X” when I don't fully pay attention to what I'm doing.  I mean, I'm deep in the middle of a bug fix or some sort of feature work and I want to click over to some other tab, and bam!  I just closed the tab.  So now I just Alt-F,R,5... That's File|Reopen|5. .  I've just gotten used to quickly doing that little dance.  OK.. so that's the first problem.

The next one is... well... really hard to quantify.  If you hate the “X”, then #2 is probably one of your supporting arguments for removing them.  That's fine, but I also think it is a data point that also can stand on its own.  Screen real-estate is a finite resource and needs to be carefully parceled out.  Now that doesn't mean that we create butt-ugly UIs under the pretense of the almighty screen real-estate.  It means that there needs to be a balance.  I often hear folks, especially among the software engineering illuminati, “We don't need all that eye-candy!“  Riiiight...  If that were the case then we'd all be driving Gremlins, Pacers, or Pintos.  That's why I have a Monet print and an actual oil reproduction of a Monet painted by my mother hanging in my office (both from the Water Lilies series, for which Monet is very famous.  And yes, Monet is one of my favorite classical artists).  Right next to the cool 4ft (120cm) wide poster of an F-15E in flight...  All of it is “eye-candy.“  Of course these posters all have their own stories themselves, which I'll save for another blog entry.

The last item is somewhat subtle.  One of my first thoughts when I saw the “X” on the tabs, was “That's cool! I can now quickly close a lot of files without a lot of clicking or mouse movement.”  Well.. not quite.  So you would close the tab, and the tab to the left would slide over, but that tab is a different width that the one just closed, so now the mouse cursor isn't directly under the “X” and you have to move it to the left or the right and click again.  Grrr...  Of course, if you have a habit of double-clicking, you'd probably appreciate that the “X” didn't appear under the mouse cursor.... sometimes.

So with all these negatives, why the blazes did you put that in the product? First of all, it is just so dang useful and convenient.  Also, we solved the #3 problem by having the tab to the right slide over, which would always put the “X” right back under the mouse cursor.  It's also kinda like chocolate.. you know that too much of it isn't good for you, but in moderation it's pretty tasty.

So, now that we've shipped a couple of products with the “X” and have received some feedback from all the various factions out there. You know, the “spawn of the devil” folks and the “Messiah's second coming” folks.  So we're considering a bit of a change.  What if the “X” was at a fixed location?  Say it was all the way over to the right side of the tabs?

That would solve the all the complaints I listed above.  However it would introduce another problem.  Since there is now only one “X”, you can only close the active tab.  Which was one nice thing about the “X” on the tab; you could close an inactive tab by clicking on the “X” directly.  I suppose we're at a point where a descision needs to be made.  Right now, we're internally using this change for the next release of Delphi to see how folks like it.  So far the response has been positive... well OK, not all positive since there are those that “want their 'X' back!”  Now before you suggest it, no, I'm not going to make this optional.  So we have to weigh the advantages and the disadvatages.  So far, I'm inclined to think this is a reasonable compromise between both camps.  Be warned, however, please keep your comments to the point and well thought out.  Any comment I think is disrespectful and rude, I'll delete.  Think critically about the problem, and consider each side regardless of your personal opinion.  Yes, ultimately, the original decision was based on our (the developers and the overall team's) personal preference, and it still is.  Yet, feedback is still key in how we form our preferences and opinions.  Being, ourselves, developers we like to think of ourselves as advocates for the customers.  Like all groups, there are the radical fringes, but you have to take the bad with the good.. and luckily, for the Delphi community, it is mostly good.  It makes our job more enjoyable and satisfying.

With that, have fun... ;-)..  And, hey, if this works out, I might try and address the “my glyphs are overlapping in the editor gutter!” (OK, Nick?) issues...  Talk about a field full of landmines...

Friday, April 22, 2005

Some more blasts from the past..

Brian Long, Delphi Consultant Extranordinaire, has some cool web pages describing all the various “Easter eggs“ that have been in Borland products over the years.  I'm somewhat partial to this one in particular...http://www.blong.com/Undocumented/Delphi5.htm.  In other words, the text file and project manager trick.

For the record, though, I did not put this one in the product.  There was a period of about a year and a half where I played R&D manager in addition to having actual product deliverables for which I was responsible.  It was done by two of my direct reports, specifically, Chris “debuggers 'r' us” Hesik and Dave “I don't have a blog” Wilhelm.

 

Tuesday, April 12, 2005

Eli starting to blog..

Looks like Eli Boling, one of Borland's C++ compiler guru's, is going to start blogging.  He's got a http://blogs.codegear.com account here, and although he hasn't started posting, I'm sure something will appear soon... OK, I'm hoping something will appear soon.  Maybe this post will crack it open...

Delphi at NASA Goddard Space Flight Center.

Someone in the Delphi non-tech newsgroup had posted this link to the NASA Goddard Space Flight Center Rapid Application Development Lab that explains their rationale for using Delphi in the creation of the Data Trending & Analysis System (DTAS)... uh.. whatever that is ;-).  But hey, its written in Delphi!  If you browse to the “Introduction” page (or follow this specific link), there is an excellent paragraph describing their reasons for selecting Delphi as the tool of choice.  The best quote is “ (i.e., it placed no measurable limits on what we could develop).”  That about sums it up...

Thursday, April 7, 2005

Vending machine religion

Vending machines are known for couple of things:  Providing heart-rotting, sugar-laden, flab-producing late night or afternoon munchies.  Another thing they tend to do is rob you of your hard earned loose change... all the while snickering at you as you stare longingly at that fine bit of cellophane-wrapped goodness just out of reach. 

Well, as I was down the hall grabbing a cup of “nectar of the gods,” or coffee, I glanced over and saw an amazing site.  A vending machine with a conscience!  Apparently this particular vending machine “got religion” and decided to try and make up for all its past acts of coniving thievery.  Oh what a site to behold!  Since it is a bit hard to describe, I whipped out my handy-dandy phone camera and snapped a bit of grainy wonder so that I could share this heart warming experience with you.

Friday, April 1, 2005

Gadgets galore...

If you remember my post here about that cool shopping/gadget site, Woot, you'll remember that I had bought that fantastic gadget deal of a mobile hard-disk based tune box and the streaming media box from Rockford-Fosgate's Omnifi division (which I understand they've recently jettisoned).  Well, I spent the last weekend installing it into my car.  I might decide to post a few photos of the install.. I don't know.  But, anyway, I wanted to preserve the existing factory head unit and only add the DMP1 using some sort of auxillary audio input.  Well, it turns out that even though the radio head unit already has a 6 disc CD changer built int, it also supports an external CD changer as well.  Well, it turns out that Discount Car Stereo sold a really cool little box that connects to the existing head unit using one of the unused connectors and provides two auxillary inputs.  To the stereo, it looks like an external CD changer and by selecting a different track I can switch which of the two aux inputs are being used.  So I ordered it.

The tricky thing about the install was that I wasn't sure where to place the Omnifi controller/display.  My stereo head unit takes up most of the center console space so there was no place to put it there.  So I went a'Googlin'..  I found a place where another Omnifi user had installed the controller unit onto a little sun-visor that was just above the rear-view mirror.  Well, I don't have anything like a sun-visor there, but there is a bit of space.  So I built a bracket that fit between the two existing sun-visor mount points and then extended down out from under the headliner with two other bracked to which I attached the controller.  Then ran the wire under the headliner and down under the A-pillar moulding.  Then I did some surgery on the aux-input adapter cables to tap into them in order to grab the requisite power, switched power, ground and dimmer and feed them to the Omnifi adapter. Then placed the hard-disk carrier under the passenger seat.  I then ran the USB cable to the WiFi adapter out on the back window deck.  (yes this did come with a WiFi 802.11b adapter :).

Then there is a bit of software you install on your computer system where you have all the media files stored (or on a machine that has access to those media files).  This software is then used to sync with the player out in the driveway.  That is the coolest part of the whole setup.  At 2:00am, the DMP1 wakes up, boots itself and connects to the network.  It then will automatically sync with the server based on what you want it to sync.  For example, I created a playlist with some songs and then went to bed.  In the morning I got in the car and drove into work and there on the device was my playlist.  I checked the status on the device and it said that it completed the sync operation at 2:03am.  This is cool!  So now I pull into the driveway at home and the device connects to the network.. so even my car is WiFi enabled.  For the gadget freaks out there, this is getting good.  The next thing I can look into is a full on “car-puter.” ;-)..

Update: This is not an “April 1st post”.. it is actually true ;-)

Update: Here's some pics of the DMP1 install.  Again.. Sorry for the awful camera phone pics..