Rants, rambles, news and notes from another geek

My New World of Warcraft Custom UI

Yeah, yeah. I haven’t been blogging lately. I’ve been hard at work on the the SC-BAT project, the kids have been taking turns being sick for more than a month, and when I get any spare time at all I’ve been playing World of Warcraft.

As a geek, one of the coolest things about WoW is that it is a completely customizable UI. It is basically a very good user customizable Smart Client. There is a back end server that keeps the world data and there is a rich interpreter on the front end that provides the user experience.

The shell of this application uses an interpreted scripting language called Lua and XML files (that look remarkably like XAML) to describe the frames, panels and UI elements. And… you can extend and customize this UI with your own plugins. In fact, there are whole community sites out there (like the one at WorldOfWar.net) that track and index all of the addons that are available.

Of course as a Smart Client geek, I can’t have all this power and not take advantage of it, right? So after spending the last month or so playing the game, learning how it works and trying out a number of different addons (aka ‘mods’), I decided it was time to start over and make my own custom UI.

Here is the result:

WoWScrnShot_040606_234242 (small)

Here are the Add-ins I have installed right now:

  • Auctioneer
  • Blizzard_AuctionUI
  • Blizzard_BattlefieldMinimap
  • Blizzard_BindingUI
  • Blizzard_CraftUI
  • Blizzard_InspectUI
  • Blizzard_MacroUI
  • Blizzard_RaidUI
  • Blizzard_TalentUI
  • Blizzard_TradeSkillUI
  • Blizzard_TrainerUI
  • BonusScanner
  • CensusPlus
  • ComboCast
  • Confab
  • CountDoom
  • CT_MailMod
  • CT_MasterMod
  • CT_PlayerNotes
  • CT_RABossMods
  • CT_RaidAssist
  • CT_RaidTracker
  • CT_Viewport
  • DiscordActionBars
  • DiscordActionBarsOptions
  • DiscordArt
  • DiscordArtOptions
  • DiscordFrameModifier
  • DiscordFrameModifierOptions
  • DiscordLibrary
  • DiscordUnitFrames
  • DiscordUnitFramesOptions
  • Enchantrix
  • EnhTooltip
  • FishingBuddy

  • FlightMap
  • Gatherer
  • Informant
  • LifeTapWarn
  • MonkeyBuddy
  • MonkeyLibrary
  • MonkeyQuest
  • MoveAnything
  • OutfitDisplayFrame
  • Servitude
  • StoneScan
  • Stubby
  • Titan
  • TitanAlarmClockWrangler
  • TitanAmmo
  • TitanBag
  • TitanClock
  • TitanCoords
  • TitanHonorPlus
  • TitanInn
  • TitanItemBonuses
  • TitanLootType
  • TitanMoney
  • TitanPerformance
  • TitanPvPStatus
  • TitanRegen
  • TitanRepair
  • TitanRider
  • TitanRoll
  • TitanStanceSets
  • TitanStones
  • TitanSummoner
  • TitanXP
  • TitanXPStatus

For those of you who play WoW, I’d love to know what you think.

Geek Notes 2006-03-10

Haven’t been reading blogs lately, but have instead been spending too much of my free time playing World of Warcraft. Man that game is addictive. My wife hates it.

  • IVR Cheat Sheet - Ever call a business and get the InteractiveVoice Response system when what you really wanted was a person? Check out this list by Paul English that tells you how to get to a person the fastest for the business you’re calling. Got one that isn’t there? Add it. [via Good Experience Blog]
  • [Web] Service Versioning Guidance - Don Smith has finally posted the blog post we’ve been waiting for for years. He, DonXML, myself and many others argued about this stuf repeatedly and we all learned that Don knows this shit better than anyone. This post isn’t Don’s final answer, but it helps show you what’s coming from him and his team.
  • “The Ian Knot” - The world’s fastest shoelace know. It is strange to be (almost) 37 years old and and learn a new way of tying your shoes that is actually better than the old fashioned way. You end up with the same knot, but a hell of alot easier.
  • British Soldiers on LSD - This video had be literally laughing out loud. It may not be quite so funny to you, but for me (and some of my college friends) it is quite funny. &nbsp_place_holder;(via BoingBoing)
  • The Etymology of Sexual Slang - Someone asked me lately, “I wonder where the word pussy came from.” I found the answer here.

Smart Client Baseline Architecture Toolkit March CTP Reached

The p&p Client Team is pleased to announce the CTP release of the Smart Client Baseline Architecture Toolkit.

Check out the downloads section in the SC-BAT gotdotnet codegallery site. The new release includes several bug fixes, complete documentation (including How Tos, architecture descriptions, etc), the first Reference Implementation (Appraiser Workbench) and Guidance Packages to automate common developer tasks.

We strongly suggest you should take a look at the “Getting Started” document included in the distribution that explains the recommended way of exploring this guidance offering.
We would like to take the opportunity to thank this community for the support and feedback provided during the development of this deliverable. Please continue to help us!

The patterns & practices Client Team

Good Times, Bad Times

It has been a challenging couple of days. Today, Emily and I are flying to Sydney Australia for a little bit of vacation and so I can do a few presentations at the patterns and practices Summit. On Wednesday my parents flew in from Washington DC where they were taking care of my sister’s kid while she was in the Bahamas. (Yes, that’s pretty much what they do–fly around the country to play with their grandkids.)

We are really looking forward to the vacation part and I always love an opportunity to speak about geeky stuff in public. And since the kids aren’t coming with us (), we will do nothing but lay on the beach and wander around Sydney. All while my kids are busy tormenting their grandparents instead of us.

A few hours after Grammy and Bompie&nbsp_place_holder;got here, though,&nbsp_place_holder;Finn (the youngest one) came down with a puking stomache flu. Lovely. Emily has already blogged a bit about it, but she was surprisingly restrained. She has been puked on at least six or seven times. I’ve been lucky enough to only get it once. Fun.

But despite all of that, it is very nice to have&nbsp_place_holder;my folks&nbsp_place_holder;here. My dad always inspires me to do work around the house. When he isn’t chasing around the country visiting grandkids, he is rebuilding his house. So he always arrives looking for a project to do at my house. It is great.

But then last night we got handed a project I really didn’t need. The clothes dryer died. The washer was already on its way out, but now the dryer is dead. And we still have 19 loads of laundry to do before our trip. So now, in addition to all the other things we have to do for the trip, we have to run over to a laundromat to get our clothes clean. And possibly swing by Home Depot for a new set of laundry machines.

Like I said in the title… Good Time, Bad Times.

Infragistics NetAdvantage CAB Extensibility Kit

This is very cool. This was posted to the CAB message board today.

Today Infragistics released NetAdvantage 2006 vol 1. Here is an excerpt from the Help file:

As part of the NetAdvantage 2006 Volume 1 release, we are offering the NetAdvantage CAB Extensibility KitΓäó. This product is an add-on to the NetAdvantage Windows Forms (CLR 2.0) product, extending the NetAdvantage Windows Forms product to provide seamless interoperation with the CAB framework. This add-on gives development teams the power to develop sophisticated smart client applications using the controls and components in the NetAdvantage Windows Forms toolset. The kit also allows development teams to provide rich, fine-grained appearances and behaviors to enterprise-class applications using predefined looks and feels, presets, and appearance settings.

The NetAdvantage CAB Extensibility Kit installs a NetAdvantage CompositeUI source-code solution and a quick start solution (ported from Microsoft) that utilizes NetAdvantage controls/components – the key items to get your CAB application seamlessly integrated with the NetAdvantage Windows Forms (CLR 2.0) product.

Those who are interested, go and get it!

We are very excited about this offering. If you are using CAB today, check out what they’ve done.

(I don’t see anything on their home page yet, but it may be in there somewhere.)

Geek Notes 2006-01-29

Another rainy Seattle weekend goes by. Today’s rain is real rain tooΓǪ not that drizzly stuff we normally have, but real rain. We had a bunch of new friends over for Sunday brunch today. Eight adults and six kids was a bit much for&nbsp_place_holder;a house the size of ours, but it was a lot of fun.

  • Virtualizing Access to Content: Serving Your Web Site from a ZIP File - In this new article up on MSDN, Victor Garcia Aprea shows off one of the new features in ASP.NET 2.0, virtual path providers, by storing the website content in a ZIP file and serving the pages on the fly. Very cool stuff.
  • Gnomedex Registration Is Open - I’ve always wanted to go, but it has never been possible for me. This year it is in Seattle, so maybe I can make it this time.
  • Subversion Hosting - I saw this recently recommended on a mailing list I’m on. Looks like a pretty good service for outsourced SVN repositories. The Professional level even has integrated bug tracking and wiki.
  • Why Visual Studio Intellisense Sucks - Mark Miller, of CodeRush fame, writes a very insightful post about intellisense. It is very interesting because I know that Intellisense has impacted API design and usability thinking (for the better) in the past few years, but at the same time, I think Mark is rightΓǪ it could be a lot better.
  • The New Ruby-Doc.org - Wow. The guys over at ruby-doc.org have done an excellent job with their recent redesign. Nice work.
  • E-Prime - I was pointed to this by my friend Alan Ridlehoover on one of the internal mailing lists. Since I first discovered it, I’ve been trying to think about what it would actually take to change my language to that style permanently, but I don’t know if I can do it. Or even if I should.
  • Good Experience Games - I find myself constantly returning to this list to see what new games he’s got. I don’t know why it took me so long to find his RSS feed, but now I’ve subscribed and don’t have to go looking anymore. From the guy who brought you one of my other favorite blogs:&nbsp_place_holder;ThisIsBroken.com.

Another One Bites the Dust

Chris Tavares has accepted a position along side me and Brad Wilson. I wonder if he really knows what he’s getting himself into.

Welcome Chris! This is gonna be fun.

Geek Notes 2006-01-27

We dropped another weekly release of the Smart Client Baseline Architect Toolkit today, which is proceeding nicely. We’ve been doing weekly drops of all our stuff, code, GAT packages, documentation, etc. Things are moving along nicely.

Had a few things laying around in my “Geek Notes” pileΓǪ here you go:

  • Useful One-line Scripts for SED - Every now and then I use sed to do something for me. Combined with Monad I can do almost anything to a whole folder full of files. Today while helping Scott Densmore with a little sed script, I found for him this page full of simple useful sed scripts. Fore more sed info, see The SED FAQ.
  • Waterfall 2006 - The only conference by and for waterfall lovers. Don’t miss my favorite session, “Introduction to Dogmatic Programming” by Andy Hunt and Dave Thomas. Register while there are still seats available!
  • LUA Whitepaper Released - If you (or the boss) need more convincing than me, Aaron Margosis and Michael Howard telling you that LUA is the way to go, check out this TechNet Whitepaper called “Applying the Principle of Least Privilege to User Accounts on Windows XP” that shows all the various techniques available today. [via Aaron Margosis]
  • Workaround for Shutdown.exe LUA Bug - While I’m on the LUA stuffΓǪ Aaron also recently posted this little workaround for something that bothers the hell out of me. Using shutdown.exe from the command prompt doesn’t work! WellΓǪ it does now.
  • Sony Reader - Just recently someone was talking about the death (or not) of paperback books. Then I run across this amazing looking thing from Sony. Wow. If it looks as good up close as the pictures make it seem, it will be amazing. [via Jan Miksovsky]

19% Evil, 81% Good


This site is certified 19% EVIL by the Gematriculator

&nbsp_place_holder;I expected it to be a bit higher.

Issues Upgrading to Monad Beta 3

Camey commented on my post Windows “Monad” Shell Beta 3 Now Available!:

So now I need to uninstall the earlier release of Monad, but I’ve already pulled .NET 2.0 Beta off my machine, so it won’t uninstall. And the new release won’t install over it… arggggg. Do I have to re-install .NET 2.0 Beta, uninstall previous Monad and then uninstall .NET 2.0 Beta, again? What’s that gonna do to my current .NET 2.0 installation?

I checked with some of the folks over on the Monad team and they agreed that while it isn’t that pleasant, to uninstall Monad Beta 2, you have to have .NET 2.0 Beta 2 installed. It turns out that the Uninstaller needs it. So, if you have already uninstalled .NET Beta 2, you will not be able to uninstall Monad Beta 2.


So, if you are in the same situation as Camey, and have already upgraded your .NET runtime, you need to go back to .NET Beta 2 in order to execute the Monad uninstaller. Here is the complete sequence.

  1. Uninstall .NET&nbsp_place_holder;2.0 RTM
  2. Install .NET 2.0 Beta 2 (see below)
  3. Uninstall Monad beta 2
  4. Uninstall .NET 2.0 Beta 2
  5. Install .NET 2.0 RTM
  6. Install Monad beta 3

Download Links:

Good luck!