I am pleased to report that the Baby Edutainment System is now operational and works as expected.

I went against my geek instincts and ended-up getting an eMachines computer. I always viewed eMachines as complete garbage, but it appears that since Gateway bought them, the quality has improved significantly. Here are the specifications of the machine I purchased…nothing phenomenal, but not a wimpy machine either.

CPU: AMD Athlon™ 64 3200+ Processor (512KB L2 cache, 2.2GHz, 1600MHz FSB)
Operating System: Microsoft® Windows® XP Home Edition SP2 1
Chipset: ATI RS480
Memory: 512MB DDR (400MHz)
Expandable to 2GB
Hard Drive: 160GB 2
Optical Drives: 16x DVD±RW multi-format double layer
Media Reader: 8-in-1 Digital Media Manager
Secure Digital (SD), Smart Media, Compact Flash, Micro Drive, Memory Stick, Memory Stick PRO, Multimedia Card, USB 2.0
Video: ATI Radeon® Xpress 200 (PCI-Express®)
128MB DDR shared video memory
Sound: AC ’97 audio, Dolby 5.1 (6-channel)
Modem: 56K ITU V.92 ready Fax/Modem
Network: 10/100Mbps Integrated Ethernet LAN
Peripherals: Standard multimedia keyboard, 2-Button wheel mouse, amplified stereo speakers
Dimensions: 14.125″H x 7.25″W x 16″D
Ports/Other: 7 USB 2.0 (2 in front; 4 in back; 1 in Media Reader), 1 IEEE 1394 port (in back), 1 VGA external connector, 1 Parallel, 2 PS/2 (keyboard and mouse)
Pre-Installed
Software:
Microsoft® Works 8.0 1, Microsoft® Office 2003 Trial (60-day complimentary subscription), Microsoft® Money 2005, Microsoft® Encarta Online, Adobe® Acrobat® Reader™, Microsoft® Windows Media Player 10, Microsoft® Internet Explorer, RealNetworks RealPlayer®, CyberLink® PowerDVD, Nero 6 Suite, Napster 3.0, Quicktime, AOL 9.0 (w/3 months membership included), Google Toolbar, Norton Internet Security™ 2005 (90-day complimentary trial)3, McAfee Anti-Spyware 2005 (30-day complimentary trial), eMachines BigFix®

I neglected to check the floor model of the machine thoroughly at the store and only after unpacking it as home did I realize that some bean counter at eMachines had decided to save a few pennies by not attaching the composite and S-video connectors on the video card. The card supports them…it just has empty spaces where the connectors should appear. Arrgh…why do companies do that…penny wise and pound foolish. Well, I pretty much could not have the BES without being able to output to the TV, so this was a problem. I saw this as an opportunity in disguise. I wasn’t too happy with the video performance of the ATI Xpress 200, so I ended up getting an ATI Radeon X700 Pro PCI-Express video card on eBay. I like its performance much better and it has every kind of output I would need, including DVI. Nice.

I have grown to really dislike new computers because I have to deal with uninstalling all the garbage software that comes pre-installed. Come on folks, seriously…enough of the free AOL hours and gazillion anti-spyware utilities and photo editors already. Just put a hardware switch on the box OK…two settings…(1) GEEK and (2) CLUELESS. Set the default to (2). If I choose (1), just put the barebones OS and then leave my computer alone. Anyway, where was I…so after messing with the hardware and seeing all the junk that came on the drive, I decided that there was only one way in which I could keep my sanity. Yes, I booted with the Windows XP Media Center Edition 2005 CD, blew away all the partitioned and installed the OS from scratch. Much better. BTW, if you are going to use Media Center Edition, use 2005…everything prior is crap.

After spending a few hours tweaking and tuning things, I finally had the system ready to go. So I ripped out all the electronic components from my entertainment center and dropped in the media PC. I hooked up my WinTV USB2 external TV tuner with DVR support (integrates seamlessly with Media Center Edition). I added the RF receiver for the SnapStream FireFly remote I purchased (Amazon…overnight). This is a sweet piece of hardware. Not only does it control all the MCE features without line of sight (thanks to RF), but it also has a cool mouse emulation mode. Not something I’ll use all the time, but nice for the occasional mouse click. What I really like about it is that all the button macros are configurable by editing an XML file. Very well-engineered hardware, intuitive software and extremely usable. Finally, I added two receivers for the Dynex Wireless Keyboard and Optical Mouse. Why two receivers you ask? Well, as I mentioned in my original BES post…the Berchet keyboard overlays a standard keyboard. It basically straps on with some velcro bands. Not the best situation and I hope to someday cleanly attach it to a keyboard, but for the moment, that’s what I have. Now, I figured it would be a big pain to attach/detach the overlay each time I wanted to use the regular keyboard, so I added a second keyboard and mouse (I don’t use the mouse with the receiver on which the Berchet keyboard runs). Now, I have the best of both worlds…keyboard for baby and keyboard for daddy. When the baby is using the keyboard and messes up, I can co-pilot and fix things on-the-fly.

So the BES is more or less operational with this hardware. Of course, I still have to deal with the display issue since I have this wonderful, hi-resolution output going to my crappy analog TV, but it’s OK for the moment. I am still having to fix the occassional glitch, so I’m not sure that the hardware is quite there yet, but I iam ready to tweak the software. In my next BES blog, I’ll tell you more about the software setup.

