<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://web.resource.org/cc/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">

			<channel>
			<title>Jon Hartmann</title>
			<link>http://www.jonhartmann.com/index.cfm</link>
			<description>Technical blog of West Virginia web developer Jon Hartmann, covering ColdFusion, Asp.NET, Javascript, User Interface Design, and current website trends.</description>
			<language>en-us</language>
			<pubDate>Wed, 08 Sep 2010 04:12:57 -0500</pubDate>
			<lastBuildDate>Fri, 27 Aug 2010 14:24:00 -0500</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>jon.hartmann@gmail.com</managingEditor>
			<webMaster>jon.hartmann@gmail.com</webMaster>
			<itunes:subtitle></itunes:subtitle>
			<itunes:summary></itunes:summary>
			<itunes:category text="Technology" />
			<itunes:category text="Technology">
				<itunes:category text="Podcasting" />
			</itunes:category>
			<itunes:category text="Technology">
				<itunes:category text="Tech News" />
			</itunes:category>
			<itunes:keywords></itunes:keywords>
			<itunes:author></itunes:author>
			<itunes:owner>
				<itunes:email>jon.hartmann@gmail.com</itunes:email>
				<itunes:name></itunes:name>
			</itunes:owner>
			<itunes:image href="" />
			<image>
				<url></url>
				<title>Jon Hartmann</title>
				<link>http://www.jonhartmann.com/index.cfm</link>
			</image>
			<itunes:explicit></itunes:explicit>
			
			<item>
				<title>Code I Found:  A Warning about Object Comparisons</title>
				<link>http://www.jonhartmann.com/index.cfm/2010/8/27/Code-I-Found--A-Warning-about-Object-Comparisons</link>
				<description>
				
				Last time I posted a &quot;Code I Found&quot; entry some people got upset... well I&apos;m doing it again, but I&apos;m pairing it with an actual warning about object value comparisons in strongly typed languages. This example shows both a valid problem and some dumb coding that complicates it.  [More]
				</description>
				
				<category>Code I Found</category>				
				
				<category>C#</category>				
				
				<pubDate>Fri, 27 Aug 2010 14:24:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2010/8/27/Code-I-Found--A-Warning-about-Object-Comparisons</guid>
				
			</item>
			
			<item>
				<title>Code I Found</title>
				<link>http://www.jonhartmann.com/index.cfm/2010/6/15/Code-I-Found</link>
				<description>
				
				Its time for a new category here on my blog... I&apos;ve been working through a good bit of older code at work and trying to update it to something like modern developer standards. Part of the fun of this has been finding weird, pointless language constructs. Check out this C# example:

&lt;code&gt;if (IsEditable(ID))
	EnableEditButtons(true);
else
	EnableEditButtons(false);&lt;/code&gt;

Neat! This developer was able to use 4 lines of code to do one line of code:

&lt;code&gt;EnableEditButtons(IsEditable(ID));&lt;/code&gt;

Do you have any good examples of code that just shouldn&apos;t have been?

&lt;h4&gt;Update!&lt;/h4&gt;

The EnableEditButton() function from the last example is worth a look too...

&lt;code&gt;protected void EnableEditButtons(bool Value)
{
	if (Value == false)
	{
		buttonAdd.Disabled = true;
		buttonDelete.Disabled = true;
	}
	else
	{
		buttonAdd.Disabled = false;
		buttonDelete.Disabled = false;
	}
}&lt;/code&gt;

Could be wrapped up as:

&lt;code&gt;protected void EnableEditButtons(bool Value)
{
	buttonAdd.Disabled = buttonDelete.Disabled = !Value;
}&lt;/code&gt; 
				</description>
				
				<category>Code I Found</category>				
				
				<category>C#</category>				
				
				<pubDate>Tue, 15 Jun 2010 16:24:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2010/6/15/Code-I-Found</guid>
				
			</item>
			
			<item>
				<title>Why IIF() Should be Avoided</title>
				<link>http://www.jonhartmann.com/index.cfm/2010/5/17/Why-IIF-Should-be-Avoided</link>
				<description>
				
				I was recently reviewing some code from one of my client projects and saw that the previous developer had liked to use IIF() functions to handle the conditional switching of things like button labels. I idly quipped on &lt;a href=&quot;http://twitter.com/jonhartmann&quot; title=&quot;My Twitter Page&quot;&gt;Twitter&lt;/a&gt; that &lt;q&gt;Every time you execute IIF() an angel loses its wings.&lt;/q&gt; A few minutes later a request for some explanation came in on Facebook: &lt;q&gt;Why&apos;s that? I like IIF().&lt;/q&gt; Here is why you should avoid IIF().  [More]
				</description>
				
				<category>ColdFusion</category>				
				
				<pubDate>Mon, 17 May 2010 11:37:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2010/5/17/Why-IIF-Should-be-Avoided</guid>
				
			</item>
			
			<item>
				<title>When in Doubt Clear Your Bin</title>
				<link>http://www.jonhartmann.com/index.cfm/2010/4/29/When-in-Doubt-Clear-Your-Bin</link>
				<description>
				
				&lt;img src=&quot;/images/bin.PNG&quot; title=&quot;A Bin&quot; class=&quot;floatTL&quot; /&gt;This is a reminder to myself, and anyone facing down a weird error message when trying to build their ASP.NET application: you need to try clearing out your Bin folder and rebuilding it. I&apos;ve &apos;fixed&apos; probably a dozen build problems so far just by clearing out my Bin and rebuilding the application. To clear your Bin folder:

