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
 Monday, September 12, 2005

Today I am excited to have received a copy of the Carcassonne Almanac from www.spielbox-online.de which I ordered way back in April for 8 EURO (the actual product link is here)  I preordered the product (which just recently became available mid August).  The product (which is essentially just a glorified newsletter) contains a copy of the expansion Carcassonne - Die Katharer (The Cathars).  That was, in fact, the primary reason I made the order in the first place.  Previously, the expansion was only made available to a select few subscribers to a game magazine in Europe.

Carcassonne is an awesome tile-based board game and I look forward to trying out this expansion!

Monday, September 12, 2005 7:30:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Friday, September 09, 2005

Last night we had the opportunity to attend the Utah .NET User Group at which a local developer by the name of Josh Perry provided a presentation on the topic of Mono.  We had a pretty good turn-out, too which was very exciting, as well.  Josh demonstrated creating an application in a text editor (e.g. Visual Studio), compiling it using Mono and running it on Linux and Mac OS X.  All in all, it was pretty enlightening to see all of the advancements that have been made by the open source community around the .NET framework.

Very cool!

Friday, September 09, 2005 3:16:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback