<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1549564372561638766</id><updated>2010-09-04T16:27:40.810-05:00</updated><title type='text'>The Object Guy</title><subtitle type='html'>Technology, etc.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.theobjectguy.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default'/><link rel='alternate' type='text/html' href='http://blog.theobjectguy.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>The Object Guy</name><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1549564372561638766.post-2085665374869560482</id><published>2010-09-03T16:50:00.002-05:00</published><updated>2010-09-04T16:27:40.826-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Logging'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Tweeting Logger (Twitter Logger Updated -- Using OAuth)</title><summary type='text'>Twitter now requires OAuth in order to use their API. I thought it might be nice to provide a new Logger that tweets using Twitter's OAuth.

Unfortunately, compared to the original TwitterLogger, the code has ballooned quite a bit. However, if you want to use one of the available Twitter API libraries, then most of the code here would go away and you'd be back to a tiny Logger subclass that </summary><link rel='replies' type='application/atom+xml' href='http://blog.theobjectguy.com/feeds/2085665374869560482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.theobjectguy.com/2010/09/tweeting-logger-twitter-logger-updated.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/2085665374869560482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/2085665374869560482'/><link rel='alternate' type='text/html' href='http://blog.theobjectguy.com/2010/09/tweeting-logger-twitter-logger-updated.html' title='Tweeting Logger (Twitter Logger Updated -- Using OAuth)'/><author><name>The Object Guy</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06700255197759398853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1549564372561638766.post-1300622707735032448</id><published>2010-03-24T14:43:00.010-05:00</published><updated>2010-03-24T14:58:57.296-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Logging'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Logging to Logverse</title><summary type='text'>If you haven't heard of Logverse, it's a service that allows applications to log to it. And just about anything can be logged to it--errors, user actions, debug information... whatever you want.

It's perfect for applications out in the field, like desktop and mobile applications. But even web or other server applications can take advantage of it.

You don't need to use a logging framework to use</summary><link rel='replies' type='application/atom+xml' href='http://blog.theobjectguy.com/feeds/1300622707735032448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.theobjectguy.com/2010/03/logging-to-logverse.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/1300622707735032448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/1300622707735032448'/><link rel='alternate' type='text/html' href='http://blog.theobjectguy.com/2010/03/logging-to-logverse.html' title='Logging to Logverse'/><author><name>The Object Guy</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06700255197759398853'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1549564372561638766.post-6902633449595491111</id><published>2010-03-19T01:05:00.000-05:00</published><updated>2010-03-19T01:05:20.449-05:00</updated><title type='text'>Logverse Videos</title><summary type='text'>

            </summary><link rel='replies' type='application/atom+xml' href='http://blog.theobjectguy.com/feeds/6902633449595491111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.theobjectguy.com/2010/03/logverse-videos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/6902633449595491111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/6902633449595491111'/><link rel='alternate' type='text/html' href='http://blog.theobjectguy.com/2010/03/logverse-videos.html' title='Logverse Videos'/><author><name>The Object Guy</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06700255197759398853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1549564372561638766.post-8516983926504677170</id><published>2010-03-14T12:21:00.002-05:00</published><updated>2010-03-14T12:21:57.408-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logging'/><title type='text'>Logverse</title><summary type='text'>Logverse is coming...</summary><link rel='replies' type='application/atom+xml' href='http://blog.theobjectguy.com/feeds/8516983926504677170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.theobjectguy.com/2010/03/logverse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/8516983926504677170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/8516983926504677170'/><link rel='alternate' type='text/html' href='http://blog.theobjectguy.com/2010/03/logverse.html' title='Logverse'/><author><name>The Object Guy</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06700255197759398853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1549564372561638766.post-3783116908223470070</id><published>2010-01-02T11:00:00.000-06:00</published><updated>2010-01-02T11:00:54.218-06:00</updated><title type='text'>Configuration Insanity</title><summary type='text'>Obviously something is wrong when a logging framework is so complicated that people feel they need a special GUI to configure it. This is what I'm talking about.

My framework doesn't require any configuration. But it supports it, if that's your style. It's intuitive enough--just like the rest of the framework--that you won't feel the need to call The Geek Squad to help you figure it out.

Watch </summary><link rel='replies' type='application/atom+xml' href='http://blog.theobjectguy.com/feeds/3783116908223470070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.theobjectguy.com/2010/01/configuration-insanity.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/3783116908223470070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/3783116908223470070'/><link rel='alternate' type='text/html' href='http://blog.theobjectguy.com/2010/01/configuration-insanity.html' title='Configuration Insanity'/><author><name>The Object Guy</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06700255197759398853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1549564372561638766.post-3878526056717906511</id><published>2010-01-01T17:23:00.000-06:00</published><updated>2010-01-01T17:23:53.758-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logging'/><title type='text'>Multi-threaded Logging</title><summary type='text'>In light of my previous post, I thought it would be a good idea for me to demonstrate logging in a multi-threaded application using my framework.

Watch this very short video. It's just a little over 3 minutes long.

</summary><link rel='replies' type='application/atom+xml' href='http://blog.theobjectguy.com/feeds/3878526056717906511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.theobjectguy.com/2010/01/multi-threaded-logging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/3878526056717906511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/3878526056717906511'/><link rel='alternate' type='text/html' href='http://blog.theobjectguy.com/2010/01/multi-threaded-logging.html' title='Multi-threaded Logging'/><author><name>The Object Guy</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06700255197759398853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1549564372561638766.post-7515906812014612008</id><published>2009-12-31T14:33:00.002-06:00</published><updated>2009-12-31T14:46:56.887-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logging'/><title type='text'>Scary Framework</title><summary type='text'>I don't really want to bag on another logging framework, but I've come across many posts that are downright scary. Here's an example of a situation with one of the most popular logging frameworks. Read down a bit and you'll hear about deadlocks that happened every day--until they removed that logging framework.

