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

October 2006 - Jayson's Blog

  • Some Handy Links -- .Net Debugging And IIS Resources

    Like most developers who are passionate about what they do for a living, I tend to throw myself into my career 120%...which usually means a lot of reading.  I also tend to read a lot to prepare for interviews, in this case the interviews I'm going through with Microsoft.  The position requires extensive knowledge in both .Net and IIS (overall broad knowledge in both with a focus on debugging and troubleshooting as it's a support based role, though the panel I screened with on Friday mentioned that this team is about 50% reactive and 50% proactive so the skillset they need is pretty varied), as well as some high level knowledge of both Commerce Server and Content Management Server as ultimately that will be 2 of the MS servers that this team will support.  Debugging .Net applications is almost an art form in itself, and arguably almost as difficult as writing applications.  My recruiters over at MS have been kind enough to tell me what I needed to brush up on (not specific links, more along the lines of specific technologies and whatnot).  I've compiled a list of links (and books) that helped me out and thought I would pass them on for anyone who is interested.

    The first group are related to Asp.Net debugging as well as general .Net garbage collection:

    I only have one link relating to IIS (for now), but it's probably the most important piece of literature you can read to learn the guts of IIS:

    • Straight from the IIS team, the IIS 6.0 Resource Kit (unfortunately all the files are .doc format, fortunately it's a free download...the hardcopy version is 60 bucks at bookstores).  The accompanying tools are located here.  If you are experienced with IIS you can skip the 1st section and go straight to the 2nd, and you should be able to skim through the first couple of chapters.  Believe it or not, the help docs that ship with IIS are a great source of information as well, though it's a little hit or miss.

    And finally, 2 books for Commerce Server and Content Management Server:

    As with IIS, the online help docs for both of these servers are chock full of information, especially if you are new to either one (such as I am).

    Busy busy busy, though I have to say that reading about CS and CMS a bit more in depth has been very interesting.  Now, back to the books I go.

  • CS Tidbits #23: Tweak Your Mirrored Content Job

    Today's tidbit is another easy one to implement that would otherwise go unnoticed unless you were experiencing the same issues that some of the CS MVPs were having on our dedicated box.  Short version: If you have more than a trivial number of feeds defined for a mirrored content section (in my case, I have over 50), the RollerBlogUpdater job can bog down your system when it kicks off, i.e. peg the processor at 100% and bump memory up a couple dozen megs when it runs.  Does this happen in all instances?  I don't have any hard data to back that up, but the 2 cases I've seen where more than 20 feeds were defined it was indeed occurring. 

    Long version: Easy explanation...latency.  Well, latency combined with the fact that the job which fetches mirrored content executes on the main thread of CS, which means it blocks execution until the job completes.  If you have 50 feeds to pull, and latency averages 1 second, that's 50 seconds for the job to run with the caveat of blocking execution for anything else running on the main thread as well as pegging the processor the entire time.  On a dedicated box this might not matter, but in a shared hosting scenario this could lead to overall degradation of the machine depending on A) how many sites the box is hosting and B) how many of those are CS sites with a non-trivial amount of mirrored content feeds.  It is worth mentioning that the memory is reclaimed fairly quickly whenever garbage collection kicks in, and of course the processor settles down once the job completes, but the fix is trivial: put the RollerBlogUpdater job on its own thread by editing your CommunityServer.config, adding the singleThread = "false" attribute to that job node:

    <job singleThread = "false" name = "RollerBlogsUpdater" type = "CommunityServer.RollerBlogs.Components.RollerBlogUpdater, CommunityServer.RollerBlogs" enabled = "true" enableShutDown = "false" />

    Now when that job kicks off, it'll spawn on it's own thread (thus not blocking main execution) and processor utilization will be normal while the job runs.

  • Static Doesn't Mean Thread Safe

    K. Scott Allen recently posted an interesting blurb on the thread safety-ness of static (Shared) members in .Net:

    One misunderstanding I often see is "if I make this member static it will be thread safe". I think this misconception arises because of the boilerplate MSDN documentation that will often say: "Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe."

    When a .NET framework class appears with the above documentation, it means a developer took the necessary precautions to make the static member thread safe. Perhaps they added a lock, or used some other synchronization mechanism to ensure thread safety. See: Statics and Thread Safety Part I and Part II.

    I've had this question come up in numerous interviews, and until recently I didn't realize that I was answering it incorrectly.  On a related note, an interesting discussion concerning static constructors (which are thread safe by design without any extra locking needed on the part of the developer) can be found here.

    I do not like the wording that MS uses in the MSDN documentation as it can easily lead a developer to believe that all static members are thread safe due to the design of the CLR, which is not the Scott states it just so happens that the language devs took the extra steps to make most static members thread safe within the .Net framework.  Thanks for the great refresher Scott!

  • Visual Studio 2005 // TODO

    Note to self:  Continue to use Class View over Solution Explorer on all projects in the very near future...this has been on my todo list for a while now and I keep forgetting about it.  Class View beats the snot out of Solution Explorer hands down.

  • Tristan Hagerman -- Life Compilation Video

    It's been just over a month since my friend Tristan passed away after his long battle with ALS.  One of the more touching parts of the memorial service was a short videography of photos documenting Tristan's life.  Tristan's family has uploaded a copy to Google Videos (12:20 in length) for anyone who's interested in viewing it...if you didn't know Tristan it won't really have the same impact, but it's a great compilation nonetheless.  In short, he lead a life many can only hope to experience even if they live to be well over a hundred.  In long, I miss the absolute hell out of my friend. 

    Honestly I haven't even really had that much time to really think about his passing that much until just a couple of days ago...maybe it's just a defense mechanism, or maybe my mind just needed time to decompress and absorb it all.  I don't know.  I think I'm actually more pissed off than anything else about it all, but I think that's to be expected when anyone dies well before their time, especially in such a horrific way as he did.  I really hope he's in a better place, away from all the pain and suffering.

  • Internet Explorer Installation Routine Is Ridiculous

    Today like the rest of the free internet using world, I installed Internet Explorer 7.  Yes it looks good, is more standards compliant, is (supposedly) more secure, blah blah blah.  I have installed IE7 in various incarnations 4 times (on this machine) over the past few months...the installation routine is just simply ridiculous; total elapsed time from the point I started today's installation routine, just over ten minutes.  To install an f'ing web browser.  That's one (1) uninstallation routine that runs to get rid of previous versions, two (2) reboots needed to complete installation...that is 1 uninstallation and 2 reboots too many in my opinion, not to mention that after the first reboot completes your machine is unusable as the installation and configuration routines both run before Explorer is launched.  Hum a tune, twiddle your thumbs, fold laundry, whatever...sit and wait 10 minutes for ~14 megs of software to install on your machine.

    Both Firefox and Opera install in under a minute, and are ready to go as soon as you are, all the while leaving Explorer free for you to do other things should the routines take longer than expected for some reason.  Yes, of course I do realize why IE necessitates the above mentioned headaches (*cough* deeply embedded in Windows *cough*) but this is 2006 for crying out loud.  Microsoft, please trim down the exciting-as-watching-paint-dry installation routine of IE. 

  • Community Server SDK -- Namespace By Namespace

    Kyle Beyer has posted a power packed entry outlining the namespace hierarchy in the Community Server SDK.  He is correct that at first glance from developers new to the CS Framework, finding specific sections of code can be quite overwhelming due to the sheer size (and number) of namespaces, however after getting familiarized with how everything is laid out it soon becomes quite intuitive to find what you need.  Great post Kyle!

  • What's New With The Microsoft Interviews

    I've had lots of folks pinging me online asking about the MS I stated before I had a computer free weekend and thus have not responded, plus I don't want to tell the same story a gazillion times so I'll post it here.  Of course I cannot get into any details about the interview itself, but overall MS accomplished what they are supposed to during the interview process: They tripped me up quite a bit and made me leave not having even the closest semblance to the slightest clue if the interview went well or not.  Of course I'd like to say it went well, however I missed a couple of easy questions (it's easy to blank out on stuff when you're staring down a panel of people 10x smarter than you are) and the HR portion was rough and tumble.

    Oh, and I was 30 minutes late to the first interview which I'm sure went over real well. 

    How the hell did that happen?  Easy, Dallas is huge and I got lost.  I was even smart enough to stake out (what I thought was) the MS branch the night before, however it was the wrong office park located about 20 minutes away from the real location...imagine my surprise the next morning.  Quite embarrassing to say the least.  I did of course call about 5 minutes before my scheduled screen to let them know I was on the wrong side of Dallas, but it still looks bad.

    Regardless, I should have some feedback this week, and you guys will be the 2nd group in the know.  Fingers are crossed.

  • Bon Voyage Weblogs.Asp.Net Feed

    During my last round of Rss feed pruning, I finally deleted (it's been a long time coming).  Too many of the following:

    • Duplicate posts about the same news item.
    • Posts linking to other posts on essentially saying "yeah me too" or "so-and-so posted about the following."
    • Posts that are locale specific (i.e. speaker in blah part of the country type stuff).
    • AJAX related fluff posts.

    I'd say out of 20 posts, maybe 1 of them actually piques any interest from me anymore.  Nothing against the bloggers who are aggregated over there, but it's run its course...for me at least.  I'm individually subscribed to a handful of bloggers from there that I'll continue to read.  I'm also down to under 100 feeds I read on a regular basis.

  • So That's Why My Orcas CTP Wasn't Mounting

    I recently downloaded the September CTP VPC image of Orcas (aka Visual Studio vNext) only to find that the image I downloaded refused to mount in Virtual PC.  Thankfully I just stumbled across Jon Galloway's post about just this issue here.  In a nutshell, there are two VPC images I needed to download; I only snagged the base image (which contains the operating system) and missed the image containing the actual Orcas bits.  Note to self, always read the (full) instructions.  I'm a happy camper now and will be posting initial thoughts relatively soon.

1 2 3 Next >

Copyright © ::
External Content © :: Respective Authors

Terms of Service/Privacy Policy