<?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>AaronStaves.com &#187; 2008 &#187; February</title>
	<atom:link href="http://aaronstaves.com/2008/02/feed/" rel="self" type="application/rss+xml" />
	<link>http://aaronstaves.com</link>
	<description>Not quite extinct!</description>
	<lastBuildDate>Fri, 01 Apr 2011 20:04:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Welcome to Planningville &#8211; Population++</title>
		<link>http://aaronstaves.com/2008/02/10/welcome-to-planningville-population/</link>
		<comments>http://aaronstaves.com/2008/02/10/welcome-to-planningville-population/#comments</comments>
		<pubDate>Sun, 10 Feb 2008 08:29:32 +0000</pubDate>
		<dc:creator>Aaron</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[plan]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[pylons]]></category>
		<category><![CDATA[wireframe]]></category>
		<category><![CDATA[YUI]]></category>

		<guid isPermaLink="false">http://aaronstaves.com/2008/02/10/welcome-to-planningville-population/</guid>
		<description><![CDATA[Inspired by a recent comment on my last blog, I've taken David up on the webpage wireframe and prototype tutorials he found. Both of the articles seem to be geared towards actual graphic designers or user interface designers that have very little or limited knowledge of javascript; and almost no knowledge of the server side [...]]]></description>
			<content:encoded><![CDATA[<p>Inspired by a recent <a href="http://aaronstaves.com/2008/02/06/all-hail-the-user/#comment-19" title="comment on previous blog" target="_blank">comment</a> on my last blog, I've taken <a href="http://www.hackyourlife.org/" title="David's Blog" target="_blank">David</a> up on the webpage wireframe and prototype tutorials he found.  Both of the articles seem to be geared towards actual graphic designers or user interface designers that have very little or limited knowledge of javascript; and almost no knowledge of the server side of their applications.  But nonetheless, there was some really good info in there.</p>
<p>From what I gather, a wireframe is just that a wire-frame.  It should purely consist of a layout, with the possibility of some actual production CSS in the page.  The articles suggested that there are two main ways to do this:</p>
<ol>
<li>Create a page for each "flow" of your application.</li>
<li>Create one page with a "stacked flow" of your application.</li>
</ol>
<p>Basically, a flow is the various screens/interfaces that the end-user will be presented with.  They give a nice "login" example (one which I actually made one of my own as well) with a "stacked flow" wireframe.  You can see my example of that <a href="http://aaronstaves.com/wp-content/uploads/2008/02/login_wireframes.html" title="Login Wireframes" target="_blank">here</a>. Comments are welcome, but keep in mind:</p>
<ol>
<li>I'm not a graphic designer</li>
<li>This is my first crack at this</li>
<li>It's 2am... and I'm making wireframes...</li>
</ol>
<p><span id="more-14"></span><br />
<img src="http://aaronstaves.com/wp-content/uploads/2008/02/wireframepn8.jpg" alt="Wireframe Maddness!" /></p>
<p>Needless to say, that's kind of how I feel at the moment.  The actual prototype, which I plan on using <a href="http://developer.yahoo.com/yui/" title="Yahoo User Interface Library" target="_blank">YUI</a> for will probably come out tomorrow or sometime next week.</p>
<p>The reason I actually went through and <em>made</em> a wireframe, is because I'm attempting to get some sort of side project going for myself (yet again...) so I can play around with some new things.  These things being YUI; as mentioned above, Python; which I've been somewhat getting into and web frameworks - namely <a href="http://pylonshq.com/" title="Pylons Homepage" target="_blank">Pylons</a>.  So tonight at least I got some wireframes done for the login, the next step will be to learn some YUI and get some fake data going for the prototype.</p>
<p>Lastly, I (possibly re)learned some interesting things today regarding CSS.  As you can see in the source for my wireframes, I'm actually using display: table.  Insane!  I've never actually used that, ever.  I initially had a pretty descent layout, but when looking at it on my Nokia N800, it looked completely borked!  So the only way was to make div's within my login box actually span set percentage widths.</p>
<p>Now you're probably saying, whoa! Just set a width on that puppy and your good to go.  Wrong!  Since I wanted somewhat "tabular" data, consisting of two rows, and two colums.  Each row being 100% the width of the box and each column being 50% of the row, there was no way to do that using pure css and <strong><em>not</em></strong> using tables.  This is for two reasons:</p>
<ol>
<li>Div elements are initially set as display: block.  This means there is a line break before and after the element.  So there's no way to have two "columns" side by side.</li>
<li>Inline elements (or elements set to display:inline!) do line up side by side; however!, they will only take on as much width as they need, and don't respond to width: styles.  They may use the width attribute in some browsers, but not what I was testing it in (FireFox 2).</li>
</ol>
<p>So I  came across an article talking about using display: table.  And really, it couldn't be simpler.  Parent element needs to be set as <strong>display: table</strong>.  The children of that needs to be set as <strong>display: table-row</strong>.  And the children of the rows need to be set to <strong>display: table-cell</strong>.  The only downside, is there is absolutely no support for colspan or rowspan in css or the markup.  Even if they did work, it looks like the CSS for those will be depricated in CSS 3 and replaced by some other multi-row/column attribute.</p>
<p>So all in all, a night of learning pylons, which I'm <em>reall</em>y<em> </em>starting to like.  And hopefully I'll keep cranking out these wireframes/prototypes and get good enough at them so I can actually use them in my daily work.  And although I'm posting more now... I hope I don't make a habit of posting at 2:30am : (.  Next time I'll hopefully have some stuff on prototypes to discuss.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaronstaves.com/2008/02/10/welcome-to-planningville-population/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>All hail the user</title>
		<link>http://aaronstaves.com/2008/02/06/all-hail-the-user/</link>
		<comments>http://aaronstaves.com/2008/02/06/all-hail-the-user/#comments</comments>
		<pubDate>Thu, 07 Feb 2008 05:51:27 +0000</pubDate>
		<dc:creator>Aaron</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://aaronstaves.com/2008/02/06/all-hail-the-user/</guid>
		<description><![CDATA[Contrary to popular belief, "the user" is not an all-powerful being that exists only to play games against sprites. But the truth is out there... somewhere... \ Awesome 90's cartoons aside, there are things that we can learn from the user! The past few weeks I've been re-desiging a lot of the web user interfaces [...]]]></description>
			<content:encoded><![CDATA[<p>Contrary to popular belief, "<em>the user</em>" is not an all-powerful being that exists only to play games against sprites.  But the truth is out there... somewhere...</p>
<p><img src="http://aaronstaves.com/wp-content/uploads/2008/02/reboot-xfiles.jpg" alt="Fax Modem and Data Nully from Reboot" />\</p>
<p>Awesome 90's cartoons aside, there are things that we can learn from<em> the user</em>!  The past few weeks I've been re-desiging a lot of the web user interfaces here at work.  I've found that when I'm given a chance to update an already designed UI, I can pretty much copy the old style and just give it a "web 2.0" boost and add in some new functionality - no biggie.  But when given a completely new projectthat is done from scratch, I start to get a bit lost.</p>
<p>The reason I bring this up is because last <a href="http://en.wikipedia.org/wiki/Scrum_%28development%29#Sprint" title="Wikipedia Link for Sprint" target="_blank">sprint</a> I was given a chance to make a new web tool for some of our in-house support staff to use.  This tool replaces some minor SQL query's that I would do on a day to day basis, so I was already pretty familiar with the project.  Initially I threw together what I thought to be an all-in-one awesome bone-crushing tool that did everything it had to... and more!  However! Upon dropping this tool on our support staff, it became readily apparent that they were not terribly familiar with <em>all</em> aspects of this particular system, and had no idea how to use my brand new shiny tool.  Oops! Looks like my user interface doesn't fit the job!</p>
<p><span id="more-11"></span></p>
<p><img src="http://aaronstaves.com/wp-content/uploads/2008/02/deltaoops.jpg" alt="Delta oops!" height="240" width="320" /></p>
<p>In all fairness it <em>is</em> completely my fault, because I was trying to make a tool that <em>I</em> would use, and not a tool that your average <em>Joe User</em> would use.  So after going over my UI with some of the people that were actually using it, I got some input and tried to see if I could possibly improve upon my abomination of a webpage.  Now here's where I get into my UI design. I assume everyone has pretty much heard all of these before, but this seemed to really hit home for me this past week - so I'm putting them up anyways!</p>
<p><strong>Simplicity!</strong>  You'll hear this time and time again about making things <em>easier</em> for the user.  And most of the time, they're probably going to be right. My first iteration had a real classy whiz-bang multiple selection drag and drop interface, when this clearly was not even needed in the end-user interface.  It was just going to be a new thing to learn, and a new widget full of potential bugs.  So that got scrapped and replaced with a table layout using divs.  This way the user can just focus on one element at a time, and it makes handling the data <em>immensely</em> easier on the programming side.</p>
<p>Dialogs are also an amazingly easy way to make things simpler.  Everyone has seen them, everyone knows how to use them and it's no surprise when one pops up.  Using dialogs completely changes how a page can be viewed.  Instead of displaying <em>all</em> information <em>all</em> the time, just display <em>a lot</em> of very specific information when a user requests it.  This not only makes your layout a lot cleaner, but also allows you to separate functionality from various sections of the page.</p>
<p><strong>Consistency!</strong> Granted, with a lot of the new javascript libraries such as <a href="http://dojotoolkit.org" title="Dojo Toolkit" target="_blank">dojo</a> an <a href="http://developer.yahoo.com/yui/" title="Yahoo User Interface Library" target="_blank">YUI</a>, there are lots of awesome widgets at your disposal.  The problem is - is that if <em>the user</em> doesn't know how they're supposed to work, how is that actually helping them?  This was pretty apparent with my drag and drop widget that I mentioned above, but simple things like common layouts as well as how the data is presented also have a <em>huge</em> impact on how well the UI is received.  So in keeping with the above comment, simple and consistent seemed to be the way to go.</p>
<p><strong>Quick and Verbose!</strong>  So obviously with the newly (re)discovered <a href="http://en.wikipedia.org/wiki/XHR">XMLHttpRequest</a> techniques, this gives an opportunity to make people not have to navigate from page to page - like it was 1995.  Using XHR's to speed up saving or loading data in the background makes pages appear to be loading faster as well as makes the user happy.  Win-Win!  The only problem is - is that you still need to let the user know what's going on.  In most cases a simple <a href="http://en.wikipedia.org/wiki/Throbber">throbber</a> will do.  So along with the verboseness, some helpful messages are always nice as well.  If creating a pdf is going to take a few minutes on the server, maybe you should let the user know that.  This way, hopefully, they'll think twice before actually calling in and complaining about how your site is slow.</p>
<p>So all in all, I cranked out my re-designed tool over the weekend and Monday morning it was getting put to use.  Everyone that's using it seems to be <em>a lot</em> happier and more comfortable with the tool, which makes me <em>a lot</em> happier because now I no longer have to be diving through SQL to make minor changes.  Obviously no UI is going to satisfy everyone, but following the above will at least get me started on the right track from now on.  I also find myself drawing about 10 to 15 drafts of what I think the <a href="http://en.wikipedia.org/wiki/Website_wireframe" target="_blank" title="Wire-frame wikipedia link">wire-frame</a> should look like before I even start coding.  This is a pretty big step from where I was 2 years ago and so far it seems to be working well.</p>
<p>I apologize for the lazyness in posting, but I have been somewhat busy between work, <a href="http://aaronstaves.com/2008/01/02/problem-10-more-prime-numbers/" title="Link for Side Projects" target="_blank">side projects</a> and <a href="http://en.wikipedia.org/wiki/Advance_Wars:_Days_of_Ruin" title="Advance Wars" target="_blank">other things</a>.  So hopefully I can get back into the habit of posting.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaronstaves.com/2008/02/06/all-hail-the-user/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