I've also read about other serious deadlock issues with that framework. But posting </summary><link rel='replies' type='application/atom+xml' href='http://blog.theobjectguy.com/feeds/7515906812014612008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.theobjectguy.com/2009/12/scary-framework.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/7515906812014612008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/7515906812014612008'/><link rel='alternate' type='text/html' href='http://blog.theobjectguy.com/2009/12/scary-framework.html' title='Scary Framework'/><author><name>The Object Guy</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06700255197759398853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1549564372561638766.post-4051355328585345454</id><published>2009-12-31T13:19:00.005-06:00</published><updated>2010-01-09T12:17:27.735-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logging'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Exceptional Gotchas!</title><summary type='text'>Yes, the pun was intended.

Many ASP.NET developers think that having code in the Application_Error method in Global.asax.cs is adequate for dealing with any unhandled exceptions within their web application. While it usually is adequate--for most basic web applications, there are particular cases where this simply won't catch all errors.

Specifically, if you have code running on the server that</summary><link rel='replies' type='application/atom+xml' href='http://blog.theobjectguy.com/feeds/4051355328585345454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.theobjectguy.com/2009/12/exceptional-gotchas.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/4051355328585345454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/4051355328585345454'/><link rel='alternate' type='text/html' href='http://blog.theobjectguy.com/2009/12/exceptional-gotchas.html' title='Exceptional Gotchas!'/><author><name>The Object Guy</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06700255197759398853'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1549564372561638766.post-4697165800361954445</id><published>2009-12-29T11:35:00.001-06:00</published><updated>2009-12-29T11:39:00.188-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Logging'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>The Overabundance of Logging Frameworks</title><summary type='text'>An interesting question in a tweet caught my eye, and I thought I would attempt to provide an answer. To paraphrase, why are there so many logging frameworks for .NET, especially when there are perfectly capable facilities built-in?

Ill start off by saying that I think there are probably more logging frameworks than are necessary, simply because some have come along more recently which add very </summary><link rel='replies' type='application/atom+xml' href='http://blog.theobjectguy.com/feeds/4697165800361954445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.theobjectguy.com/2009/12/overabundance-of-logging-frameworks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/4697165800361954445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/4697165800361954445'/><link rel='alternate' type='text/html' href='http://blog.theobjectguy.com/2009/12/overabundance-of-logging-frameworks.html' title='The Overabundance of Logging Frameworks'/><author><name>The Object Guy</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06700255197759398853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1549564372561638766.post-8810192180930398318</id><published>2009-12-27T11:34:00.003-06:00</published><updated>2009-12-27T12:40:24.366-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='The Office'/><title type='text'>Making Sandwiches</title><summary type='text'>There are far too many managers who think every software developer is a round peg--a "resource"--who can simply be replaced by another.

Ever been served by a worker at a Mexican fast food restaurant who didn't know how to roll a burrito? How about a sandwich shop where the person behind the counter couldn't slice the foot-long sub without tearing it up?

Okay, it isn't the best analogy. And </summary><link rel='replies' type='application/atom+xml' href='http://blog.theobjectguy.com/feeds/8810192180930398318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.theobjectguy.com/2009/12/making-sandwiches.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/8810192180930398318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/8810192180930398318'/><link rel='alternate' type='text/html' href='http://blog.theobjectguy.com/2009/12/making-sandwiches.html' title='Making Sandwiches'/><author><name>The Object Guy</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06700255197759398853'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1549564372561638766.post-689776380017933356</id><published>2009-12-25T11:32:00.005-06:00</published><updated>2010-09-03T16:52:52.126-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Logging'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>A Simple Twitter Logger</title><summary type='text'>[UPDATE! Look here for the OAuth version.]


Yes, using The Object Guy's Logging Framework it is incredibly easy to create a logger that will write to Twitter.

Here's a sample:

public class TwitterLogger : Logger
{  
  protected override bool DoLog(LogEntry aLogEntry)
  {
    // without this, you may receive a '417 Expectation Failed' error
    ServicePointManager.Expect100Continue = false;

</summary><link rel='replies' type='application/atom+xml' href='http://blog.theobjectguy.com/feeds/689776380017933356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.theobjectguy.com/2009/12/simple-twitter-logger.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/689776380017933356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/689776380017933356'/><link rel='alternate' type='text/html' href='http://blog.theobjectguy.com/2009/12/simple-twitter-logger.html' title='A Simple Twitter Logger'/><author><name>The Object Guy</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06700255197759398853'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1549564372561638766.post-636127411015018450</id><published>2009-12-24T18:48:00.016-06:00</published><updated>2010-01-23T21:44:19.598-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Session with Style</title><summary type='text'>Sloppy code, unfortunately, is ubiquitous. Sometimes it's due to laziness; other times to ignorance, as in: "it never even occurred to me to do it otherwise." I'd put the example I use in this post as one of the latter for most people.

So you want to store something in Session? Easy.

Session["MyString"] = "this is a string I'm storing in session."

Then, somewhere else in your application you </summary><link rel='replies' type='application/atom+xml' href='http://blog.theobjectguy.com/feeds/636127411015018450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.theobjectguy.com/2009/12/session-with-style.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/636127411015018450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1549564372561638766/posts/default/636127411015018450'/><link rel='alternate' type='text/html' href='http://blog.theobjectguy.com/2009/12/session-with-style.html' title='Session with Style'/><author><name>The Object Guy</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06700255197759398853'/></author><thr:total>1</thr:total></entry></feed>