Howto03 Sep 2008 10:06 pm

Please note, although I work for a large corporation, these views are entirely my own and do not reflect the views of my employer.  Some of this information may be incorrect, but I have tried to be as thorough as possible with my investigation.  If you find any errors that need correcting, please leave a comment!

While investigating why Adobe Air doesn’t launch my default browser, I noticed that Google Chrome isn’t as aggressive as IE is when it sets the default browser settings.

Make Google Chrome My Default Browser

What happens when you say “Make Google Chrome my default browser”?  Well, from the looks of it, all it does is registers itself as the default program for only the Windows Explorer shell.  In theory, every application that needs launched should go through Windows Explorer (via shellexecute), which will check for the user set defaults and launch the appropriate program.  What Google Chrome does not do though, is set itself up as the default handler in the HKLM\Software\Classes\htmlfile registry key.  This makes it so applications that only check this key completely bypasses Google Chrome as the default browser.

Make Internet Explorer My Default Browser

When you set IE as your default browser, not only does it set itself up as the default browser for the Windows Explorer, but it also makes sure that it is the default handler for HKLM\Software\Classes\htmlfile.  Therefore, for the applications that only look at this key they will see that IE is the default browser and launch it.

Why Do Some Apps Behave Differently

There has been a standard way to launch the default browser in Windows for a long time, and that has always been by passing the URL into ShellExecute.  For .Net applications there is Process.Start which will do the same thing, and just introduced in Java is Desktop.Action.browse.  All of these will go through Windows Explorer, find the default program, and launch it.

Why Adobe Air Not Honor The Default Browser

From looking at where Adobe Air looks to launch a browser, it appears that it uses none of the methods above.  When navigateToUrl looks for the default browser, it just checks the HKCU\Software\Classes\htmlfile* registry key, and loads the default handle that is in this key.  Since Google Chrome does not set this and IE does, IE is launched.

Why Does Firefox Launch if IE is My Default Browser

Firefox goes even one step further! If you see above, I mentioned that IE sets HKLM, but not HKCU!  So when Firefox sets HKCU, and Adobe Air looks there, it says Firefox is the default browser, then launches it.  To set IE as the default browser, you can either set it from the defaults**, or delete the registry key.

* As someone may note, it actually looks for HKCU\Software\Classes\.htm, which by default is htmlfile.  What Firefox does is changes this to FirefoxHTML.

**When you set the default programs for web browsers, what it does is sets the HK*\Software\Classes\[extensions] keys to point to htmlfile.  The reason why if you use set Google Chrome or Firefox as the default browser there and it is not honored is because neither Google Chrome nor Firefox set the htmlfile class.  For Firefox, just go through it’s menu system to make it the default browser and this will be fixed.

Howto03 Sep 2008 05:40 pm

I have recently found out that Adobe Air does not honor the default browser.  I am using IE8 as my default browser right now, and AIR products open up Firefox.  Mike Chambers mentions the issue and links to a fix, but I have a simpler one. 

I assume Adobe Air checks the HKCU registry entry first, which may not be set by other programs (which may set only HKLM).  So just delete the entry in: HKCU/Software/Classes/.htm (I also deleted the one in .html).  Bam! Fixes the issue.

Update! (9/3/08): If you are curious why this is, please check out my explanation.

Opinion and Reviews28 Aug 2008 01:29 pm

I have been an avid fan of Mozilla Firefox for a long time, but since I got a new job, I have been trying to exclusively use Microsoft products (at least at work).  One of the things that I have been able to try out is Internet Explorer 8, Beta 2.  From a first impression, I have really enjoyed it.

Faster Tabs

If you’ve ever heard me gripe about IE, it’s that it has slow tabs.  When I open up a new tab in Firefox, it’s blazing fast and I’m already typing in the address bar before I know it.  For IE 7, it had such a slow implementation for its tabs.  It would literally take 2 full seconds from when I create a new tab to when I could use it.  With IE 8, tabs open much more quickly.  Although the tabs aren’t as fast as Firefox, it’s not going to be my huge gripe.

Privacy and Safety Feature

A new feature called InPrivate browsing allows me to browse the web without worrying about tracker cookies or saving my history.  I’m not exactly sure what all this entails, but it seems to have gotten media attention.

Another helpful feature is that in the address bar, they have made the domain name stick out more to help avoid phishing attacks.phishing

Add-On’s Welcome

Microsoft has a new site dedicated to providing Add On’s.  With all older generations of IE, nobody really cared about having plug in’s for the web browsers.  When Firefox came along, the whole game changed.  Firefox gave developers a lot of flexibility for extending the browsers functionality.  IE has finally caught wind of this and I am excited to see some of the additional add on’s that are going to come out.

Accelerators

When I first saw this feature, I wasn’t very excited at all.  I thought it was going to become another toolbar helper that just gets in my way.  After using it for a little while, I have stopped noticing when the little icon pops up.  It is very non-invasive and there when I need it.  I think the best thing about the accelerator is that it doesn’t take me to a new page to find a map or define a term, it’s all right there in the same page.