&lt;ol&gt;
&lt;li&gt;Find your project file in Visual Studio and left click it.&lt;/li&gt;
&lt;li&gt;Go up to the icons in your Solution Explorer and click &apos;Show All Files&apos;.&lt;/li&gt;
&lt;li&gt;Find your Bin folder in your project, and right click it.&lt;/li&gt;
&lt;li&gt;Click &apos;Open File in Windows Explorer&apos;.&lt;/li&gt;
&lt;li&gt;Select everything in the folder (Ctrl + A) and delete it.&lt;/li&gt;
&lt;li&gt;Rebuild your application.&lt;/li&gt;
&lt;/ol&gt;

I&apos;ve got no idea &lt;em&gt;why&lt;/em&gt; there were errors with my applications, or why this fixed them, but its always a good first line of defense. If you&apos;ve got an error message you can&apos;t figure out, clean out your bin. 
				</description>
				
				<category>Mystery Error Message</category>				
				
				<category>ASP.NET</category>				
				
				<pubDate>Thu, 29 Apr 2010 13:11:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2010/4/29/When-in-Doubt-Clear-Your-Bin</guid>
				
			</item>
			
			<item>
				<title>Lessons on setTimeout() and clearTimeout()</title>
				<link>http://www.jonhartmann.com/index.cfm/2010/4/23/Lessons-on-setTimeout-and-clearTimeout</link>
				<description>
				
				My world was rocked the other day while looking through some source code for a Javascript widget at work. Normally, I&apos;m the one giving lessons in JS techniques, but I was absolutely floored to see how my coworker had used setTimeout() and clearTimeout() in ways I&apos;d never seen before.  [More]
				</description>
				
				<category>Javascript</category>				
				
				<pubDate>Fri, 23 Apr 2010 12:28:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2010/4/23/Lessons-on-setTimeout-and-clearTimeout</guid>
				
			</item>
			
			<item>
				<title>Getting Started with Cufon</title>
				<link>http://www.jonhartmann.com/index.cfm/2010/4/9/Getting-Started-with-Cufon</link>
				<description>
				
				&lt;img src=&quot;http://www.jonhartmann.com/images/cufon.png&quot; title=&quot;Cufon Logo&quot; class=&quot;floatTL&quot; /&gt;I&apos;ve been curious for a while about techniques for font replacement on the web. We&apos;ve probably all heard about the idea of embedding fonts, but looking around at the standards right now, it doesn&apos;t sound like any one browser has things right, so I decided to explore a third-party option. Read more to learn about the basics of Cufon, an easy to use font &quot;embedding&quot; system.  [More]
				</description>
				
				<category>Tutorial</category>				
				
				<category>jQuery</category>				
				
				<category>Web Trends</category>				
				
				<pubDate>Fri, 09 Apr 2010 23:02:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2010/4/9/Getting-Started-with-Cufon</guid>
				
			</item>
			
			<item>
				<title>Missing Data Types in Enterprise Architect</title>
				<link>http://www.jonhartmann.com/index.cfm/2010/4/7/Missing-Data-Types-in-Enterprise-Architect</link>
				<description>
				
				&lt;img src=&quot;http://www.jonhartmann.com/images/EnterpriseArchitectLogo.PNG&quot; title=&quot;Enterprise Architect Logo&quot; class=&quot;floatTL&quot; /&gt;If you&apos;ve used Sparx System&apos;s &lt;abbr title=&quot;Enterprise Architect&quot;&gt;EA&lt;/abbr&gt;, you might know that its a quirky little program at times. I&apos;ve come to love the power it gives me to document designs and interactions, even if I&apos;ve had to give myself a crash course on UML just to get my head around it.

One thing I hate though is that sometimes things just don&apos;t work and its  not obvious why its not working. When trying to create a Data Modeling Diagram to display the database objects involved in a proposed update, I found that the Data Types selection for my columns was empty: all the entries were missing. I was getting really frustrated until I checked on the table entity itself and found that Database for this table was not set. Once I changed to SQL Server 2000, my Data Type drop downs populated with the correct values.

