free geoip November 2005 - Jayson's Blog - jaysonKnight.com
jaysonKnight.com
A conduit to the voices inside my head.

November 2005 - Jayson's Blog

  • To .Pdb Or Not To .Pdb

    It’s a fair question.  There are lots of folks who will say “deploying with .pdb’s kill performance”…to some extent this is true, but not as true as some folks would like to think, especially with machines running as fast as they do lately.  That being said, there are really 2 different development scenarios that deploying with .pdb’s applies to:

    • A corporate IT setting.
    • An independent software vendor (ISV) setting.

    In an IT setting, the environment is usually (hopefully) much more controlled than in a scenario where an ISV develops a product and ships it to a remote location that they have no control over.  I come from more of the IT realm, but I’ll attempt to cover both camps.

    As it relates to corporate IT, deploying .pdb’s with your project actually isn’t as bad as it appears at first glance.  From my experience, it actually makes a lot of sense…when stuff comes crashing down it’s just that much easier/quicker to fire up a debugger, attach to the remote machine, and get stuff working again.  Something else I’ve come across (in what I thought was a well known secret, but apparently still is not) is that a lot of folks don’t realize that an application doesn’t have to be deployed in a debug build to be debugged.  You can instruct the compiler to generate .pdb’s for any type of build (debug/release/etc); so long as the .pdb files are present, a debugger can be attached (so long as debugging is enabled in the application).  The flip side to that is applications deployed as a debug build don’t need the .pdb’s to run (though that’s an unlikely scenario) so long as debugging is turned off.  And that’s the key…it boils down to whether the application is set up to be debugged.  If it’s not, the .pdb’s won’t be loaded and will sit there harmlessly.  Of course enabling debugging in an application means an application restart which is generally unacceptable in a corporate setting so it may be a good idea to leave debugging enabled depending on your situation, and of course if debugging is enabled the .pdb’s are expected to be there.  That all being said, you should always deploy an application with optimizations turned on as they will almost always run faster than sans ops.

    A good rule of thumb is to generate .pdb files for all of your builds, regardless of if you are actually going to deploy said .pdb’s with the application; one reason being that the .pdb’s generated during the default debug build process in Visual Studio more than likely won’t be compatible with with a default release build…the reason is simple enough, default debug builds have optimizations off, while the default release configuration has optimizations turned on.  I’ve come across some strangeness in the past attempting to use .pdb’s generated for debug in a release build.  They might work, they might not…eventually they’ll hit some code that wasn’t optimized in the debug build that is optimized in the release build…it’s an interesting sight to say the least and has left me scratching my head on more than one occasion in the past, only to realize the .pdb’s didn’t match the build configuration they were expecting.  The main point is that since IT is in a controlled setting, deploying .pdb’s doesn’t have the potential ramifications as it would for ISV’s as the development environment is only accessible by the developers themselves.

    As it relates to ISV’s, it is most certainly not a good idea to ship your .pdb’s with your application; mainly because you don’t want your customers making their own fixes (if they’re technically savvy enough) as that would fragment the application…bug fixes need to remain centralized for quality control, and you don’t want them to even have the option to fix bugs.  More importantly however…once you have the .pdb’s to an application, you basically have the secret sauce as your entire application can be stepped through and completely reverse engineered if someone chose to do so (perhaps one of your competitors).  Of course I realize that anyone can fire up reflector (or ILDASM) and decompile an assembly, but .pdb’s make this much easier to do as everything is pretty much out in the open.

    Regardless of what setting you find yourself in, .pdb’s need to be treated as first class citizens just like there assembly brethren.  They should be versioned and stored in a source repository in a subdirectory in the application tree, and stored securely somewhere else as well.  When it comes time to head off to a client site to fix some strangeness that only they are seeing (which happens more often than not), simply grab the .pdb’s from source control that match the version of their application, put ‘em on a disc, drop ‘em in the application, and debug away.

    So, to summarize:

    • Generate .pdb’s for all build configurations, regardless of if you’re going to deploy them or not.
    • Version them, and give them their own subdirectory (or even their own project depending on the size of the application) in source control, and make sure to use the same versioning scheme as your assemblies to make sure they match should a problem crop up down the line.
    • Deploying .pdb’s in a controlled IT setting isn’t necessarily a bad thing, especially if it’s a new project/major release.  The ease of being able to fix issues on the fly (production debugging) will more than likely offset any perceived performance issues of having the .pdb’s loaded into memory.  The trick is knowing when to have debugging enabled in the application so as to negate an application restart to load the .pdb’s, again hardware is fast enough these days that leaving it on (after initial deployment) won’t bring an application to it’s knees as many think.  Once you’re sure it’s stable you can always switch it off.
    • Deploying .pdb’s if you’re an ISV is generally not a good idea, unless your customer has a dedicated IT department who will be maintaining the application after you ship it…if that’s the case there needs to be a centralized repository that both you and the customer have access to so as to avoid fragmentation of your product.  If not, keep the .pdb’s separate (and secure).

    Sorry for the long winded post, but I’ve seen .pdb abuse more often than not, and it’s one of those things that you don’t really see mentioned all that often.  So I thought I would mention it.

  • Community Server -- Version 2.0 Beta 1 Released

    Community Server v2.0 beta 1 was released to the general public earlier today.  You can download the beta from the CS.org website here.  The biggest news (besides all the new features/fixes/etc) is that the admin tool that shipped with v1.x is being dropped in favor of the new Control Panel interface they’ve written.  For those of you who haven’t seen Control Panel in action, I highly recommend checking it out…it’s leaps and bounds better than the old settings interface (and has an easier API to program against IMO)…much more intuitive, and much less clicky.

    I will be updating my Live Demo (login is bob/iambob) to reflect the changes in the beta, so if you’d like to try it out first feel free.  This will probably be the last update I do to the test site, and I will upgrade JaysonKnight.com somewhere around the beta 2 timeframe (which should be in a couple of weeks) as there are still quite a few outstanding bugs to be resolved before it’s in what I would consider production ready status, though it’s pretty close in this release.  Enjoy.

  • Developer Community Unhappy with Visual Studio 2005

    Another sleepless night, so I’ve been catching up on the hundreds of unread RSS items in my feed reader.

    I am prefacing this post with “I haven’t done any heavy lifting with Visual Studio 2005 at this point”, so the opinions expressed herein aren’t mine.  But if the unhappiness expressed by the MS developer community at this point holds any water, it’s definitely a sad day as (in the past at least) MS’s developer tools have usually been considered leaps and bounds beyond most others.

    Mini-Microsoft has some pretty good posts about the community dissatisfaction going on about the Visual Studio 2005 RTM.  He (assuming it’s a he…who knows who it really is) quotes some pretty hard hitting .Net community members in his posts; I’ll do my best to summarize what’s going on over at his blog:

    By summarize I meant I’ll link to the gripers.  The real gems are in the comments of the above posts, and are very much worth reading.  I haven’t seen complaints against VS like these since the early days of the VS2002/.Net 1.0 betas…much less a 2.0 shipped/RTM product.  I was hard pressed to find any issues with VS2003…IMO it was one of the most polished products that MS has ever released…so why the (apparent) step backwards with VS2005?  That all being said, I haven’t seen too many complaints about .Net 2.0 itself, just the VS IDE.  Definitely makes me a bit wary though.  What have you guys seen thus far?

    I’m also temporarily retracting my previous statements about the new SQL2005 management tools…after some further exploration I’ve noticed that the new GUI takes quite a few clicks to get anything done.  Manually typing commands in T-SQL might be quicker at this point.  Slick looking GUI, but usability leaves a bit to be desired.  This comment from Channel9 sums up what I’ve seen thus far quite nicely:

    “Management Studio is just so bad that it makes Enterprise Manager look good. To one of my staff that saw me struggling with Management Studio "Well, looks like I won't be downgrading to SQL Server 2005 any time soon!"  You can't use Query builder without about 10 steps, it doesn't allow execution (even though the right click menu item is there) directly, so you have to click ok, execute it on the stupid text screen and then edit it again in the design mode by selecting all fo the text, right clicking on it and opening the designer again, the thing comes up in the most anoying fashion in the first place and doesn't have a list of your registered servers displayed by default.

    I.e. the Query Analyser team wrote this thing and the Enterprise Manager team got left out in the cold. End result, is that we have the same mantality that produced the steaming pile that is Query Analyser in the Management Studio tool and thus it's almost completely unusuable because of the increased clicks (on average I have to click about 7x more than I did with Enterprise Manager to get anything done).”

    From what I’ve seen so far, my thoughts exactly.  *Sigh*, this was supposed to be an incredible time to be an MS developer.  I’ll stick with what works for now.

  • JaysonKnight.com -- Now with More Giddy Up

    I’m pleased to announce that the database server driving this site has been upgraded to SQL Server 2005 over the weekend.  The upgrade itself was relatively painless (the same cannot be said about preparing for it…I’m just meticulous like that; I spent a lot of time testing and benchmarking).  I debated for quite a while between doing an in-place upgrade vs installing a named instance and migrating all of my databases over to the instance.  I settled with doing an in-place and just upgraded the entire installation.

    The management tools for SQL2k5 are a huge improvement over the tools that shipped with SQL2k…finally everything is integrated into one interface.  I’ll throw some posts up in the near future about this.

  • Diagnosis...Finally. The Good News Ends There.

    The brain biopsy results came back today.  It turns out my Mom has protein deposits in her brain, also known as neuroamyloid.  Don’t worry about Googling it because there isn’t any information about it out in the wild (though there is plenty of information about amyloid itself as it can happen in virtually any organ)…actually she is the only the 3rd documented case in history to her doctor’s knowledge.  We knew it would be something strange, but perhaps not quite this strange.  They have absolutely no idea how/why it happened, and more importantly why it happened this late in her life (the other 2 cases were much younger).  One definitive answer, so many more questions.

    The other part of the diagnosis is much more grim.  It’s lethal.  Again, they have no idea how lethal…she’s old enough that she very well could outlive the disease, but the docs have absolutely no idea as to a timeframe, and nor will they in the future.  It’s also progressive, and there is no known treatment.  There aren’t any specifics as of yet about the other 2 cases, but I’m assuming there will be as the docs do some more research.  And to top it all off, there’s a very good chance that it’s hereditary (which seems a little odd as there are so few cases of it).

    So that’s it…we have a diagnosis, and that’s about it.

    Sidenote:  If you were diagnosed with a terminal illness, would you really want to know the timeframe?  Both sides can be argued.  I honestly can’t say what I’d do.  Anyways, happy thoughts folks :-).

  • Google Adsense -- Now with Referrals

    Apparently Google Adsense now has a referrals program…sweet.  I’m the first to admit that I make next to nothing from my adverts, but it’s still fun to see what ads pop up on my site.  Anywho, if you don’t have adsense on your site yet, feel free to use me as a referral and go sign up!  I also have a link to the referral program below my ads on the right hand sidebar of my site.

    I wonder what took Google so long to get rolling on referrals?

    Sidenote:  I am absolutely kicking myself for not having bought some Google stock.  400 bucks a share…are you friggin’ kidding me?

  • Surreal Streams -- It's a James Zabiela Weekend

    Starting now on Surreal Streams I’ll be playing 4 of James Zabiela’s best CD’s back to back for the next few days:

    The link (as always) is http://jaysonknight.com:8000/listen.pls (also available in the upper right hand corner of my website).  Tracklist is available @ http://music.jaysonknight.com/ (browseamp/browseamp).  Report any issues to me.  Enjoy.

    Filed under:
  • Internet Explorer Usage on JaysonKnight.com Down to 60%

    Seeing this article earlier reminded me to check my site’s browser statistics.  Here are the top 20 browsers used to hit this site (for the last 10,000 page hits):

    1. 58.92% MSIE 6.0
    2. 9.66% Firefox 1.0.6
    3. 8.88% Mozilla 4.0
    4. 5.29% Firefox 1.0.4
    5. 4.88% Firefox 1.0.7
    6. 2.41% Mozilla 5.0
    7. 1.85% Mozilla 3.01
    8. 1.30% MSIE 7.0
    9. 0.86% Firefox 1.4.1
    10. 0.77% Firefox 1.0
    11. 0.61% Safari 1.2
    12. 0.55% Firefox 1.0.5
    13. 0.31% Firefox 1.0+
    14. 0.28% Firefox 1.4
    15. 0.27% Firefox 1.0.3
    16. 0.19% Opera 8.50
    17. 0.19% Firefox 1.0.1
    18. 0.18% MSIE 5.5
    19. 0.18% Firefox 1.0.2
    20. 0.17% Firefox 1.5

    It’s interesting to see IE hovering just above 60%, while Firefox is getting pretty close to 20%.  Of course, this site is tech oriented so the results are much more skewed than say…this site.  That all being said, IE7 is indeed looking pretty promising.

    I haven’t upgraded to FF 1.5 yet; RC2 is slated to be released next week so I’ll probably wait for that release…I’ve heard good things about it though.

    Sidenote:  I also wanted to publicly thank everyone for their kind words on my previous post; it most definitely made my day.  I’ll post updates as they come in.  Thanks again guys.

  • Insomnia

    It’s one of those nights (err…mornings at this point).  The brain just simply won’t stop spinning.  Some background.

    Two years ago my Mom started exhibiting some pretty strange symptoms (by symptoms I mean bouts of temporary paralysis in her left leg).  Two years (and 6 MRI’s/CAT scans, 3 trips to the Mayo Clinic, 2 spinal taps, and 1 one brain biopsy) later, and the docs are still 100% baffled…and by no means has her condition improved.  About that brain biopsy I just mentioned…the procedure was performed a mere 2 days ago (at Mayo).  While they say they got a good peice of tissue (pathogenic in their words…meaning a not healthy peice of tissue) so they won’t have to perform it again, she has lost all feeling in the left side of her body.  Of course this was mentioned as a possible side effect by the docs, but that definitely doesn’t help matter.  They did say there’s a very good chance it’s only temporary.  The bad news is that instead of coming home tomorrow as planned, she’s been ordered to stay at Mayo for another 3 weeks so they can monitor her condition.  Did I mention they still have no idea what they’re even looking for?

    I don’t plan on cluttering this blog with family health issues, but I just can’t seem to get myself off to dreamland.  I hope they figure it out soon though, things are spiraling out of control pretty rapidly with her condition…the last 3 months have been especially bad.

    There’s a very good chance I’ll have to fly out there on a moment’s notice, so if this site goes dark for a bit in the near future, that’s why.

    Now back to your regularly scheduled program.

  • All Hell Has Broken Loose on eBay

    I posted earlier about how quickly my laptop “sold” on eBay.  The old mantra of “if it looks too good to be true” was most definitely correct in this case.  The mere fact that it sold within 2 hours was reason enough to get skeptical, but then the email came from the “buyer”

    Hello,
           I've made out my payment to you for this item purchase (6817122948),So check your mail if u've heared from PAYPAL,& Get back to me immediately if you receive a confirmation mail from PAYPAL,You can ship it out & Don`t forget to send the shipment tracking # to Paypal at(
    paypal_verified_request@accountant.com) for verification & Your account will be credited immediately.Hope to hear from you soon. Sincerely. Thanks  Mr Timi Anderson

    Oh I see…I’ll get the funds after I provide a tracking number.  Gotcha…I’ll be right on that sir.

    The “confirmation” email I received from “PayPal” was equally as ridiculous, the most notable thing being that it didn’t originate from an @paypal.com address (it came from paypal_secure@consultant.com) and the grammar/spelling was laughable at best.  I also noticed that he had immediately deleted his eBay account, which interestingly enough he had just created 2 days prior.  I was able to recoup the listing fees and relist the item immediately due to the fact he was no longer a registered user.  One bullet dodged, round 2 began.

    Figuring it was just a fluke occurrence, I trodded forward with the relisting…lo and behold the laptop sold again within just a couple of hours.  Having been through this just a day earlier I already figured it was bogus…just to see what kind of ridiculous email I’d receive this time I contacted the “buyer” asking for payment and shipping address.  Here’s the message I received:

    Compliment of the season to you. I am Tessa Burton from Califonia USA, but Presently i working as an ambassador in the usa embassy in Holland. I saw your item below and i will like to buy it for my friend who is an ambassador presently working in Nigeria. He will will be doing is birthday next week. Dont worry about the shippment to Nigeria okay? i will send you my fedex account number so that you can ship the item without paying any shipment fee. I would have prefer to send you a cheque but simply because i want you to ship the item ASAP, i will be sending you the payment via Western Union Money Order or western union money transfer. So kindly e-mail me your full name and address so that i can send you the payment immediately. thanks, so mail me now because its urgent.

    Ahh jeez, not this whole Nigeria crap again.  It turns out that eBay has been getting hit hard by this lately though.  Wow, things have really changed around there lately…I’ve sold computers on eBay in the past and had absolutely no issues whatsoever.  I feel terrible for the people who actually fall for this crap though…I guess there’s one born every minute.

    So I’ve relisted for a 3rd time, this time limiting bidding to buyers in the US only, and with an established buying record.  Fingers are crossed.

Copyright © :: JaysonKnight.com
External Content © :: Respective Authors

Terms of Service/Privacy Policy