<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>Intermittent Intelligence</title>
        <link>http://bryanhales.com/Default.aspx</link>
        <description>Every once in awhile, something will make sense</description>
        <language>en-US</language>
        <copyright>Bryan</copyright>
        <managingEditor>bryanhales@gmail.com</managingEditor>
        <generator>Subtext Version 1.9.5.177</generator>
        <image>
            <title>Intermittent Intelligence</title>
            <url>http://bryanhales.com/images/RSS2Image.gif</url>
            <link>http://bryanhales.com/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/IntermittentIntelligence" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
            <title>PDC2008 - Sensory Overload!</title>
            <link>http://feedproxy.google.com/~r/IntermittentIntelligence/~3/jbMmex-RzdI/pdc2008---sensory-overload.aspx</link>
            <description>I got back from &lt;a href="http://www.microsoftpdc.com"&gt;PDC2008&lt;/a&gt; on Thursday of this past week and have been recovering ever since. It was a blast. There was so much information to take in, and so many great directions to go, in terms of playing around with all of the cool and exciting things I learned, that I hardly know where to start.&lt;br /&gt;
&lt;br /&gt;
I posted a couple of journal entries briefly outlining my original thoughts at impressions at Toolbox.com (my employer, and the gracious benefactor of my PDC experience). You can check out my "Journal" posts at:&lt;br /&gt;
&lt;br /&gt;
&lt;a target="_blank" href="http://it.toolbox.com/people/bryanhales/journal-entry/3234/"&gt;PDC2008,  here we come!&lt;/a&gt;&lt;br /&gt;
&lt;a target="_blank" href="http://it.toolbox.com/people/bryanhales/journal-entry/3249/"&gt;PDC2008 Day One - Windows Azure, ASP.NET MVC, and ASP.NET 4.0!&lt;/a&gt;&lt;br /&gt;
&lt;a target="_blank" href="http://it.toolbox.com/people/bryanhales/journal-entry/3257/"&gt;It's All About the User Experience -- Day 2 at PDC2008&lt;/a&gt;&lt;br /&gt;
&lt;a target="_blank" href="http://it.toolbox.com/people/bryanhales/journal-entry/3266/"&gt;Day 3 at PDC2008 – I Just Can't Get Enough!&lt;/a&gt;&lt;br /&gt;
&lt;a target="_blank" href="http://it.toolbox.com/people/bryanhales/journal-entry/3278/"&gt;Day 4 – Goodbye PDC!&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
If you didn't get a chance to attend, I would highly recommend that you check out a few of the sessions online. At the top of my list would be:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/TL16/" target="_blank"&gt;The Future of C#&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/TL49/" target="_blank"&gt;Microsoft .NET Framework: Overview and Applications for Babies&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/PC21.wmv"&gt;ASP.NET MVC: A New Framework for Building Web Applications&lt;/a&gt;&lt;img src="http://bryanhales.com/aggbug/9.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bryan</dc:creator>
            <guid isPermaLink="false">http://bryanhales.com/archive/2008/11/02/pdc2008---sensory-overload.aspx</guid>
            <pubDate>Mon, 03 Nov 2008 05:13:47 GMT</pubDate>
            <wfw:comment>http://bryanhales.com/comments/9.aspx</wfw:comment>
            <comments>http://bryanhales.com/archive/2008/11/02/pdc2008---sensory-overload.aspx#feedback</comments>
            <wfw:commentRss>http://bryanhales.com/comments/commentRss/9.aspx</wfw:commentRss>
        <feedburner:origLink>http://bryanhales.com/archive/2008/11/02/pdc2008---sensory-overload.aspx</feedburner:origLink></item>
        <item>
            <title>Woo hoo! Going to PDC2008</title>
            <link>http://feedproxy.google.com/~r/IntermittentIntelligence/~3/MfeNniSqrnA/woo-hoo-going-to-pdc2008.aspx</link>
            <description>&lt;p&gt;I am very excited to be able to attend PDC2008 this year, thanks to my very gracious employer, &lt;a href="http://it.toolbox.com" target="_blank"&gt;Toolbox.com&lt;/a&gt;. I am honored that I have the opportunity to rub elbows with so many great people and represent Toolbox at such an awesome event. I find myself literally counting down the hours. &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;I joined Toolbox.com back in May of this year, and it has been a real eye-opener for me to see and understand how a complex site such as Toolbox.com is set up and works behind the scenes. I am surrounded by some really great developers every day, and I am having a blast. We have had the opportunity to re-write/upgrade nearly all of the old ASP code to C# and ASP.NET. It has been a lot of fun to say the least.&lt;br /&gt;
