<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WallOfScribbles &#187; Internet</title>
	<atom:link href="http://wallofscribbles.com/tag/internet/feed/" rel="self" type="application/rss+xml" />
	<link>http://wallofscribbles.com</link>
	<description>The ramblings of a man</description>
	<lastBuildDate>Sat, 07 Jan 2012 01:14:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Cannot insert the value NULL into column Name, Thanks SharePoint</title>
		<link>http://wallofscribbles.com/2008/thanks-sharepoint/</link>
		<comments>http://wallofscribbles.com/2008/thanks-sharepoint/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 05:05:29 +0000</pubDate>
		<dc:creator>Corey Dutson</dc:creator>
				<category><![CDATA[Bad bad bad]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[good-practices]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[MOSS]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.wallofscribbles.com/2008/03/07/thanks-sharepoint/</guid>
		<description><![CDATA[I tried to create a Custom List. I had event receivers attached to custom lists and i got this:
Cannot insert the value NULL into column 'Name', table '[somesharepointcontentdatabase].dbo.EventReceivers';
column does not allow nulls. INSERT fails.
The statement has been terminated.

I found out what this means and how to get around it.]]></description>
			<content:encoded><![CDATA[<p>My feature code was throwing an error today. For those who don&#8217;t know what I&#8217;m talking about here is a crash course: A feature basically allows you to attach functionality to something in SharePoint. Maybe you want to add a menu option to the &#8216;Site Actions&#8217; menu, or import some files into libraries. In my case I wanted to attach functionality to a specific list. I wrote my feature code, and it seemed fine. Deployed and activated just great.</p>
<p>Then I tried to create a Custom List. I had event receivers attached to custom lists (ListTemplateID=100 for those who care) and i got this:</p>
<p><em>Cannot insert the value NULL into column &#8216;Name&#8217;, table &#8216;[somesharepointcontentdatabase].dbo.EventReceivers&#8217;;<br />
column does not allow nulls. INSERT fails.<br />
The statement has been terminated.</em></p>
<p>Took me a good two hours of trying everything I could think of with my XML and code, only to be repeatedly thwarted by this database-level error! I tried commenting out different sections of my receivers and still got the error. When I commented the entire <span style="color: blue">&lt;</span><span style="color: red">Receivers</span><span style="color: blue">&gt;</span> section, things ran fine, but not the <span style="color: blue">&lt;</span><span style="color: red">Receiver</span><span style="color: blue">&gt; </span>items inside. What the hell is going on? Read on!</p>
<p></p>
<p>I&#8217;ll give an example  of what I&#8217;m talking about here &#8211; the following comes from <a href="http://msdn2.microsoft.com/en-us/library/ms460929.aspx" title="MSDN: Event Registrations" target="_blank">MSDN</a>:</p>
<p><strong>feature.xml</strong>:<br />
<span style="color: blue">&lt;</span><span style="color: red">Feature</span><br />
Scope=&#8221;Web&#8221;<br />
Title=&#8221;Simple Updating Item Event Handler Registration&#8221;<br />
Id=&#8221;A6B8687A-3200-4b01-AD76-09E8D163FB9A&#8221;<br />
xmlns=&#8221;http://schemas.microsoft.com/sharepoint/&#8221;<span style="color: blue">&gt;</span><br />
<span style="color: blue">&lt;</span><span style="color: red">ElementManifests</span><span style="color: blue">&gt;</span><br />
<span style="color: blue">&lt;</span><span style="color: red">ElementManifest</span> Location=&#8221;elements.xml&#8221;<span style="color: blue">/&gt;</span><br />
<span style="color: blue">&lt;/</span><span style="color: red">ElementManifests</span><span style="color: blue">&gt;</span><br />
<span style="color: blue">&lt;/</span><span style="color: red">Feature</span><span style="color: blue">&gt;</span></p>
<p><em>inside the feature.xml file (above) it references the following file:</em></p>
<p><strong>elements.xml</strong>:</p>
<p><span style="color: blue">&lt;</span><span style="color: red">Elements</span> xmlns=&#8221;http://schemas.microsoft.com/sharepoint/&#8221;<span style="color: blue">&gt;</span><br />
<span style="color: blue">&lt;</span><span style="color: red">Receivers</span><br />
ListTemplateOwner=&#8221;ADDABAAA-1111-2222-3333-111111111111&#8243;<br />
ListTemplateId=&#8221;104&#8243;<span style="color: blue">&gt;</span><br />
<span style="color: blue">&lt;</span><span style="color: red">Receiver</span><span style="color: blue">&gt;</span><br />
<span style="color: blue">&lt;</span><span style="color: red">Name</span><span style="color: blue">&gt;</span>SimpleUpdateEvent<span style="color: blue">&lt;/</span><span style="color: red">Name</span><span style="color: blue">&gt;</span><br />
<span style="color: blue">&lt;</span><span style="color: red">Type</span><span style="color: blue">&gt;</span>ItemUpdating<span style="color: blue">&lt;/</span><span style="color: red">Type</span><span style="color: blue">&gt;</span><br />
<span style="color: blue">&lt;</span><span style="color: red">SequenceNumber</span><span style="color: blue">&gt;</span>10000<span style="color: blue">&lt;/</span><span style="color: red">SequenceNumber</span><span style="color: blue">&gt;</span><br />
<span style="color: blue">&lt;</span><span style="color: red">Assembly</span><span style="color: blue">&gt;</span>SimpleUpdateEventHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=10b23036c9b36d6d<span style="color: blue">&lt;/</span><span style="color: red">Assembly</span><span style="color: blue">&gt;</span><br />
<span style="color: blue">&lt;</span><span style="color: red">Class</span><span style="color: blue">&gt;</span>MS.Samples.SimpleItemUpdateHandler<span style="color: blue">&lt;/</span><span style="color: red">Class</span><span style="color: blue">&gt;</span><br />
<span style="color: blue">&lt;</span><span style="color: red">Data</span><span style="color: blue">&gt;</span><span style="color: blue">&lt;/</span><span style="color: red">Data</span><span style="color: blue">&gt;</span><br />
<span style="color: blue">&lt;</span><span style="color: red">Filter</span><span style="color: blue">&gt;</span><span style="color: blue">&lt;/</span><span style="color: red">Filter</span><span style="color: blue">&gt;</span><br />
<span style="color: blue">&lt;/</span><span style="color: red">Receiver</span><span style="color: blue">&gt;</span><br />
<span style="color: blue">&lt;/</span><span style="color: red">Receivers</span><span style="color: blue">&gt;</span><br />
<span style="color: blue">&lt;/</span><span style="color: red">Elements</span><span style="color: blue">&gt;</span></p>
<p>This works fine. Here&#8217;s something interesting though: any comments &#8211; <font color="#0000ff">&lt;</font>!&#8211; <font color="#008000">Like this</font> &#8211;<font color="#0000ff">&gt; </font>- you have in the  <span style="color: blue">&lt;</span><span style="color: red">Receivers</span><span style="color: blue">&gt;</span> node will be literally interpreted as <span style="color: blue">&lt;</span><span style="color: red">Receiver</span><span style="color: blue">&gt;</span> nodes! That means whenever it tries to attach event receivers to any list, it treats the comments as actual receivers! That&#8217;s right, for whatever reason, the code that ties event receivers to lists literally loops through every node (comments are still considered nodes!) and tries to use them instead of using any sort of <a href="http://en.wikipedia.org/wiki/XPath" title="Wikipedia: XPath" target="_blank">XPath</a>. How hard is it to use &#8220;//Elements/Receivers/Receiver&#8221; as your node collection XPath? I really hope whoever wrote that code got the ruler or something.</p>
<h3>The solution: Remove comments from your Feature xml file(s).</h3>
<p>I say this because God only knows where else this is happening, and the odds of you realizing that it is something that should just work, like comments, are probably not that high. Remember folks, sometimes the most obtuse problems have the most simple answers. Try not to over-think things.</p>
<p>A huge thank you must go out to <a href="http://blogs.msdn.com/jannemattila/" title="Janne Mattila" target="_blank">Janne Mattila</a> for being the first (and apparently only according to Google) <a href="http://blogs.msdn.com/jannemattila/archive/2007/02/08/moss-and-eventhandler-deployment-with-features-cannot-insert-the-value-null-into-column.aspx" title="Janne Mattila: MOSS and EventHandler deployment with features + Cannot insert the value NULL into column..." target="_blank">documenting this</a>. I wish I had looked sooner.</p>
]]></content:encoded>
			<wfw:commentRss>http://wallofscribbles.com/2008/thanks-sharepoint/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Inconsistency Melts Brains</title>
		<link>http://wallofscribbles.com/2008/inconsistency-melts-brains/</link>
		<comments>http://wallofscribbles.com/2008/inconsistency-melts-brains/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 05:05:48 +0000</pubDate>
		<dc:creator>Corey Dutson</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Self-Improvement]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[consistency]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[good-practices]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[WSS]]></category>

		<guid isPermaLink="false">http://www.wallofscribbles.com/2008/03/06/inconsistency-melts-brains/</guid>
		<description><![CDATA[Everyone's done it. We get lazy, we're pressed for time, or we otherwise don't care enough to standardize our stuff. I can note this most prevalently in code, but it easily extends into design and every day life.  

I cannot claim to be innocent of this crime, nor would I. It takes effort, experience, and an iron will not to cut corners in everything you do.]]></description>
			<content:encoded><![CDATA[
<a href="http://wallofscribbles.com/gallery/Misc. Images/Random Dice.jpg" title="" class="thickbox" rel="singlepic544" >
	<img class="ngg-singlepic" src="http://wallofscribbles.com/gallery/cache/544__250x550_Random Dice.jpg" alt="Random Dice.jpg" title="Random Dice.jpg" />
</a>

<p>I&#8217;m bringing this up from an exceptionally small thing I noticed while at work today. As I have previously stated, I work with <a title="Microsoft SharePoint 2007" href="http://office.microsoft.com/en-us/sharepointserver/FX100492001033.aspx" target="_blank">SharePoint</a>. Much of the time I am branding it (though not in my current project!) and so I have a rather intimate and abusive relationship with the program. I find myself constantly finding weird styling quirks put into the environment that prove that SharePoint was built by a large group of people.</p>
<p>There are many instances within SharePoint &#8211; and I&#8217;m sure within <a title="Microsoft WSS 3,0" href="http://office.microsoft.com/en-us/sharepointtechnology/FX100503841033.aspx" target="_blank">WSS</a> as well &#8211; where certain styles that should be consistent end up being done completely different ways. I wish I had a screen shot as an example, but you&#8217;ll have to use your imagination here. Picture two dropdown buttons. When you hover over them, they glow, and a menu appears. No picture the HTML for both dropdown buttons being completely different, with no shared styles or markup whatsoever.</p>
<p>This happens all over the place. Hell, there is markup all over the place that is either broken, non-standard (<a title="SharePoint 2007: What the hell, man?" href="/2008/01/31/sharepoint-2007-what-the-hell-man/" target="_blank">don&#8217;t get me started</a> on WSS/SharePoint and it&#8217;s default markup) and over 6 thousand lines of styles if you add up all the sheets. 6 thousand! There is no need for that, and yet it exists because of &#8211; <em>say it with me now</em> &#8211; the lack of consistency.This lack of consistency then cascades down to people like me, who are stuck styling the damned things. Had there been a discussion between the differing groups, or the markup left to a third group so that they could all be structured the same way other peoples lives would then be made easier.</p>
<p></p>
<p>Another example I can bring up is with code. My code, my co-workers code, random interweb code, it happens everywhere. It is far more frequent when you work on rapid products, or many projects that build off of their predecessor. I can speak from experience that unless you code with the future in mind you will end up patching things&#8230; usually more than once.</p>
<p>In a perfect world you&#8217;d be able to properly scope your work out, develop your use cases, figure out your flow, and develop in a modular, expandable way. This of course requires a couple things: Time, patience, and knowledge. I can assure you that even if you think you have all three you don&#8217;t. The only time this can <em>ever </em>happen is when you are developing something for yourself and even then more often than not you&#8217;re just throwing something together for your own use, and those tend to be the worst for patch jobs&#8230; at least from my experience.</p>
<p>In the end all I can say is <em>plan things out</em>. Figure out a system and stick to it; even if it&#8217;s not the best it will at least not be the best everywhere. This makes it much easier to upgrade/fix later on. If you come up with 5 different solutions for 5 different things when they could all share common attributes, you are just making more work for yourself.</p>
<p>Save your time, your brain, and your fellow workers from the agony of added work brought about by inconsistency. Get a game plan, stick with it, and for the love of god: be consistent.</p>
<p><em>P.S. I managed to spell consistency wrong every time in this post while writing it.</em></p>
<p><em>P.P.S. Except for the one in the first postscript.</em></p>
<p><strong>Update:</strong><br />

<a href="http://wallofscribbles.com/gallery/Misc. Images/Sharepoint-dropdown.jpg" title="" class="thickbox" rel="singlepic545" >
	<img class="ngg-singlepic" src="http://wallofscribbles.com/gallery/cache/545__400x400_Sharepoint-dropdown.jpg" alt="Sharepoint-dropdown.jpg" title="Sharepoint-dropdown.jpg" />
</a>
<br />
Success! I have a screen shot of the dropdown menus in question!<br />
<em>(Technically this update happened before the post went public, but whatever) </em></p>
]]></content:encoded>
			<wfw:commentRss>http://wallofscribbles.com/2008/inconsistency-melts-brains/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Respect the Process, Damnit</title>
		<link>http://wallofscribbles.com/2008/respect-the-process-damnit/</link>
		<comments>http://wallofscribbles.com/2008/respect-the-process-damnit/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 05:15:00 +0000</pubDate>
		<dc:creator>Corey Dutson</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[diagrams]]></category>
		<category><![CDATA[functional specifications]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://www.wallofscribbles.com/2008/02/14/respect-the-process-damnit/</guid>
		<description><![CDATA[I went to college.

Shocking, I know. I did though, and on the lovely diploma that I earned and gently stuffed in a drawer somewhere it says that I am both a computer programmer and a systems analyst. What that means is not only am I  (supposedly) competent at coding solutions, I am also (apparently) competent at looking at a system and figuring out how things should work.

I always chuckled in my Analysis classes. "Come on, this is all common sense!" I would proclaim. I took what the teacher said for a grain of salt and left it at that.]]></description>
			<content:encoded><![CDATA[
<a href="http://wallofscribbles.com/gallery/Misc. Images/Process.jpg" title="" class="thickbox" rel="singlepic537" >
	<img class="ngg-singlepic" src="http://wallofscribbles.com/gallery/cache/537__420x200_Process.jpg" alt="Process.jpg" title="Process.jpg" />
</a>

<p>Fast forward to my current job. I can assure you that there are a plethora of examples that I could choose from for the point I will be making here, but one strikes me as perfect. You see when we developers started there things were volatile, unstructured, and pretty much a mess. My now fellow programmers and myself were hired in the wake of a collection of other developers leaving for one reason or another. We were also thrust into a project pretty much from the moment we sat in our chairs.</p>
<p>This was all fine and good, and we build what we thought we were <em>supposed </em>to build. Three days before we showed it to the client, we went through a run-through with the manager, only to find out that what we built was not what the client wanted. Well okay parts of it were, but for the most part it was off the mark. The result was months of us working grueling hours of overtime, wherein time became an abstract concept and my world knew nothing but code.</p>
<p>What the hell happened?</p>
<h3>We didn&#8217;t have a process.</h3>
<p>We built what we were told to build at the start, but things changed. The functional spec. was updated and we were never told. On the flip side, we also never went looking. Communication was sub-par at best, and the short of it is that there was enough blame for everyone.</p>
<p>We thought we had a process, but the debacle that we ran headlong into demonstrated that whatever process was in place either wasn&#8217;t working or was never initiated. The result was everything blowing up in our face. As it turns out, if you do not learn from this mistake, it will happen again and again. I could pull from more examples, but I&#8217;ll refrain&#8230; sort of.<br />
<br />
I am on a new project, in fact I am the lead developer of said project. It&#8217;s my first time doing this and I&#8217;ll admit that it is a daunting task, but I set about doing my best. I was given a functional specification, which I thought odd because I&#8217;m pretty sure I&#8217;m the one that&#8217;s supposed to build that. I was told to add my section to it and that was that. I did so, to the best of my ability, with the information I had available to me.</p>
<p>It was okayed, and I started handing out tasks and the development cycle began.</p>
<p>Then I was told that the way things were supposed to work wouldn&#8217;t work that way anymore. This was after we had built stuff. This is generally a bad design move, because now any development that was already done now has to be reviewed and possibly scrapped. I updated the spec. again, and away we went. Then I realized that something wasn&#8217;t covered with the information I was given, so I asked a question. One question, I swear to God I only asked one but what was the end result? Another overhaul. Another attempt at the functional spec.</p>
<p>This has happened a  couple times, and is not how the process should work. In a perfect world, the functional spec. is completely done before a line of code is written. The world is not perfect of course, and we have to make do with what we got, but damnit, I wasn&#8217;t about to go and take another stab at anything only to have it change on me again. So I went back to my college roots, and I made a decision:</p>
<h3>I will make the process work again.</h3>
<p>How can I do that though, when everything has apparently been thrown to the wind? It&#8217;s easier than I thought&#8230; well sort of. It still requires effort, but I&#8217;d rather expend the effort where I did fixing the process then rebuilding anything three times.</p>
<p>I sat down with my other main developer, and we went through <em>everything</em>. We went through every aspect of the functional spec, screen designs, and data sources, and figured out how it all works. We asked all the &#8216;hows&#8217; and &#8216;what ifs&#8217; as well as all of the &#8216;what the hells&#8217; that subsequently came up. We went through every resource, created or not, and decided what was needed, what information had to be stored, etc.. We created use cases for the complex cases, and walked through more processes then I would care to count.</p>
<p>The end result? I spent <em>ten hours</em> (minimum) in a board room with a print-enabled white board and wrote everything down. I&#8217;m pretty sure we have at least 15 printouts of notes and questions and diagrams and use cases which helped clear up the utter ambiguity that surrounded the project. They get it now, and so do I. It&#8217;s no longer a matter of &#8220;how does this work?&#8221; but a matter of &#8220;what&#8217;s the next task?&#8221; Yes I have to update the functional spec. again, but at least now I know what to add, and where. The document is finally useful, and the project is understood. The process exists once again.</p>
<p>I&#8217;ve also taken it upon myself to write all of those tasks down in a shared location, so that whoever is on the project can take on new tasks as the run out of their assigned ones. That way no one has the excuse for not knowing what is next.</p>
<p>So yes we lost a day of development, but we have saved ourselves days of effort of unneeded rebuild time. Do it right the first time, and you&#8217;ll save time later.</p>
<p>On a side note, Sorry Mr. Miller turns out you were write all along about Analysis. My Bad.</p>
]]></content:encoded>
			<wfw:commentRss>http://wallofscribbles.com/2008/respect-the-process-damnit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apparently IE8 is Causing Ruckus</title>
		<link>http://wallofscribbles.com/2008/apparently-ie8-is-causing-ruckus/</link>
		<comments>http://wallofscribbles.com/2008/apparently-ie8-is-causing-ruckus/#comments</comments>
		<pubDate>Fri, 25 Jan 2008 05:05:53 +0000</pubDate>
		<dc:creator>Corey Dutson</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://www.wallofscribbles.com/2008/01/25/apparently-ie8-is-causing-ruckus/</guid>
		<description><![CDATA[You heard me people: <em>ruckus</em>.

For those not in the know, I'm talking about the apparent <a href="http://blogs.msdn.com/ie/archive/2008/01/21/compatibility-and-ie8.aspx" title="browser version targeting" target="_blank">browser version targeting</a> that the IE8 team is going to be providing. This has caused a bit of a split amongst the web community. I won't go into excessive detail over the topic, because there are <a href="http://alistapart.com/articles/beyonddoctype" title="A List Apart" target="_blank">others</a> that have <a href="http://alistapart.com/articles/fromswitchestotargets" title="A List Apart" target="_blank">expanded</a> upon it as <a href="http://www.timkadlec.com/post.asp?q=41" title="Tim Kadlec" target="_blank">much</a> as humanly possible.]]></description>
			<content:encoded><![CDATA[<p>The gist is this: You can tell the browser how to render your web page.  I&#8217;m aware that that&#8217;s how it should be working from the get go, but as we learned with the IE7 chaos that this is not the case. Microsoft&#8217;s solution is a simple meta-tag that you would add to your markup which would allow your website to tell the browser (IE8) to act like IE7 or IE6 or whatever version your site looked pretty in. This is great if you&#8217;re a lazy markup-writer, or cannot honestly be bothered with updating your website in any shape, way, or form. I can see the merit, truly I can. It&#8217;s a total cop-out with the whole &#8220;continuous improvement&#8221; idea that mankind is always raving about, but who really needs that? A part of me is a real fan of this idea based solely on past experiences with styling in IE.</p>
<p>Now granted, you can tell your website to stay on the cutting edge of IE rendering by using the &#8220;edge&#8221; keyword (see what I did there?) in your meta-tag . This will allow your website to be rendered at whatever the end users version of IE is. I like the idea of targeting a website to certain browsers, especially when you work in a web development position where part of the statement of work is a section dedicated to what browsers your work has to run in. This sort of idea makes my job as a website stylist that much easier. Unfortunately, I am opposed to the idea in the end.</p>
<p>The problem lays not in the fact that you can target browser version, it&#8217;s the fact that it&#8217;s gotten to this point. It&#8217;s a depressing thing to think about really; had Microsoft just done things right the first time (or at the very least come out with hot fixes to make the needed changes) we wouldn&#8217;t be in this mess to begin with. People are always complaining about IE, more so since browsers like Firefox have stepped into the ring. I&#8217;m aware that Firefox is not perfect, but that&#8217;s not what I&#8217;m arguing. Firefox, along with the other browsers, took far more time to correct CSS bugs than IE ever did. Only now with the eventual release of IE 8 are we looking at IE possibly coming up par.</p>
<p></p>
<p>I don&#8217;t work on the team, and I&#8217;m truly glad I don&#8217;t. These guys are basically the internet pariah group of the century. Everyone can hate IE with little to no effort due to its historic record of screwing up websites. I&#8217;m glad to see that they&#8217;re working so hard to get the browser up to speed on the compliance front, as well as trying to make it easier for everyone. Sadly, by making it easier for everyone they really hurt further progression in the field.</p>
<p>Allowing HTML writers to slap a version on their site and let it be that, you stifle the drive to improve their craft. You allow the user to literally say &#8220;good &#8217;nuff&#8221; to their work, and since the Web isn&#8217;t going away anytime soon, I shudder to think of what will become of the next generation of web designers. It&#8217;s going to be the Geocities site builder circa 1997 all over again.</p>
<p>I guess it would at least look the same in every browser, so that&#8217;s something. In the end I&#8217;m against the idea from a progression standpoint, but I have to admit &#8211; if not begrudgingly &#8211; that at least this would stop sites from breaking every release. It&#8217;s gross, but it&#8217;d work.</p>
<p>P.S. <a href="http://www.katemonkey.co.uk/article/48/x-ua-lemur-compatible?commented=1#c000079" title="Katemonkey" target="_blank">This</a> is the greatest summary of the issue, bar none.</p>
]]></content:encoded>
			<wfw:commentRss>http://wallofscribbles.com/2008/apparently-ie8-is-causing-ruckus/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Do you suffer from Crummy User Experience?</title>
		<link>http://wallofscribbles.com/2008/do-you-suffer-from-crummy-user-experience/</link>
		<comments>http://wallofscribbles.com/2008/do-you-suffer-from-crummy-user-experience/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 05:05:52 +0000</pubDate>
		<dc:creator>Corey Dutson</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[good-practices]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.wallofscribbles.com/2008/01/23/do-you-suffer-from-crummy-user-experience/</guid>
		<description><![CDATA[I'm sick of Crummy User Experience (CUE). I'm sure there are many ways to describe it, and everyone can relate. Crummy User Experience is a broad term that generally describes when you -the user- interact with something -web form, bank machine, car door, etc- and it sucked, or sucks depending on you're lifes requirements.

Recently I had to sign up for a couple sites, I won't say what ones because I don't wish to bring them any undo ire. What they did wrong was no different than many other sites do on a repeated basis: they didn't tell me what to do.]]></description>
			<content:encoded><![CDATA[<p>I consider myself fairly web-competent. I know how to fill out forms on the Internet and it isn&#8217;t all that hard in theory. The problem lays in that if you could fill in forms with whatever you wanted, there&#8217;d be no point to them because everyone&#8217;s address would be something akin to &#8220;aherhaerhaerumnjmaes&#8221;or &#8221; &#8221; or &#8220;buttslolz.&#8221; Because of this some enterprising people, institutions, and heartless corporations that want your input force you to adhere to a set of rules in order to avoid these scenarios.</p>
<p>Most people have no problem with following these rules, though I will say that my address will forever be 123 Fake St. unless something is getting shipped to me. The problem is not in the rules but in their explanation to us.</p>
<p>Sometimes websites are <strong>very clear about what they want</strong> by specifying it in clear, concise language: &#8220;<em>Username must be between 5 and 11 characters and contain at least 1 number</em>&#8221; or &#8220;<em>Postal Code example: A1B 2C3</em>&#8220;. This is a good practice because assuming your users are idiots will ironically result in a much lower screwup rate.</p>
<p>The point I&#8217;m getting to here is when you don&#8217;t state you&#8217;re rules, your users will default to basic behavior. Most people don&#8217;t know that usernames tend to have numbers in them now, and I&#8217;m sure even less know that because of your half-assed attempt at regex the postal code <em>needs </em>to be in capitals.</p>
<p></p>
<p>What does this mean? Well depending on how you set up the form <strong>users may be forced to fill it all out again</strong>. This is a pain in the ass to start, and when you throw in the fact that many websites do not include detailed error messages (error summaries people, error summaries)  the users may -and in my case will- be forced to fill out the same form multiple times.</p>
<p>This is an example of <em>CUE</em>. Lazy programmers and lazy testing tend to be the main cause of form-based issues. I know this because I was a lazy programmer who submitted his stuff to a very thorough quality assurance person. He turned around and ripped my form apart. I learned quickly that by putting forth the additional effort into planning it all out and doing the job right, that two things would happen: the first thing is that I&#8217;d have less work coming back from the QA guys. The second was that I realized I was creating the same thing that annoyed me so often on the web. I&#8217;m a reformed man as a result.</p>
<p>What I&#8217;m trying to get at is that when you&#8217;re building something, no matter what it is, try and look at it from the end-users stand point. This can be a difficult task at time and believe me when I say that it takes some practice. You have to figure how users can screw things up that you find straight-forward and fix said things.</p>
<p>Once you know how they can screw them up, save yourself some time and tell them how <em><strong>not </strong></em>to screw them up. As long as you stop their input from decimating your server (sanitize your inputs, people) you can make your life easier by telling the user how to do things the right way.</p>
<p>That&#8217;s not <em>lazy</em>, that&#8217;s <em>empowering</em>.</p>
<p>Another step is to make sure that when they do screw up (which they will) make sure you <strong>tell them what they actually did wrong</strong>. DHTML and AJAX controls depending on your validation requirements, can be fantastic ways to validate on the fly&#8230; assuming you don&#8217;t make your error messages jarring (i.e. javascript popup messages are bad, don&#8217;t do them) or elusive (top of the page? I&#8217;m 15 inches down the form, I&#8217;m not going to see that) or cryptic &#8220;An error occurred.&#8221;</p>
<p>Once again, ask yourself <strong>what you would expect the user to see </strong>when they go through it. Do you really think big JavaScript popups are the best way to tell the user that their postal code can&#8217;t have spaces? Probably not, but I&#8217;m sure it made sense at the time.</p>
<p>I know I&#8217;m using submission forms heavily as my example here, but the idea is still the same. Once you&#8217;re done building your whateveritis, try it out yourself. Try drawing up some use-cases get some friends or colleagues to try it out. Pretend you&#8217;re a blathering idiot, and see how well you do then. Hell, find a blathering idiot and point him in your whatchimacallits direction. Do whatever you have to to get the sense of the users process. Find the problem areas with your thingimajigs before they become the bane of every end-users (which in turn will become the bane of your) life.</p>
<p>Don&#8217;t be lazy, and do it right the first time people.</p>
]]></content:encoded>
			<wfw:commentRss>http://wallofscribbles.com/2008/do-you-suffer-from-crummy-user-experience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