Accelerator

 

Web Slices

This feature is seems like it could be really cool, but still needs polishing up for the final release of IE8.  I started out getting the Digg and Facebook web slice.  Neither one of these slices worked as expected.  The Digg slice didn’t quite show the full news when I clicked it.

 DiggSlice

And the facebook slice BROKE FACEBOOK!FacebookSlice 

Not exactly sure how that managed, but after deleting the slice I was able to get Facebook to work again.

Smiles Sprinkled All Over The Browser

In my opinion, those are the most major new features that are in IE8, but there are a few last items that I though deserved attention.

In IE7, searching was horrific.  I hated the popup dialog that always showed up, but now in IE8, it has become a lot more like Firefox in that the search is integrated into the window.

Search

Firefox 3.0 introduced a new type of address bar that searches as you type, and IE8 also introduced this.  I have to say that IE8’s implementation is a little bit better because not only does it show me my web history, it also shows my feeds that I have saved, and also suggestions based on my web browsing history!  +1 for IE!

AddressBar

Even the search bar got it’s own suggestions and history that can be shown!

Search

Final Thoughts

I believe that IE 7 showed the world that Microsoft is giving IE the attention that it deserves.  With IE 8, I believe that they have finally caught up with Firefox in terms of baseline browser ability.  I still have to give the edge to Firefox for now as the better browser because of it’s extensions, but if Microsoft can make as dramatic of push from IE 7 to IE 8 when it goes from IE 8 to IE 9, wow, look out!  I am excited to see the future of browsing the web!

Development and Opinion25 Aug 2008 03:41 pm

Over the past few weeks while developing the next version of the Windows Live Installer, I have had discussions with other developers over different parts of the system.  Each and every time we have some part of the software to discuss, I am always torn on how to describe what the software does.  Should I say something like “The engine does X, Y, then Z” or should it be “Alice’s code does X, Y, then Z”. 

I’m pretty sure that I have settled on “The Engine” instead of saying the developer who wrote the code. What does everyone out there think?

Development and Microsoft31 Jul 2008 03:58 pm

Ever get the following error message when opening a PE file?

Cannot enumerate resources in the executable

Turns out that if you have custom resource types, the names of the resources in that type cannot be lower case.

Portable Executable resources

As you see in this example, my resources begin with an upper case P.  Visual Studio will cry if you embed these resources with a lower case P.

Thank you, Visual Studio, for making my work week that much longer…

Opinion23 Jul 2008 12:13 am

In an off the wall post for my blog – it appears that a small suburb of Chicago has banned baggy pants.  In short, you cannot show more than 3” of underwear otherwise you get a $25 ticket.

Needs a ticketI personally don’t wear my pants that baggy, but it does raise quite a few questions.  What is considered underwear?  Some people may wear gym shorts instead of underwear – are they allowed to show 3” of gym shorts?  What about those that choose to go commando – can they show 3” of crack?

What about other fashions that “keep major retailers and economic development away”?  I for sure wouldn’t want to open a business if people dressed like furries… or even Paris Hilton.

What about times of the year where it may even be encouraged to wear baggy pants, such as breakfast club or Halloween?

I think they have gone down a slippery slope which may get them into hot water.

Microsoft and Seattle16 Jul 2008 12:45 pm

bus1 Just after my move to Seattle, my Indiana license plates expired which has left me without a car.  Although an awesome benefit from Microsoft is a free bus pass, they also have this amazing bus that picks you up and takes you to work every day called The Connector.  It has been over two weeks now since I have been riding it every day, and while it’s not as convenient as driving my car, it’s good enough for me not to make getting my plates a priority.

For perspective, I ride the Queen Anne / Belltown bus, getting on at 1st and Wall.

Scheduling a Ride

In order to ride the connector, you must schedule the time for it to pick you up and drop you off.  This can be a bummer at times for two reasons.  The first is that you must remember to schedule your bus ride, and most of the “best times” (i.e. not departing at 6:45am or leaving at 7:00pm) are going to be taken by the time you actually remember to schedule it.  The second reason is that although you don’t need a reservation, you will most likely be able to ride the bus if you don’t sign up.  There have only been two times that I have seen people denied access due to not having a reservation.

The Ride

The ride is fairly nice.  This isn’t any luxury vehicle you are riding, but it’s not a school bus either.  The seats are comfortable but the ride can get a little bumpy at times. There is free Wi-Fi on the bus, so you can actually do some of your work while you ride the bus.  Another option that I tend is to read that book that I never have time for.

The traffic in Seattle isn’t as bad as Chicago, but crossing 520 isn’t a breeze without being in the car pool lane.  So any time that I save by driving my car is quickly negated by having to wait in the stop and go traffic.  From the time I walk out of my office to the time I walk into my building is about the same weather I drive to work or take the bus.