In sort, if you&apos;re using EA for a database diagram and your data type selections are blank, you need to check the database setting on the table itself. 
				</description>
				
				<category>Design Software</category>				
				
				<category>Mystery Error Message</category>				
				
				<pubDate>Wed, 07 Apr 2010 10:56:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2010/4/7/Missing-Data-Types-in-Enterprise-Architect</guid>
				
			</item>
			
			<item>
				<title>Utility Function: ImageBlurMore()</title>
				<link>http://www.jonhartmann.com/index.cfm/2010/3/26/Utility-Function-ImageBlurMore</link>
				<description>
				
				OK, so up until now you probably can guess that the functionality I&apos;m working on has something to do with drawing or moving a shape since I&apos;ve posted math rounding functions and functions dealing with geometric positioning. Lets throw you a curve-ball: I also need the following function. What happens when ImageBlur(image, 10) just isn&apos;t enough? Well you&apos;re going to need to blur the image more!  [More]
				</description>
				
				<category>CFImage</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Fri, 26 Mar 2010 08:46:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2010/3/26/Utility-Function-ImageBlurMore</guid>
				
			</item>
			
			<item>
				<title>Utility Functions: Geometry Functions</title>
				<link>http://www.jonhartmann.com/index.cfm/2010/3/24/Utility-Functions-Geometry-Functions</link>
				<description>
				
				Today we&apos;ve got a double header of functions dealing with Geometry. As I said in my last post, I&apos;ve been spurred into action by a user&apos;s question, and in order to solve his problem, I&apos;m going to need to be able to calculate some relatively simple geometry. Click &quot;more&quot; to see how to convert Degrees to Radians and how to calculate the position of a point based on a starting location, angle, and distance.  [More]
				</description>
				
				<category>Utility Function</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Wed, 24 Mar 2010 22:16:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2010/3/24/Utility-Functions-Geometry-Functions</guid>
				
			</item>
			
			<item>
				<title>Utility Function: RoundToClosest()</title>
				<link>http://www.jonhartmann.com/index.cfm/2010/3/22/Utility-Function-RoundToClosest</link>
				<description>
				
				Its been a while! I got an email from a reader who wanted some help with a bit of image manipulation that has roused me back into CF coding! The particular bit of functionality he wants is rather complex, and so its been forcing me to make a bunch of utility functions to piece it together. First thing I ran into: rounding a number in CF is a little tricky. If you want to round to 2 decimal places, you should multiply the number by 100, call Round() and then divide by 100 again. What a waste. Luckily a little trickery with NumberFormat() can get us what we want.  [More]
				</description>
				
				<category>Utility Function</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Mon, 22 Mar 2010 22:04:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2010/3/22/Utility-Function-RoundToClosest</guid>
				
			</item>
			
			<item>
				<title>Learning UML</title>
				<link>http://www.jonhartmann.com/index.cfm/2010/2/3/Learning-UML</link>
				<description>
				
				My recent job change has not only meant that I&apos;m coding C# .Net rather than ColdFusion these days, but also brought with it a whole host of tools and concepts that I&apos;ve been trying wrap my brain around. Case in point: UML. I learned basic UML back in college, but then spent 3 years in a development environment that was actively hostile to requirement gathering, so what little I knew was lost along the way. Now I&apos;m trying to get caught up, and I&apos;m finding that learning UML is a tricky thing.

I&apos;ve searched for just about every phrase, keyword, or concept I could think of that would yield a decent guide to crafting UML diagrams, and all what I got back were pages and pages of explanations of the symbols on a given diagram. I can tell you what a Use Case looks like, and what things are on it, but I can&apos;t tell you how to get form a Use Case to an Activity diagram. I finally found a quote that enlightened me as to what was going wrong:

&lt;blockquote&gt;
As a UML instructor, I find that learning UML presents a paradox: UML is not a process, but rather a notation that can be used in a process; and yet without a process, students don&apos;t know where to start with UML.
&lt;/blockquote&gt;

Thats from &lt;a href=&quot;http://www.roseindia.net/software-tutorials/detail/16861&quot;&gt;this random page&lt;/a&gt; that references a &quot;Five Step UML&quot; process for teaching the use and power of UML in software development. Unfortunately, like most old pages on the net, the link to the full text is broken, and I&apos;ve been left without a process on which to base my attempts at learning UML.

