Archive for the 'WPF' category
New SDK for HP TouchSmart software development – out now!
November 16, 2009 8:30 amToday HP is announcing a new Software Development Kit for helping you write apps that play well in the HP TouchSmart “shell” environment. The new SDK still contains the general guidelines that outline both what makes a good app that’s optimized for touch interaction and the general rules you have to play by in order to “fit” into the HP TouchSmart shell.
But this time around there’s more: For the first time there is also documentation for a WPF library that you can use to more quickly write an app that heeds all of the rules that need to be followed. This library has actually existed for a few releases already, but it was not documented until now (for HP TouchSmart 3.0).
There are also two sample applications. One that demonstrates the basics of the WPF library (and that shows you what the shell does to the apps on a pretty detailed level – it’s great for seeing what registered messages are sent to the app, how the app gets sized, etc.) and one that’s a little game. To round out things, there’s some skeleton sample app code as well, so you can get started quickly with your app idea.
Here are a few screenshots of the two sample apps:
“Hello world” Wide-interactive tile
“Hello world” Large tile
Notification with CircleX icon
Notification with CircleCheck icon
“Hello Mole” Wide-interactive tile
The documentation is provided in two forms: PDF for easy printing and reading offline as well as in Windows Help format for easy searching and looking at class library details.
You’ll notice that most of this only applies to WPF development. If you’re not using WPF yet (why aren’t you? – it’s a great platform), the general guidelines still apply and work. The shell is actually technology agnostic, since all it cares about, really, is the window (handle) your app produces. As long as your technology stack produces a Win32 window, you can “play”. The essence of that is something I’ve talked about before.
So where can you get this newfangled contraption? Head right over to http://www.touchsmartdevzone.com/download/file/2074-27 to start downloading. There’s still a license agreement in the installer (to make the lawyers happy), but I believe you can now download the thing without having to consent to the agreement first.
Categories: HP TouchSmart, Software development, WPF
4 Comments »
New HP TouchSmart 600 and 300: choice quotes on the software
October 13, 2009 8:23 amThis third-generation TouchSmart PC is boosted by Windows 7′s gesture support, but HP’s custom multitouch software is even more impressive.
But as with the earlier models, on the TouchSmart 600 it’s HP’s custom software that really shines. Version 3.0 is a significant upgrade, offering touch-friendly versions of Hulu, Netflix, Twitter […]
And the HP apps now multitask, letting you hop back and forth by sliding them around with a fingertip. The interface is responsive, and is the benchmark for upcoming Windows 7 all-in-one PCs from Acer, Asus, Dell, Gateway, and MSI.
[…], but more important is what HP is doing with its own TouchSmart application. It’s added panes for Hulu, Netflix, Twitter and an HP Music Store powered by Rhapsody, which work in nicely with the rest of the touch-friendly apps onboard and a bit of underlying Microsoft technology keeping things humming — like a nice big handwriting pane for quick Rhapsody searches. There’s also a voice controlled recipe app that can capture recipes from popular recipe sites and read them out loud to you, and the photo app can hook up with a phone over Bluetooth and pull off photos.
But to really take advantage of the system, you’ll want to use the TouchSmart interface and the wonderful, custom apps.
The one downfall here is that HP has designed TouchSmart to run all of the bundled apps at once. You’re truly multitasking, and that means stacking HDTV, Hulu, Netflix, photo editing, a browser, Twitter, and even more video playback. The system generally handles itself admirably, but the TV tuning definitely tips the scales on occasion (just watch the video for interface stutters). If I were to use the system as my DVR on a regular basis, I’d probably cut down the fat on HP’s apps and buy myself some resources.
I want to love the TouchSmart 600, but I just really, really like it a lot. The functionality is all there; no one can question the full media suite of apps, like Netflix, Hulu, and Twitter, let alone the full Windows 7 OS sitting right behind HP’s optional software. It’s the light performance hiccups coupled with a less than 100% touch interface that stop me from screaming at the top of my lungs, "YOU SHOULD BUY THIS RIGHT NOW OR GIVE UP ON LIFE COMPLETELY."
While HP has clearly borrowed from Sony in its wall-mounting and video input capabilities, the software designed for its touch interface is unique and just as compelling.
As promising as we find HP’s new touch programs, Recipe Box in particular, we found the touch interface unresponsive at times, and the main touch software carousel can be slow to load.
Neither Sony nor Gateway have put as much effort into their respective touch software as HP has.
You might also appreciate the numerous video tutorials included with the system to help you navigate the new touch software.
HP continues to put its TouchSmart user interface on top of Windows 7 and it is one of the best I have seen. The new stuff comes in the way of applications; there are now loads of new third party applications, including Hulu, Twitter and Netflix. The interface is as smooth as a baby’s bottom and the main set of tiles fan across the screen and you can easily flick to toggle them. Again, check out the full review of the TouchSmart 600 to get a glimpse of how it really works. HP may just have a method to its touch madness.
Not only is the touch interface on the refreshed tx2 much better than anything else we’ve used on a notebook, HP is adding cool new apps like Twitter and Hulu, with more to come.
What makes the “new” tx2 stand out is what it does with touch.
Unlike the very limited MediaSmart software HP bundled previously, this machine has HP’s full TouchSmart treatment, which means it has the same slick tile interface and nearly all the same applications. These include photos, music, weather, notes, games, a touch-friendly Web browser, and more. Just like on the desktop, you can move smaller menu items to the main menu by dragging the tiles up, or vice versa.
HP has released two new TouchSmart All-in-one PCs and these latest models come preloaded with an impressive, and very much improved upon set of built-for-touch applications.
HP’s new all-in-one TouchSmart PCs come with an improved touch interface and some new apps. I really like Recipe Box, an application that organizes all of your online recipes. The application can be controlled with your fingers or through a Bluetooth headset. I rarely cook, but I’d probably be willing to spend more time in the kitchen if I had something like this.
The new TouchSmart PCs have a touch interface that’s a lot more lively than previous versions.
The new TouchSmart PCs come with touch applications for Hulu, Netflix and Twitter. Consumers may have fun with these applications, but I found the business applications HP had on display much more compelling.
Edit [adding more stuff just because]:
I will hand it to HP and Sony: their interfaces are gorgeous. The HP interface I saw last week has a number of simple tools – a recipe box, for example, that can take recipes from the web and import them into a private database – as well as the standard stretch’n’drag photo and note-taking applications that make touch actually compelling.
I’m sure there will be more, and there will be more criticism too. Developing software is always about trade-offs, and sometimes customers want other trade-offs to be made; that’s why software is never “done”.
But these first few reviews make me feel it was worth the time, working on the TouchSmart software. And yes, the “shell” that hosts all the various applications is still written in WPF. WPF rocks!
Categories: HP TouchSmart, Software, WPF, Windows 7
5 Comments »
Digitial photo metadata: What a mess! Tools disagree on what is what.
December 26, 2008 12:52 amPart of the motivation to write my Simple Photo Tagger program was to make sure that when I put a caption on a picture, it will be embedded in the picture in all the various “locations” (I have no better word for it) that the various tools out there use.
And let me tell you, it’s a big mess! To illustrate, let me use the WIC query notation for metadata that Microsoft uses and list which program uses what locations to store “caption” (and “select” other) information:
Adobe Photoshop Elements 6.0 Organizer
/app1/ifd/{uint=270}
/xmp/dc:description/x-default
/app13/irb/8bimiptc/iptc/Caption
Windows Live Photo Gallery 12.0.1347.718
/xmp/dc:title/x-default
Google Picasa 3.1.0 (build 70.71, 0)
/app13/irb/8bimiptc/iptc/Caption
Microsoft Pro Photo Tools 1.0
Title
/app1/ifd/{uint=270}
/xmp/dc:title/x-default
/app13/irb/8bimiptc/iptc/Object Name
Headline
/xmp/dc:description/x-default
/app13/irb/8bimiptc/iptc/Caption
Adobe Photoshop 7.0.1
Caption
/app1/ifd/{uint=270}
/xmp/dc:description/x-default
/app13/irb/8bimiptc/iptc/Caption
Title
/xmp/dc:title/x-default
/app13/irb/8bimiptc/iptc/Object Name
I actually used Simple Photo Tagger to discover these differences, since it will query most of the above locations and display any that have data “in them”. The ones that don’t have data, will not be shown.
So if you want to make sure that no matter which tool you use to work on your digital photos, they will pick up your caption properly, use Simple Photo Tagger. It will make sure to write your caption to as many locations as the various other tools out there seem to use.
Categories: Software, WPF
No Comments »
Simple Photo Tagger – A simple, fast and efficient tool for adding comments to digital pictures
December 24, 2008 3:28 pmYou may have seen the CardSharkV program I’ve published here previously. So far it hasn’t met with much interest out there. Maybe this one will: Simple Photo Tagger.
I’ve been looking for a program that will help me work through commenting on thousands of my digital photos. I haven’t found anything that’s focused solely on this one task that I consider essential for adding value to my collection. So, like any developer not finding what he/she wants, I rolled my own.
I’m making the result available to you, in case you’re interested. It’s written in WPF 3.5 SP1, in case you’re curious about such details. I’m looking for testers and feedback, so for a while I’ll waive the nominal charge for a license key.
Categories: Software, WPF
No Comments »
Here’s a bit of an obscure error message I’ve run into while working with WIC (Windows Imaging Component) on .NET/WPF, trying to write XMP metadata into an image:
So far, a search on Google has yielded few usable results. I hope this post will change that, yielding at least one useful thing.
The Exception message tells you that you’re trying to write data to a property that doesn’t exist in the file. Microsoft has a tool called WICExplorer that can show you the metadata like this:
The above shows an image in WICExplorer directly after coming off of my digital camera. Notice that there is no “XMP Reader” node, which would represent XMP metadata. So if you want to put new XMP metadata into the picture, you need to know two things: how to create a new metadata node and what the correct syntax is for doing so.
What helped me figure those two things out were these pages:
http://social.msdn.microsoft.com/forums/en-US/wpf/thread/8f297b11-99ba-459c-b085-1ff3ae526487/
http://msdn.microsoft.com/en-us/library/bb643802.aspx
The first one showed how one can create new metadata objects using WIC, the second showed the needed syntax for some of the queries.
So here’s an example of how to create XMP metadata in an image that doesn’t have XMP metadata embedded yet:
1: string file = "C:\Temp\IMG_1687.JPG";
2: BitmapCreateOptions createOptions = BitmapCreateOptions.PreservePixelFormat | BitmapCreateOptions.IgnoreColorProfile;
3: Stream originalFile = File.Open(file, FileMode.Open, FileAccess.ReadWrite)
4: BitmapDecoder original = BitmapDecoder.Create(originalFile, createOptions, BitmapCacheOption.None);
5: BitmapMetadata metadata = original.Frames[0].Metadata.Clone() as BitmapMetadata;
6:
7: string q = "/xmp/exif:UserComment/x-default";
8: if (metadata.ContainsQuery(q))
9: {
10: metadata.SetQuery(q, comment);
11: }
12: else
13: {
14: metadata.SetQuery("/xmp/exif:UserComment", new BitmapMetadata("xmpalt"));
15: metadata.SetQuery(q, comment);
16: }
The keys are in line 7, where the initial metadata query is shown and in line 8, where the code tests if the metadata is already present. If not, line 14 shows how to create a new XMP metadata node, which then gets populated in line 15. The writing of the data can be done using a JpegBitmapEncoder according to Robert Wlodarczyk’s blog post (without the InPlaceBitmapMetadataWriter piece.)
After running code like this, you’ll now have the metadata in the file, as shown by this WICExplorer screenshot (I added “App0 Reader” metadata to this image as well):
Hopefully this is useful to some folks out there. Enjoy!
Categories: Software development, WPF
4 Comments »
Inside the HP TouchSmart PC software: HP SmartCenter – Part 4
April 24, 2008 7:33 pmThis is part 4 of the mini-series on the HP SmartCenter software. Hear about the team’s reaction to the Engadget leak and the launch plans at CES 2007. If you missed the first three parts, they are here, here and here.
—
One of the really unsettling events before the launch of the TouchSmart PC was that Engadget somehow got a hold of some pictures that had been prepared for the launch in early 2007 at the Consumer Electronics Show. It was billed in the first sentence as “AMD’s sweet new rig”, which was a little bit of a slap in the face, since most of the real work fell outside of AMDs realm. I remember the team meeting when our program manager came in and told us about the “leak”. He had heard it from Microsoft just a few moments before joining the meeting. The mood in the room instantly turned. People started feeling both mad at the leaked information (and the leaker) and depressed about the potential impact this would have on our launch at CES. Microsoft especially was disappointed, since the TouchSmart PC represented a big investment on their part, carrying some of the Vista messaging. The TouchSmart PC was to be billed as one of a few “dream” PCs at CES. Having gone through an experience like that, I now always think about how the people involved must feel when I see “leaked” information about upcoming products. It’s not fun to have it happen to you.
On a happier note, the TouchSmart PC seemed to make quite a splash at CES. At the last minute I was asked to attend the show to help with technical support on the show floor. This was my first time attending CES and going to Las Vegas, and I quite enjoyed the experience. I ran into quite a few of the people that had worked with us on the project, and it was fun to see the crowds milling about the TouchSmart PCs at the HP and Microsoft booths. Having backstage access was a unique thing, but it involved a lot of walking around, helping the people doing demos by making sure the software was installed properly.
Since then, the HP TouchSmart PC has received numerous awards (including spot number seven on PC World’s list of most innovative products of 2007) and for a short while even had a fan website, the HP TouchSmart Owner’s Club.
—
This is the tentative end of the series. If you’re curious about other aspects, let me know, and if I can talk about it, I’ll see if I can accommodate your curiosity.
Categories: Personal, Software, Vista, WPF
22 Comments »
Inside the HP TouchSmart PC software: HP SmartCenter – Part 3
April 17, 2008 7:30 pmWelcome 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.
Categories: Personal, Software, Vista, WPF
No Comments »
Inside the HP TouchSmart PC software: HP SmartCenter – Part 2
April 10, 2008 7:12 pmIn 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.
![]()
My quick HTML mockup
![]()
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.
Categories: Personal, Software, Vista, WPF
2 Comments »
Inside the HP TouchSmart PC software: HP SmartCenter – Part 1
April 4, 2008 10:23 pmI 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.
Categories: Personal, Software, Vista, WPF
9 Comments »