It’s all coming together quite nicely and baby is taking to the system quite well as you can see here (will work much better once I can get her to stop sucking on her fingers when using the system) —

Giaberchet

Hmmm…maybe one size smaller…

I live in Adams Morgan, a multi-ethnic part of Washington, D.C. not far from the famed Dupont Circle and on the same street as the White House. Nearby is Meridian Park, a semi-green oasis in the middle of the city. At one end is an imposing statue of Joan d’Arc gifted to “the Women of America by the Women of France.” On summer weekends, Joan is witness to a most amazing spectacle.

Many people, most male, and mostly from Jamaica, West Africa and Spain, congregate here with all manner of percussion instruments. The gathering is not formally organized and everyone is welcome. Each person just joins in with his/her instrument and makes some amazing music. It is quite a spectacle to see 20-30 people playing all manner of drums and the crowd enjoying/dancing to the most infectious beats.

As I sat and listened to the beats today, I found myself thinking about software. Weird, yes, but that is my passion and I inevitably draw parallels. In the drummer group, there is no leader and people join and drop out at random. As new people join, there is a clear dissonance, but gradually, they sync up, beat for beat until it is so perfect that you cannot help but look for the conductor.

I think about the similarities this has with designing a user interface. I am not very good at software engineering, but I do put quite a bit of effort into the user interface of my software. Creating the U.I. almost always starts off with dissonance. Even with planning and preparation, the initial result is seldom pleasing. It takes several iterations and many days, sometimes weeks, before everything starts feeling harmonious. It’s like the drummers…you can’t instantly sync up…it takes time.

Although I have no scientific data to back this up, I think that successful software has an underlying rhythm. Elements work together in harmony so they become invisible and actions have a natural flow. This is the signature of intuitive software.

When Microsoft unleashed ASP.Net on the world, it helped us take a giant step forward, but in the U.I. area, I think it was two steps back. ASP.Net has single-handedly resulted in the propagation of some of the most dissonant and horrible web user interfaces the web had witnessed. And this is not the first time Microsoft has done it. When Microsoft gave us VB, the same thing happened. By making it easy to create a U.I. by dragging controls around on a page, Microsoft unfortunately created the U.I. equivalent of a cancer. I cringe every time I see controls grouped willy nilly and adorned with superfluous fonts, lines, colors, bevels…you name it. This stuff eats away at app usabililty.

With ASP.Net, my pet peeve is the “auto-postback.” Whoever put that into ASP.Net should be drawn and quartered. And developers who use it deserve the same. For instance, few things are more horrible in a U.I. than to have a page postback when the user makes a selection of a dropdown item to populate or reveal additional form items. Extreme dissonance! This should be done client-side, and not server-side. If there is a lot of data, use XMLHttp. There is no excuse for postbacks that occur without a user click action on an actionable user interface element (i.e. button, icon, hyperlink etc.).

When I evaluate web software, I look at the usability first and the capability second. My rationale is that if it is not usable, who cares what it can do. If I see that the app is an ASP.Net app, I have a litmus test. If I go make a dropdown, radio button or check-box selection and the page posts back, I am done evaluating. As far as I am concerned, the app is unusable. That said, my favorite portal DotNetNuke abounds with instances of this. So although by my definition it is unusable, I continue to use it for two reasons: (1) it has a lot of other positives, and more importantly (2) being on the core team, I am empowered to change this, but haven’t, so I consider this my own fault.

Anyway, I work around it by never using any of the built-in DNN modules other than the registration (which I hope to change some day, because the postbacks on it drive me nuts). With version 3.x, my worst fears were realized. Now, DNN settings pages sport collapsible sections that — you got it — post back, to expose more fields. Arrrrgggghhhhhhh!!!!! I would like to fix it but my biggest fear about fixing some very obvious problems with the DNN U.I. is that I am afraid to break some functionality in the process. DNN has so many moving, interdependent parts that this is actually quite easy to do. I know I should get over this unjustified fear and fix things. Someday soon I will work up the courage to do it, until then I will present mini-fixes through my blog as I have been doing and live with the dissonance.

 

 

I have had it with designing cross-browser web pages without tables.

OK, I get it. An HTML table was never intended to be used for pixel-perfect design layouts. For that matter, HTML was never intended to be used for pixel-perfect design layouts, period.

But, I have tried to go with the flow. The design gurus say, don’t use tables…use CSS. But from a productivity standpoint, that stinks. I have spent countless hours trying to get CSS-based

elements to do my bidding. And you know what. I am done. I will try and use CSS-based layouts when possible, but if I have to spend more than a few minutes trying to get things to position properly, I am back to using tables.

Now, I am no designer, but then I am not completely clueless about CSS either. I tell you, with the number of workarounds/hacks that you have to use to get cross-browser layouts to work using CSS only, I am surprised that people still continue to pursue this type of design. Doesn’t productivity matter more than “View source…”?

There is nothing inherently wrong with tables in HTML unless your overall page is one giant table. Then the user is going to wait until the browser can figure out how to lay the table out. For intermediate content, I don’t see how using tables is a big problem if my targeted browsers are IE and Firefox and I use them for layout of elements within the page. (Yes…I am aware that there are other browsers, but just as people have a choice of browser, I have a choice of the browsers I will support.)

I develop web applications. If my app enables the user to complete the task it was intended for quickly and easily, then as far as I am concerned, tables or no tables, my app is a success. So until all the browser developers get their act together, I am going to keep my tables.