Monday, March 20, 2006

Mix06 - Internet Explorer... seven, eh?

Internet Explorer has a huge skeptic to convince. Ok, aside from me, there's an 11% market share of FireFox users who'll give the "who cares" argument to Microsoft's Internet Explorer release. Right out of the gate, I'm expecting nothing exciting from the next generation browser. After all, Microsoft themselves (Paul H the Microsoft Program Manager for IE himself) declared "We screwed up." Technically the last major release of Internet Explorer was five years ago in 2001, since then Microsoft has failed to demonstrate their commitment to the web, and thus has let the fruit rot on the vine. What's so important about Internet Explorer 7? Frankly, why should we care?

Microsoft puts forward that they've got some great new browser enhancements, and I'll admit, they are pretty cool but there's nothing so dramatic that it won't be available as an extension for FireFox in a few weeks. What Internet Explorer is going to provide is the experience of FireFox rolled out to the non-tech saavy masses; Think of Windows Update as the great equalizer of the Internet, correcting a major wrong and restoring balance that has been rapidly shifting to FireFox.

Though I wouldn't call better or proper css implementation a "feature", it is certainly well received. The real question is how strict is Internet Explorer on proper HTML implementation, since Internet Explorer's greatest weakness is it's ability to forgive bad HTML: it might look ok in IE, but browsers that strictly comply with HTML standards clearly don't render the same markup.

Sadly, ActiveX support is still available for Internet Explorer so "the" wrong has not been removed, but the security settings that support ActiveX will warn the user as they make changes (the configuration section turns bright red), when they run under these settings and they get warned everytime they start the browser. It's kind of the <slap><slap><slap>"Are you nuts?" warning that tells them they are at risk. Whether this warning is perceived by end-users as the car dashboard "DANGER: Car needs Servicing NOW" directive or the "Please fasten seat belts" notification is still yet to be seen, but is a very good step in the right direction. It would appear as though MS is gearing to make ActiveX disabled by default. Ontop of all the excellent security visual enhancements, the low-level stuff is what's changed the most from the previous version. How's this -- even the administrator gets locked down... <head tilt>really? Outside of toolbar plugins, this move feels very much like MS might be planning the obsolecense of ActiveX. (haha, maybe in ten years)

