Boy, do *I* feel like an idiot…

First off, I have to admit, I’m a beta tester. I love playing with all the new toys, and Microsoft has really kicked off a bunch of good betas.

I had previously written about having to write a utility to import Firefox favorites into Internet Explorer 7 beta 2. It took a bit of work for me to write a quick-and-dirty program to do the import. As a programmer, I was *very* happy, because I learned some new skills (even though it took a good long time to find the answers!). It did seem short sighted of Microsoft not to include an importer.

Well, they did, I just didn’t see it… DOH!

In Internet Explorer 7 Beta 2, there is a large plus sign (+) in the upper left hand corner of the main window, just below the forward and backward navigation buttons. Clicking on that icon brings up a menu (I expected this to take direct action). The menu contains an Import/Export wizard. It *also* contains a Favorites Manager, which is much easier to use than the Favorites bar on the side of the window.

Ya live and learn…

Quick ‘Da Vinci Code’ movie review

Ok, I confess, I went to go see Ron Howard’s ‘The Da Vinci Code’ this weekend.  I wish that I hadn’t.


I enjoyed the book.  It was a fun read, blending a bit of history with an interesting story.  It reminds me of Tom Clancy’s ‘The Hunt for Red October’.  Unfortunately, the movie fell short.  Too much focus on the religious aspect, and very little focus on the characters.


Oh well, there’s always ‘Over the Hedge’.

Oldies, but goodies (they don’t write’em like they used to)…

I’ve recently been on a major book buying spree ( must *love* me).  I’ve run through O’Reilly, Apress, and Addision-Wesley books like they are going out of style.
On thing that I am noticing is that new books are not as ‘time resistent’ as older books.  Granted, the books that I am buying are about specific products/versions, so they tend to be very specific, but still, my favorite books are older books. 
Take for example one of the best books about programming I’ve *ever* read, Oh! Pascal.  Why do I like this book so much?  Because at the end of each chapter, the author includes a section on using the debugger.  Most programming books barely even *mention* debuggers.  My feelings are that to be a good developer, one must be able to *live* in the debugger. 
Another book that has crossed my path recently, but was written a while ago is Writing Compilers and Interpreters.  My buddy, Rick, turned me onto this book.  I am an Application Developer by nature, and tend to rely on pre-written code to do as much work for me as possible.  Unfortunately, I’ve been running across the need to understand more than just application code.  I needed to understand how to write a parser.  Yes, it’s basic, but it is something I’ve never done before, and there are *very* few books that talk about it.  So, I asked Rick about where he learned to write parsers.  This book was his recommendation.  Even though it was written in 1996, it’s still a *great* book.  Thanks Rick!
Back to reading!

Stupid Powershell Tricks #1: How to get a nice formated list of directories from your PATH variable

Stupid PowerShell Trick #1:

Ever wanted a nice list of the directories in you PATH statement?  In PowerShell, it’s incredibly easy to get a list like that.  Here’s the command…

PS C:> $env:Path.Split(";")

That’s it!


As an aside, $env has several other useful references.  Check these commands out:

  • $env:windir – the base Windows install directory (usually C:Windows)
  • $env:path – the PATH environment variable
  • $env:username – the name of the current user
  • $env:homedrive – the name of the drive that the user’s homepath is located
  • $env:homepath – the name of the user’s root directory (ie, the directory above ‘My Documents’)


Guitar Player TV!!!!!!!

Ok, guuitar players!  Guitar Player magazine now has an Internet TV channel!  Check out GuitarPlayerTV.  Guys, don’t forget to check out Rocker Girl, there’s interviews in there with Satriani and some stuff with Garageband!
I thought some of this might be a little bit more detailed, but it seems a little "fluffy" to begin with.  Some of it looks like videos from different places, ie the Line 6 one is directly from a Line 6 videos on their sites.  It would be wonderful to get Marc Seal‘s show back on the air.  *THAT’S* guitar tv..

Update on my Line 6 experience

I mentioned that I bought a Line 6 Pod XT Live and the previous owner had left the model packs installed before trading it into my local music store.  My expectation was that the model packs would go away when I registered my new toy.  I had to call Line 6 to get my registration cleared up anyway (as it was registered to the previous owner), so I asked the helpdesk guy the question about the model packs… I was completely surprised by the answer.  The helpdesk guy said that if someone sells the unit with the model pack still registered to the unit, the model packs go with the unit!  So, after emailing a copy of my receipt to Line 6, I was able to get everything transfered over.
And BTW, the Pod XT has some *incredible* sounds.  Boss GT-8 is *still* for sale!

PowerShell goodness…

I’ve talked a little about Microsoft’s new command shell, PowerShell.  I’ve been using it for my day-to-day tasks at work.  There are some really great features for scripting and programming.  There are some bang on useful commands that will help with working with PowerShell.  Here’s a couple of things that will help with the *discovery* of PowerShell:
First up, get-member.  This nifty little command is used in conjunction with a pipe from another command.  What get-member does is list the members of the object(s) passed along the pipe from a previous command.  Woohoo!  RTTI for scripts!
Try this example:
PS C:> get-childitem | get-member

This will list all of the methods and properties of the object on get-childitem (aka dir or ls).


This leads me to the next darned useful thing, where.  Now that we know what can be accessed, the where command allows us to use it.

Try this example:
PS C:> get-childitem | where { $_.PSIsContainer }

This will list all of the containers of the given location.  It’s a very cool way to get a list of subdirectories for a directory.  Also in this example, notice the $_.  That syntax allow means ‘the current object’.  You can reference any property from


The last idea to leave with is the format- commands like format-table and format-list.  These allow you to build your own output formats for any command that emits an object.


Try this example:
PS C:> get-childitem | format-table Name, Length, PSIsContainer

This will take the get-childitem command’s output and only list the Name, File Length, and whether the child item is a container.


Can we say, Schweeeeet!?!


PowerShell’s name is appropriate, although *very* goofy.  I haven’t even touched the surface in my own personal uses, and I can see that this is the thing to learn.


More tips to come!

More programming, less bitching…

So, my job is going to require less coding… yeah, right.  I found a way around that concept. 
How, you ask?
Start writing things to automate my job.
I’m notoriously bad for doing ‘repetitive motion’ type activities.  Other than my build scripts, I don’t typically write a lot of code to help me do things on the computer.  Well, that’s changing.  Three things that have helped me start down the code everything path. 
First up, Windows Powershell (aka Monad).  This is a scripting language on steriods!  I’ve worked with Powershell on and off for a while.  Since Beta 3, I’ve actually started using it for my build scripts.  The best thing about Powershell is that you can work with .NET objects on the command line and in the pipes.  How many times in Unix or Command prompt have you wanted to sort the output list by something not displayed?  Powershell can do it.  Here’s a great acticle comparing Powershell to the Unix shells.
Second, I started using IE7.  It used to be that IE had a import function for reading Netscape/Mozilla/Firefox bookmark html files.  Apparently, importing bookmarks is a security risk.   This functionality was removed with Windows XP SP2.  Not depricated, but completely removed.  I have a bunch of Firefox bookmarks.  I *like* IE7, so instead of moving the bookmarks by hand, I decided to write a little importer program.  A week and a couple of square inches of hair later, I was able to import the links into IE7 with 40 lines of C# code.  Now, this may not sound like a major accomplishment, until *YOU* try to create a favorite in IE with only Microsoft’s libraries…. (I’ll post about that soon)
Finally, I received a book that should be required reading for anyone who calls themselves a programmer.  Eric S. Raymond’s The Art of UNIX Programming is a look into how the guru’s of programming think.  Most of the ideas are geared towards how UNIX utilities have stood the test of time, and how new programmers can learn these magical ideas.  *ALL* programmers should read this book.
Now, armed with a cool tool and a great book, I should have a lot more ‘fun’ at work getting my job done.

I love it when things just ‘work’

Ok, honeymoon period with a new toy!  I found an incredible deal on a used Line 6 Pod XT Live.  What made it even more incredible was that the previous owner left the model packs on there… Wow!  Of course I loose those when I actually get the thing register in my name, but at least I get to play with them for now…
I know that I’m coming in late to the game with Line 6.  I used to own a the first generation Vetta guitar amplifier, and it sounded, well, just so-so.  I never really tweaked it much, and it was difficult to edit at low volumes.  Needless to say, I sold the amp, and walked away from Line 6 for a while. 
I have returned though, and Line 6 has *really* gotten themselves together.  The latest upgrade adds a bunch of amps, several wahs, and now the Pod’s can do all of the Bass Pod’s amps/cabinets and effects!  WOW!  What has made it interesting is that after a *lot* of revisions of software, it is really easy to set up.  Line 6 created an app to make sure that you have the latest firmware, the latest editor program, and that everything works.  No other amp/effect maker is paying attention to these details. 
Boss/Roland it’s time to !WAKE UP!  No USB, no drivers, and no editor is meaning NO DEAL.  Plus, give out updates that have extra features.  I have no doubt that Line 6 will have more up their sleave.  It’s all about value to the customer.  I’m back to being hooked on Line 6 because it sounds good, it is easy to set up, and they have great updates.
Let’s see how long this lasts…
Anyone want to buy a Boss GT-8 in excellent condition?