&lt;br /&gt;
I am in love with C#. I've played around with a whole host of other languages, including Java, PHP, VB (who hasn't?), Pascal, as well as a little Ruby and Python. I admit to only scratching the surface of some, but it is C# and ASP.NET that feels most comfortable to me... but that's just me. I say that whatever language gets the job done best, for you, is the one you should code in. There is no perfect language, and they each have their own strengths and weaknesses. No language "Holy Wars" here!&lt;br /&gt;
&lt;br /&gt;
I wouldn't call myself a fanboy, but I am definately a fan of C#, ASP.NET, the &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc337884.aspx" target="_blank"&gt;MVC Framework,&lt;/a&gt; and several other up and coming Microsoft technologies. It will be very exciting to attend the various &lt;a href="http://microsoftpdc.com" target="_blank"&gt;PDC2008&lt;/a&gt; sessions to get a feel for and better understanding of exactly where things are heading. You can hate Vista all you want and villify Microsoft to your heart's content, but nobody will ever convince me that Microsoft is not on the bleeding edge of technology in many areas. There are some REALLY exciting things going on out there! PDC will be a blast.&lt;br /&gt;
&lt;br /&gt;
I will be jotting down my notes, thoughts, and impressions of the sessions I attend, which at the moment are the following:&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt; Monday, October 27, 2008&lt;/strong&gt;&lt;br /&gt;
========================&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/TL02/" target="_blank"&gt; Under the Hood: Advances in the .NET Type System&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/TL46/" target="_blank"&gt; Microsoft Visual C# IDE: Tips and Tricks&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/PC20/" target="_blank"&gt; ASP.NET 4.0 Roadmap&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/PC21/" target="_blank"&gt; ASP.NET MVC: A New Framework for Building Web Applications&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/TL49/" target="_blank"&gt; Microsoft .NET Framework: Overview and Applications for Babies&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt; Tuesday, October 28, 2008&lt;/strong&gt;&lt;br /&gt;
=========================&lt;br /&gt;
Keynote&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/TL59/" target="_blank"&gt; Visual Studio Debugger Tips &amp;amp; Tricks&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/TL14/" target="_blank"&gt; Project "Velocity": A First Look&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/TL56/" target="_blank"&gt; Project "Velocity": Under the Hood&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/ES02/" target="_blank"&gt; Architecting Services for the Cloud&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt; Wednesday, October 29, 2008&lt;/strong&gt;&lt;br /&gt;
===========================&lt;br /&gt;
Keynote&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/TL57/" target="_blank"&gt; Panel: The Future of Programming Languages&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/BB37/" target="_blank"&gt; SQL Server 2008: Developing Secure Applications&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/TL24/" target="_blank"&gt; Improving .NET Application Performance and Scalability&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/PC30/" target="_blank"&gt; ASP.NET Dynamic Data&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/PC54/" target="_blank"&gt; Mono and .NET&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt; Thursday, October 29, 2008&lt;/strong&gt;&lt;br /&gt;
==========================&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/TL36/" target="_blank"&gt; Microsoft .NET Framework: Declarative Programming Using XAML&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/PC29/" target="_blank"&gt; Microsoft Silverlight 2: Control Model&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/BB54/" target="_blank"&gt; Designing Your Application to Scale&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/pdc2008/TL11/" target="_blank"&gt; An Introduction to Microsoft F#&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;I am really looking forward to the Keynotes by Scott Guthrie and Ray Ozzie, always great speakers. I am also excited to see Scott Hanselman speak, which despite his political leanings, is one of my favorite people to follow on &lt;a href="http://www.twitter.com/shanselman" target="_blank"&gt;Twitter&lt;/a&gt; and his &lt;a href="http://www.hanselman.com/blog/" target="_blank"&gt;blog&lt;/a&gt;.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt; Of all the sessions I am currently planning on attending, I am most looking forward to "&lt;a href="http://channel9.msdn.com/pdc2008/PC20/" target="_blank"&gt;ASP.NET 4.0 Roadmap&lt;/a&gt;", "&lt;a href="http://channel9.msdn.com/pdc2008/BB54/" target="_blank"&gt;Designing Your Application to Scale&lt;/a&gt;", "&lt;a href="http://channel9.msdn.com/pdc2008/TL24/" target="_blank"&gt;Improving .NET Application Performance and Scalability&lt;/a&gt;", and "&lt;a href="http://channel9.msdn.com/pdc2008/PC54/" target="_blank"&gt;Mono and .NET&lt;/a&gt;". &lt;br /&gt;
&lt;br /&gt;
So if you're interested in anything .NET, &lt;a href="http://twitter.com/bryanhales" target="_blank"&gt;follow me on Twitter&lt;/a&gt; and &lt;a href="http://it.toolbox.com/home/connect/?target=1293127" target="_blank"&gt;connect to my profile&lt;/a&gt; on Toolbox.com, or &lt;a href="http://feeds.feedburner.com/intermittentintelligence" target="_blank"&gt;subscribe&lt;/a&gt; to my feed -- I will be updating regularly!&lt;/p&gt;&lt;img src="http://bryanhales.com/aggbug/8.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bryan</dc:creator>
            <guid isPermaLink="false">http://bryanhales.com/archive/2008/10/24/woo-hoo-going-to-pdc2008.aspx</guid>
            <pubDate>Sat, 25 Oct 2008 05:35:08 GMT</pubDate>
            <wfw:comment>http://bryanhales.com/comments/8.aspx</wfw:comment>
            <comments>http://bryanhales.com/archive/2008/10/24/woo-hoo-going-to-pdc2008.aspx#feedback</comments>
            <wfw:commentRss>http://bryanhales.com/comments/commentRss/8.aspx</wfw:commentRss>
        <feedburner:origLink>http://bryanhales.com/archive/2008/10/24/woo-hoo-going-to-pdc2008.aspx</feedburner:origLink></item>
        <item>
            <title>Easy AJAX with the ASP.NET MVC Framework and JQuery</title>
            <link>http://feedproxy.google.com/~r/IntermittentIntelligence/~3/kzBdlHr8DBg/easy-ajax-with-the-asp.net-mvc-framework-and-jquery.aspx</link>
            <description>I really like the &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc337884.aspx"&gt;MVC Framework&lt;/a&gt; (not to be confused with the &lt;a href="http://en.wikipedia.org/wiki/Model-view-controller"&gt;MVC Pattern&lt;/a&gt;) from Microsoft. It allows me to take advantage of the C# programming language and &lt;a href="http://en.wikipedia.org/wiki/Microsoft_.NET#Microsoft_.NET"&gt;ASP.NET Web Application Framework&lt;/a&gt;, while giving me back some of the control over the HTML and forms that I feel I lose with the traditional ASP.NET framework. It just feels cleaner and more natural to me.&lt;br /&gt;
