Tuesday, September 27, 2005

I've been dabbling with Windows Vista Beta 1...and I must say “WOW!”  I'm loving it!  I took a bit of time late this afternoon to set up a Virtual PC image with the Vista Beta 1 bits on it.  It took some some to get it up and running, so I thought I'd provide some info to ease your burden of setting it up.

First of all, when installing Vista it will not be able to recognize or identify a hard drive that you create with Virtual PC right out of the box, you need to do some configuring.  This is made manifest part way through the installation when is asks you into which drive you want to install the OS and it will not allow you to select the partition or format it, saying that it's unavailable.  Any attempt to repair this will result in failure.  What you need to do is drop down into the Windows PE (Preinstallation Environment) console by pressing SHIFT+F10 after selecting to 'Install Windows'.

Apparently, what happens is when you set up your disk (I chose to create a fixed 16GB drive image, though I don't think that's required) it will create the image to the proper size, but the installer will think that there are 0 bytes free on the disk for some reason. Once in the console, you'll need to blow away (CLEAN) the partition, and recreate a RAW partition and format it.  After that, the installer will locate the disk during install and it's off to the races....very slow races mind you, but races nonetheless.  The installer will take over an hour and a half (possibly much more).  So here's what you do (at least this is what I did and it worked):

At the PE console type in the following commands, pressing [ENTER] between each one:

  • DISKPART

DISKPART will drop you down to a DISKPART command line where you enter the following commands:

  • SELECT DISK 0
  • CLEAN
  • CREATE PARTITION PRIMARY
  • ACTIVE
  • FORMAT
  • ASSIGN LETTER=C

Then restart the installation (perhaps rebooting via Action menu -> CTRL+ALT+DEL option).

Once Windows is installed (which will take a considerable amount of time, but which is also completely “hands off” once started), it will not be able to detect drivers for the devices, and will render the UI in 4-bit color at 800x600.  You'll need to install the Virtual Machine Additions via the Action menu.

I must say, that I am incredibly impressed with not only the UI, but how clean and professional it is.  Windows Vista is going to rock, I'm so excited!  I'm gonna start putting it through it's paces to see how my apps work on it and start checking it out.

Tuesday, September 27, 2005 3:07:00 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback

In all our copious free time we've had a chance to do a few upgrades to the house.  We built a shed and finished it, replaced the garage door, etc.  Recently, we took the courtyard/patio in the front yard and finally enclosed it in a brick wall with columns and lights.  I say finally because it was kind of an eyesore for about a year...we had the courtyard poured with 3/4” PVC pipe sticking up out of it in three places.  When we had the concrete poured we preanticipated that the wall would be built so I ran the pipe underneath the stairs into the basement and then up and out where the columns were to be.  It feels so much better now to have it completed.  I have a few pictures that show the work in progress and the finished product.  The last remaining task is to run the wire up the wall to the switch to the lights on the posts switch on with the other exterior lights.  Oh, and that reminds me, I also changed out the lights on the house (I hated the stock lights that were included with the house)...these are so much nicer.

In Progress:


And the finished wall:

Tuesday, September 27, 2005 4:22:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Sunday, September 25, 2005

At some conference, IBM was showcasing their voice recognition system, and issuing voice commands on the command prompt of his laptop.

Someone from the first row shouted out "format c:"

Someone else shouted out "return; yes; return"

(credit to Juan, commentor on ASP.NET Resources - What Goes Around Can't Be Recalled)

Sunday, September 25, 2005 2:14:00 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Saturday, September 24, 2005

This is proving to be a blast of a weekend - a MUCH needed reprieve from the usual 'writing code' all weekend and never enjoying myself.  This is actually the first time in a long time (almost 3 years) in which I've taken any personal time.  Last night my dad, 5th cousin Maja, and I went to a performance of Beethoven's 9th Symphony by the Utah Symphony.

Today, we all went four-wheeling.  My brother has a few four-wheelers, a three-wheeler, and a dirt bike so we had a blast.  I've not done that in years.  I have some good friends (Jason Walker and Justin Long [edited 09/26/2005 - sorry Justin]) who would go four-wheeling pretty much every weekend, until Jason's accident back in April.  It was a lot of fun to go jumping the dunes and hills.  Perhaps I'll post up some pictures here shortly.

To cap off the evening we're all going down to The Roof for dinner tonight.  Maja goes back home to Slovakia on Tuesday so this is kind of a farewell dinner in which we could all get together.  Looking forward to it!

Saturday, September 24, 2005 9:57:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Friday, September 23, 2005

This evening I had the opportunity to attend a very moving and exhilirating concert by the Utah Symphony with my dad and 5th cousin Maja Jantolakova (I hope I spelled that correctly) who has been in the US visiting for the past several weeks.

The orchestra was conducted by Maestro Stanislaw Skrowaczewski.  At first, they played an extremely powerful and complicated piece: Grosse Fuge (Grand Fuge).  It was awesome!  I'm going to have to listen to it in its original, intended form - for a string quartet, but it was impressive in symphonic form.

Following a brief intermission the orchestra and choir came out and collectively performed Beethoven's Symphony No. 9.  The 9th has always been my favorite of Beethoven's symphonies (followed closely by the 7th, 5th, and 3rd).  Was an awesome performance!

One aspect of tonight's events that provided a particularly nice touch was a brief, 30 minute talk preceding the performance with Maestro Skrowaczewski.  He along with the host of the meeting (I don't recall his name) discussed the two pieces, particularly the Grosse Fuge.  Apparently this piece is beyond complicated.  It has been tagged as 'unplayable' and an impossible piece.  This was the first time it's ever been performed in Utah by the Utah Symphony, so that was a particular treat.  In addition to being an enjoyable evening at Abravanel Hall, it was enlightening and educational.

