free geoip April 2007 - Jayson's Blog -
A conduit to the voices inside my head.

April 2007 - Jayson's Blog

  • CS Tidbits #26 -- Harness The Power Of Config File Overrides

    Now that Community Server 2007 has been released, it's time to fire up the CS Tidbits category again and see what I can come up with. Coming tidbits will still be geared towards site admins (making your site easier to use, simple tweaks and additions, etc), but I'll also go into some details about Chameleon, CS's long awaited skinning engine overhaul.

    Today's tidbit is one of the most commonly requested scenarios (I've covered it before): "I want to add a new menu tab/add a second blog/etc to my CS installation, how do I do that?" Fundamentally the concept is the same as in previous versions of need to modify your SiteUrls.config file which is where all the magic of URL rewriting is laid out. CS 2007 introduces the notion of override.config files, which in their simplest of forms take on the name of *_override.config where * is the name of the config file you wish to modify (of course you cannot apply any overrides to the web.config file seeing as it's a special file for the runtime), and you then use XPath notation to manipulate (or add) tags to your config files. I am by no means an XPath expert, if you are curious about the syntax and rules there are numerous resources on the web at your disposal, plus an entire army of experts over on who are happy to help out.

    The scenario I ran into was the following: I needed my CS site to remain unchanged at the root ( shows the aggregate page), needed /blog to point towards my main blog, and have /feeds map to my external news section without having the application key in the URL. Note: this post assumes you've already configured both blogs in Control Panel before doing anything else.

    The first thing we need to do (which remains unchanged from previous versions of CS) is add the physical menu tab which links to the second blog. You must specify this value in the actual SiteUrls.config file, it cannot be specified in an override file. All override files are actually processed first by the CS runtime, so if you specify a new menu tab location in an override you have no control over the order it will appear in the menu, meaning it will show up first. In my case I needed it to be 3rd, so just add it after the first 2 <link> elements. Here's the line to add to the <navigation> element in SiteUrls.config:


    <link name="feeds" resourceUrl="feedshome" text="External News"
    roles="Everyone" applicationType = "Weblog" />

    Now we need to do the actual URL manipulation, so create a blank file called SiteUrls_override.config and add the following:


    <?xml version="1.0" encoding="utf-8" ?>

    <Override xpath = "/SiteUrls/locations/location[@name='weblogs']" mode = "change"
    name = "path" value = "/" />
    <Override xpath = "/SiteUrls/locations/location[@name='weblogs']" mode = "new"
    name = "physicalPath" value = "/blogs/" />

    <Override xpath = "/SiteUrls/locations/location[@name='weblogs']/url[@name='webloghome']"
    mode = "update">
    <url name = "webloghome" path="blog" pattern="default.aspx"
    physicalPath="/themes/default/common/" vanity="{2}" page="home.aspx" />
    <url name = "feedshome" path="feeds" pattern="default.aspx"
    physicalPath="/themes/default/common/" vanity="{2}" page="home.aspx" />

    All we're doing is resetting the URL of the weblogs link element to '/' (root), then mapping all requests to be routed to the physical /blogs/ directory in your CS installation (where all the dummy .aspx pages are located to pass the request off to the runtime), however you will still need to create a directory for each of the <url> elements named with the value in the path attribute, and put a blank default.aspx page in them. You'll notice the mode attribute specified a couple of times above...the accepted values should be fairly self's this value that tells the override parser what to actually do with the XPath statements, how to apply them to the existing config files. Lastly we do the actual URL rewriting in the mode=update block of XPath by mapping the url names to the links specified in the <location> element, and then telling CS what to display, in this case generating a url in the root/applicationKey format (since the path was reset to /, we specify the new path as /blog or /feed, etc). In our case we want home.aspx to display rather than postlist.aspx (the default). Following this pattern you can add as many blogs to your site as you are licensed for.

    As should be fairly obvious, the power of config files means simplicity, reusability, and portability of your config file customizations without having to actually edit the config files themselves. A bit of trial and error might be necessary for the uninitiated, but the benefits of having a system like this in place should be obvious.

  • Interviewing With Microsoft, And Landing The Job: Part 1 -- Preparation Is Key

    As promised, I've decided to type up a short series on my interviewing process with Microsoft. I've talked before about it, however that was from a perspective of just screening and not actually landing the position. I am by no means an expert on interviews, or getting the dream job and as such this will just be my own experience with how it goes, and what ultimately worked to my advantage to help me succeed in the end. Most of this could probably be applied to interviewing with any company, but I'll put a Microsoft slant on it seeing as (maybe?) quite a few readers of this blog would jump at a chance to spend some time inside the walls of Microsoft. It's worth mentioning that I am *not* a traditional MS 'developer'...I will be working within Enterprise Support which is a completely different entity, and thus has different processes.

    This post is part 1 of this series.

    First and foremost, spend some time over on the MS careers site. On it you'll find a wealth of information about the different groups within Microsoft and what career tracks are offered in them. There is also a search page with a list of almost every job offered at Microsoft, so spend some time going through them and reading over the various requirements; you may find positions you didn't realize were even there. Of course Microsoft is first and foremost a software company, so the bulk of the jobs are related to the business of writing and selling commercial shrink-wrapped software (Windows, Office, server tools, etc). The vast majority of those traditional 'developer' jobs are located in Seattle, so you must be willing to relocate (though MS does have product groups scattered around the world, so do some research...there may be one closer than you realize).

    Interestingly enough this was a track that wasn't of much interest to me...probably because I come from an IT (Information Technology) background, which anyone in the business will tell you is a completely different beast than that of the ISV (Independent Software Vendor) realm. There are other ways to be a developer for Microsoft, but not work within a product group: Microsoft's own internal IT/Tools department (Microsoft like any other business has an IT department), or Microsoft Consulting which as a general rule is not location specific other than "must live near a major airport" as these guys travel a lot (most of my friends who work for Microsoft are employed in this capacity, and love their jobs as they get to interface with customers on a very regular basis), or as an Application Developer Consultant which are similar to architects. I'm sure there are other code centric roles within Microsoft, but these are the ones I'm familiar with offhand. The point is not to limit yourself to being a developer on a specific product, though I'm sure that's a track that will interest many.

    Once you've done your research, it's time to polish up your resume and start applying. Over the years I've kept a custom resume for each of the major groups I've applied to. Find out the technical specifics of the job and hone in on those areas in your resume. I cannot stress that enough. I can't even begin to imagine how many resumes MS Recruiting sees on a daily basis, so anything you can do to make yours stand out gives you that much of an edge over other candidates. The competition starts from the second you hit the submit button over on the MS Careers site. It's also worth mentioning that the flood approach (while easy to do) will not get you any further than hand picking a few choice positions and pursuing those more actively. I've made it a habit to check the Career page on at least a monthly jobs are popping up all the time. Perhaps most importantly: Read the requirements. If they say you need 10 years in the financial industry, that economics 101 class you took back in college won't suffice. In a nutshell, if the position seems like a longshot, it probably is.

    So you've sent out 10 resumes, now what? It's been my experience that MS Recruiting is pretty quick to contact candidates that they are interested in. I can't give a hard number, but 2-3 weeks seems to be the average for me in the past 5 years. All in all I was contacted for about a dozen positions, with about half of those resulting in some actual face to face time with the group who was interested. The recruiter who contacts you can be located almost anywhere; Microsoft has relationships with many firms throughout the world when it comes to recruiting talent. The initial call will usually be normal HR stuff, so there is no need to put on your technical hat quite yet (that'll come later)...the usual "tell me about yourself, here's a description of the position, etc." By this point the group has shown interest so unless you royally mess up, you'll get some airtime with folks in the group. It's worth mentioning that from this point forward, every conversation, every email, every type of contact period is to be considered part of the interview process. Get rid of that email stationary, colorful fonts, etc. Treat all of them as if they were clients you are already billing work to, or trying to court as a potential client.

    The recruiter will want to block off a couple of hours for you to speak with members of the team (about half will be technical, and the other managerial (or the so called "MS" part of the interview). They will usually let you pick a range of dates and times, so make sure you pick blocks where you'll be at your best. I'm not a morning person, so I always tried to do mine in mid-afternoon when I felt sharpest. I wouldn't push dates farther then 10 business days away, and heck, if you're feeling up to it then by all means schedule it the next day! I would recommend a week out, get all of the names of folks you will be screening with and write them down, and then it's time to hit the books.

    In this day and age of blogs (and especially MS employees keeping blogs) I always search for the names of the people who will be screening me. A lot of times you'll get some hits, and they might even have their own website. You should of course read their entire site/blog to get insight into the group, plus you can mention that you read their site in preparation for the screen. If you know the specific group name, you can search for it to see what you come up with. Stuff you can find on the web is as close to actually sitting beside that person as you'll get before they extend an offer. In my case, I read about a dozen blogs start to end from folks who worked in either my group, or groups similar to mine. The information I gathered from those sites was by far the most useful as they outlined situations this group dealt with on a daily basis (as well as the resolutions for many of them).

    Picking the actual books you'll need to study is a different beast altogether. This is not a steadfast rule, but it's been my experience that the majority of the stuff I think I need to read doesn't come up in the actual screen...the stuff I've found during my web researching has been more relevant. That being said, I pick 2 books (one of them from MS Press) and read them cover to cover. Treat them like college textbooks, and your final exam is the day of the screen. Use a highlighter, work through all of the exercises, etc. If you haven't finished them by the day of the screen don't worry, but do make sure to go back over whatever you felt was important the night before the screen. Don't kill yourself memorizing acronyms, layout of different configuration screens (in other words, the extreme details); concept are most important (for example, in my screens I missed the actual names of several tools, but I knew they existed and was able to describe how to use them which was good enough). Perhaps most important is to not overdo it. You aren't going to get any more out of an 8 hour cram session than a couple of 2 hour sessions spread over a couple of days. It may feel like you're cramming a bunch in, but that's just what it is: Cramming (not retaining). My rule was about 4 hours a day, and I made myself stick to it. I also spent another hour or so just working through real world examples either from my past work, or books, or contrived. Actually going through the paces is the best process in my honest opinion.

    My final word of advice for preparation is not to do any last minute cramming the day of the screen. If you do, you'll end up focusing too much on the areas you're "brushing up" on when more than likely those areas aren't the answer to the questions at hand. If you're working at an office, I highly recommend trying to take the day off. If you can't get an entire day off, take at least half the day. If you can't do that, then schedule the screens for a day on which you can. Trust me, you're not going to want office hubbub on your mind if you want a decent shot at delivering "wow." If you've done your research on the group, applied to positions you're adequately qualified for, and gone through your reading material you should be more than prepared for the actual technical content of the interview. What you will not be prepared for is the process itself which I will go over in part 2 of this series, as well as going more in depth to my actual experience this go round.

  • Assimilated Into The Collective

    I've been talking about screens with Microsoft on this blog for the past couple of years; most recently I have been interviewing for a .Net Premier Field Engineer position, and I'm pleased to announce that 2 weeks and 8 hours of interviews later they have extended an offer, and I have of course accepted. So, I now work for Microsoft which has been a dream of mine forever!

    What exactly is a Premier Field Engineer (PFE)? The MS careers site does a good job of summing it up:

    The purpose of the Premier Field Engineer (PFE) position is to provide Microsoft customers with reliable technical solutions to the complex integration problems associated with business solutions built on the Microsoft platform. The PFE Team supports a diverse variety of technical solutions built with Microsoft technology and products Typical tasks performed in this role include specific problem isolation and correction, user and kernel mode debugging, conducting application design and supportability reviews, performance tuning, application stability consulting/troubleshooting, code reviews, and porting/migration assistance, configuration management, pre-rollout testing and general development consulting. The prospective PFE candidate should draw upon all resources at Microsoft, to advise and consult on the use of Microsoft technologies to avoid such problems in the future.

    And of course my team's specialty will be anything and everything related to .Net technologies targeting mainly fortune 500 companies (the Premier group within MS services large enterprises)...or anyone who can afford a premier contract :-). Getting to this point was not the easiest thing in the world, and in a couple of future posts I'll go over preparation, the process itself, etc for anyone who might be interested in what it's like (which if you Google 'Microsoft Interview' is quite a few folks).

    I will also be in Seattle for 3 weeks doing initial orientation/training and whatnot...if there is any spare time between classes or whatnot I'd love to catch up with some of you guys (lurkers speak out!!!).

    I'm beyond excited...this seems like an incredible fit. Five+ years in the making, and it finally happened. Sweet!

  • -- Feedburner Pro Enabled

    I posted a while back about the Feedburner MyBrand service...I've been taking it for a spin on some other low traffic feeds and am nothing less than blown away, so is now Feedburner enabled and ready to rock. Community Server 2007 has built in support for Feedburner out of the box; it's as simple as plugging values into a couple of textboxes, flipping a switch or two, and blammo...syndication feeds are burnerized. What that all means is that the transition should be seamless for existing subscribers, but here are my new feeds nonetheless:

    1. Main blog feed:
    2. Feeds I read feed:

    From a hosting point of view, read Jeff Atwood's post on why you should offload your feed. v4.0 release is now complete. Thanks Feedburner!

  • Some New Photos -- Weekend Get Together

    Tonya's best friend Shannon recently got married to a fantastic fella by the name of Steve (congrats guys!) and threw a get together shortly thereafter. Here are a couple of photos of Tonya and me hanging out and enjoying the festivities (and authentic low-country cooking).

  • Twitter Me This, Twitter Me That

    I don't know why I finally did it, but I've succumbed to twitter-mania. Here's my page. Please don't tell my mother.

  • NewEgg Launches Community Site Running Community Server aka the best damn place on the internet to buy hardware has launched a new community site running on Community Server: Why they didn't name it is beyond me, but regardless they will likely get quite a bit of traffic on that site so I look forward to seeing if they have some feedback over on about how well CS scales (which of course it should do nicely). I <3 NewEgg!

  • The Most Comfortable Mouse In The World

    I recently started using a Microsoft Natural Wireless mouse. Knock Microsoft all you want for their software; their hardware is usually top notch. Highly recommended if you have needy hands.

  • Community Server 2007 Has Been Released

    Just a few hours ago, Community Server 2007 was released into the wild! From the announcement:

    Today we’re proud to announce the immediate availability of Community Server 2007 – the best version of Community Server yet!
    There are a number of new improvements, but by far the largest is the new theme system “Chameleon”. Chameleon allows people to change the look-and-feel of Community Server without requiring a degree in Computer Science! There are simple to use what-you-see-is-what-you-get tools to assist you in changing colors, graphics, fonts, and more. Also sharing themes has never been easier – Community Server uses a single-file for exporting or importing all of its theme settings, which means you can quickly share your themes with your friends.

    How do I get Community Server?

    You can download and buy Community Server from
    There are 3 install options available:

    • Community Server 2007, Windows Install – Uses a Windows installer package, but requires access to the desktop.
    • Community Server 2007, Web Install – Perfect for hosted applications and comes with a web install wizard.
    • Community Server 2007, One-Click – Perfect for developers or people that want to try Community Server

    Where do I ask questions or read documentation?
    For questions, please visit for documentation or FAQs please be sure and visit (our new Wiki and Knowledge Base are now available). Note, we’re still in the process of importing content from our previous documentation system so a few things aren’t working quite right yet in the Wiki.
    Need to talk to someone? No Problem!
    Please contact us at or call us at +1 972 407 0688. Note, we would prefer you start with the contact form.
    We really hope you enjoy Community Server 2007!

    To say this release is amazing would be an understatement so I'll let the bits do the talking for themselves. New to this release is the 'One-Click' option which is a completely self-contained version of CS, no configuration necessary. All you need is the freely available SQL Server Express and the ability to double click a mouse. Seriously, that's it. So anyone who's ever had any trepidation about getting a CS installation up and running, or perhaps just isn't interested in things like configuring IIS and running SQL scripts then this is the best place to start.

    I'd personally like to extend my gratitude to the folks over at Telligent for building such a fantastic product, and to all the other MVPs as well. The CS family is a strong one!

  • Upgraded To Community Server 2007 has been upgraded to Community Server 2007...if you're used to seeing this content in an aggregator, have a look around the new site. I still have a few kinks to iron out, but overall I'm very happy with the new themes included in CS. Is is the usual for me, I'll be going with stock CS themes that will evolve over time as I get around to making customizations.

    New to V 4.0 of

    • Clean clean clean. Did I mention it's much cleaner? Simplicity is elegance, so that's the name of the (new) game.
    • Anonymous email subscriptions. There's an email box in my my subscriptions sidebar block...plug in your email address to receive notifications when new content is posted to this blog (great for folks who might not want to mess around with an RSS aggregator).
    • Comments RSS. Subscribe to just the comments of this blog. I don't really get a lot of comments so it won't do much good.
    • A ton of stuff behind the scenes to make this site easier to use, faster, etc.

    This upgrade was by far the easiest time spent cleaning stuff up was around 2 hours or so. The new theming engine in CS2007 makes changing UI related widgets drop dead simple, and I can't wait to dig into it more in depth.

    Sidenote: Microsoft news coming soon!

1 2 Next >

Copyright © ::
External Content © :: Respective Authors

Terms of Service/Privacy Policy