Inside the HP TouchSmart PC software: HP SmartCenter - Part 3

April 17, 2008 7:30 pm

Welcome to part 3 of this mini-series. Last time around you heard a little bit about the early prototypes and how things progressed from there. This time I’ll talk a bit more about some of the functionality in HP SmartCenter and some of the things we were not able to address before having to ship.

The guiding principles for HP SmartCenter and the other touch-optimized applications were to provide quick, “transactional” experiences, to have the applications be as intuitive as possible to use, and have them look polished and clean. HP SmartCenter was to be the “home page” for touch-based interactions with the PC. It had to easily give the user access to key Media Center experiences (TV, music, games) as well as two other touch-optimized programs HP was developing (HP SmartCalendar and HP Photosmart Touch). Finally the user had to have the ability to add access to a certain number of programs of their choice.

To enable some of the quick, “transactional” experiences using a touch screen, HP SmartCenter had to have large “target” areas that are easy to hit using a finger. This requirement helped making decisions about the layout of the “tiles” that the user touches to “launch” something.

We wanted to highlight a few of the key features of the TouchSmart suite of software. We decided that three tiles would be larger than the remaining ones, and that those three would be able to show more details from the underlying program than the smaller tiles. The calendar tile, for example, will pull three upcoming events out of the calendar program and display key information about those events right within the calendar tile. The Photosmart Touch tile will look for pictures in the My Pictures folder and display five of those in a rotation. The weather tile will display high and low temperatures expected for the day as well as the current temperature as reported by the weather service. The analog and digital clock tiles will display two additional clocks (probably configured for different time zones) in text form, in addition to the main clock, which is shown in a larger, graphical look.

The three user configurable tiles would be able to either start a program on the system or a web page, using Internet Explorer. We settled on only having three configurable items, since there was an overall limit in the graphical design at nine small tiles plus three large tiles, and we wanted to encourage people to stick with tiles that didn’t take you out of a touch-optimized / touch oriented environment.

Beyond picking a software development technology (WPF), our other challenges were the many changes in both Windows Vista and WPF as both matured. WPF introduced “breaking changes” several times in our short cycle, and we discovered numerous problems with the integration of WPF and Windows Media Center. We worked closely with Microsoft to get these addressed. But a few problems remained, one of which is that every time you start one of the programs we developed, the computer screen will go black for a few seconds. It gives you the unsettling feeling that something went wrong, but it’s actually a consequence of the interactions between certain software components that are controlling the graphics card (DirectX, WPF and Media Center). As much as we didn’t like it, we were out of time to address these problems by the time our shipping date came.

That’s a wrap for part 3. Next time you’ll hear about the reactions from the team when information about the TouchSmart PC was leaked to Engadget way before the actual launch event, and I’ll also talk a little about the launch at CES 2007.

Update (2008-04-30): Part four is now posted.

Thanks for reading! It looks like you're new here. Welcome! If you like what you see, I encourage you to subscribe to my RSS feed. If you're worried about adding another RSS feed that will add to your information overload, don't! I'm not a prolific poster. Thanks for visiting!

Inside the HP TouchSmart PC software: HP SmartCenter - Part 2

April 10, 2008 7:12 pm

In the first part of this mini-series, I introduced you to the early planning stages of HP SmartCenter. This time you’ll get a little more information on the early development, including a few screenshots of prototpyes.

I hacked together a very simple first version of HP SmartCenter (then codenamed LaunchPad, which still is the name of the executable, incidentally) in HTML and my colleague Maguy added some rough graphical elements to give our design firm an idea of what we were looking for.

launchpad1.png
My quick HTML mockup

launchpad2.png
Improved graphics

From about February 2006 until April 2006 we then iterated with our design firm on the GUI and user experience design. Towards the end of May 2006 we took final delivery of the work from them. I was to turn their beautiful work into a living application with page navigation, drag-and-drop functionality, configuration options, and settings persistence. They had provided a solid foundation to build on, including well thought out namespaces, classes, animations and navigation design.

But there was still a lot of work to be done during the next three to four months. In addition to the application itself I was also responsible for delivering an installer, a supporting “touch optimization” program, and integration with our factory PC build process, including dealing with the “sealing” process that prepares the master hard drive for replication.