The tabbed browsing experience is not new to FireFox users, but the implementation is very clean: the new tab button appears as a very small tab at the end of the current tabset, making it a very intuitive experience. What is unique is the ability to save entire groups of tabs as a Favourite (which I'm sure will bring new meaning to the copy-n-paste snippet demo) and the ability to preview all the current tabs at the same time.

Also interesting is the removal of the menu bar from the main browser window. It is now conveniently tucked away as a button in the toolbar. As a side-effect, it's as though the site is running in full-screen mode which means that more screen real-estate will become the norm.

While the visual enhancements and features do appear to be borrowed from FireFox, there's a lot of plumbing in the background that represent an interesting shift in the way we think about websites. Most notably is the native support for RSS Feeds. Two important aspects about this: how RSS is displayed in the browser and how RSS feeds are treated.

Regarding native display of RSS, similar to the way the xslt-transform that is applied to XML files in the browser, RSS is given a nice xslt transform so that the data is made pretty when viewed in the browser. As the primary usage of RSS today is to represent blog posts, the standard xslt makes it easy to sort the entries by Title or by Date. While this is convienent, the twist is that IE7 supports the concept of rich-data in the RSS Feed: you'll be able to add some additional meta data within the feed to describe what the feed contains. Some examples include Amazon's top music feed which includes images for the artist and links to download or buy music, plus the ability to sort by many different attributes in the data, such as Artist, Song Title, Genre.

Secondly, RSS feeds are now considered outside the scope of Internet Explorer. Feeds become centralized on the computer as a repository for all feeds, which provides a wide range of new opportunities for web 2.0 integration. Consider the newsgator plugin that automatically synchronizes your feeds with their server, or the Windows Vista desktop gadget that consumes that data in new and interesting ways such as the myspace.com buddy gadget which displays updates and pictures posted by your online friends.

Now, if only Microsoft had embraced the extension model that FireFox has... I would probably switch.

Mix06 - Bill's KeyNote

Like waiting for a rock concert, the theatre hall is alive with a buzz. Massive screens glow with contest entries for website redesign of the mix06 website.

Bill comes out and there's lots of cameras flashing, like it was a new york fashion runway. But with all the money he's got, he's still comes out looking like a big nerd: signature glasses and uncombed hair. Couldn't somebody say, "Mr. Gates, let me take care of your onscreen makeup?" Scary thing is, someone may have already put work into making him look the way he does.

Bill's focus is getting the experience to cross as many devices, and the market is really expanding from high-resolution monitors, to TVs, to xBoxes, to PDAs to mobile phones. The key is to get a toolset that acts an abstraction to assist from large to small screen sizes.

One of the main focuses is Internet Explorer. There are three areas of improvement:

  • streamlined user interface (tabs, print-preview, improved print capabilities)
  • security enhancements (low rights mode, phishing filter - reputation services)
  • enhancements improved css, rss support, native xml, transparent png's

With what they've done for IE7, it's no wonder why Bill sees that RSS usage is going to explode. RSS represents a fundamental shift, the "programmable web". Simple APIs for your website treat your website as a service or component that is consumed elsewhere for other purposes, ie eBay. Much like native XML support for Internet Explorer, IE7 provides built-in support for rendering of RSS feeds which provides the ability to render the RSS with rich data tags. Apparently, Microsoft released a standard for the rich-data tags within RSS about six months ago. Amazon, eBay and others have adopted the standard and are including rich-data tags within their feeds to date.

There's a big buzz about "Atlas", the suite of tools for building AJAX websites. Bill expects that new tools such as Office 2007, outlook web-access and other core applications will leverage AJAX. They're touting Atlas as more than an AJAX library, it's a consistent methodology for building ajax applications.

Bill also mentions it's a big year for Media Center with 6 million units sold. Bill has big hopes for partnerships in this space to take it further over the next few years. XBOX 360 as an extender also plays a big role in the media center expansion. This is the focus of the next 3 days, where we look "Beyond the browser"...

Bill highlighted a few mobile devices, but was very brief... "here's one. here's another. this was is cool, too. Check this one out..." Wasn't anything that exciting.

Showcased in the Keynote are the CTO for MySpace.com and the director of New Media for the BBC. Both had amazing stories to tell. MySpace showed how Microsoft technologies made them the #2 traffic site on the Internet, and the BBC showcased how they're looking to use some of the new features of Vista and tight integration of Microsoft technologies to allow them to find new cost effective means to deliver their content over the Internet.

Regarding VISTA, all I have to say is that at first glance it is really slick. I'm expecting a huge pouty lip from our Mac user friends who'll claim they've stolen all the cool things out of Mac OS X. Transparent toolbars, widgets, slide-in/slide-out windows. Really slick. The registration package includes copies of Vista (among other swag) plus they've got labs set up to play with IE 7, Vista, XBox -- lots of stuff to play with.

Mix06 - No sleep, but hey.

7:30 AM PST

Ok. This is where having an infant is helpful. Sleep deprevation actually pays off -- 5 hours sleep and I feel great. My wife is planning on taking off with my son to my parent's place. Unfortunately, they're on vacation somewhere in the Carribbean, so she's by herself at night, but has my brother's and sister-in-law's and nephews to keep her company. I give her a call just to say that I made it ok.

I open the blinds of my hotel window, I have a pleasant view of the parking garage. But in the distance -- wow: mountains and palm trees, a rare combination indeed. Add the crazy architecture and neon lights, and you can only be in Las Vegas.

Mix06 - Back from the foray

Okay. Back at my laptop, thoughts are swimming around my very tired brain. The best place to start (and to sign off for the night) is: I can't believe the scale of it all.

The Venetian is a colossus, the Mirage is huge, the 100 foot billboards of lounge singers. And I've only really walked around the block.

I want to take pictures but not sure where to start. Oh, second thought: open booze. People are walking around with beer bottles and mixed drinks. This floors me. Growing up in a small town (and having been fined for open liquor once) all I see is liability lawsuits everywhere, but I guess that's the thinking behind it all -- I can sell you the booze, but what you choose to do with it is your problem.

Mix06 - Sleep?

Great. Checked-in. Unpacked. Go to sleep? Why not, it's only 3 am my time? No way, it's only 12 am Nevada time. Besides, I don't have any idea as to where I'm supposed to be going. I should venture out in the bright-lights and see what all the fuss is about.

Mix06 - Vegas, baby! Vegas

Arrived in Sunny Las Vegas, Sin City, City that never sleeps, 2:30 in the morning. Despite the late hour, the city is still a-buzz. Perhaps the most surprising of all is how close the airport is to the strip. Coming into the gate, you can see it all! Pyramids, New York, Paris -- feels just like a CSI fly-by sequence.

Managed to find my luggage and the taxi line up. As luck would have it, a few gentlemen were chatting with some of their seat-mates, and I overheard that they were headed to the Venetian -- the location of my event. I was pretty lucky with the travel arrangements; although I couldn't get the discounted rate at the Venetian, they managed to get me into Harrahs, which is next door.

I was able to pool together and take a cab with these guys to the Venetian, and then I had to find my way to Harrahs. I had to skirt through a parking garage, cross the street at an unlikely intersection and then pulled my travel luggage into the valet parking area.

Sunday, March 19, 2006

Mix06 - Start

Off to Mix06 -- Microsoft's event where they'll be showcasing Internet Explorer 7, Windows Vista, Avalon, Atlas, etc. Should be pretty cool, as it's in Las Vegas. Bill Gates is giving the keynote, so all in all, an exciting time to be had.

My flight pulls out of Pearson at 8:35 Sunday night, which means I'll get there late...

Wednesday, March 15, 2006

Recorded Media Center Programs Meet Pocket PC: Part II

A few posts back, I was lamenting about trying to get my Windows Media Center recorded TV programs onto My Pocket PC. After upgrading to PocketPC 2003, the native support for Windows Media 9 has made transcoding MS-DVR files into WMV painless:

In the morning, I transcode my TV show while I'm in the shower. I plop my 2 GB SD card into the media-drive on my Media Center and drag-n-drop 60Mb worth of Stephen Colbert's Colbert Report for viewing while on the TTC.

And... I'm happy to report, that I've suddenly found my PDA useful again.

Screen Capture for Invisible Windows

I was recently tinkering around in an admin tool that is used to build web-sites, and found myself wondering if it was possible to create a "preview" of the web-site as an image. The idea being, I want to show a list of pages in the website with thumbnails of page previews; thus the site administrator can see the entire site on a single page and would be able to know what they were editing before they opened the page configuration.

If you're like me, these kinds of problems drive me crazy. I ear mark them as "nifty ideas" and I slowly mull them over in my head when my head has idle time. (What, you don't have head idle time? Between 3-4 in the morning when I change sleeping positions, I have to force myself not to address my mental challenge To-do list. I recently discovered that our brains solve a lot of problems after only a few hours of sleep.)

