Category Archives: Uncategorized
NOTE: This is possibly the longest thing I’ve ever written. Please stay tuned, because the people I mention really deserve recognition.
Last week I attended Tech.Ed Australia 2008. It was the third Tech.Ed I’ve attended, but for some reason it has stood out far above the rest. I had a great week from beginning to end.
The experience started Tuesday morning for me, when I turned up to the Embedded Developers Pre-Day. This involved sitting in an instructor-led lab for a day and delving into the embedded experience. Before Tuesday my embedded experience basically involved a bit of Windows Mobile and XP Embedded development. The day introduced some great concepts to me including componentising an application, working with the File-Based Write Filter and using debugging with CeDebugX ("!diagnose all" will save my life…).
Wednesday saw the kick-off of Tech.Ed and some worthwhile sessions. The most memorable was Corneliu Tusnea’s Debugging the World session. I’ve seen this before, but it was still the highlight of the day to me. The way he works with WinDebug truly amazes me. Some people think it’s a bit technical, but I thought it’s what a 400 session should be! It was also great watching Scott Hanselman (who I was honoured to meet *briefly*) go up against the Readify greats Corneliu and Mitch in the Ask the Experts session that night.
Thursday was a bit more lively and turned into a very long day. It started off well with Jonas’ Silverlight presentation. It got a bit worse at morning tea when my nerves got the best of me while I gave my first (and hopefully not the last) presentation at Tech.Ed on Introducing Windows Mobile Development. A bit of fun and the demo gods smiled on me for once…
Scott Hansleman’s MVC presentation was an absolute hoot! The demo gods were definitely not so kind to him, but he worked through it and did an excellent job. I thought this session was a bit too technical for a 200 level, but I wouldn’t expect any less than 10 minutes in the call stack from Scott.
Paul Stovell delivered a really good presentation on reactive programming that was great at introducing advanced concepts of databinding in all forms. Backed up by Corneliu’s next session on Secure Development Patterns, which will hopefully be coming to an RDN near you…
Once again, Scott had me riveted in his afternoon session on REST and ADO.Net Entity Data Services. I now want to be a RESTifarian. Then, I finished off with Harry Pierson’s dynamic languages presentation, which was really interesting. Of course, that was followed by the closing party…
Friday was a great end to the conference. I really Joel Pobar’s F# presentation, and I can’t wait to introduce it as an alien artifact. The Mobility Smackdown was once again a really pumped session with the aim of promoting Windows Mobile. I managed to score an Xbox 360, so I really really enjoyed that too… Finally, the Locknote. Two words- passionate and Wow! Craig Bailey really summed it up well here. It’s the best locknote (or keynote) session I’ve ever seen and I just hope both ends of the conference are more like that next year.
I had a great week. Learned loads of cool stuff. Really excited about cloud computing and the future of the web, but also about what I can do to be a better developer. Microsoft really put on a great show and I can’t wait until next year. Also, thank you to all the people that were involved in Tech.Ed that I may have missed.
The only plus in it being over is that my liver finally gets a rest… =P
A couple of weeks back I released a new version of VMC Remote. This new version may not look different, but it definitely acts different.
Under the covers I’ve changed a lot of the way the remote functions in order to allow for multiple connection and server types. This means that you can use your choice of (2) media centre server applications – MCE Controller or VMC Controller. It also means that some day down the track I might be able to add the ability to use a different type of connection – say… Bluetooth – to connect to these server applications.
I’ve also uploaded a 10 minute video to youtube that gives you a quick look at the different versions of the remote on different devices. Here it is…
One thing that’s annoyed me for years when using SQL Server 2005 was that there are many inconsistencies in the UI. You’d think that the most obvious of these would be fixed in subsequent releases…
The most obvious one that I’ve always noticed is the Select Database File dialog. In some parts of SQL Management Studio, the standard windows Select File dialog is used for opening a file. In others, you get this:
I don’t understand why this archaic piece of interface is still present today. It seriously looks like they gave the job of creating an open database dialog to a first year developer who couldn’t find GetOpenFileName().
On Tuesday I had the pleasure of attending Remix 08 in Sydney.
The day really started on a high with the keynote. It opened with a video that showed off a few cool applications that have been developed in Australia using some of the latest Microsoft technologies such as Silverlight. That was followed by Mark Pesce’s presentation that really drilled home the effect of technology on today’s society in creating a state of “Hyperconnectivity” between people.
I tried quite hard to stick to the creative track and was rewarded very early with Jonas Follesoe‘s presentation. He showed how to use the Expression designer tools to create a truly amazing experience for Silverlight applications. His demo is available on his blog here.
I also managed to sit in on a few presentations by some fellow Readifarians – Philip Beadle and Tatham Oddie. Phil’s presentation showed how to use some really simple programming techniques (such as binding & asynchronous WCF) with Silverlight 2 to create cool web applications. Tatham’s presentation on MVC & AJAX was a really interesting take on possibilities of combining the two technologies in the future. Unfortunately, I missed Damo and Alister’s presentations…
Overall, I really did enjoy this event. It’s definitely one that I’ll be attending again in the future.
Over the past couple of months I’ve put a fair few hours into a little side project of mine. The purpose of the project was to create a remote control for Vista Media Center PCs that would run on Windows Mobiles.
I’m happy to announce that I’ve finally released it! It’s available on CodePlex at www.codeplex.com/vmcremote.
At the moment, there’s a PPC 2003 and PPC 2003 SE version up for grabs in this initial release. I’m working on the Windows Mobile 6 versions as well.
All you need to get started is a device that can connect to your network and a media center running MCE Controller.
This thing has already come in handy for me, so I hope it’s just as useful for others. I’m going to continue working on it as much as possible, because I don’t think it’s quite done.
Some coming features will include:
- an improved UI
- bluetooth connectivity
- wake on LAN support
- more targetted versions
Check it out!
I started working for a new client a couple of weeks ago. This client provides a customised solution for PowerPoint with many weird and wonderful functions. Part of the work I’m doing here is helping them migrate their solution to work with PowerPoint 2007.
While I’ve discovered many wacky behaviours that have come about due to the new rendering engine used in Office 2007, I hadn’t thrown my hands in the air and said “I can’t do it” until the other day. Something as simple as adding a button into a context menu when a user right-clicks a picture just would not work. There was already code in the project that did this for earlier version of PowerPoint, but no matter what I did it would not work for 2007.
Needless to say, I started seeking help, thinking that I was just missing something. Coatsie to the rescue! Well, sort of… 🙂
Andrew’s post basically shows how desperate I was by publishing my original email. Pathetic, hey…? 🙂
Anyway, the result was that you simply can’t do it. Adding items to the context menu is considered “feature depricated” so the new rendering engine forbids it and moves on. So how to overcome this? From Andrew’s post…
In summary, Microsoft recommends that you model your UI on Office’s own built-in Ribbon UI, specifically around the use of Contextual Tabs as the mechanism for displaying contextually relevant content. For each object type that the add-in supports, a tab could be added to the appropriate contextual tab set that would contain the Add-In-specific tools for working with that object. With this type of design, the UI would better match the UI of Office 2007, and the end-users could potentially not require much extra training on top of the training for Office 2007 itself. For more information, please check out the Office Fluent UI Style Guide at the Office Fluent Ribbon Developer Portal.
So the solution… Contextual Tab Sets! Now, I’m sure if I asked a room of 50 people what they were less than 2 would put their hand up. And googling it doesn’t help too much either.
In short, there are the regular tabs in the Office Ribbon, and Contextual Tabs. The regular tabs are the ones that are always there. The contextual ones are the ones that only show up when something has been selected in the designer. They’re usually highlighted a different colour too, so that they stand out.
One example of this is when you select a picture and a new Formatting tab pops up under the heading of Picture Tools. The Contextual Tab Set here is Picture Tools and the contextual tab is the Formatting tab.
One cool thing about the new Ribbon and all that Extensibility that’s provided for Office is that you can easily add (and remove) tabs in a contextual tab set. There are plenty of samples out there that do Ribbon customisation, especially on Office Fluent User Interface Developer Portal. Though, not many of them show how to do this.
I won’t go into creating a Ribbon Extensibility solution, instead I’ll just mention that all you have to do is create an Add-In for PowerPoint in Visual Studio (preferably 2008) with VSTO and override the Add-In’s CreateRibbonExtensibilityObject() method to return an object that implements IRibbonExtensibility. This object will implement the method GetCustomUI to return a string representation of the Ribbon XML.
Using the Custom UI XML, we can specify a Ribbon that simply adds a tab to any of these Contextual Tab Sets. The following snippet adds a “Custom” tab to the Drawing Tools tab set. The tab has a Hello World button in the Custom Group tab group.
<tab id=”TabCustom” label=”Custom”>
<group id=”GroupCustomGroup” label=”Custom Group”>
<button id=”ButtonHelloWorld” tag=”hello World” label=”Hello World”
screentip=”Displays a Hello World message box” onAction=”OnHelloWorld” />
So once you have an add-in that provides a Ribbon representation similar to this, you will see that setting focus to a shape gives you the Drawing Tools Contextual Tab Set with the Formatting and Custom tabs.
According to the information Andrew received, this is basically the way to provide any contextual functionality in Office going forward. I still think it’s broken, but what can we do other than complain? 🙂
Watch out for the good looking guy at the end… :-p
I had a great time the other day at the launch event. It was great getting a chance to check out the new improvements in VS, SQL and Windows 2008. And I had a blast catching up with the DPE guys. The free copy of Vista and Windows Server will definitely not go to waste.
BTW, thanks for putting me on the spot Deeps… 😉