I was contacted today by Schmap, an online travel guide, to use one of my photos of downtown Portland (the sand castle contest photo) in their guide. They found me on Flickr and actually had the courtesy to ask about the photo before they reused it—it’s a Creative Commons-licensed photo. Rather novel, really—I’ve only been asked about one other of my photos, though I have no way to know if any of the others have been reused.
I have long been an apologist for Apple on all things related to their music platform and their Windows software, particularly iTunes. I think it’s unsurprising that iTunes is the fastest growing software installed in the enterprise, simply because there is no better way to listen to music on a computer.
Where things get murky is Apple’s strategy to make iTunes the only way to get content onto Apple devices, including the iPod and now the iPhone. As the devices start to go beyond music and into other types of content that iTunes doesn’t manage directly, the footprint of iTunes expands further into the Windows desktop. Which is fine, I suppose, particularly if one is excited about getting one’s Outlook calendar on the thing (which I am).
But here is the problem: when one downloads iTunes, one is looking for music management. One is not asking Apple to install QuickTime, the Apple Updater, a Windows services, and now two Outlook add-ins.
I’m all for Apple putting software on the Windows platform. But they need to disclose that they’re installing this hodgepodge of executables and plugins and they need to give me the option of turning some of them off. Because I can live without iTunes on my machine (especially with an iPod docked to my speakers right on my desk), but I can’t live, professionally, without Outlook.
Because really, that’s the only possible explanation for their pulling out of their iTunes Store contract. For once, Cory at BoingBoing nailed all the snidery that I wanted to drop onto this announcement in his opening sentence: “Universal Music Group, the largest record label on Earth (an accomplishment akin to being the world’s largest corset-buttoner, horse-shoer, or gutta-percha cable-insulator)”…
When your product manager checks code into your source control project, it means one of three things:
- Your engineering team is short-handed.
- Your project is really in trouble.
- Your development environment is really, really easy to use.
While I’m not sure that #2 isn’t true, I found #3 to be absolutely true working on a recent software release with my team. We’re using the Windows Presentation Foundation, aka Avalon, and I used Microsoft’s Expression Blend to make the project’s About window.
WPF is designed to enforce separation of code and presentation, and tools like Expression Blend enable that. The presentation markup enabled me to automatically include the current assembly information (version number, product name, copyright string), plus free memory information, and even a little animation.
The trick was in learning how to do data binding. I specified various modules of the .NET Framework as data sources, then bound text objects to methods in the framework. Interestingly, the easiest way to get assembly information was in the Microsoft.VisualBasic.ApplicationServices namespace, in a class called AssemblyInfo; of course it doesn’t matter since the same code can be accessed by any .NET compatible language, including C#. The only challenge came in showing the available memory, since the methods in Microsoft.VisualBasic.Devices.ComputerInfo return memory in bytes. I wanted to show the information in megabytes, so I attached some simple C# code as a converter to represent the information in megabytes and format it appropriately for the user’s region.
Like I said: simple.