I'm so glad I had the chance to go tonight and be with Maja and my dad.

Friday, September 23, 2005 5:32:00 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Wednesday, September 21, 2005

[EDIT: 07/10/2006 - Fixed stupid spelling error]

I created a very simply control the last night that might come in handy to someone.  If you've ever had the need to have a series of images cycle at some interval on your webpage then this might be useful.  The script to create such functionality on your site is quite trivial (though perhaps it gets slightly more redundant and complicated if you need multiple, distinct, rotating images on your page simultaneously, each with a varying interval between switching images).  However, I wanted to have an ASP.NET control that I could just drop on a page, set up its sequence of images, have it work, and call it good.

Well, I've created a control called ImageRotator that provides this functionality.  Simply add the control library (dll) your website's \bin directory, create the little markup needed, and you're up and running.  The .zip file contains the full source (which really isn't much at all) and the 'release-build' bits for both .NET 1.1 and 2.0, along with a readme tutorial on how to use it.

By way of example, in order to set it up on your page, all you have to do is this:

<%@ Register tagPrefix="devstone" namespace="Devstone.Web.WebControls" Assembly="ImageRotator" %>

<devstone:imagerotator id=imgRotator runat=server interval=3000>
   <devstone:imageref imageurl="~/images/image001.jpg" />
   <devstone:imageref imageurl="~/images/image002.jpg" />
   <devstone:imageref imageurl="~/images/image003.jpg" />
</devstone:imagerotator>

Pretty simple, but all it does is help solve a simple problem.

You can download the .zip file here.

Wednesday, September 21, 2005 8:36:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [23]  |  Trackback
 Tuesday, September 20, 2005

In conjunction with a post that I made a few days past, I've embraced another web debugging tool.  A few days ago I mentioned the Internet Explorer Developer Toolbar.  Well, a developer at Microsoft by the name of Nikhil Kothari has created a very cool component that sits inside your browser window and monitors all HTTP/S traffic that flows within that browser session.  Unlike other HTTP debugging proxy tools that I use (such as Fiddler) which monitor all HTTP traffic on the box, the Nikhil's Web Dev Helper tool isolates traffic filtering to the IE browser instance in question so it's pretty nice.

NOTE: The tool does require the .NET Framework 2.0 Beta 2.  I didn't realize that at first (that goes to show how well I read instructions) so when I was trying to GAC-register the .dll using v1.1 GACUTIL it was failing.  Once installed (which is incredibly painless) it appears as an option in the IE Tools menu.

Very cool!  Thanks Nikhil!

Tuesday, September 20, 2005 7:24:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, September 19, 2005

One of the new technologies to debut at PDC, providing attendees the first glimpses is that of Office 12.  I recall talk about Office 12 from my days in Microsoft Consulting Services a few years back, how it was going to be a complete rewrite from the ground up, eliminating any remnant of 16-bit code, etc.  Well, I can definitely vouch for the overhauled user experience - it looks NOTHING like its predecessors.  I am absolutely looking forward to giving it a whirl when it's available!

Check out the screenshots and read about it!

Monday, September 19, 2005 7:47:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Saturday, September 17, 2005

