<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title>Mentalized</title>
		<link>http://mentalized.net/journal/</link>
		<description>The online journal of Jakob Skjerning, a freelance web application developer</description>
		<language>en-us</language>		
		<copyright>Copyright 2010, Jakob Skjerning</copyright>
		<lastBuildDate>Thu, 15 Jul 2010 10:09:15 +0100</lastBuildDate>
		<generator>Movable Type (http://www.movabletype.org/?v=3.31)</generator>
		<ttl>600</ttl>		
		
				<item>
			<title>Webdesign critique: Cooper.com</title>
			<description><![CDATA[<p>A problem with companies becoming ever more aware of and adept at social media is the fact that it&#8217;s become hard to whine about some company without instantly having a representative asking you what&#8217;s wrong. Some times you just want to whine.</p>

<p><a href="http://twitter.com/cooper_journal/status/18544122925">This</a> is roughly what happened after I <a href="http://twitter.com/mentalizer/status/18501389419">tweeted my dissatisfaction</a> with the new <a href="http://cooper.com">Cooper</a> website.</p>

<p>Okay, fair enough, I&#8217;ll spend some time going over some of the issues I found. </p>]]><![CDATA[<h2>Good things first</h2>

<p>First of all, I like the style of the site. It&#8217;s pretty, and while the images might be a bit much on some &#8220;pages&#8221;, in general it looks good.</p>

<p>Also, I love the detail with the sub-navigation state changing as I scroll down a &#8220;page&#8221;. It&#8217;s a great touch that keeps me updated with what I am currently looking at.</p>

<p>But let&#8217;s not get too enthusiastic&#8230;</p>


<h2>&#8220;Pages&#8221;</h2>

<p>In the above, I&#8217;ve put pages in quotation marks, as the Cooper site doesn&#8217;t really have pages per se. All the content is on the same page, and the navigation just takes you to different sections of the page.</p>

<p>This seems like a choice based entirely on style, perhaps in an effort to appear trendy or technically skilled, with no real benefit for the user. Unfortunately, most the issues I have with the site seem to stem from this stylistic choice.</p>


<h2>The scrollbar is a lie</h2>

<p>When navigating a page in a browser, word processor, or any other document based application, the scrollbars are great indicators of the amount/size of the content. Not so on cooper.com.</p>

<p>An obvious example is seen if you navigate to the <a href="http://www.cooper.com/#home">Home section</a>. The vertical scrollbar has a tiny handle in it, signaling that there are a lot of content on this page. However if you actually scroll down the &#8220;page&#8221; you find nothing but whitespace. The scrollbar basically lied to us.</p>


<h2>Horizontal scrolling</h2>

<p>This one is just baffling. Horizontal scrolling, really? There are certainly <a href="http://www.designmeltdown.com/chapters/Horizontal/">cases</a> where it can be used for great effect, but generally speaking it&#8217;s a big usability no-no. At least, it used <a href="http://freeusabilityadvice.com/archive/32/horizontal-scrolling">to</a> <a href="http://www.useit.com/alertbox/20050711.html">be</a> - have things changed since 2006?</p>

<p><img src="/files/journal/cooper/horizontal_scrolling.png" alt="" height="514" width="511" /></p>

<p>The horizontal scrolling unfortunately makes it hard to scroll around each section using the 2-finger gesture of my Macbook Pros touchpad. Apparently I lack the motor skills needed to move my fingers up and down in a straight line, and I continually end up scrolling partially into the sections to the left and right of the one I want to look at.</p>


<h2>Scrolling and the <span class="caps">URL </span></h2>

<p>Cooper has done really well making sure the <span class="caps">URL </span>changes as I use their navigation - even though I don&#8217;t actually change pages. This ensures my back button works and sections can be linked to, a common oversight of pages like this.</p>

<p>Unfortunately, the horizontal scrolling messes this up. Scrolling horizontally I can easily end up at a section that in no way resembles what I am actually looking at. I risk linking to or bookmarking the wrong section, causing myself or the recipients of my links headaches in the future.</p>


<h2>Navigation changes on hover</h2>

<p>I am not a fan of changing the navigation simply when hovering over an item. It&#8217;s too easy to accidentally switch to another sub-navigation element when trying to move the pointer over to the far items in the current one. </p>

<p>It would be much less frustrating if it required a click to change the sub-navigation.</p>


<h2>Differently sized screens</h2>

<p>Ah, screen sizes, a <a href="http://mentalized.net/journal/2009/02/19/size_still_matters/">pet peeve of mine</a>. The Cooper site seems optimized for a very small range of browser sizes. </p>

<p><img src="/files/journal/cooper/800_pixels_wide.png" alt="" height="395" width="512" /></p>

<p>Looking at the site with a 800 pixels wide browser yields suboptimal and even harder to use results, and using a very wide browser yields a confusing display where you can see parts of the (clipped) content to the left and right.</p>

<p><img src="/files/journal/cooper/1760_pixels_wide.png" alt="" height="328" width="512" /></p>

<p>In a time where we have a multitude of different screen sizes, browsers and devices all accessing our websites and the ability to make our website designs <a href="http://www.alistapart.com/articles/responsive-web-design/">adapt to the users device/browser</a>, relying on the user to use a maximized browser on a 1024 pixels wide screen is, well, nuts.</p>

<p>Disclaimer, I don&#8217;t know the stats for cooper.com - it might be that all their users use 1024 pixels wide screens and maximize their browser, I don&#8217;t know. However, it does go against all the statistic I have seen (and <a href="http://mentalized.net/journal/2006/10/24/browser_size_does_matter_actual_numbers/">measured</a>).</p>


<h2>Printing</h2>

<p>I know, in a paperless society where we need to control our waste output and save our forests, surely noone would ever think about print a website. However, in the rare case whey they do, they are sure to get more than they bargained for on cooper.com.</p>

<p>As all content is crammed onto the same page, hitting the browsers print button yields a whopping 28 pages of unstyled content. I just wanted to print the list of your (impressive) work to show to my boss so I could persuade her to send me to one of your training seminars, and you give me this?! Okay, I don&#8217;t have a boss, but you get the point.</p>


<h2>In page search</h2>

<p>While Cooper has gone to great lengths ensuring search engines can crawl an alternate version of the site, in page search is harder to cater for.</p>

<p>Generally speaking, using the in page search in your browser gets you results from the page you&#8217;re currently looking at. It isn&#8217;t far fetched for a user to think the same applies at cooper.com, but since they basically only have one page, you search their entire site using the browsers in page search!</p>

<p>Add to that, that the browser doesn&#8217;t really know about the fake &#8220;pages&#8221; used on cooper.com it can&#8217;t reliably position the viewport in a way that&#8217;s particularly pretty or useful, making the whole search experience very confusing.</p>


<h2>The vanilla site</h2>

<p>It&#8217;s interesting to note, that Cooper has deemed it necessary to also create a &#8220;vanilla&#8221; version of the website and add a very prominent, always visible link to use to it should you be experiencing &#8220;technical difficulties&#8221;. </p>

<p>Ironically, the &#8220;vanilla&#8221; version solves most the above issues, even though I&#8217;d hardly categorize them as technical difficulties. It also looks just as stylish as the &#8220;Bells and whistles&#8221; version. </p>

<p>Why not just use the vanilla version as the actual and only site? Users would benefit and development/maintenance costs would be lowered. As it is now, users (and Cooper) are paying for &#8220;bells and whistles&#8221; with no obvious benefit. </p>

<p>Is that really worth it? Am I off my rocker? What do you think about <a href="http://cooper.com">cooper.com</a>? </p>]]></description>
			<link>http://mentalized.net/journal/2010/07/15/webdesign_critique_coopercom/</link>
			<guid isPermaLink="false">2049@http://mentalized.net/journal/</guid>
			<comments>http://mentalized.net/journal/2010/07/15/webdesign_critique_coopercom/#comments</comments>
			<pubDate>Thu, 15 Jul 2010 10:09:15 +0100</pubDate>
			<category>Webdesign</category>
		</item>
				<item>
			<title>Your browser wants its back button back</title>
			<description><![CDATA[<p>The other day I was playing around with a potential design for <a href="http://objectpush.com">a little something</a> I&#8217;m working on. After messing about in Photoshop drawing a button that would take the user back to the previous screen, I had to stop and ask myself the million dollar question: &#8220;Why?&#8221;</p>]]><![CDATA[<blockquote><p>Why are you wasting time building something that all browsers already do?</p></blockquote>

<p>All browsers come with a back button. All users know where it is and how to use it (at least partially). Why would I spend even a single minute adding complexity to my interface when the browser gives me the same functionality for free? So I ditched it.</p>


<h2>Goes for print as well</h2>

<p>But the back button isn&#8217;t the only button that&#8217;s often recreated. Another common culprit is the print button. </p>

<p>Now, in the case of printing, I might begrudgingly have to admit that in some cases it makes sense to create a specific printer-friendly view. If you are spreading your content over multiple pages<sup><a href="#footnote1">1</a></sup> offering a print option that prints everything can be a good idea. Perhaps.</p>

<p>However, if all your print button does is invoke the browsers built-in print functionality, you&#8217;re wasting your time and needlessly increasing the complexity of your <span class="caps">UI.</span> Why?</p>

<ol class="footnotes">
  <li id="footnote1">If you are doing this to increase ad impressions, you suck.</li>
</ol>]]></description>
			<link>http://mentalized.net/journal/2010/07/14/your_browser_wants_its_back_button_back/</link>
			<guid isPermaLink="false">2048@http://mentalized.net/journal/</guid>
			<comments>http://mentalized.net/journal/2010/07/14/your_browser_wants_its_back_button_back/#comments</comments>
			<pubDate>Wed, 14 Jul 2010 09:27:06 +0100</pubDate>
			<category>Webdesign</category>
		</item>
				<item>
			<title>RFPs are broken</title>
			<description><![CDATA[<p>Last week I did something I very rarely do. I - together with visual designers, <a href="http://barq.dk">barq</a> - replied to a Request For Proposal. The experience confirmed my suspicion that <span class="caps">RFP</span>s are indeed a broken concept.</p>]]><![CDATA[<h2>Too much detail</h2>

<p>When you receive an <span class="caps">RFP, </span>way too many choices have already been made. Most <span class="caps">RFP</span>s I have read tend to read like the customer telling the chef how to cook the food. That&#8217;s not how you get a great meal.</p>

<p>Great projects are built in cooperation between someone who knows how to detect and define their problems and someone who can come up with and craft great solutions to solve those problems.</p>

<p>In our specific case, the customer had already done internal stakeholder and user interviews, and from our one meeting with them, I am certain they already knew exactly how they wanted their site to look and feel and what features it should have.</p>

<p>Quite frankly, that means we entered the process too late. The opportunity to challenge concepts and ideas is long gone and the solution has already been worked out - if not on paper, the definitely in the minds of the client.</p>


<h2>Not enough detail</h2>

<p>Many <span class="caps">RFP</span>s also include an expectation that the resulting proposal contains a price. Usually a fixed price, but in some cases a price-range is considered acceptable. That&#8217;s fine, having some sense of the price of a project is obviously a fairly important part of making a decision between multiple vendors. </p>

<p>I don&#8217;t think, however, that I have ever seen an <span class="caps">RFP </span>that contained enough information for me to realistically estimate the cost of a project - or at least not very accurately. At the point of the development process where <span class="caps">RFP</span>s appear, there are bound to be a ton of questions and uncertain elements. Sure, you could add those extra details to the <span class="caps">RFP, </span>but that&#8217;s a terrible idea - they are already too detailed, remember?</p>

<p>As a respondent, your safe bet is to create an estimate with a huge price range due to the uncertainties and risks inherent in a <span class="caps">RFP.</span> That&#8217;s unfortunately going to increase the perceived project costs significantly.</p>

<p>Alternatively, you can start dissecting the <span class="caps">RFP, </span>questioning the so-called requirements and generally come off as critical, hard to work with, and non-accepting of the work your potential client has put into the <span class="caps">RFP.</span> Not exactly a positive way to start off a relationship.</p>


<h2><span class="caps">RFP</span>s could work</h2>

<p>I guess <span class="caps">RFP</span>s can work in some cases. If you&#8217;re shopping for off-the-self solutions a <span class="caps">RFP </span>will likely work just fine as you&#8217;re basically comparing a list of &#8220;requirements&#8221; to the feature list of a product. When you&#8217;re shopping for commodities.</p>

<p>Design and development projects aren&#8217;t commodities however. There is always a lot of things you&#8217;ll learn, decisions that will be reverted, and ideas that will appear as part of the development process. </p>

<p>That is to be expected. Those are the things that make your product even better than what you intended. When you and your vendor adapt and improve as you learn more about the actual product you&#8217;re building. </p>

<p>Sending out a <span class="caps">RFP </span>is in direct opposition to that - why would you want that?</p>]]></description>
			<link>http://mentalized.net/journal/2010/06/23/rfps_are_broken/</link>
			<guid isPermaLink="false">2045@http://mentalized.net/journal/</guid>
			<comments>http://mentalized.net/journal/2010/06/23/rfps_are_broken/#comments</comments>
			<pubDate>Wed, 23 Jun 2010 12:37:50 +0100</pubDate>
			<category>Business</category>
		</item>
				<item>
			<title>My comic feeds</title>
			<description><![CDATA[<p>I was asked on Twitter what feeds I have in my Comics/Humor category in my feed reader. Since 140 characters isn&#8217;t enough, the list goes here instead:</p>]]><![CDATA[
<ul>
<li><a href="http://bradcolbow.com/">The Brads</a></li>
<li><a href="http://cad-comic.com/">Ctrl+Alt+Del</a></li>
<li><a href="http://dilbert.com">Dilbert</a></li>
<li><a href="http://thenoobcomic.com/">The noob</a></li>
<li><a href="http://penny-arcade.com/comic/">Penny Arcade</a></li>
<li><a href="http://pvponline.com">PvPonline</a></li>
<li><a href="http://savagechickens.com/">Savage Chickens</a></li>
<li><a href="http://wulffmorgenthaler.com/">wulffmorgenthaler</a></li>
<li><a href="http://xkcd.com">xkcd</a></li>
</ul>



<p>If you sense a slight geek/gamer direction in those, you would be correct.</p>]]></description>
			<link>http://mentalized.net/journal/2010/06/15/my_comic_feeds/</link>
			<guid isPermaLink="false">2044@http://mentalized.net/journal/</guid>
			<comments>http://mentalized.net/journal/2010/06/15/my_comic_feeds/#comments</comments>
			<pubDate>Tue, 15 Jun 2010 13:18:20 +0100</pubDate>
			<category>Life</category>
		</item>
				<item>
			<title>Feed the trolls: Launch your project now</title>
			<description><![CDATA[<p>One of the many things I try to make my customers realize, is that their web application is never done. </p>

<p>There is always something that can be made easier to use, pages that can be made to load faster, new features that can be implemented, existing features that can be made more powerful, or landing pages that can be optimized.</p>]]><![CDATA[<p><a href="http://pixar.com">Pixar</a> is a big inspiration to me, so it was pretty cool <a href="http://www.lettersofnote.com/2010/06/pixar-films-dont-get-finished-they-just.html">seeing</a> that John Lasseter has the same approach regarding their movies</p>

<blockquote><p>Our films don&#8217;t get finished, they just get released</p></blockquote>

<p>When you release a movie, that&#8217;s it, no more changes (unless you later release a Directors Cut or Special Edition or whatever that only a fraction of people will see). It must be hard for perfectionists like the Pixar crew to know that there are scenes being shown that could have improved.</p>

<p>In the software business - at least in the web software business - we don&#8217;t have that constraint. We can launch a product and continuously improve it after the fact. And we should. </p>

<p>As Paul Graham <a href="http://www.paulgraham.com/really.html">puts it</a>:</p>

<blockquote><p>If your first version is so impressive that trolls don&#8217;t make fun of it, you waited too long to launch</p></blockquote>

<p>Feed the <a href="http://techcrunch.com">trolls</a>; launch your product now. Make it real, then iterate the crap out of it based on feedback from actual users.</p>]]></description>
			<link>http://mentalized.net/journal/2010/06/14/feed_the_trolls_launch_your_project_now/</link>
			<guid isPermaLink="false">2043@http://mentalized.net/journal/</guid>
			<comments>http://mentalized.net/journal/2010/06/14/feed_the_trolls_launch_your_project_now/#comments</comments>
			<pubDate>Mon, 14 Jun 2010 10:51:44 +0100</pubDate>
			<category>Business</category>
		</item>
				<item>
			<title>Rails 3: Responding with Excel</title>
			<description><![CDATA[<p>The following is a short code snippet from my Rails 3 presentation at <a href="http://communityday.in/copenhagen/">Community Day</a> last week. I&#8217;m putting it here, because it&#8217;s such a nifty little piece of code.</p>

<p>It answers an feature request I seem to get fairly often; &#8220;please make it possible to download an Excel file of data&#8221;. Traditionally I&#8217;ve relied on good ole <span class="caps">CSV </span>for that, but it&#8217;s a bit tricky to get just right with Excel. Besides, the customer explicitly said Excel file, so let&#8217;s give her that.</p>]]><![CDATA[<h2>Cheating</h2>

<p>We&#8217;ll cheat and use a few gems to do the heavy lifting for us. Namely the <a href="http://github.com/splendeo/to_xls">to_xls gem</a> that &#8220;transforms an Array into a excel file&#8221;. Internally it relies on the using the <a href="http://spreadsheet.rubyforge.org/">spreadsheet gem</a> that handles the actual Excel file for us.</p>

<p>In your Gemfile:</p>

<pre><code>gem 'to_xls'</code></pre>


<h2>The custom renderer</h2>

<p>Add the following code to config/initializers/xls_responder.rb</p>

<pre><code class="ruby">Mime::Type.register &quot;application/vnd.ms-excel&quot;, :xls ActionController::Renderers.add :xls do |object, options|
  self.send_data object.to_xls_data, :type =&gt; :xls
end</code></pre>

<p>To be honest, I am not entirely sure where it&#8217;d make most sense to put this. Well, I do; in a gem of its own, but that&#8217;s a bit overkill for this article. An initializer will suffice for now.</p>

<p>In short, what that code does is</p>


<ol>
<li>Tell Rails about the Excel mimetype</li>
<li>Create a Renderer that handles the :xls format by&#8230;
<ol>
<li>&#8230; converting the object that we respond_with into xls_data</li>
<li>&#8230; sending that data to the user agent using the :xls format</li>
</ol>
</li>
</ol>



<p>And that&#8217;s practically all we need.</p>


<h2>Respond this!</h2>

<p>In whatever controller you need to return an Excel document for (in this case, I&#8217;ve added it to users#index to allow me to get an Excel spreadsheet with all my users:</p>

<pre><code class="ruby">class UsersController &lt; ApplicationController::Base
  respond_to :html, :xml, :json
  respond_to :xls, :only =&gt; :index
  def index
    respond_with(@users = User.all)
  end
end</code></pre>

<p>Visiting /users.xls your browser should ask you to download a Excel file, which then can be doubleclicked and opens in Excel (I guess, I don&#8217;t actually have Excel. It opens just fine in <a href="http://www.neooffice.org/">NeoOffice</a> and <a href="http://apple.com/iwork/numbers/">Numbers</a>, though).</p>


<h2>Customizing</h2>

<p>This is obviously more a proof of concept than actually usable production code. In real life we&#8217;d probably want some way to customize the rendered document, what columns to include and how to format them and whatnot.</p>

<p>Perhaps there&#8217;s opportunity for an Excel-builder templating format here? <span class="caps">PDI.</span></p>]]></description>
			<link>http://mentalized.net/journal/2010/06/04/rails_3_responding_with_excel/</link>
			<guid isPermaLink="false">2042@http://mentalized.net/journal/</guid>
			<comments>http://mentalized.net/journal/2010/06/04/rails_3_responding_with_excel/#comments</comments>
			<pubDate>Fri, 04 Jun 2010 09:29:57 +0100</pubDate>
			<category>Programming</category>
		</item>
				<item>
			<title>Idea: fontstack.com</title>
			<description><![CDATA[<p>Here&#8217;s an idea I had the other day. I am putting it out to the world because I&#8217;d love to see it realized. While I could do it myself, I already have enough on my plate - and knowing myself, I&#8217;ll never get around to it.</p>

<p><ins>Update: Someone is watching - between me posting this and today (roughly 24 hours later) the domain name has been registered. Sleazy domain-shark register-bot or quick-fire entrepreneur? Your guess is as good as mine.</ins></p>]]><![CDATA[<h2>Use case</h2>

<p>I was recently tasked with <a href="http://bornibyen.dk">implementing a design</a> using the <a href="http://www.fonts.com/FindFonts/detail.htm?pid=201908">Rockwell</a> font. Rockwell is not a free font, and as far as I could tell, not licensed for embedding. </p>

<p>That left me with simply relying on users having the font installed, and only <a href="http://www.codestyle.org/css/font-family/sampler-CombinedResultsFull.shtml">around 60% do</a>. That meant I had to come up with some decent alternative fonts, preferably with a similar appearance and size. </p>

<p>What I would love for someone to build, is a site where I can look at the page for Rockwell and see a list of alternative fonts resembling it - preferably ordered by resemblance. </p>

<p>For extra credits a pre-made font-stack could be provided, ready for me to copy/paste into my <span class="caps">CSS. </span></p>

<p>A powerful extra feature would be statistics of font usage, so I can see an estimate of how many people will see what font on my site. </p>


<h2>Crowd-sourcing</h2>

<p>Surely, building a library of all fonts, their alternatives and how much they look like each other is a huge task and I figure this could be crowd-sourced. Let the community suggest alternatives and vote on the already suggested alternatives. This definitely seems like something where a lot of people have ideas and knowledge they could share.</p>


<h2>Monetization?</h2>

<p>I tend to always fail at coming up with great ways to monetize services - outside of flat out having people pay to use them. I think a different model would be better for a site like this, as the usefulness of the service increase with the amount of users adding their knowledge. </p>

<p>Affiliate links to font sales is a fairly obvious choice. Ads is always an option, I guess, and the users of the site would be pretty well segmented. </p>

<p>Anyways, here&#8217;s hoping someone smarter than me can figure it out and make it work.</p>


<p>PS: For reference, here&#8217;s the font-stack I did end up using:</p>

<pre><code class="css">font-family: rockwell, 'rockwell std', Serifa, 'Serifa Std', Glypha, 'Glypha Std', Memphis, 'Memphis Std', 'Museo Slab', arial, sans-serif;</code></pre>]]></description>
			<link>http://mentalized.net/journal/2010/05/17/idea_fontstackcom/</link>
			<guid isPermaLink="false">2041@http://mentalized.net/journal/</guid>
			<comments>http://mentalized.net/journal/2010/05/17/idea_fontstackcom/#comments</comments>
			<pubDate>Mon, 17 May 2010 09:12:35 +0100</pubDate>
			<category>Projects</category>
		</item>
				<item>
			<title>Freelance focus</title>
			<description><![CDATA[<p>Being self-employed is hard. Having no one around to tell you what to do brings up a slew of problems, one is that of focus.</p>

<p>Should I start another personal project, learn a new technology, create a (well, <a href="http://mentalized.net/journal/2010/03/15/introducing_progress_wars/">another</a>) small game, start working on a long overdue redesign of mentalized.net, build an iApp (what is the common denominator for iPod Touch, iPhone, and iPad apps?), write a blog post, something else?</p>

<p>And that list doesn&#8217;t even include the important stuff like relax in front of the X-Box, watch a movie, take a walk through the forest with the wife, play with the dog, or make my son laugh. </p>

<p>How does one stay focused in that environment?</p>]]><![CDATA[<h2>Strategic focus</h2>

<p>Strategic focus is figuring out what to do in the long term. Where do you want to take your business the next year or more. This is where your vision for your company lives.</p>

<p>Arguably this is the most tricky part to get right. If you&#8217;re <a href="http://mentalized.net/journal/2010/01/31/freelancing_lessons_learned/">like me</a>, you&#8217;re constantly thinking about your business, where to take it, and how to improve it. Naturally, this generates a ton of long term ideas - unfortunately constraints in time, money, and energy tends to mean you can only execute on a select few.</p>

<p>Unfortunately, I have no golden nuggets of wisdom here, and I would love to hear how you handle this. </p>

<p>One thing I do is to try to not get too excited about new ideas/projects. I quickly jot them down in my notebook to get them out of my head. This way, I don&#8217;t feel like I have lost the opportunity, which in return means I can easier let it go for and focus on what&#8217;s more important here and now.</p>


<h2>Tactical focus</h2>

<p>Tactical focus is what you do on a daily/weekly basis. What do you need to do today? In many cases this has already been decided for you by your strategic focus and your clients and their deadlines. </p>

<p>One of the things a good boss does for you is to provide you with the focus; make it clear to you what short term goal is most important right now. Luckily, a boss can be replaced with a piece of paper.</p>


<h2>The printable <span class="caps">CEO</span></h2>

<p>I&#8217;ve been using David Seahs excellent <a href="http://davidseah.com/blog/the-printable-ceo/">Printable <span class="caps">CEO</span></a> to help me focus my daily schedule. The geek in me finds it liberating to assign point values to my tasks, and working my task list from the top down is a great productivity enabler. </p>

<p>It can be hard to figure out what&#8217;s more valuable; writing a blog post or replying to an email from a potential new customer. Luckily the choice have already been made as 2 points is far less than 10 points, so the email trumps. </p>

<p>At least that&#8217;s the theory. </p>

<p>It should come as no surprise to any entrepreneur that the real world rarely conforms to rigid rules like this, and in many cases you have to be a bit more loose in the order you complete your tasks. Human evaluation trumps machine ordering any day in this case.</p>


<h2>It&#8217;s not just for internal tasks</h2>

<p>Lately, I&#8217;ve extended a variant of the printable <span class="caps">CEO </span>concept to one of my customers as well. When we discuss new features I and create new user stories I ask them to assign a point value to the story, indicating how important this particular story is to their business goals. </p>

<p>So far it has been a great tool for focusing our development efforts - and it has been particularly good at weeding out &#8220;nice to have&#8221;-features that seemed important, but failed to stand up to closer scrutiny.</p>


<p>Now, if you&#8217;ll excuse me, I have to focus on something that&#8217;s worth 10 points, not just the measly 2 I get from writing this blog post.</p>]]></description>
			<link>http://mentalized.net/journal/2010/05/10/freelance_focus/</link>
			<guid isPermaLink="false">2038@http://mentalized.net/journal/</guid>
			<comments>http://mentalized.net/journal/2010/05/10/freelance_focus/#comments</comments>
			<pubDate>Mon, 10 May 2010 10:02:57 +0100</pubDate>
			<category>Business</category>
		</item>
				<item>
			<title>Explaining progressive enhancement</title>
			<description><![CDATA[<p>Trying to explain <a href="http://www.alistapart.com/articles/understandingprogressiveenhancement/">progressive enhancement</a> (or graceful degredation, for that matter) to someone that isn&#8217;t used to dealing in abstraction layers, interfaces, and presentation formats, is near impossible. </p>

<p>Not surprisingly, most clients fall in that category.</p>

<h2>Game consoles</h2>

<p>Paul Stanton suggests using <a href="http://coffeepowered.co.uk/2010/02/an-analogy-for-progressive-enhancement/">games consoles as an analogy for progressive enhancement</a> and while I see the appeal of that analogy, it does have some huge flaws (like any good analogy), so I tend to go another route.</p>]]><![CDATA[<h2>Television setups</h2>

<p><a href="http://www.flickr.com/photos/schmilblick/" title="Image by schmilblick"><img src="/files/journal/explaining_progressive_enhancement/252772357_e5e0115d32.jpg" alt="This is IE6 displaying your website" /></a></p>

<p>Instead, I&#8217;ve been toying with using TV as an analogy; If you watch a movie on a huge, wide screen, high definition, digital television hooked up to a state of the art sound system you&#8217;re getting a vastly better experience than watching the exact same movie on a small black and white TV without loud speakers. The content is the same, but the device used to consume it delivers the content differently.</p>


<h2>It&#8217;s good enough</h2>

<p>The benefit of this analogy, is that practically everyone has a TV and probably knows someone who has a vastly better or inferior <span class="caps">TV.</span> And the range of TV setups is pretty big (standard vs high definition, 720i vs 1080p, widescreen or not, HD recorders attached, 2D vs 3D, cable vs antenna) - I just outlined the extremes above.</p>

<p>It should also be obvious that the TVs are displaying the same content, they are just delivering it differently. Conversely the consumer can improve their experience by upgrading their TV setup. Coincidentally, over the last few years pretty much everyone (at least in Denmark and the US) has done just that as broadcasters have gone from analog to digital signals.</p>


<h2>It&#8217;s perfect!</h2>

<p>Like any good analogy this probably has a ton of huge flaws, if you really dig into it. Luckily most clients don&#8217;t want to dig into it, they just want to understand what the heck I am talking about. </p>

<p>Do you have any experiences explaining concepts like this to &#8220;normal&#8221; people?</p>]]></description>
			<link>http://mentalized.net/journal/2010/05/03/explaining_progressive_enhancement/</link>
			<guid isPermaLink="false">2040@http://mentalized.net/journal/</guid>
			<comments>http://mentalized.net/journal/2010/05/03/explaining_progressive_enhancement/#comments</comments>
			<pubDate>Mon, 03 May 2010 08:50:31 +0100</pubDate>
			<category>Webdesign</category>
		</item>
				<item>
			<title>The case against single line CSS</title>
			<description><![CDATA[<p>More is better - at least when it comes to lines of <span class="caps">CSS.</span> I personally prefer putting each <span class="caps">CSS </span>rule on their own line in my <span class="caps">CSS </span>files, but some people have advocated the use of putting each of your <span class="caps">CSS </span>rules on a single line, like so:</p>

<pre><code class="css">#wrapper            {width:800px; margin:0 auto;}
#header             {height:100px; position:relative;}
#feature .post      {width:490px; float:left;}
#feature .link      {width:195px; display:inline; margin:0 10px 0 0; float:right;}
#footer             {clear:both; font-size:93%; float:none;}</code></pre>

<p>This single line approach makes it easy to scan through a stylesheet and find the selector you want to modify. But that&#8217;s also about as far as the benefits go for this approach. </p>]]><![CDATA[<h2>Indecipherable rules</h2>

<p>Finding a particular attribute in that list is hard, and it can get really hard to quickly grasp what a rule is doing. For example, this actual rule from <a href="http://substancelab.com">substancelab.com</a> is not all that easy scan, is it?</p>

<pre><code class="css">.more { color: #ffffff; background-color: #326880; display: block; font-weight: bold; padding: 5px 10px; text-align: center; text-decoration: none; color: #326880; text-shadow: #163440 1px 1px 2px; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; }</code></pre>


<h2>Makes refactoring harder</h2>

<p>The order of attributes in a <span class="caps">CSS </span>rule matters. While jumbling them all together in one big pile does preserve the order, it also makes it harder to change the order. Instead of cutting an entire line and moving it up and down, you now need to slice out the bits from the middle of some long line, and try to find the proper position in that same, hard to scan line. Not optimal.</p>


<h2>Messes up your source control</h2>

<p>Source control management software is generally speaking line-based. If you change one little thing in a single line rule, for example the mistake in the .more rule above (you did see that, right?), the entire line will register as having been changed. </p>

<p>While not a big deal initially, it makes a huge difference when you want to merge changes with another branch or someone elses changes. Two individual lines that has been changed can easily be merged, while two changes to the same line will cause a conflict. Conflicts are bad, mmkay?</p>


<h2>Who scans anyways?</h2>

<p>Seriously, who scans through a <span class="caps">CSS </span>file anyways? Even when put into single lines, the stylesheet from <a href="http://bornibyen.dk">bornibyen.dk</a> contains 600+ lines - that&#8217;s too many to comfortably scan through. </p>

<p>And why would I scan through it when I can reliably jump to the rule I want using <a href="http://macromates.org">TextMates</a> &#8220;Go to Symbol&#8221; - your editor does support something like that, right?</p>


<h2>Why manually fold code?</h2>

<p>Speaking of editor support, here&#8217;s how a multiline stylesheet looks in my editor:</p>

<pre><code class="ruby">.header .gradient {…
.header .branding {…
.header .branding .logo {…
.header .branding .logo .tagline {…</code></pre>

<p>Absolutely perfectly scannable if that&#8217;s what I wanted to do. And if you want to edit one of the above a simple keypress unfolds the entire rule. It&#8217;s almost magic, and it plays nicely with your <span class="caps">SCM, </span>is easy to scan, the attributes are decipherable, and it&#8217;s easy to change. </p>

<p>For once, more is indeed better.</p>]]></description>
			<link>http://mentalized.net/journal/2010/04/26/the_case_against_single_line_css/</link>
			<guid isPermaLink="false">2039@http://mentalized.net/journal/</guid>
			<comments>http://mentalized.net/journal/2010/04/26/the_case_against_single_line_css/#comments</comments>
			<pubDate>Mon, 26 Apr 2010 08:45:02 +0100</pubDate>
			<category>Technology</category>
		</item>
			
	</channel>
</rss>