Routes

Grechen over at Microsoft’s JobsBlog just posted the stops that The Connector takes, so feel free to take a look at those.  I know that this information would have been helpful as nobody seemed to know the exact routes that it took.

Microsoft and Opinion16 Jul 2008 10:19 am

It is currently a little over a month into my full time employment at Microsoft, and I am extremely pleased with everything that I am working on.  For those that don’t know yet, I work on the installer for the Windows Live team.

Fringe Benefits

I am going to go out on a limb and say that what I enjoy the most at Microsoft are the fringe benefits.  This includes things such as a laid back atmosphere (I wear a t-shirt and jeans every day), free soft drinks (Coke AND Pepsi products, though I usually drink milk or juice), riding the connector, awesome club membership, and people who are much, much brighter than I am.

Another “benefit” is that I now get to be on the “inside” of everything that’s going on at Microsoft.  I have already been given a demo of Windows 7 (WAY more than just a new touch screen) and I have daily builds of every Windows Live application available (Live Writer is sweet).

The Work

Although I can’t discuss details of everything that I work on, I can say that I learn so many new things every day.  My first day at work, my mentor and boss gave me a set of books to get me familiar with what types of things I will work on.

Books given on first day

Those are just the books that I got on my first day – more have arrived and more are on order.  Needless to say, I probably don’t have an excuse for not being busy :P .

My day-to-day work consists of Win32 (obviously)/C++/COM work, which before I started I had no experience.  After digging my heels in for a month and wondering around a forest of code, I have made some clearings and know a few different pieces of a lot of code.

One aspect of working at Microsoft that I have enjoyed so far is that I have gotten to be in control of what I am doing, and people trust me to complete my assignments.  This is obviously a scary feeling when I dig into a bug, or adding new functionality in an area of code I haven’t even looked at, but up to this point I have managed to not hose the build system too terribly.

About the only thing I am not enjoying are some of the tools we have to use.  I have always been a Subversion or Mercurial guy, and the version control we use just doesn’t cut it.  From looking at the commands, there are sometimes three commands that do the same thing, just slightly differently.  Why create a whole new command when a flag would do?  I am already thinking about making Mercurial manage Source Depot.

The Future

Each team around here is scrambling to finish the current milestone (most teams it’s this week with others next week), which has given me an opportunity to see a coding milestone from start to finish.  The race has been interesting and has kept me on my toes.  I look forward to my continuing adventures at Microsoft.

Seattle06 Jun 2008 01:31 pm

It has been more than a month since I last typed up a post, and I have decided to write about my more recent experiences in a multi-part blog series.

Graduation

As many may know, I was offered a position at Microsoft within the Windows Live team which I accepted.  Just after graduation I went home, and enjoyed my couple of weeks off to prepare for the long road trip ahead of me.  The plan was to leave Thursday, May 15th and arrive in Seattle on Saturday, May 17th.  On the agenda was visiting two friends and Mount Rushmore before arriving in Seattle.  The trip totaled around 2500 miles, and over 30 hours of driving.

Day 1

The first day I met up with two friends, Sarah and Dave before finally resting for the day in Sioux Falls, South Dakota.  Day 1 was probably the exciting due to it involved driving through Chicago and Minneapolis, but frustrating because I got a speeding ticket for going less than 10 over :-/

Day 2

Day two was long, and boring.  If you have never been to South Dakota, consider yourself blessed.  The land in South Dakota is completely flat with no tree’s.  During one point in my trip I found a structure and wondered how far it would take me to drive to it.  It ended up being a little over 15 miles away!  Near the end of the day it started to get interesting as my brother and I were starting to enter the Rocky Mountains.  At the end of the day we stayed in Butte, Montana.

Day 3

The third day seemed to by incredibly fast.  We were going through the beautiful Rocky Mountains, passed by Idaho, and flew through Washington on our way to Seattle.  In total, this was probably the most breathtaking day of the whole trip.

In my next blog post, I will talk about searching for my new apartment, (boring topic, won’t post) then I will finish with my experiences working at Microsoft.

Development and Howto02 May 2008 03:13 am

Recently, Adobe released an AIR client for Linux. Some people complained about the need for root privileges for not only installing AIR itself, but also for installing AIR applications. If you are worried about providing your root password to a binary, here is a work around.

  1. Download the AIR SDK
  2. Unzip the AIR SDK
  3. Download your favorite AIR application
  4. Unzip the .AIR file (yes, unzip it)
  5. /path/to/air_sdk/bin/adl -nodebug /path/to/air_application/META-INF/AIR/application.xml /path/to/air_application

For example, if you were to unzip the AIR sdk to ~/AIR-SDK and unzip Spaz to ~/spaz, the command for #5 would be

~/AIR-SDK/bin/adl -nodebug ~/spaz/META-INF/AIR/application.xml ~/spaz/

Good luck!

« Previous PageNext Page »