Microsoft has developed a very cool developer toolbar for IE (NOTE: it's still in beta).  If you do any sort of web development for IE you'll want this tool.  Sure, tools such as this have existed for some time, so it's nothing revolutionary, but it's definitely a nice addition to the debugging / analysis tools available for IE.

Using the toolbar you can explore the DOM, view element IDs and classnames, validate the HTML/CSS, etc.  Though simple at best I particularly like the resize feature where you can, with a single click, resize your browser to a particular size - especially helpful to test your webpage against a certain resolution.  It has a ton of cool features - it's definitely added to my toolset!

<grumble>You'll have to reboot after the install...I thought we were done with most of that.</grumble>

Saturday, September 17, 2005 7:11:00 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [3]  |  Trackback

At best, the design and maintenance of application across versions is something we should be constantly considering.  However at times versioning issues can be monumental to overcome.  For the most part, it's pretty easy to write an application (and a set of few dependencies) and deploy them and have them work properly.  If redeployed completely autonomously as such versioning isn't too much of an issue - you're always shipping the entire app.  However, taking such an application and then upgrading it piecemeal can be a bit tricky - though not always very difficult.  Where it gets more complicated is when you create a reusable component that the designed to function as an API or as a third-party component in another application.  Other applications, outside your control, may begin to rely on the objects within your libraries / assemblies.

The concept of assembly versioning is not new by any stretch of the imagination.  We've dealt with some interesting and complicated versioning issues in the past, most memorably COM's notorious DLL Hell.  For many .NET's versioning model was seen as a much-needed reprieve from the world of COM.  With .NET, the assembly's version is baked into it's name (consisting of name, version, culture, public key).  With this key bit of information so accessible, the .NET runtime can load the appropriate assembly and bind to it (it can, of course, be overridden and forced to load an alternate version via policy (config binding or publisher policy)).  This luxury did not exist as such in the COM days.  With COM you only had one component (.exe, .dll, .ocx) on your machine representative of all versions - that is, all dependent applications would ultimately attempt to use the single version.  This would lead to applications expecting behavior to be present that might not exist, perhaps because the correct component was replaced by another application's not-so-friendly installer.

Despite the progress made from COM to .NET, we're not completely out of the woods - but there is light at the end of the tunnel.  It's nigh impossible to create a silver bullet that will solve all versioning issues.  However, Microsoft is putting a lot of thought into issues that revolve around versioning.  If you haven't read this article, I encourage you to do so - there's lots of cool stuff being considered.  Of course, there's no guarantee that any of this will truly see the light of day, but I really like the direction they're going.  I am particularly excited about notion of Platform Assemblies and Library Assemblies and can see lots of benefits.

Saturday, September 17, 2005 6:37:00 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Wednesday, September 14, 2005

Well, what can I say?  I'm a little disappointed.  Several weeks back I gave a MSDN Event / presentation on .NET 2.0 Internals at the local Microsoft offices.  As it turned out about 80% of the attendees of that event actually wanted ASP.NET (not the 2.0 Internals stuff).  Many other requests for ASP.NET 2.0 came in as well so we set up a special seminar focused specifically on ASP.NET 2.0.  We announced it at various conferences, user group meetings, and events.  I stayed up all night last night (my third in 9 days with another coming tonight) preparing a pretty powerful presentation.  After all that, one person showed up - ONE!

So what gives? Was no one else able to make it?  Did no one remember? Was it the presenter?  The topic was in pretty high demand, and we go to the extra effort to put it on, reserve the room, prepare a presentation, pretty much for naught.  What a disappointment.  Fortunately, the one attendee, a gentleman by the name of Joe Brame and a regular at these kinds of events and the monthly user group meetings, received full-on, 100% attention so the entire presentation was catered to him.  At least someone got something out of it.

Wednesday, September 14, 2005 6:09:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Tuesday, September 13, 2005

I have the opportunity today (technically it's Wednesday, though I'm posting this on Tuesday night) to present a talk/discussion at the Microsoft Offices on ASP.NET 2.0.  ASP.NET 2.0 is nothing short of awesome.  Though there are a few things that rub me the wrong way with it, overall I really feel that ASP.NET team did a fantastic job.

The discussion will focus on several of the new capabilities such as Master Pages / Content Pages, WebParts, Membership and Profile services.  Additionally, we'll mention a few other items such as database cache invalidation.  It should be a great time.  If you attended my presentation at the 2005 Betas Unleashed event in May, this will largely be a rehash of some of those topics, though I may throw in a few other tidbits as necessary and for fun.

Come join us at the Microsoft Offices in Salt Lake City (123 Wright Brothers Drive) from 9:30 AM - 12:00 PM.  Lots of fun for everyone! 

NOTE: Microsoft dropped the ball with this event.  Despite the fact that the event isn't up on the MSDN Events site, it IS happening and we have the room reserved.  Hopefully people show up - or I'll end up leaving early.

Tuesday, September 13, 2005 6:02:00 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback