Saturday, January 27, 2007

Both of the readers of my blog probably think of me primarily as a .NET LDAP/Security/ADFS guy, and that's fine with me.  The vast majority of my posts aren't about my personal life, so that's what I seem like.  However, those who know me better know that I also play drums and have played in a few bands in my day.

I went on hiatus from doing any serious band stuff after my son was born and thought I was pretty much done.  There does come a time when one packs that sort of thing in, although I'm not certain what that threshold is.

Apparently I haven't quite hit that yet, because I was recently lured back into playing in a band again.  I am now the drummer for Arriver (replacing the dude in the left in the photo), which is basically a metal project started by Dan MacAdam, the guitarist from my previous band, Viza-Noir, and Dan and Rob Sullivan.

I've played with Dan M. for years and have also played with the Sullivan brothers for years as well, although never in a serious songwriting type of band.  The Sullivans and I, along with Jimmy "Bigstacks" Grabowski, formed the core of the legendary Dave LaCrone and the Mistletones, a band that existed only to play a rather insane annual holiday party.  The 'tones also played quite a few of my friends' weddings and a prom in a cover band capacity.

Dan M. played with the Sullivans and their other brother Andy in a straight up bluegrass band called Skeeter Pete and the Sullivan Mountain Boys, which I was fortunate enough to record a few years ago.  Them boys can sing and they pick pretty well too.  :)  I also recorded a record for Dan Sullivan for his Nad Navillus project, which was a singer/songwriter project featuring Dan's virtuoso guitar playing and some more introspective material.

The Sullivan brothers also play in one of the most ambitious rock bands in Chicago, the Butcher Shop Quartet.  The BSQ plays arrangements of contemporary classical pieces for rock band (generally 2x guitar, bass and drums).  They are most famous for their truly impressive rendering of Stravinsky's Rite of Spring, something that has to be heard to be believed.

You are also plenty likely to find Rob playing bass at a bar near you with the Blue Line Riders, a 6 piece honky tonk band with one of the most impressive set lists I've ever seen.

Arriver is a metal band.  This takes me back to my childhood, as that's what I grew up listening to in the South as a kid (didn't everyone?).  However, metal has changed a lot since I was into it.  I had pretty much switched to indy rock by the time thrash metal and speed metal transformed the genre.  We now have blast beats, crazy time signatures and demonic vocals to round out the power chords and "widdly-widdly" guitar solos.  Sick double kick chops are assumed as the price of admission.  I've got a lot of catching up to do. :)

I actually got a double bass drum pedal when I was 16, as all the cool kids had one and I wanted one too.  I used it for years in various band projects, although I never learned how to do the fast metal rolls that you need to have to play this stuff.  20 years later, I sill have the same DW 5000 double kick pedal.  It works ok, but I might need an update.  It is pretty lose and the sprockets are all worn down.

China cymbals, often frowned on in indy rock as being too "something" (having to do with uncool I'm sure) are welcome in metal, so some of my other 20 year old gear is geting a ride again.  I'm actually using 2 on my current set, something I've never done before (a 20+ year old 19" K china and a 10 year old 22" swish knocker with rivets that I bought when they reissued them a few years ago; obnoxious cymbal!).  This part I like quite a lot.  I haven't yet gone over the top with my set-up, still just using a 4 piece kit with 4 cymbals, but the 2 china thing is super fun.  I also only have 1 crash, which is weird for me.  Maybe I'll round this thing out with something that goes "ping". 

The odd time signatures are things I'm pretty used to, so that's less of a struggle.  I'm not going to sound like Meshuggah anytime soon (although the same can be said for a lot of others who are trying way harder than we are), but I know how to play in 5 and 7.  My double kick and blast beats are a little embarassing right now, but that will motivate me to get better.  Arriver has as much appreciation for Man-O-War as we do for the cerebral stuff and is pretty song-oriented in general, so I doubt we'll ever go over the top into pure inaccessibility.

If you are 30+ drummer getting back into music and have decided to add blast beats and blazing double kick into your repertoire, drop me a line and let me know how you did it.  :)

Saturday, January 27, 2007 3:00:29 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
Thursday, January 25, 2007

After some lofty goals of getting this blog jumpstarted back in the fall, I did just the opposite and let it drop into a black hole.  To all of my faithful readers, I humbly apologize.

As part of an effort to gain some momentum again, I thought I'd try to rattle off a quick post here.  Today's topic is intended as a continuation of my article on series of "things you can do in System.DirectoryServices.Protocols that you can't do in System.DirectoryServices".  We already discussed the ability to do Digest authentication and process server certificates.  Today's topic shows how to use S.DS.P's ability to invoke arbitrary extended operations using the ExtendedRequest/ExtendedResponse message types.

Briefly, extended requests in LDAP allow directory vendors to create whole new types of operations that are not built in to the base LDAP specification.  Essentially, the directory advertises that it supports a specific type of extended operation via the "supportedExtension" attribute in RootDSE (not loaded by default, so make sure you add it to your attribute list!).  If the client knows how to pass in the data to the extension operation and knows how to interpret the results, it can invoke the extended operation.  If not, too bad.

One such common extended LDAP operation is the "Who Am I?" operation as defined by RFC 4532.  Basically, the intent is to allow the LDAP client to issue the extended operation and receive a response that provides information about the identity of the user who is currently authenticated to the current LDAP connection via a previous bind operation (if a bind was performed). 

Interestingly, ADAM now supports the "Who Am I?" operation, as will Active Directory in the Longhorn server time frame.  As such, it makes an excellent target for investigation here as "Who Am I?" currently has no strongly typed wrapper in S.DS.P (yet) and is also exceedingly easy to both call and interpret the returned results.  I just learned about the existence of this thing via a thread on the exceedingly great mailing list "activedir.org".  I figured I should go ahead and give it a whirl to see how it works. 

Without further ado, I humbly submit a few lines of code that demonstrate binding to an ADAM instance on localhost on the default port (389) as the currently logged on user and then invoking the "Who Am I?" extended request to find out my own Windows user name (in case I forgot it :)). 

public class AdamWhoAmI
{
    public static void Main()
    {
        using (LdapConnection con = new LdapConnection("localhost"))
        {
            con.Bind(); //use default credentials. Current user can bind to ADAM...
            
            ExtendedRequest whoami = new ExtendedRequest("1.3.6.1.4.1.4203.1.11.3"); 

            //whoami OID shown above, as per RFC


            ExtendedResponse whoamiResult = (ExtendedResponse) con.SendRequest(whoami);
            Console.WriteLine(System.Text.Encoding.UTF8.GetString(whoamiResult.ResponseValue));

            //the result is a simple byte array that happens to contain UTF8 text
        }
        Console.ReadLine();
    }
}

Wow, pretty fancy stuff!  This actually compiled and ran on my very first try, which usually doesn't work out.  As such, I feel confident in describing this as "exceedingly simple".  On my machine, the result looks something like:

u:machine\joe

The interesting thing here is that this "just works" and it shows a semi-practical thing you can do with this particular extensibility mechanism in LDAP that just happens to not be exposed in System.DirectoryServices at all.  I'm sure there are some practical uses for this, but the main point is just to show how to use this feature with the simplest example possible.

Thursday, January 25, 2007 5:32:39 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 

Theme design by Jelle Druyts