We participated in Microsoft’s early adopter program for Windows Presentation Foundation and Windows Vista, which gave us access to builds of the WPF bits, with a seemingly never-ending stream of Community Technology Preview versions. Windows Vista was in a similar state of flux, and I had my hands full, wiping out and reinstalling test machines and updating my developer machine to keep up with the changes.

At the same time I climbed the learning curve for WPF (which Simon Middlemiss once described as more of a cliff), trying to figure out how to get the mostly fixed-content XAML pages that the design company had delivered turned into malleable components and re-configurable layouts.

The initial design from the outside company included two components that pull information from the web: weather and stocks. We had to drop the stocks piece for business reasons early on, and had big challenges working out the business issues for the weather feed integration. We wanted our own high-quality images to illustrate the weather conditions and had to get approval from the owner of the feed data. I thought several times that the weather feature was dead, but stubbornness overcame pessimism, and we pulled all the right people from several companies together to get our images approved within 24 hours before the final code submittal deadline. I remember pulling a work-at-home weekend to fine-tune the weather feature where I had to stop working because I was hit with the flu. I was out for three days. After something like that happens you don’t give up a feature without a fight.

One benefit of being part of the early adopter program for WPF and Vista was that Microsoft arranged for training and troubleshooting sessions. I made two trips to Redmond under this program, once to get more in-depth training on WPF and Vista, and once to get help with troubleshooting performance issues we had run into. That’s when I learned that there is such a thing as a “managed memory leak“, which can be introduced in WPF without the programmer necessarily realizing it. Towards the end of the program three of my colleagues and I got to spend a couple of days with Microsoft again, this time at their Platform Adoption lab (Building 20), going over some last minute design and performance questions with their WPF developers one-on-one. This especially helped with getting HP Photosmart Touch into better shape for final release. We got a lot of tips and strategies for dealing with images, collections and containers in these sessions.

That’s it for part 2. Next time I’ll dig a little more into the guiding principles that were used for the implementation of HP SmartCenter, as well as some of the challenges and problems I encountered on the way.

Update (2008-04-30): Parts three and four are now posted.

Inside the HP TouchSmart PC software: HP SmartCenter - Part 1

April 4, 2008 10:23 pm

I thought some people might enjoy reading a little “behind the scenes” story about the most high-profile piece of software I’ve been involved with so far. I feel pretty lucky to have had the chance to work on a unique product and to have what I helped work on be so central to the user experience as it is on the HP TouchSmart PC. You may interpret this post as highly egotistical and self-centered, and I suppose it is. But I feel like telling a story. My story. I will go over most of the non-confidential details of the events as I remember them. Since there’s a lot to talk about, I’ve decided to split the story into a mini-series. This is part one. Here we go.

My involvement with the HP TouchSmart PC began in about December of 2005. The decision was made to invest in software that would be best suited for the touchscreen that the unit would have. One of the results is HP SmartCenter as seen here (screenshot from my developer machine, not necessarily representative of the final product):


We had tight deadlines. Our final bits would be due in about six months, around June / July 2006. Our product marketing folks decided they wanted the touch application to provide quick access to TV and music as primary features. Windows Media Center was our software of choice for delivering TV and music experiences, and so we made HP SmartCenter run within Windows Media Center. This helped to avoid waiting for Media Center to start up when the user wants to watch TV or listen to music. In other areas the choice created lots of challenges. The initial one was picking a software development technology.

I had just attended PDC05 and was pretty excited about Windows Presentation Foundation (WPF) and the speed I could sense it would give developers and designers for rapidly creating exciting software. I had learned that Media Center in Windows Vista would support WPF, and my recommendation to use it for our apps to make the deadlines while delivering a polished user interface was accepted.

An interface developed in HTML would not have had the same quality (read: look-and-feel). Using the Media Center Markup Language (MCML / SplashFX) was not an option, since that was not going to be revealed in any useful detail until about March 2006, way too late for us to learn how to use it and produce a product.

At PDC05, it had been mentioned that a well-know design company had worked on some XAML styles for the show. We approached them to help out with the application design and asked them to deliver their stuff as working XAML / WPF code. They were pretty excited about the idea and signed on.

That’s it for now. Check back soon for the next installment of this mini-series, where I’ll show you a few screenshots of very early prototypes.

Update (2008-04-30): Parts two, three and four are now posted.

Tom Chapin - Not on the Test

March 30, 2008 9:07 pm

Our family attended a Tom Chapin concert recently. For those of you with kids out there and who may not know him, he’s a great children’s singer/songwriter whose music you can take along on a roadtrip and listen to for days without getting tired of it. He’s also got quite a few great albums for grown-ups, incidentally.

Anyway, he performed a song I hadn’t heard before (although it’s over a year old by now). It’s a commentary on the state of elementary education in the U.S., and it hits the nail right on the head, if you ask me.

Check it out at www.tomchapin.com (to download and pass along) or watch the video below:

The OLPC arrived - see what’s in the box

March 26, 2008 10:22 pm

I had almost forgotten about the OLPC give-one-get-one campaign I took the opportunity to participate in last year. Well, the thing finally came today. I wasn’t really all that anxious to get it, so it didn’t bother me at all that it took a while. I thought it was more important that the real recipients get theirs first.

Anyway, here are a few pictures of a kind of unboxing. It’s really more of a series of pictures of the packaging/parts, since I had already unboxed the thing by the time I took these.

IMG_0038
Simple cardboard packaging and plastic bags for protection

IMG_0029
All parts arranged on the open box

IMG_0030
Front of welcome brochure and power brick

IMG_0031
The OLPC itself with the two random color elements that make it “unique”

IMG_0032
Back of the OLPC, with battery removed

IMG_0034
Battery and welcome letter

IMG_0036
Inside of welcome brochure

IMG_0037
Back of welcome brochure

The battery actually came mostly charged, which was a nice surprise. Turning the laptop on for the first time took me through a simple naming step and then right to the “hub”/home screen. It took a while to get there, but it was really, really simple. No series of screens that ask for all kinds of information, like on regular PCs.

My initial exploration of the software took me around to the Journal, Webcam app (called Recorder), Paint, Measure (seemed to enable you to analyze / show the sound from the microphone), wireless setup, Browser and a few other things. Looks very interesting so far.

Both my kids have expressed interest in fiddling with it. Should be a lot of fun.

Netflix WatchNow MediaError(1400): One solution

March 2, 2008 10:32 pm

Here’s a quick tip: If you’re a Netflix subscriber and are having problems with the WatchNow feature, take a look at whether you have any caching proxy servers between the PC you’re using to watch a show and the Netflix servers (yes, that’s a long path and a very general statement, I know).

If, for example, you have a home network server with a caching proxy feature, try turning the proxy feature off. That helped me with MediaError(1400) problems, anyway.

If your ISP has a caching proxy, see if there’s a way around it, too. It may be a source of problems.

Going to SD West 2008 - a planning worksheet

March 1, 2008 2:37 pm

I have the good fortune to be able to attend SD West this year. I’ve heard people at work rave about this conference right in my backyard, and was lucky to get approval to go this year.

Unfortunately I’ve been so swamped with work (really exciting new stuff, too) that I haven’t been able to prepare at all. In other words I still have no idea about what sessions to go to. Argh. To add to that frustration, the SD West website doesn’t make it really easy to plan your days for maximum efficiency. Double Argh.

Here’s how I like to plan my attendance: I have an idea at a high level about what kind of sessions I’d like to focus on (in my case .NET and People, Process & Methods mostly). So I need to be able to filter all sessions by those high-level criteria. Next, I need to figure out which sessions in those high level tracks are available at what time and how they may conflict relative to how interesting they sound to me.

The information provided on the SD West website provides some ability to filter and search for sessions, but it doesn’t help you with detailed planning.

So I decided to spend a little time pulling down all sessions as an Excel sheet (which the site allows, thank goodness), and started to shape and mold the sheet to my needs. The result is available for you to use as well, in case you’re as late as I am: sdwest08_all.xlsx (update: rename this file to have an .xlsx suffix after downloading, WordPress changed the extension on me).
(I think I have all sessions in there, but I noticed that one session seemed to not be fully downloaded (a session with quotes in the description), so I added it back by hand. Maybe there are others missing too, but I think that was the only one.)

You’ll see all sessions sorted by time, color coded by time slot/event type (keynotes, birds-of-a-feather), color coded by track, and with filters on each column. I also added a priority column at the beginning to perhaps help making decisions if you change your mind while at the event.