So although I haven't actually cracked the code open to tackle this problem, here's what I envision the implementation to be:

  1. Use the .NET Process object to launch a window to the web page.
  2. Grab the handle of the Process and pass it to the GDI+ to convert into an image. This CodeProject article gives a really good overview of doing just that.

I'm hoping that if the .NET Process is launched with the ProcessWindowStyle set to "Hidden" that it still has a valid device context used to paint onto the screen. If that's true, there should be no reason why I couldn't convert the hidden window's content into a Bitmap.

Few other things to consider, such as when to determine that the browser has fully loaded the requested page? I might have to consider using the WebBrowser control to load the webpage and wait until the document onload event or page status changes....

Yet another task to play with...

submit to reddit

Tuesday, March 14, 2006

Shell extensions in C#

I work with a lot of Xml files, where the filenames are random GUIDs. Since all the documents have the same structure, I wonder if it would be possible to create a shell extension for Windows Explorer that could add a column to the details tab.

This CodeProject article, Explorer column handler shell extension in C# - The Code Project - C# Programming, looks like a good starting point.

Update 06/07/2008: I've written a few shell extensions following this example.  Although they work, they can seize a lot of memory if you need to spawn a debugger.

submit to reddit

Friday, March 03, 2006

Recorded Media Center programs, meet Pocket PC

Dang!

Recently I bought a 2 GB SD card cheap from Future Shop ($99 CAN) so that I could start to take some of my recorded Media Center TV shows onto my Pocket PC. This has proven to be a bit difficult task...

First off, it's takes a lot of time to find a convenient way to transform Microsoft's dvr-ms files into something less... massive. One hour of recorded TV is roughly 2.5 GB. And -- everyone has got a piece of software to do the job for a price. I've test-driven several freeware applications, but you've got to be really frikkin patient to try some of these things out.

DVR 2 WMV has proven to be the quickest way to convert into Windows Media Format, where 1 hour of video takes about 20 minutes. Initially I had some problems getting the application to work, but after I turned on Compatibility mode, things seemed to work fine. (I've also got my eye on using the MSDVR Toolkit to automatically strip out commercials and convert into various formats, but it's not as straight forward as DVR 2 WMV)