Any one have any good recommendations on a simple process that would help illuminate the gaps between UML diagrams? 
				</description>
				
				<category>General</category>				
				
				<pubDate>Wed, 03 Feb 2010 14:13:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2010/2/3/Learning-UML</guid>
				
			</item>
			
			<item>
				<title>ASP.NET Error Message: Invalid postback or callback argument</title>
				<link>http://www.jonhartmann.com/index.cfm/2010/1/18/ASPNET-Error-Message-Invalid-postback-or-callback-argument</link>
				<description>
				
				If you&apos;re trying to create a post-back from Javascript in ASP.NET, you might have come across the following error:

&lt;blockquote&gt;
Invalid postback or callback argument. Event validation is enabled using in configuration or in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
&lt;/blockquote&gt;

This message is caused because ASP is attempting to validate that a given post-back that was initiated from Javascript is really supposed to be happening; basically, it is an attempt to try to prevent cross-site scripting from issuing post-backs. You can do as the message says and register the callback, you can edit your web.config file, or you can do what I do, and add the following line to your Page directive in your .aspx page like so:

&lt;code&gt;&lt;%@ Page EnableEventValidation=&quot;false&quot; ... %&gt;&lt;/code&gt;

&lt;div class=&quot;warning&quot;&gt;
Be aware that by setting EnableEventValidation to false, you&apos;re opening a hole in your security. I&apos;m using this in a situation where the risk has been minimized, but if you&apos;re including external scripts, you might want to actually go through the trouble of registering the event.
&lt;/div&gt; 
				</description>
				
				<category>Javascript</category>				
				
				<category>Mystery Error Message</category>				
				
				<category>ASP.NET</category>				
				
				<pubDate>Mon, 18 Jan 2010 10:35:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2010/1/18/ASPNET-Error-Message-Invalid-postback-or-callback-argument</guid>
				
			</item>
			
			<item>
				<title>UX Videos Article on Smashing Magazine</title>
				<link>http://www.jonhartmann.com/index.cfm/2010/1/5/UX-Videos-Article-on-Smashing-Magazine</link>
				<description>
				
				Check out these &lt;a href=&quot;http://www.smashingmagazine.com/2010/01/05/25-user-experience-videos-that-are-worth-your-time/#more-22480&quot;&gt;videos on User Experiance&lt;/a&gt; at &lt;a href=&quot;http://www.smashingmagazine.com&quot;&gt;Smashing Magazine&lt;/a&gt;. I&apos;ve not had the chance to watch many of them, but there are some gems in there. 
				</description>
				
				<category>User Interface Design</category>				
				
				<pubDate>Tue, 05 Jan 2010 11:53:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2010/1/5/UX-Videos-Article-on-Smashing-Magazine</guid>
				
			</item>
			
			<item>
				<title>My First WPF Application</title>
				<link>http://www.jonhartmann.com/index.cfm/2009/12/31/My-First-WPF-Application</link>
				<description>
				
				Well, not really my &lt;em&gt;first&lt;/em&gt; application, but the first that I&apos;d show to the public. Its a simple die rolling program that can handle rolling multiple dice, multi-sided dice (meaning dice that don&apos;t have 6 sides, I know all dice are multi-sided), additive/subtractive dice rolls, and roll modifiers. I&apos;ve not been able to test it on other machines, so if it doesn&apos;t work, let me know. It probably requires .NET 3.5 to be installed on your machine, but if your reading my blog, you probably have it already.

&lt;div class=&quot;download&quot;&gt;
&lt;a href=&quot;/examples/DiceRoller.exe&quot;&gt;Dice Roller v4.15&lt;/a&gt;&lt;br /&gt;
Example .NET 3.5 WPF Application
&lt;/div&gt;

If any of you are wondering, dice rolling apps are my staple &quot;hello world&quot; app when learning a language/framework. They don&apos;t talk to a database (or at least this one doesn&apos;t), but they do involve string parsing, handling of arrays, visual layout, styling concerns, and &quot;persistence&quot; of settings when available (add some die rolls, close the app and open it again). 
				</description>
				
				<category>WPF</category>				
				
				<pubDate>Thu, 31 Dec 2009 11:19:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2009/12/31/My-First-WPF-Application</guid>
				
			</item>
			
			<item>
				<title>ASP.NET First Thoughts</title>
				<link>http://www.jonhartmann.com/index.cfm/2009/12/17/ASPNET-First-Thoughts</link>
				<description>
				
				I&apos;d announced a few weeks back that I was taking a role as a .NET desktop developer, but I&apos;ve found that I&apos;m actually going to be doing a good bit of ASP.NET web development as well (w00t!). As such, I&apos;ve shifted gears a bit and dropped my studies of WPF for ASP.NET, and although I&apos;m certainly not an expert yet, I thought I&apos;d share my first thoughts.  [More]
				</description>
				
				<category>ASP.NET</category>				
				
				<pubDate>Thu, 17 Dec 2009 08:45:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2009/12/17/ASPNET-First-Thoughts</guid>
				
			</item>
			</channel></rss>