And, yes, I will most likely be wearing my Geek Tie at the event (it has a Red Verbatim Store’n'Go USB memory stick and a gray CaseLogic case at the end).

Computer performance puzzle: Hard drive PIO vs. (U)DMA mode

February 18, 2008 7:06 pm

[I may have a hard drive mini-series on my hands here, see previous post.]

If your computer has performance problems and you can’t quite explain why (you’ve ruled out startup items, spyware and such ilk), it may be worth looking at how your IDE controller manages hard drive data transfer. It should be using (U)DMA, unless your computer and hard drive is from the stone ages.

To check, go to Control Panel - System:

image

Click Device Manager and expand the IDE ATA/ATAPI Controllers node:

image

Now double-click on a Primary or Secondary IDE Channel and go to the Advanced Settings tab:

image

If the Transfer Mode combo box doesn’t say “DMA if available”, you can change it, then restart the computer. That should switch Current Transfer Mode to (Ultra) DMA Mode (X) if your drive supports it, which it should.

But what if Current Transfer Mode doesn’t say (Ultra) DMA Mode (X) after that? What if it stays in PIO mode no matter what you set the Transfer Mode to and no matter how many times you restart? That’s what happened to my system. And it was slow as molasses starting up, since my boot/system drive was in that mode.

It turns out that Windows keeps track of the transfer statistics between your drive and the rest of the system. If Windows encounters a lot of transfer errors, it slowly dials the transfer mode back. So it can go from Ultra DMA Mode 5, to Mode 4, Mode 3, etc. all the way back to PIO mode. If Windows encounters DMA transfer timeouts, it will immediately go back to PIO mode. According to this support article on Seagate’s web site, those errors will be logged in the Windows Event Log, but I guess it happened so long ago on my system that the entries have been lost in the meantime.

According to the same Seagate article, the solution is to delete the corresponding IDE Channel device from Device Manager, restart Windows, let the system re-detect the device, reinstall the driver and restart one more time. Now DMA transfer mode should be back, and your system should perform much better.

You still might want to investigate why the mode got switched back to PIO. Look through the event log using Event Viewer, filtering by Event source type “disk”. Also, check the ribbon cable you use to connect the hard drives. It may have come loose, or it may not be of the right kind (it has to have 80 conductors, not 40) or quality. Using ribbon cables with too many hard drive changes can cause loose/broken connections between the connector pins and the cable.

Listen to your hard drive’s S.M.A.R.T. status

1:37 pm

As I mentioned in my last post, I went to the local Fry’s recently to get a replacement hard drive. What prompted me to do that was a warning from the BIOS of my computer saying that the S.M.A.R.T. status of the drive was bad. I’m glad I listened to that warning. After replacing the drive, I put it in a separate machine to perform a safe erase (using Eraser, which can also be found on SourceForge), but not until looking at the S.M.A.R.T. information using SpeedFan. It told me that there were over 65000 excess relocated sectors, which means that the drive basically was running out of spaces to move bad sectors to when needed.

After this exercise I installed SpeedFan on my main machine as well, and found that I have another hard drive that’s not too healthy. So I may have to go out and get another replacement soon.

I also found a monitoring tool called ActiveSmart, which costs money (unlike SpeedFan, which is free), and can alert you via email or network messages when a drive is beginning to deteriorate.

While I’m on the subject of hard drives, another handy tool is DTemp, which shows you the temperature of your hard drives in the Windows notification area (and can show S.M.A.R.T. data, too). Keeping the temperature of your hard drives as low as possible is important to make them perform optimally and make them last as long as possible.

On the cover of PC World February 2008

February 17, 2008 12:06 pm

Okay, time for a little bragging :).

I was at the local Fry’s yesterday, buying a new hard drive to replace one that’s about to go bad, and on my way out I stopped by the magazine racks. Imagine my surprise when I saw this on the cover:

Image-01

How cool to see the product you worked on so intensely be recognized with a magazine cover photo! If you look closely, you can even see one of my photos to the left of the big red circle in the little photo stack.

I’m still pinching myself a little just to make sure it’s not a dream.

The HP TouchSmart PC came in at number 7 on the top 25 innovative products. Not too shabby, I think. And I’m glad to see that the OLPC took third place ahead of it. I’m still waiting for the OLPC I’m supposed to get with my give-one-get-one donation, but I hear it will come any day now.

Here are some more pictures from the magazine:

Image-03

Image-02