&lt;br /&gt;
But the MVC Framework itself is not what I want to write about. What I'm excited about is how extremely easy it is to make AJAX requests on the MVC Framework with a little help from &lt;a href="http://www.jquery.com"&gt;JQuery&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Suppose I have an MVC View called "Home" with the following HTML Form:&lt;br /&gt;
&lt;pre&gt;&amp;lt;form method="post" action="" id="time"&amp;gt;&lt;br /&gt;    &amp;lt;input type="text" id="txtTime" /&amp;gt;&lt;br /&gt;    &amp;lt;input type="submit" value="Get Server Time" /&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;/pre&gt;
Simple, right? It consists of nothing other than an empty textbox and a submit button. The form should look something like this (with a little extra CSS sprinkled here and there:&lt;br /&gt;
&lt;br /&gt;
&lt;img height="82" border="1" width="216" style="border: 1px solid black; float: none;" src="/images/bryanhales_com/ajax1.gif" alt="" /&gt;&lt;br /&gt;
&lt;br /&gt;
Now, what we want to do is click the submit button (captioned "Get Server Time") and see the server time in the textbox without any postback (or page re-load, which is where the AJAX comes in).&lt;br /&gt;
&lt;br /&gt;
&lt;img height="76" border="1" width="214" style="border: 1px solid black; float: none;" src="/images/bryanhales_com/ajax2.gif" alt="" /&gt;&lt;br /&gt;
&lt;br /&gt;
In its latest release of the MVC Framework, Microsoft has included some AJAX-related scripts to help you accomplish this easily, and they're ok... but I would argue that JQuery makes it even easier.&lt;br /&gt;
&lt;br /&gt;
Consider the following JQuery code:&lt;br /&gt;
&lt;pre&gt;$().ready(function() {&lt;br /&gt;    $('#time').submit(function() {&lt;br /&gt;        $.get('/home/gettime', null, function(data) {&lt;br /&gt;            $('#txtTime').val(data);&lt;br /&gt;        });&lt;br /&gt;        return false;&lt;br /&gt;    });&lt;/pre&gt;
&lt;br /&gt;
If you've never played around with &lt;a href="javascript:void(0);/*1218949212194*/"&gt;JQuery&lt;/a&gt; before, the above code may seem a little foreign and perhaps strange. That's ok. Allow me to explain it line-by-line:&lt;br /&gt;
&lt;pre&gt;$().ready(function() {&lt;/pre&gt;
The line of code above essentially says "when the HTML page/document is ready (or loaded), execute the following code"&lt;br /&gt;
&lt;pre&gt;$('#time').submit(function() {&lt;/pre&gt;
This line says "find any object in on the page with an ID of "time" (in our case, the form), and run the following code when that form is submitted.&lt;br /&gt;
&lt;pre&gt;$.get('/home/gettime', null, function(data) {&lt;/pre&gt;
When the form is submitted, make a call to the URL "/home/gettime". Send no paramaters ("null"), and perform the following function when the data from that URL is returned.&lt;br /&gt;
&lt;pre&gt;$('#txtTime').val(data);&lt;/pre&gt;
Set the value of the object with an ID of "txtTime" to whatever was returned by the AJAX request to "/home/gettime".&lt;br /&gt;
&lt;br /&gt;
Finally,
&lt;pre style="display: inline;"&gt;return false; &lt;/pre&gt;
prevents the form from being submitted normally.&lt;br /&gt;
&lt;br /&gt;
The actual AJAX request was made by the
&lt;pre style="display: inline;"&gt;$.get()&lt;/pre&gt;
function. In JQuery, the dollar sign "$" is just shorthand for JQuery itself. The get() function is all that is needed to perform an AJAX request. Once that request is made, you can do whatever you want with the data that is returned. &lt;br /&gt;
&lt;br /&gt;
Pretty easy, huh? Now this is obviously an overly-simplified example. The cool thing about JQuery is how fast and easy it is to spice up your existing code.&lt;br /&gt;
&lt;br /&gt;
The Server-side code for the above example would look something like this:&lt;br /&gt;
&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(128, 128, 128);"&gt;string&lt;/span&gt; GetTime()&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt; DateTime.Now.ToString();&lt;br /&gt;}&lt;/pre&gt;
Nothing fancy. Just returns a string representation of the current Date. But what if we want to get a little more complex? JQuery and the MVC Framework work very well together when it comes to &lt;a href="http://en.wikipedia.org/wiki/JSON"&gt;JSON&lt;/a&gt; objects. With JSON, you can essentially work with your C# objects in Javascript. Its nothing new, but it is a powerful way to pass data back and forth between your AJAX requests. &lt;br /&gt;
&lt;br /&gt;
As an example, lets say we want to build a checkbox list via AJAX based on some data we have somehow obtained (for example, from a database). &lt;br /&gt;
&lt;br /&gt;
To start off, we have the following C# class (using ASP.NET 3.5 code):&lt;br /&gt;
&lt;pre&gt;public class Checkbox&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: rgb(51, 153, 102);"&gt;// Properties&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(102, 102, 153);"&gt;string&lt;/span&gt; ID { get; set; }&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(102, 102, 153);"&gt;string&lt;/span&gt; Text { get; set; }&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(102, 102, 153);"&gt;bool&lt;/span&gt; Checked { get; set; }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(51, 153, 102);"&gt;// Constructor&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; Checkbox(string ID, string Text, bool Checked)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;.ID = ID;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;.Text = Text;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;.Checked = Checked;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;
So we have a custom class with three properties: ID, Text, and Checked. Now let's build a list of Checkboxes using some data we have on hand:&lt;br /&gt;
&lt;pre&gt;List&amp;lt;Checkbox&amp;gt; Checkboxes = new List&amp;lt;Checkbox&amp;gt;();&lt;br /&gt;Checkboxes.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; Checkbox("id1", "I like ASP.NET", &lt;span style="color: rgb(0, 0, 255);"&gt;false&lt;/span&gt;));&lt;br /&gt;Checkboxes.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; Checkbox("id2", "ASP.NET MVC Rocks!", &lt;span style="color: rgb(0, 0, 255);"&gt;true&lt;/span&gt;));&lt;br /&gt;Checkboxes.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; Checkbox("id3", "I like rabbits", &lt;span style="color: rgb(0, 0, 255);"&gt;false&lt;/span&gt;));&lt;br /&gt;&lt;/pre&gt;
By using the JsonResult object in the MVC Framework, we can pass this strongly-typed object back to the Javascript that made the AJAX request with the following function:
&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; JsonResult GetCheckboxes()&lt;br /&gt;{&lt;br /&gt;    List&lt;checkbox&gt; Checkboxes = new List&lt;checkbox&gt;();&lt;br /&gt;    Checkboxes.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; Checkbox("id1", "I like ASP.NET", &lt;span style="color: rgb(0, 0, 255);"&gt;false&lt;/span&gt;));&lt;br /&gt;    Checkboxes.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; Checkbox("id2", "ASP.NET MVC Rocks!", &lt;span style="color: rgb(0, 0, 255);"&gt;true&lt;/span&gt;));&lt;br /&gt;    Checkboxes.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; Checkbox("id3", "I like rabbits", &lt;span style="color: rgb(0, 0, 255);"&gt;false&lt;/span&gt;));&lt;br /&gt;&lt;br /&gt;    JsonResult result = new JsonResult();&lt;br /&gt;    result.Data = Checkboxes;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt; result;&lt;br /&gt;}&lt;/checkbox&gt;&lt;/checkbox&gt;&lt;/pre&gt;
With the following JQuery code, we can call the function above, and iterate through the results to build the HTML we want to insert into the HTML page:
&lt;pre&gt;$('#json').submit(function() {&lt;br /&gt;    $.getJSON('/home/getcheckboxes', null, function(&lt;span style="background-color: rgb(255, 255, 153);"&gt;data&lt;/span&gt;) {&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt; html = '';&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;for&lt;/span&gt; (&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt; i &lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 153);"&gt;data&lt;/span&gt;)&lt;br /&gt;        {&lt;br /&gt;            html += '&amp;lt;input type="checkbox" id="' + &lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 153);"&gt;data[i].ID&lt;/span&gt; + '"';&lt;br /&gt;            if (&lt;span style="background-color: rgb(255, 255, 153);"&gt;data[i].Checked&lt;/span&gt;) html += 'checked';&lt;br /&gt;            html += '&amp;gt;';&lt;br /&gt;			&lt;br /&gt;            html += '&amp;lt;label for="' + &lt;span style="background-color: rgb(255, 255, 153);"&gt;data[i].ID&lt;/span&gt; + '"&amp;gt;' + &lt;span style="background-color: rgb(255, 255, 153);"&gt;data[i].Text&lt;/span&gt; + '&amp;lt;/label&amp;gt;&amp;lt;br /&amp;gt;';&lt;br /&gt;        }&lt;br /&gt;        $('#json-span').html(html);&lt;br /&gt;    });&lt;br /&gt;	&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt; false;&lt;br /&gt;});&lt;/pre&gt;
So assuming we have a form that contains this HTML:&lt;br /&gt;
&lt;pre&gt;&amp;lt;form method="post" action="" id="json"&amp;gt;&lt;br /&gt;    &amp;lt;span id="json-span"&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;    &amp;lt;input type="submit" value="Get JSON Result" /&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;/pre&gt;
and looks like this before we click anything:&lt;br /&gt;
&lt;br /&gt;
&lt;img height="37" border="1" width="211" style="border: 1px solid black; float: none;" src="/images/bryanhales_com/ajax3.gif" alt="" /&gt;&lt;br /&gt;
&lt;br /&gt;
We end up with this after we click the "Get JSON Result" button:&lt;br /&gt;
&lt;br /&gt;
&lt;img height="93" border="1" width="206" style="border: 1px solid black; float: none;" src="/images/bryanhales_com/ajax4.gif" alt="" /&gt;&lt;br /&gt;
&lt;br /&gt;
It might not be as mindless and simple as some of the other AJAX frameworks out there, but it gives me absolute control over what happens on the page, and how it is displayed. I love it!&lt;br /&gt;
&lt;br /&gt;
Feel free to &lt;a href="http://bryanhales.com/MVC-JQuery-Ajax-Example.zip"&gt;download the above code&lt;/a&gt; to play around with. I have also included some simple animation examples using JQuery to showcase just how easy it is to get started. &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;More Information:&lt;/span&gt;&lt;br /&gt;
&lt;a href="javascript:void(0);/*1218949379252*/"&gt;JQuery Library&lt;/a&gt; &lt;br /&gt;
&lt;a href="http://www.noupe.com/jquery/50-amazing-jquery-examples-part1.html"&gt;50+ Amazing JQuery Examples&lt;/a&gt;&lt;br /&gt;
&lt;iframe frameborder="0" scrolling="no" marginheight="0" marginwidth="0" style="width: 120px; height: 240px;" src="http://rcm.amazon.com/e/cm?t=intermitintel-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=1847192505&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr"&gt;&lt;/iframe&gt;&lt;img src="http://bryanhales.com/aggbug/7.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bryan</dc:creator>
            <guid isPermaLink="false">http://bryanhales.com/archive/2008/08/16/easy-ajax-with-the-asp.net-mvc-framework-and-jquery.aspx</guid>
            <pubDate>Sun, 17 Aug 2008 03:25:59 GMT</pubDate>
            <wfw:comment>http://bryanhales.com/comments/7.aspx</wfw:comment>
            <comments>http://bryanhales.com/archive/2008/08/16/easy-ajax-with-the-asp.net-mvc-framework-and-jquery.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://bryanhales.com/comments/commentRss/7.aspx</wfw:commentRss>
        <feedburner:origLink>http://bryanhales.com/archive/2008/08/16/easy-ajax-with-the-asp.net-mvc-framework-and-jquery.aspx</feedburner:origLink></item>
        <item>
            <title>If I were a superhero, I'd pop people's tires</title>
            <link>http://feedproxy.google.com/~r/IntermittentIntelligence/~3/hEPgqj0Cd_M/if-i-were-a-superhero-id-pop-peoples-tires.aspx</link>
            <description>Like most little boys, I often dreamed about having super-hero powers when I was younger. Heck, I do even to this day. I remember wishing with all my might that I could fly or run really fast. One of my favorite fantasies was to imagine what it would be like to be invisible. Oh how much fun I would have pulling my worst enemies' pants down in public and watching them squirm as all the girls laughed at their Spiderman boxers...&lt;br /&gt;
&lt;br /&gt;
But as I have matured, my Superhero fantasies have changed as well. Sure, I'd still love to fly (especially with gas prices the way they are), but what I'd REALLY like to do is have the ability to pop people's tires.&lt;br /&gt;
&lt;br /&gt;
That's right, I'd just point my finger at some guy's car and *POP*, there goes his tire.&lt;br /&gt;
&lt;br /&gt;
I was reminded of this rather practical super-hero wish the other day as we were driving home. My wife and I had treated the kids to a quick little trip to the mall so that they could ride the merry-go-round and play with the other kids in the little playland area. It was nothing special, but we had fun. We waited in line at the traffic light for our turn to merge onto the freeway entrance ramp, and even let a car or two ahead of us. It was a good day, so I was feeling polite and generous... but nothing to crazy or anything that would give the people behind me a reason to be ticked off.&lt;br /&gt;
&lt;br /&gt;
Suddenly, as we accelerated down the freeway onramp in anticipation of actually getting onto the freeway, some punk in a Lexus wannabe SUV swerves around us from out of nowhere, causing me to have to slam on my brakes to avoid hitting him. This was no accident. It was very apparent from the way this punk was driving that he meant to do nothing other than jump ahead of me in order to get where he was going just a &lt;span style="font-style: italic;"&gt;little &lt;/span&gt;sooner. &lt;br /&gt;
&lt;br /&gt;
I was not as angry about getting cut off as I was about that loser putting my family's life at risk. I laid on the horn to let him know of my displeasure as he sped off.&lt;br /&gt;
&lt;br /&gt;
If I were a superhero, at that very moment, I'd point my finger at his car and BLAM, his tire would blow out. He wouldn't get hurt of course, because I'd be careful to do it at just the right time, but it would still be awesome.&lt;br /&gt;
&lt;br /&gt;
If you've ever had to change a tire in Arizona in June, you &lt;span style="font-style: italic;"&gt;know&lt;/span&gt; that there is &lt;span style="font-style: italic;"&gt;anything&lt;/span&gt; you'd rather be doing than changing that tire. Plucking your armhairs one-by-one with tweezers would be a no-brainer alternative. So a popped tire for being a punk would be instant payback. It would be awesome. They'd be none-the-wiser as I speed by laughing maniacally.&lt;br /&gt;
&lt;br /&gt;
Most people carry &lt;span style="font-style: italic;"&gt;one&lt;/span&gt; spare in their car in case of a flat. A spare tire sucks, but imagine how bad your day would be with TWO blown tires. If you managed to &lt;span style="font-style: italic;"&gt;really&lt;/span&gt; tick me off, I might just blow out all four!&lt;br /&gt;
&lt;br /&gt;
Yeah... that would be awesome. Beats flying any day.&lt;img src="http://bryanhales.com/aggbug/6.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bryan</dc:creator>
            <guid isPermaLink="false">http://bryanhales.com/archive/2008/06/16/if-i-were-a-superhero-id-pop-peoples-tires.aspx</guid>
            <pubDate>Tue, 17 Jun 2008 04:33:20 GMT</pubDate>
            <wfw:comment>http://bryanhales.com/comments/6.aspx</wfw:comment>
            <comments>http://bryanhales.com/archive/2008/06/16/if-i-were-a-superhero-id-pop-peoples-tires.aspx#feedback</comments>
            <wfw:commentRss>http://bryanhales.com/comments/commentRss/6.aspx</wfw:commentRss>
        <feedburner:origLink>http://bryanhales.com/archive/2008/06/16/if-i-were-a-superhero-id-pop-peoples-tires.aspx</feedburner:origLink></item>
        <item>
            <title>An Easy Way to Have Your Identity Stolen</title>
            <link>http://feedproxy.google.com/~r/IntermittentIntelligence/~3/1PX7z1TRqDw/an-easy-way-to-have-your-identity-stolen.aspx</link>
            <description>&lt;img style="float: left;" alt="" src="/images/thief.jpg" /&gt;If you're a programmer, you might be thinking something along the lines of "well, duh!" while reading this article. Its common sense to those of us who live in that world. &lt;strong&gt;For everyone else, however, I suspect that this may come as something of a surprise.&lt;br /&gt;
&lt;/strong&gt;&lt;br /&gt;
&lt;p&gt;If you're like me, you've signed up for accounts on multiple sites. Sometimes I'll sign up for an account just to take a quick peek at how a website works. I have Gmail, Yahoo, &lt;a href="http://www.linkedin.com/in/bryanhales"&gt;LinkedIn&lt;/a&gt;, &lt;a href="http://www.facebook.com/people/Bryan_Hales/524704041"&gt;Facebook&lt;/a&gt;, &lt;a href="http://www.orkut.com/Profile.aspx?uid=9947516942031153581"&gt;Orkut&lt;/a&gt;, and &lt;a href="http://twitter.com/bryanhales"&gt;Twitter&lt;/a&gt; accounts, to name just a few. Not to mention my various bank, credit card, and loan accounts. &lt;/p&gt;
&lt;p&gt;A lot of these members only sections require you to sign up and either verify your e-mail address, or use your e-mail address as your username. Of course you are always asked to provide a password as well to protect your account, right? Right. There's nothing wrong with that -- privacy is very important! No one wants someone else snooping through their personal information or messing with their good reputation.&lt;/p&gt;
&lt;p&gt;If you're like me, you begin to find it hard to remember what username you used on this site, and what password you used on that. After awhile, you may begin to use the same (or very similar) usernames on every site you sign up for in order to make them easier to remember. Chances are, you probably also use the same &lt;em&gt;password&lt;/em&gt; for every site, or at least something very similar.&lt;/p&gt;
&lt;p&gt;When you sign up for a new account somewhere, your information (such as your username and password) are saved, typically to a database. Now take a look at the following excerpt from a typical "users" database table (think of a database table as nothing more than a fancy Excel spreadsheet):&lt;br /&gt;
&lt;br /&gt;
&lt;img style="float: none;" alt="" src="/images/table1.gif" /&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font size="3" color="#000000"&gt;Notice anything alarming? If I asked you for my password, how long would it take you to figure it out?&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I'd say about 2 seconds.&lt;/p&gt;
&lt;p&gt;Now, even at the worst sites, databases are usually protected. They're not visible or available to the general public. But let me present you with two very possible scenarios:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;The site gets hacked, and the hacker(s) gain access to the database. &lt;/li&gt;
    &lt;li&gt;An unscrupluous programmer or employee gains access to the database. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Hackers? Unscrupulous employees? That stuff doesn't really happen, right? Wrong. It happens more often than you might think. The FTC &lt;a href="http://www.ftc.gov/bcp/edu/microsites/idtheft/consumers/about-identity-theft.html"&gt;Estimates&lt;/a&gt; that &lt;em&gt;9 million&lt;/em&gt; Americans have their identities stolen &lt;em&gt;each year&lt;/em&gt;. That's just Americans, and that's just those who the FTC knows about. That's as many as &lt;em&gt;1 in every 20&lt;/em&gt; &lt;a href="http://en.wikipedia.org/wiki/Demographics_of_the_United_States#Miscellaneous_statistics"&gt;Americans&lt;/a&gt; &lt;strong&gt;each year&lt;/strong&gt; between the ages of 20 and 64.&lt;/p&gt;
&lt;p&gt;Sometimes your e-mail doubles as your username/login for a site you sign up for:&lt;br /&gt;
&lt;br /&gt;
&lt;img style="float: none;" alt="" src="/images/table2.gif" /&gt;&lt;/p&gt;
&lt;p&gt;See any potential problem with that?&lt;/p&gt;
&lt;p&gt;If I have gotten into the habit of using the same password everywhere, how long do you think it would take someone who found this database get into my e-mail account? &lt;/p&gt;
&lt;p&gt;I'd say about 5 seconds. Definately before you could ever find out about it, and with more than enough time to destroy your identity.&lt;/p&gt;
&lt;p&gt;If you're like me, you've probably got the last several years of your life archived away (perhaps even inadvertantly) in your e-mail account. Every credit card statement, every credit card payment, even sensitive work or family information is probably saved somewhere in your e-mail account. I use GMail, which offers virtually unlimited storage (similar to Yahoo and Hotmail), so I almost never &lt;em&gt;permanantly &lt;/em&gt;delete &lt;em&gt;anything&lt;/em&gt;. Its all there. If someone were to get inside my e-mail account, forget it. My identity is officially stolen.&lt;/p&gt;
&lt;p&gt;And how about those handy little "Forgot Your Password" links on virtually every website you visit? A majority of them &lt;em&gt;e-mail&lt;/em&gt; your password to you when you forget it.&lt;/p&gt;
&lt;p&gt;&lt;img style="float: none;" alt="" src="/images/facebook.gif" /&gt;&lt;/p&gt;
&lt;p&gt;Is that bad of them to do? Not necessarily. But if someone has gained access to your e-mail account, they may very well have gained access to your &lt;em&gt;entire identity&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font size="3" color="#000000"&gt;Does this mean that you risk having your identity stolen &lt;em&gt;every time&lt;/em&gt; you sign up for a new account? No. A &lt;em&gt;good &lt;/em&gt;programmer will actually &lt;/font&gt;&lt;/strong&gt;&lt;a href="http://en.wikipedia.org/wiki/MD5"&gt;&lt;strong&gt;&lt;font size="3" color="#9ac72e"&gt;encrypt&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;font size="3" color="#9ac72e"&gt; &lt;/font&gt;&lt;/strong&gt;&lt;a href="http://en.wikipedia.org/wiki/SHA_hash_functions"&gt;&lt;strong&gt;&lt;font size="3" color="#9ac72e"&gt;your&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;font size="3" color="#9ac72e"&gt; &lt;/font&gt;&lt;/strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Cryptographic_hash_function"&gt;&lt;strong&gt;&lt;font size="3" color="#9ac72e"&gt;password&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;font size="3" color="#000000"&gt; in a way to make it impossible to ever figure out what it was. Others may simply encrypt it so that even if your information were ever made public, even the NSA would have a hard time &lt;/font&gt;&lt;/strong&gt;&lt;a href="http://en.wikipedia.org/wiki/RSA"&gt;&lt;strong&gt;&lt;font size="3" color="#9ac72e"&gt;figuring it out&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;font size="3" color="#000000"&gt;.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For example, the following image shows the same information as the original database tables above, except the password has been encrypted (or "hashed") by the &lt;a href="http://en.wikipedia.org/wiki/MD5"&gt;MD5 algorythym&lt;/a&gt;. This means that the website can compare what you login with to make sure it matches what you originally signed up with, but it (or anyone who accesses it) will never know what the actual password &lt;em&gt;is&lt;/em&gt;. Any programmer with the least amount of sense would, at a bare minimum, encrypt their users' password. Of course, websites like Facebook, Myspace, and Paypal go above and beyond to protect your information, but what about all the others? &lt;strong&gt;I would be willing to bet my right arm that an alarming number of websites out there don't do nearly as much as they should to protect your passwords to the naked eye in the event your information is stolen.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="float: none;" alt="" src="/images/table3.gif" /&gt;&lt;/p&gt;
&lt;p&gt;Not all programmers are good programmers. I don't mean to imply that some programmers are &lt;em&gt;evil&lt;/em&gt;. I just mean that some are just plain lazy. They will opt for the simple way of storing your information, simply ignoring the possibility that your password may someday become exposed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font size="3" color="#000000"&gt;What is the lesson to be learned here? Never ever &lt;em&gt;ever&lt;/em&gt; use your e-mail password as the password you use to sign up for other accounts and websites. The risk is simply too great.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you insist on using the same password for several accounts, at the very least, use a different password for your e-mail account (not to mention your bank account and any other sensitive accounts you might have). &lt;br /&gt;
&lt;/p&gt;
&lt;hr /&gt;
&lt;strong&gt;More Information:&lt;/strong&gt;
&lt;p&gt;&lt;a href="http://netsecurity.about.com/cs/generalsecurity/a/aa112103b.htm"&gt;Creating Secure Passwords&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.microsoft.com/protect/yourself/password/create.mspx"&gt;Password Strength &amp;amp; Password Security&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.grc.com/passwords.htm"&gt;Ultra High Security Password Generator&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/135"&gt;Firefox Plugin: SecurePassword Generator&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;More on Cryptography&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An interesting and entertaining read, even if you're not a tech-head:&lt;br /&gt;
&lt;iframe scrolling="no" frameborder="0" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" src="http://rcm.amazon.com/e/cm?t=usedcamcom-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=0140244328&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;img src="http://bryanhales.com/aggbug/4.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bryan</dc:creator>
            <guid isPermaLink="false">http://bryanhales.com/archive/2008/04/11/an-easy-way-to-have-your-identity-stolen.aspx</guid>
            <pubDate>Sat, 12 Apr 2008 04:25:53 GMT</pubDate>
            <wfw:comment>http://bryanhales.com/comments/4.aspx</wfw:comment>
            <comments>http://bryanhales.com/archive/2008/04/11/an-easy-way-to-have-your-identity-stolen.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://bryanhales.com/comments/commentRss/4.aspx</wfw:commentRss>
        <feedburner:origLink>http://bryanhales.com/archive/2008/04/11/an-easy-way-to-have-your-identity-stolen.aspx</feedburner:origLink></item>
        <item>
            <title>Now Tweeting!</title>
            <link>http://feedproxy.google.com/~r/IntermittentIntelligence/~3/TxK3RGBwB28/now-tweeting.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://weblogs.asp.net/scottcate/default.aspx"&gt;Scott Cate&lt;/a&gt; of &lt;a href="http://mykb.com"&gt;MyKB&lt;/a&gt; and &lt;a href="http://azgroups.com/"&gt;AZGroups&lt;/a&gt; shot out an e-mail asking if anyone on the AZGroups mailing list was using Twitter. I figured I had procrastinated long enough, so I signed up. Its fun!&lt;/p&gt;
&lt;p&gt;If you're a Twittererer too, look me up at &lt;font face="Arial"&gt;&lt;a href="http://twitter.com/bryanhales"&gt;http://twitter.com/bryanhales&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://bryanhales.com/aggbug/3.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bryan</dc:creator>
            <guid isPermaLink="false">http://bryanhales.com/archive/2008/03/07/now-tweeting.aspx</guid>
            <pubDate>Fri, 07 Mar 2008 21:56:57 GMT</pubDate>
            <wfw:comment>http://bryanhales.com/comments/3.aspx</wfw:comment>
            <comments>http://bryanhales.com/archive/2008/03/07/now-tweeting.aspx#feedback</comments>
            <wfw:commentRss>http://bryanhales.com/comments/commentRss/3.aspx</wfw:commentRss>
        <feedburner:origLink>http://bryanhales.com/archive/2008/03/07/now-tweeting.aspx</feedburner:origLink></item>
        <item>
            <title>RescueTime is cool (and scary)!</title>
            <link>http://feedproxy.google.com/~r/IntermittentIntelligence/~3/kBPWJYT0awA/rescuetime-is-cool.aspx</link>
            <description>&lt;p&gt;&lt;a target="_blank" href="http://rescuetime.com"&gt;RescueTime&lt;/a&gt; is cool! &lt;/p&gt;
&lt;p&gt;I've been reading &lt;a href="http://paulgraham.com"&gt;Paul Graham's&lt;/a&gt; articles for several years now. Although he is an ardent Microsoft hater (not that I'm a super-huge fan myself, but I do develop soley with Microsoft tools), he has written several excellent articles about being an entrepreneur in the world of Software Development. &lt;/p&gt;
&lt;p&gt;A couple of years back, he founded &lt;a href="http://ycombinator.com/"&gt;Y-Combinator&lt;/a&gt;, a venture capital firm focused on helping small software startups get on their feet. The compition is tough, so you can pretty much count on anything he invests in to be pretty sweet. &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Enter&lt;/em&gt; RescueTime.&lt;/p&gt;
&lt;p&gt;I regularly check out the &lt;a href="http://ycombinator.com/faq.html"&gt;FAQ&lt;/a&gt; page to see what the companies he has invested in have come up with, and most of the time, my thoughts are somewhere along the lines of "Why didn't &lt;em&gt;I&lt;/em&gt; think of that?". I must admit, I didn't think that about RescueTime (although I wish I &lt;em&gt;had&lt;/em&gt; thought of it). RescueTime is a small little program that you install on your computer and it sits in your System Tray, quielty logging all of your activities (you hardly even notice it). Every couple of hours, or days, or months, you can log into your account at &lt;a href="http://rescuetime.com"&gt;RescueTime.com&lt;/a&gt; to see just what you've been up to. It tracks applications you have been using (and for how long), websites you have visited (and for how long), and time you have wasted (that's the scary part). It doesn't really know when you have been wasting time, but let me tell you, it becomes painfully obvious when you look.&lt;/p&gt;
&lt;p&gt;Even better, you can tag certain applications and websites with categories (e.g. "Website Development" or "Bored, so I did this"), and it will create a seperate set of graphs with historical data. I highly suggest you try it for at least a week. It will amaze you and scare you at the same time. I can't believe how much time I spend on Instant Messenger, even if it IS for legitimate work purposes!&lt;/p&gt;&lt;img src="http://bryanhales.com/aggbug/2.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bryan</dc:creator>
            <guid isPermaLink="false">http://bryanhales.com/archive/2008/03/01/rescuetime-is-cool.aspx</guid>
            <pubDate>Sat, 01 Mar 2008 23:41:51 GMT</pubDate>
            <wfw:comment>http://bryanhales.com/comments/2.aspx</wfw:comment>
            <comments>http://bryanhales.com/archive/2008/03/01/rescuetime-is-cool.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://bryanhales.com/comments/commentRss/2.aspx</wfw:commentRss>
        <feedburner:origLink>http://bryanhales.com/archive/2008/03/01/rescuetime-is-cool.aspx</feedburner:origLink></item>
    </channel>
</rss>
