Jaa


How can I make you learn and benefit from my Blog? and how can I learn from you?

Summer is almost over and a new season of heavy work is beginning.  I wanted to take this opportunity to start on a new page and make sure that I’m spending my cycles doing the right things. 

I’ve been blogging for almost 3 years now and throughout the blogs life I’ve been blogging pretty much the same way, trying to show examples of where me and fellow developers have gotten into situations that have caused crashes, memory leaks, exceptions, hangs etc., so that we can all learn from the situations and avoid them.

Throughout the 3 years I have gotten a lot of comments saying that posts have helped developers, but I have also gotten more private comments saying that what I am talking about lies so far out of their realms that they don’t understand half of what I am saying.  Some of these comments have come from people that I know and respect and that I know are extremely proficient developers, which makes me think that maybe I am not explaining things in a very understandable or approachable way.  

I have also noticed that people tend to send me private emails rather than comment on the blog, maybe because people feel a bit too intimidated by post-mortem debugging to comment directly on the blog since the topic is a bit low-level. Maybe I am all wrong and that is not at all why people email me rather than comment:)

Either way, since this has been bugging me for a while, I wanted to let you know how I look at my blog and what I want it to be, and I also wanted to solicit your ideas on how to make it more that way.

My philosophy with the blog

I work as an ASP.NET Support Escalation Engineer which means that my job is to help developers solve these types of issues.  When I can help them resolve their issues that makes both me and them happy.   In reality though they would probably be a lot happier if they could resolve their own issues and didn’t have to call, or even more happy if they didn’t have these issues in the first place.

With all that, my goal has always been to try to avoid that people need to call support, so effectively my goal is to make my job obsolete:).  I realize that people will always run into pitfalls so I set up this blog to teach people debugging and make people more aware about the internals of asp.net and the CLR, and to learn from each other.

I want people to be less intimidated by debugging and see that it is in fact something that we can all do, something that is useful to all developers and something that is not as difficult or far out there as it may seem at first look.

I want people to ask lots of questions, or comment on things that they want to know more about, don’t understand or don’t agree with.  The more such comments and questions there are, the more I and others can learn from them.  In a perfect world, this would be a nice debugging community where we all learn from each other.

My ask from you

I would like to learn from you what ideas you have around how I can accomplish this goal better. 

How many of you just glance at the posts and think “hmm, probably interesting for someone who is deep down into debugging but I’ll never use this”?  How many of you really read them and learn something from them?

Are the posts too long, too short, too deep, not deep enough, too boring, too many stupid jokes?

What makes you shy away from a post and what makes you want to learn more? 

How can I make things more applicable to the world you live in?

What do you want to see more or less of?

How can I help you so that you can apply more of what I am talking about to your day to day job?

Do you want me to mix up the debugging posts more with some lighter posts about other topics?  If so, what would you be interested in? 

Feel free to be as candid as you can:)

 

Have fun,
Tess

Comments

  • Anonymous
    August 16, 2009
    debugging and see that it is in fact something that we can all do

  • Anonymous
    August 17, 2009
    Just keep on debugging! From the very beginning this blog has seemed to concern the debugging internals and this is its value. Please do not post about any lighter topics and dig deeper and deeper...

  • Anonymous
    August 17, 2009
    I never really spent much time learning to debug outside of the basics - until I started running into some very difficult bugs at work. Before, I may have thought to myself that your posts would be of more interest to someone who is deep into debugging, but once you're there and you are out of ideas on how to proceed, your posts are lifesavers. A few of those types of bugs, and you learn that you really need to educate yourself on debugging, and that's why your blog is so great. I've learned a ton from it, thank you. And I happen to like the jokes :-)

  • Anonymous
    August 17, 2009
    I like the depth of your blog. There aren't many blogs around that go in to in depth debugging techniques, so I find it pretty useful. I do mostly C++ debugging, but a number of techniques you list on this site are very useful even when not dealing with  .NET code. I'm hope you don't change anything major on the site. I like it as is. I've been browsing your, Raymond Chen's, Marks Russinovich's,and the NTDebugging blogs for a little while and they've been a big help in my understanding of windows and windbg.

  • Anonymous
    August 17, 2009
    Hi Tess, I've been reading your posts for too long and they are always brilliant. I've learnt a lot from them. Please keep posts as is :)

  • Anonymous
    August 17, 2009
    I enjoy that at times your posts push me to the edge of confusion. If they didn't then I wouldn't be learning too much. :) I've found your posts very valuable. There have been a few (OK, a lot) that were situations that I'm sure I'll probably never be in. But reading them and seeing the logic behind how you figured them out was useful and definitely is something that I can apply to my own scenarios. That's the key part about these posts that I like. There are books about how to debug in Visual Studio and limited info about how to use Windbg. But these usually just explain how the tool works. The posts on this blog show how to go beyond just using the tool in to how to actually use it to problem solve. I wouldn't change a thing.

  • Anonymous
    August 17, 2009
    I always make it a point to at least read over your blog entries. To date I have not used ASP.NET, but I have a great interest in debugging, so I always find your blog very informative. I do view your blog as more of a "reference" rather than "training". It's too deep for me to retain everything, but that's good because when I need a reference I want it to be deep. So I briefly read every entry, building an index of sorts so that if I do come up against a similar problem, I can remember "Tess did it!", and then turn to your blog as a reference. In short: I like your blog just the way it is. :)

  • Anonymous
    August 17, 2009
    The comment has been removed

  • Anonymous
    August 17, 2009
    There are two motivations for me reading blogs: Learning something new that I can use in the future and finding solutions to concrete problems I'm encountering. Please keep showing us a lot of details, so we have somewhere to look for solutions to tricky problems but also keep teaching us how to use the tools. We're always interested in learning from you!

  • Anonymous
    August 17, 2009
    I think programming is all about the low level. Most difficulties stem from low level issues. Keep it up.

  • Anonymous
    August 17, 2009
    I've always found your technical post very informative and have been able to follow them without too much trouble. Though I sometimes see references to things like 'the loader' or the 'the loader heap' (I forget exactly) which leads me to think it would be nice to have posts, or links, about the CLR internals. I think it would be beneficial for those who want to go a bit deeper behind the scenes to get some info on those parts of the CLR which aren't openly discussed.

  • Anonymous
    August 17, 2009
    The comment has been removed

  • Anonymous
    August 17, 2009
    Hi Tess, I feel that for those who, like me, never touched most of the tools you use to diagnose problems (windbg and so on), having a few screencasts or videos of some kind of some of your examples would be a great introduction to your material. The internet now has a lot more than text to present your stuff, might as well use it to get it easier to get into. :) Also, I wanted to thank you for having this blog and sharing some impressive knowledge on it. I have to say that when I'm debugging a weird memory behavior on a production server in the middle of the night and google gets me to some helpful article on your blog, I feel a little bit less alone with my problem. Keep up the great work ! :D Renaud

  • Anonymous
    August 17, 2009
    The comment has been removed

  • Anonymous
    August 17, 2009
    I'm one of those who browses through your blog but rarely stops to really investigate the issue at hand. This is partly because I don't do ASP.NET and partly because the issue often is far beyond my debugging skills. But occasionally I find a pearl from your blog. The reason I've never gotten deeper into debugging is simply because I don't have time. I'd like to, but whenever I've tried to learn more about debugging and post-mortem debugging in particular (like recently when my home Vista started to BSOD every time it shuts down), I find that there's quite a stride from basic to advanced level. My point is that you can't please everyone, so maybe it would be better if you target your blog to devs who already possess the advanced level skills. If, however, you feel that the blog would serve a larger audience by not being so advanced, then you would have to help people take their debugging skills to the advanced level. That, I think, requires more than a few blog posts. Ingo Rammer made a web cast that's a good start, I think. (I've even been thinking of asking him if I could publish a transcript.) If this is something you'd be willing to do, then I think I could give more feedback than you'd ever want to receive. ;-)

  • Anonymous
    August 17, 2009
    If I describe my situation maybe it will make things clearer. I'm a C# developer using ASP.NET/ASP.NET MVC/SQL Server 2005/Oracle. In the last 5 years of being a programmer, I've had to use WinDBG exactly once. It was a problem somewhere between Delphi, COM-Interop and .NET. I found the problem with WinDBG but I had no idea why it was happening or how to fix it. I just didn't have enough knowledge of the underlying platforms/libraries. Eventually I sent a dump to Microsoft and they were able to diagnose and solve the problem. To solve my problem I would have had to learn both how Delphi works and COM. So my question is, why should I invest time and effort in learning WinDBG when I am going to use it so seldom? I can't know everything, I have to choose what to spend my time on. I'm much better off hitting a problem and page faulting in information to solve the problem. Some days that's all I do. I don't have the luxury of understanding ASP.NET from the top to bottom and being able to recite the unabbreviated page-lifecycle.  If things are behaving weirdly and a method doesn't return out of a call to COM, that's when I'll pull out WinDBG. Until then, almost 99% of the code we have is written in C# and the development experience is so good I don't need to drop to a lower level. (Incidentally, I would problably put SysInternals' tools in the same category as WinDBG). Essentially the way I use your blog is to try and be aware of options I have if I hit a certain class of problem. I read most of the articles and I try and understand the methodology behind the troubleshooting process. I think the real value in what you are doing lies in the teach-a-man-to-fish mentality. If anything I would like to see more posts on the "art of solving problems" if you will because it doesn't seem like an exact science. The other thing about your blog is that it is an awesome reference site that is designed for "snowflake queries" i.e. search terms that are unique to a specific problem that will help people solve the specific problems they are experiencing. What would be useful is putting out information about the top 10 problems you have every month that are potentially searchable. I think this would ultimately lead to less support calls because people could potentially find the answers online. (I'm guessing you're already doing this but I just thought it was worth reiterating) Having said all of that I've been subscribed to your blog for a year and enjoy most of the in-depth articles and I know exactly where to go if I hit a snag with WinDBG. You do a great job and I find it awesome that you're trying to improve yourself even more. Keep it up :).

  • Anonymous
    August 17, 2009
    Hi Tess, I'm another lurker.  I subscribe and I skim every post.  I'm a C# dev and, to date, I've not needed WinDbg and I've never used it.  However - I'm always interested in how stuf works, because I don't believe you can form a credible hypothesis about what may be causing the observed facts, unless you have a reasonable clue about how it works.  So - I'm mightly glad that this resource is there and I fuly expect to use it one day.  Just not yet! I don't think you should be concerned that some readers find what you work on is far outside their realm.  Intel makes the chip in the computer I work on.  Some intel guy blogging on how the electrons move round the chip would be interesting - but it's way outside my realm.   Do NOT feel you have to write stuff "for everyone".  We are not REQUIRED to read it, we CHOOSE to read it.  Another Microsoftie wrote recently about the "Law of Two Feet" "If at any time during our time together you find yourself in any situation where you are neither learning nor contributing, use your two feet. Go to some other place where you may learn and contribute. (I’ve always been a fan of this one!)" From http://geekswithblogs.net/iupdateable/archive/2009/08/05/altnetuk-conference-was-a-great-way-to-spend-a-weekend.aspx.

  • Anonymous
    August 17, 2009
    Tess, I just wanted to say thank you for the unique resource that your blog is. I could begin to tell of what you taught me but the comments above do it better justice than I could hope to. Cheers, --jonathan

  • Anonymous
    August 17, 2009
    When I first started reading your blog, it seemed as though you took many of your "tools of the trade" for granted, assuming we knew how to use them and how to get the types of output you were illustrating.  For the occasional reader, or someone who finds you blog while searching for solutions to specific problems, then can cause them to be overwhelmed and not understand how you did what you did. However, the depth you go into is perfect for the task at hand, and I wouldn't change that. As far as whether or not you blog about other types of issues or topics--I wouldn't let anyone tell you what to write on your blog--it is in fact your blog, and not theirs. :-) Thanks, Jeff Handley

  • Anonymous
    August 17, 2009
    Hi Tess I’m Reading your blog since 2 years, I have to say that its best's blog I've seen before. I love debugging, I love WinDBG and I absolutely love goes deeper and deeper in every issue. As a part of my job, I'm doing some Debugging and Optimization issue with clients, that mean that like you I’m a Support Escalation Engineer, but my job’s name isn’t so cool. Also I'm doing some training, talks about advanced Debugging talking about WinDBG, sos, Internals, CLR and so on, and in every talk I’ve made all people are getting more confused. This passion is not for everyone that’s what you need to know, so please stay as you are. You’re not going to change because a few (or a lot of) say to you that your job is sooo complicated and doesn’t unrestraint anything. I know exactly who this feeling is, when you finish some talk and, with lucky, one or two people know or learned anything. Luis Guerrero.

  • Anonymous
    August 17, 2009
    Another lurker here... Your blog is pretty much awesome, doubly -no, triply- so because of the lack of similar resources which offer practical help when the memory gets leaky and the debugging gets serious, and not just for the ASP.NET guys. Something which would be great to see more... more posts? :P Thanks for all your great posts, keep up the good stuff!

  • Anonymous
    August 17, 2009
    The comment has been removed

  • Anonymous
    August 17, 2009
    The comment has been removed

  • Anonymous
    August 17, 2009
    I enjoy the detail in your blog - its mostly a "file away for future reference" type of thing, i have only once needed to go back and actually use something.   Its more like, if i can follow what you're saying, then i know that I have some feel of the system, and that gives me a good feeling. Please keep the detail going. Lack of comments probably indicates that your readers are not having that particular problem at that point in time; however, they will likely be able to avoid them in the future.

  • Anonymous
    August 17, 2009
    I think you are doing a great job with the blog, So I would just suggest you to keep doing what you already have been doing.... :)

  • Anonymous
    August 17, 2009
    I find your blog very interesting. I'm a .NET developer, but I do a lot of debugging using WinDbg, so obviously your blog is very relevant to me. I've been doing debugging talks and classes for a while and I get the "why is this arcane stuff even relevant to me?!" question on a regular basis, so I can certainly relate to what you're saying here. I have come to the conclusion that it is okay that most people are not WinDbg experts. As long as they know it is available and know how to pick up more information / help when they need it. To that end your blog is a boon, so keep up the good work! Another happy reader Brian

  • Anonymous
    August 17, 2009
    Hi Tess, I've been following your blog for a long time and I think that the particularity with it is that, as the situations described are not at the level of "how can I bind a gridview row", it's useless most of my days, but a real lifesaver in that day, when things don't work and the reason seems to be nowhere. In a way, I have it more as a collection of white papers. So, I think you have to keep doing exactly what you do, the way you do it.: your blog is probably the only resource on the web about low level, core NET debugging, so I would just recommend you to carry on :) Just one thing that you may want to write about, from time to time, is .NET source debugging. Since it's available, I've discovered a whole new world about .NET, and I think that there are a number of common mistakes, performance issues, etc., that one can stop doing by simply knowing how things work under the hood. I guess you should be able to present us cases where you solved a customer issue that she could have solved herself just by having a look at the source. Anyway, good work! Juan

  • Anonymous
    August 17, 2009
    The comment has been removed

  • Anonymous
    August 18, 2009
    The comment has been removed

  • Anonymous
    August 18, 2009
    I'll reflect what others have said: don't change your focus, you're filling in a niche. If I want to know how to use F5 in Visual Studio and set breakpoints, there's 3 billion other blogs I can go to. Yours fill in a niche that almost no other can. It introduced me to "Debugging beyond breakpoints", and is now part of my daily toolset. Many people here rave about your blog. DO NOT change a working recipe! Looking through my own blog's usage analytics, I noticed that when you google for stuff like "set breakpoint windbg assembly" will pop up MY blog within the first 2-3 pages (which may seem awful, but my point is: I only have ONE debugging post on it, and no one links to my blog...so it just goes to show there is almost NO good ressources for this) Going back in time, some things I had to debug years ago that took weeks or months, could have been done in 5 -minutes- with the stuff that I learnt from here. Its true many people will not understand when this stuff is useful. "Why use WinDBG when you can use Visual Studio?", I get a lot of time. Its a shame, but turning THE source about the "how" into a source about the "why" would leave us with nothing for the former :) Just keep up on what you do best!

  • Anonymous
    August 18, 2009
    The comment has been removed

  • Anonymous
    August 18, 2009
    The comment has been removed

  • Anonymous
    August 18, 2009
    First time commenting :-) Havn't read what everyone already said but just wanna add my 2cents:

  • Concise-ify your posts but no need to drop the technical level!!

  • Do show up on other communities outside of M$!! I think you need to make your posts more concise, but no need to drop  the low-level stuffs, that is the reason I'm still reading your blog, to learn some low-level debugging stuffs in order to improve my skills as a developer. And if you had an account on stackoverflow.com I'd definitely subscribed to your answers there :-) Anyway, you're one ninja debugger! keep up with the blog posts :-)

  • Anonymous
    August 18, 2009
    I like your blog just the way it is!   I'd suggest you have an eclectic selection so that you have something for everyone and people can ignore the articles they don't have time for until they really need them.  The trouble is you're already doing that!

  • Anonymous
    August 18, 2009
    The comment has been removed

  • Anonymous
    August 18, 2009
    I love your blog and subscribe to it in somekind of an 'RSS' feed. (What everthat is?) Anyhow, just keep on doing what you are doing. Do not dumb it down.  Who cares if it is 'so far out of their realms' of some peoples understanding.  They need to dig deeper too! Now read the first 10 chars of this reply (including spaces) and add an exclaimation point after the 'u'  :-) --Pope Titus

  • Anonymous
    August 19, 2009
    Tess, IMO this is the BEST blog about .NET debugging! I have learned a LOT from it and it has made me a much better .NET debugger. Deeper is always better and please do not make the posts lighter. thanks for your hard work, Marc

  • Anonymous
    August 19, 2009
    for me your blog has been a source of great knowledge, the topics you talk about here are not simple, are not for the average developer, that's for sure; but anyone wanting to learn more about advanced debugging can come to your blog and learn tons I like the way you present your work, you have answered my questions when I've had issues here, so, for me, you don't need to change anything I really appreciate all the work you have put into all these fantastic tutorials, I have no problem admitting that you are one of my heroes thank you Tess

  • Anonymous
    August 19, 2009
    I am not a developer but have had the need on several occasions to delve deep into some dumps. Your blog has helped me immensely. I read every one of your posts. I won't say I necessarily understand everything but they have definitely helped get me to the solution or at least determine "why." In some cases, it's just nice to just get a deeper understanding of what is going on and why - for no reason at all. I'm sure there have been some posts where you presume some knowledge of your audience but I think that's okay. Those times have just forced me to learn on my own and I have no problems with that. You can't please all of the people all of the time!

  • Anonymous
    August 19, 2009
    It is 21st century, please post code samples in color, not in as plain black and white text. I'm not into deep debugging, but I'm trying to look through your new posts so I can learn somethig or at learn that there is a way to solve some problem. PS you are one of my 2 homepages at work :)

  • Anonymous
    August 20, 2009
    My suggestion would be to provide a few "Getting Started" posts that explain your background and introduce your debugging philosophy, methods and tools.  Put a link to this post at the top of your blog. Thanks for your hard work and commitment!

  • Anonymous
    August 21, 2009
    Hey, Tess. I'm an ASP.NET developer and brand new to your blog.  Scott Walker presented on debugging at DevLink 2009 and highly recommended it, so I am going to start reading.  I don't know anything about it, but it sounds like a topic that will be useful to me.   I guess it was fortunate that I had a production problem that was difficult to track down the week prior to DevLink.  Put me in the right frame of mind to hear about this stuff. Just looking at the front page of your blog, it would be nice to find a "If you are a total newb to debugging, start here" link.  I see the links for post index and top 21 posts, so I'll start there, but it would be great if I could go straight to the beginner level posts as a point of entry to get comfortable. Looking forward to learning about it.  

  • Anonymous
    August 21, 2009
    Tess you are my last and often sole resort, there are too many "Getting Started" blogs around. Keep up the brilliant work and dig as deep as you can go. If there where more deep down blogs like yours inside MS, explaining who things are really working down under the hood,  my work would be a lot easier. Thanks a lot and keep up the good work. Sorry for my english, that might be the reason why many people prefer private messages ;-) Best regards John

  • Anonymous
    August 21, 2009
    I love the information on your blog, and think that it is one of the few treasures in the .net community. With that said I think one of the problems is most of your readers rarely (if ever) run into a problem that needs windbg to solve.  Or rather I think most of us don't know what symptoms to look for. Obviously if your event log starts showing a bunch of oom exceptions or you get true application crashes, or the server stops responding you know you have a problem.  But it has been my experience that this is rare.   Servers and applications restart on their own to often for these types of problems to manifest in an obvious way.  (im talking about windows update restarts, low activity proccess recycling, and general low traffic web sites). So I think some posts on looking for less obvious symptoms of problems would be great.   I would cover things like how to get a baseline performance profile of your app using tools like perfmon would be a good way to show people  how  to detect problems.  I know you have done lots of posts about using perfmon but it is always in the context of using the tool after you know a problem is occuring because your app crashed or something like that.

  • Anonymous
    August 23, 2009
    I love your blog! I'm a kernel developer, so ASP.NET is not directly related to what i do day to day, but i like to read it because there is a lot in common. Working the debugging tools, and the general technique and mind attitude is similar. I also like to learn new stuff about windows internal workings through the problems you present and solve. Of course that there are developers who don't know what are you talking about. Let's be frank, many developers (and people in general) are stupid, lazy and narrow minded - many productive developers couldn't debug a complex on-site problem if their life depended on it. Advanced debugging, working with windbg, post mortem debugging - is complex. What can you do? You can! You can widen the "simple use cases" section of your blog to educate those developers with enough will-power to learn something new, and ease their way in. Advanced debugging is not main stream - so are you - just learn to accept it :)

  • Anonymous
    August 25, 2009
    Tess, I think so far you're spot on. For everyday debugging you don't really need to use many of the things you talk about here. For the worst scenarios where critical issues hit production servers, your blog is invaluable. I think you need to keep with your target demographic which is more of the after the fact debuggers. I do appreciate your articles. Keep up the good work.

  • Anonymous
    August 28, 2009
    The comment has been removed

  • Anonymous
    August 31, 2009
    Please keep posting your detailed explanations and examples. Your debugging labs got me the hands on start that I needed to understand debugging in IIS and .NET. Your clear, logical writing style is a joy to read, despite the subject matter often involving advanced topics. One of your examples reproduced a problem that I observed in a customer's application, and others have provided hints in the right direction. Thanks! P.S. - I also thought your webcast presentation was very insightful also.

  • Anonymous
    September 08, 2009
    I've used your site many, many times for quick reference.  Additionally it was your labs in the first place that got me into debugging via windbg. Now in my organization I've fixed a bunch of production issues with WinDBG.  I happen to love working on these, and I've been sure to mention your posts to the people I work with. I've found that you can generally follow a debugging flow chart for most common problems (as you explain in your labs).  Maybe outlining these methods in a summarized flow chart would be useful for people's reference?

  • Anonymous
    September 08, 2009
    The comment has been removed

  • Anonymous
    September 09, 2009
    The comment has been removed

  • Anonymous
    September 17, 2009
    The comment has been removed

  • Anonymous
    September 20, 2009
    Thanks for the input Miguel, Perf issues are tough, if the perf issues are bad enough you can troubleshoot it with dumps but if not unfortunately you will need a profiler of some kind.  I usually at least gather some perfmon logs to get a picture of the problem before going to a profiler since that is pretty invasive.

  • Anonymous
    September 28, 2009
    The biggest suggestion that I would make is search.  I realize your on the MSDN blogs site, but SO MANY times I have come across a blog posting of yours in the past that was from 2006 or 2007 timeframe.  When I do a search on the blog it doesn't return anything.  I typically have to find obscure references to your blog from other people's blogs, which is a bit frustratin.

  • Anonymous
    September 28, 2009
    Hi Tess, you already got so much love from your reader-community, I thought I'll add mine as well ;-). Yes your blogs are sometimes hard reading and yes, most of the issues I will (hopefully) never run into. Ntl your blog saved my life for a couple of times already. I guess the point is, that most people don't do this sort of debugging every day, thus they need some refresh once they get into the situation and that is one of the major pluses of your blog. It always helped me get up&running within  a short time to be able to tackle my issue at hand. Even when I am not currently debugging a serious issue, I love reading your posts. I always learn something from them and your war stories are thrilling. It is like reading a whodunit. Keep up the great work!

  • Anonymous
    October 26, 2009
    Tess - Since 64 bit computing is becoming more prevalent and each day sees more IIS and .NET applications using it as a platform, can you include more details about debugging x64 applications and also include any caveats for x64 for various debugging scenarios. Great stuff!

  • Anonymous
    October 28, 2009
    The comment has been removed

  • Anonymous
    October 28, 2009
    Thanks Lee, Good to hear from you again:)