The next big challenge is actually my PocketPC. I have an iPaq 3870 which was released back in 2002 as a Compaq product before the big HP merger. At that time, the 203Mhz, TFT screen, 64Mb internal memory, SD Card slot and built in Bluetooth was HOT. It was crazy expensive compared to some of the units available today. (Yet another pioneering effort on my part. You do realize that me buying this stuff at the early-adopter stage is what it makes it affordable for you people? You're welcome)

Although I've used my PDA fairly frequently, I even wrote some applications in Compact .NET framework, it's become more of a second-class peripheral on my cluttered desk. I use it mainly to display my calendar for the day, and since my Laptop has Bluetooth, I don't even have to worry about hooking it up in the morning.

Sadly, it's also only running PocketPC 2002 which has Window Media Player 8.5 for Pocket PC. Guess what format DVR 2 WMV uses? If you guessed Windows Media 9 you would be absolutely correct. Enjoy a coke on me.

So, at long last, I finally found a reason to download and install The Core Pocket Media Player, an opensource media player for pretty much any portable device. It can play most media formats, including divX. But I was shutout again! It looks like the Windows Media Support for TCPMP is based on the windows media codecs installed on the device. Back to square one, either find a way to acquire the codecs, or look at finding another tool to encode the DVR-MS files.

Although I wasn't able to find the codecs as a separate download, the real killer is that you can't just download Windows Media 9 for Pocket PCs -- you have to upgrade your OS, which is... sub-optimal. Turns out you can't just walk into a store and buy a copy of PocketPC 2003, it can only be upgraded through the manufacturer of the device. Specifically, the ROM has to be reprogrammed. Do you think HP is going to have a ROM for a 4 year old Compaq device available for purchase on their site? Rhetoric question answerers may drink another coke for answering no.

Then, on a whim, I tried E-Bay. I was pleasantly surprised to find the ROM for only $2.99 US, free shipping. Skip the afternoon $2 coffee, have that sucker shipped to my office, pronto. So, we'll see what an upgrade brings. Maybe I'll find myself with a renewed interest in my Pocket PC. Or, as a late-adopter, I'll break down and buy an iPod like the rest of you (thank you for making that stuff affordable)

Wednesday, March 01, 2006

SubInACL

Pretty powerful ACL tool for windows.

Saturday, February 04, 2006

Markdown.NET

A recent project at work, our content management system converts the raw text into HTML and persists the translated values as part of an XML document.

However, Markdown.NET would appear to be an interesting alternative. MarkDown, which started off in perl has been ported to php, phyton and others. I'd be interested to see how it would fit into our solution framework.

Friday, February 03, 2006

DVD-Decryptor is dead, now what?

I'm really interested in taking DVD content and ripping it into a format for my portable media player, but I came late to the game -- the fan favourite DVD-Decryptor is out of business, simply because their application could break copyright encryption.

But ShrinkTo5 may stand as the next successor to DVD-Decryptor. I've heard rave reviews about this tool, and I need to find some time to play with it.

The big difference: it doesn't break CSS encryption. Well, at least not on it's own.

A popular DeCSS encryption dll, "machinist.dll" can decrypt the CSS... if this dll was included in the same folder as ShrinkTo5, it'll load the decryption algorithm and decrypt on the fly.

A quick google and I was able to find a location that posts the machinist.dll for download. Remember, decrypting is not illegal in all countries.

Thursday, February 02, 2006

....set the building on fire....

I can understand why Milton Adams (Stephen Root) of Office Space would be up in arms about his Red Swingline stapler gone missing. My brother-in-law bought me the stapler for christmas as a joke. But make no mistake, this heavy-duty diecast metal stapler is all business. I'm able to punch documents that would make normal staplers roll over and die.

Tuesday, January 24, 2006

Google Sightseeing

Google's social influence meets world tourist.

Get Geolocation stats for your web site, for free...

gVisit.com has provided a simple tool that collects the last 20 visitors to your site and then correlates and displays this information on a google-map. Yet another example of how everything is becoming more ubiquitos and coadjuvant.

Thursday, January 19, 2006

CodeProject: Server-side handling for css and js

This post on CodeProject talks about creating a custom handler for css and js files, so that relative paths can be resolved. The ability to specify relative paths to your application root is clearly an advantage if your application root is a virtual directory or sub-folder from the web root. But I think this solution could go one further: II6 supports wildcard mapping, so that all requests can be funelled through the asp.net runtime, an advantage if you want to use virtual URLs for both folders and files. I believe that dotText is using wildcard mapping in this manner, and I think they have implemented a very decent handler for static files, such as js, css, images, etc. I wonder if the dotText controls can be extended to support this type of ~ (AppDomainAppVirtualPath) mapping.

submit to reddit

Friday, January 13, 2006

Hot Keys and Quick Launch groups

I've been watching too much G4Tech TV recently, specifically "Call For Help". While maybe the context of the show is geared towards computer-newbies, they do seem to cover a wide range of stuff.

A segment of the show includes a "download of the day". A few days ago they featured PS Hot Launch, a lightweight tool quick-launch toolbar for the applications that you use frequently. What makes it unique is that you can group them together and assign hotkeys to the group. You can configure to show a quick-launch menu for the hot-key or to launch all applications in a group -- perfect if you have tasks where you need an IDE, command-line, nunit, and browser!

Wednesday, January 04, 2006

Microsoft Google Search

I don't know how many times I've tried to weed out what I was looking for in a search result. Turns out, Google has probably noticed that I (ok, and the rest of the planet) have done a lot of Microsoft related searches.

In the Advanced Search of Google, they've provided customized search pages for common searches, including:

  • Apple
  • Macintosh
  • BSD
  • Unix
  • Linux
  • Microsoft
  • and others

Even better -- you can add the Microsoft search to Firefox as a Search Engine Plugin