<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0" xml:base="http://jeroencoumans.nl">
<channel>
 <title>Jeroen Coumans's blog</title>
 <link>http://jeroencoumans.nl/journal/jeroen-coumans</link>
 <description />
 <language>en</language>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/JeroenCoumansBlog" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
 <title>Drupal user account pages</title>
 <link>http://feedproxy.google.com/~r/JeroenCoumansBlog/~3/_1It8sJQpUU/drupal-user-account-pages</link>
 <description>&lt;p&gt;It&amp;#8217;s the little things that count&amp;#8230;&lt;/p&gt;

	&lt;p&gt;On a default Drupal installation, the user account could really use some love and attention. There are a number of predefined pages to allow users to register themselves on the website, but the usability of these pages is pretty bad. This post is about one little example: they all share the same title. I&amp;#8217;m going to show you how you can fix that. &lt;/p&gt;

	&lt;p&gt;&lt;!--break--&gt;&lt;/p&gt;

	&lt;p&gt;Have a look at the drupal.org &lt;a href="http://drupal.org/user/register"&gt;register&lt;/a&gt;, &lt;a href="http://drupal.org/user"&gt;log in&lt;/a&gt; and &lt;a href="http://drupal.org/user/password"&gt;request new password&lt;/a&gt; pages. You&amp;#8217;ll note that each one has a head title of &amp;#8220;User account | drupal.org&amp;#8221;, and a page title of &amp;#8220;User account&amp;#8221;. While each page certainly has a different function, why would they all have the same titles? That&amp;#8217;s just weird and plain bad usability &amp;#8211; a page title should be descriptive of the main function of a page.&lt;/p&gt;

	&lt;p&gt;Anyway, there are ways to override that. Drupal uses a placeholder variable to dynamically determine the page and head title based on the internal path. In your theme, you&amp;#8217;ll find something like the following:&lt;/p&gt;

	&lt;p&gt;&lt;code&gt;&amp;#60;title&amp;#62;&amp;#60;?php print $head_title ?&amp;#62;&amp;#60;/title&amp;#62;&lt;/code&gt;&lt;/p&gt;

	&lt;p&gt;And:&lt;/p&gt;

	&lt;p&gt;&lt;code&gt;&amp;#60;h1&amp;#62;&amp;#60;?php print $title ?&amp;#62;&amp;#60;/h1&amp;#62;&lt;/code&gt;&lt;/p&gt;

	&lt;p&gt;Since Drupal determines its context based on the path that is requested, simply checking for the arguments which are passed to the page is enough. &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
&amp;#60;h1&amp;#62;&amp;#60;?php 
if (arg(0)  'user' &amp;&amp; arg(1)  &amp;#39;register&amp;#39;) :
  print t(&amp;#39;Create new account&amp;#39;);
elseif (arg(0)  'user' &amp;&amp; arg(1)  &amp;#39;password&amp;#39;) :
  print t(&amp;#39;Request new password&amp;#39;);
elseif (arg(0)  'user' &amp;&amp; arg(1)  &amp;#39;login&amp;#39;) :
  print t(&amp;#39;Log in&amp;#39;);
elseif (arg(0)  'user' &amp;&amp; arg(1)  &amp;#39;&amp;#39;) :
  print t(&amp;#39;Log in&amp;#39;);
else:
  print $title;
endif; 
?&amp;#62;&amp;#60;/h1&amp;#62;
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;It&amp;#8217;s really simple &lt;span class="caps"&gt;PHP&lt;/span&gt;, checking for the first and second arguments (&lt;code&gt;arg(0) &lt;/code&gt; and &lt;code&gt; arg(1)&lt;/code&gt;). Note that instead of printing out the text, it&amp;#8217;s wrapped in the &lt;a href="http://api.drupal.org/api/function/t"&gt;t&lt;/a&gt; function, which will make it translatable. That way, you don&amp;#8217;t have to edit the theme in order to translate your texts afterwards. &lt;br /&gt;
As you can see, there are two checks for the login page. That&amp;#8217;s because both the &lt;var&gt;user&lt;/var&gt; and the &lt;var&gt;user/login&lt;/var&gt; pages present a login page, and the Drupal menu that is presented on the account pages defaults to the &lt;var&gt;user&lt;/var&gt; page. So we have to check if the second argument is empty, and if it&amp;#8217;s not, print the title of the login page. If we didn&amp;#8217;t add that extra check, we&amp;#8217;d have overridden the default user account pages, which all follow the form &lt;var&gt;user/uid&lt;/var&gt;, where uid is the numerical id of the user. &lt;/p&gt;

	&lt;p&gt;Just adding the same checks to the &lt;code&gt;&amp;#60;head&amp;#62;&lt;/code&gt; title will suffice to change it there as well. Full credit goes to the Drupal community, as this snippet  is based on &lt;a href="http://drupal.org/node/100450"&gt;drupal.org&lt;/a&gt;. You can see it in action on the new &lt;span class="caps"&gt;CJP&lt;/span&gt; website: &lt;a href="http://beta.cjp.be/user"&gt;login&lt;/a&gt;, &lt;a href="http://beta.cjp.be/user/register"&gt;register&lt;/a&gt; and &lt;a href="http://beta.cjp.be/user/password"&gt;forgot password&lt;/a&gt;. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/JeroenCoumansBlog/~4/_1It8sJQpUU" height="1" width="1"/&gt;</description>
 <comments>http://jeroencoumans.nl/journal/drupal-user-account-pages#comments</comments>
 <category domain="http://jeroencoumans.nl/journal/tag/drupal">drupal</category>
 <pubDate>Thu, 09 Oct 2008 06:10:09 +0000</pubDate>
 <dc:creator>Jeroen Coumans</dc:creator>
 <guid isPermaLink="false">3837 at http://jeroencoumans.nl</guid>
<feedburner:origLink>http://jeroencoumans.nl/journal/drupal-user-account-pages</feedburner:origLink></item>
<item>
 <title>Thesis abstract</title>
 <link>http://feedproxy.google.com/~r/JeroenCoumansBlog/~3/50KsPzNP9WA/thesis-abstract</link>
 <description>&lt;p&gt;&lt;a href="http://www.flickr.com/photos/jeroencoumans/2349810009" title="Thesis abstract image"&gt;&lt;img src="http://farm4.static.flickr.com/3292/2349810009_e9fa259492.jpg" alt="Thesis abstract image" title="Thesis abstract image"  class=" flickr-photo-img" height="500" width="359" /&gt;&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;An average human being is capable of keeping approximately 6 items in his short-term memory. Then why do we still think it&amp;#8217;s natural that websites present us dozens, or even hundreds, of links to navigate through them? &lt;/p&gt;

	&lt;p&gt;According to Jakob Nielsen, &lt;a href="http://www.useit.com/alertbox/20000109.html"&gt;navigation on the web is often overdone&lt;/a&gt;: there are too many links on a page. His research shows that users ignore navigation area&amp;#8217;s and dive straight into the content area. Despite the growing importance of disciplines such as information architecture and usability research, or the use of design patterns and content management systems in the website development process, navigation is still fundamentally based on clicking links in lists. Let&amp;#8217;s not forget that the Web as medium is still very young: &amp;#8220;I think the Internet is still on Day One… You can’t predict some of the really big changes. Who would have said that the development of the automobile would have led to suburbia?&amp;#8221; (Jeff Bezos, Amazon &lt;span class="caps"&gt;CEO&lt;/span&gt;). So there is still plenty of opportunity for experiments with new interfaces to make information accessible. That is also the purpose of this thesis. Through a design research, this thesis will focus on exploring different concepts of website navigation. &lt;/p&gt;

	&lt;p&gt;&lt;!--break--&gt;&lt;/p&gt;

	&lt;p&gt;To escape the confines of current ideas of &amp;#8216;navigation&amp;#8217;, this research will try to come up with different metaphors for navigation by doing user research in the form of a narrative enquiry. An example of an often used metaphor is the word &amp;#8216;menu&amp;#8217;, which relates the choice of a webpage with the choice of a dish in a restaurant. What other metaphors are conceivable, and what interaction concepts can be designed around them? This will be the central theme of the first part of the research. &lt;/p&gt;

	&lt;p&gt;Then the state of the art of user interfaces and interaction design will be examined to determine what concepts may be usable to create alternative forms of website navigation. For example, the concept of the Zoomable User Interface (&lt;span class="caps"&gt;ZUI&lt;/span&gt;) is based on distance: the further away an item is, the smaller it appears. Full details are visible when something is &amp;#8216;zoomed in&amp;#8217;. This is very effectively used on Google Maps. Another example is the Textual User Interface (&lt;span class="caps"&gt;TUI&lt;/span&gt;), which is language-based and works by giving commands to the computer. Thanks to its speed and extensibility, this is a very powerful interaction mechanism. Although it may seem like nothing new, as command prompts are as old as the &amp;#8217;70&amp;#8217;s, these principles are rarely used on websites, with search interfaces as the proverbial exception to the rule. &lt;/p&gt;

	&lt;p&gt;The result of these and other experiments will be a series of paper prototypes, wireframes, design mockups and proof of concepts. These will be analysed from a qualitative point of view with user research, and documented through thick descriptions. Of course, I will publish my results here in my journal as much as possible. &lt;/p&gt;

	&lt;p&gt;A &lt;a href="/portfolio/2008/03/thesis-abstract-cover"&gt;write-up of the creation of the thesis image&lt;/a&gt; can be found in my portfolio. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/JeroenCoumansBlog/~4/50KsPzNP9WA" height="1" width="1"/&gt;</description>
 <comments>http://jeroencoumans.nl/journal/thesis-abstract#comments</comments>
 <category domain="http://jeroencoumans.nl/journal/tag/c-md">c-md</category>
 <pubDate>Fri, 21 Mar 2008 19:25:30 +0000</pubDate>
 <dc:creator>Jeroen Coumans</dc:creator>
 <guid isPermaLink="false">3540 at http://jeroencoumans.nl</guid>
<feedburner:origLink>http://jeroencoumans.nl/journal/thesis-abstract</feedburner:origLink></item>
<item>
 <title>Identity management</title>
 <link>http://feedproxy.google.com/~r/JeroenCoumansBlog/~3/pM9IPEy4J08/identity-management</link>
 <description>&lt;p&gt;&lt;a href="http://www.flickr.com/photos/jeroencoumans/2340481553" title="My website anno 2008"&gt;&lt;img src="http://farm4.static.flickr.com/3087/2340481553_923aec1e4c.jpg" alt="My website anno 2008" title="My website anno 2008"  class=" flickr-photo-img" height="500" width="269" /&gt;&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;As the World Wide Web continues to evolve, people use it for increasingly personal and social purposes. The current social networking sites are quickly gaining critical mass, moving the adoption curve forward from an early majority to the late majority. In the Netherlands, Internet usage in is still rising, and the skills of surfers continue to improve. According to the Dutch bureau of statistics &lt;span class="caps"&gt;CBS&lt;/span&gt;, &lt;a href="http://www.cbs.nl/nl-NL/menu/themas/vrije-tijd-cultuur/publicaties/artikelen/archief/2008/2008-2397-wm.htm"&gt;more than 2 million people have designed a webpage&lt;/a&gt;. &lt;br /&gt;
As we put more of ourselves online, our identity expressions become more and more shattered throughout the web. Facebook, Flickr, Last.fm and Hyves all represent a small piece of me and my online identity. Bringing these all together will take a couple of years, although with developments like OpenSocial, OpenAuth and OpenID the first building blocks are in the pipelines. &lt;/p&gt;

	&lt;p&gt;Anyway, the whole reason of this introduction is that I&amp;#8217;ve made a small step in consolidating my Web presence &amp;#8211; I have now merged my portfolio into my blog. I really liked the design of my portfolio so I tried to keep as many aspects of it as possible, and only made small tweaks as necessary (although there are many of them&amp;#8230;). There are some big improvements to the design though, mostly fixing mistakes from &lt;a href="/journal/redesign"&gt;my last redesign&lt;/a&gt;. &lt;/p&gt;

	&lt;p&gt;&lt;!--break--&gt;&lt;/p&gt;

	&lt;p&gt;First of all is a return of a navigation block at the top of the page. Since the previous incarnation only had two really big sections (the blog and the links), I didn&amp;#8217;t see a need for a permanent navigation block. But it&amp;#8217;s back with a vengeance, sporting a shiny jQuery-powered rollover effect. &lt;/p&gt;

	&lt;p&gt;The &lt;a href="/journal"&gt;journal&lt;/a&gt; itself now boasts 10 entries again. This means more scrolling, but less paging, which is a Good Thing. This is more conform the &lt;a href="/journal/design-and-usability-updates"&gt;Mullet-style layout&lt;/a&gt; I originally intended for the journal. &lt;/p&gt;

	&lt;p&gt;My &lt;a href="/elsewhere"&gt;elsewhere&lt;/a&gt; section, where I aggregate all my favorite website links, has dramatically improved thanks to the use of a four-column grid design. It&amp;#8217;s one of those improvements that seem so obvious in rertospect that I wonder why I didn&amp;#8217;t come up with it sooner. I&amp;#8217;ve also increased the item count to 100, which is quite hefty, but very manageable. I found myself getting caught up browsing through my old links again, re-discovering old gems! &lt;/p&gt;

	&lt;p&gt;Thanks to the power of Drupal, I&amp;#8217;m able to organize my portfolio in some pretty cool ways. Using the taxonomy module, every portfolio item is tagged with the medium or technology in which it is created. With the books module I created 5 distinct sections through which you can browse: my current &lt;a href="/portfolio/freelance"&gt;freelance work&lt;/a&gt;, &lt;a href="/portfolio/cmd"&gt;&lt;span class="caps"&gt;C-MD&lt;/span&gt; work&lt;/a&gt;, &lt;a href="/portfolio/solide"&gt;Solide work&lt;/a&gt;, &lt;a href="/portfolio/print"&gt;print&lt;/a&gt;, and my early &lt;a href="/portfolio/art"&gt;art work&lt;/a&gt;. For the &lt;a href="/portfolio"&gt;landingspage&lt;/a&gt; I decided to use large thumbnails, giving an immediate (and for some, sufficient) idea of my work. Clicking on the images shows a larger version in a lightbox, while clicking the title or the casestudy link will take you to the permanent link of a portfolio page.&lt;/p&gt;

	&lt;p&gt;Getting this all to work in Drupal the way I wanted to involved some heavy themeing work, which I&amp;#8217;d be happy to write up if anyone&amp;#8217;s interested. Unfortunately, there were quite some places where I couldn&amp;#8217;t override a theme function or manipulate Drupal&amp;#8217;s &lt;span class="caps"&gt;HTML&lt;/span&gt; output (I&amp;#8217;m looking at you, Views module), and it was time-consuming to find the proper way to handle these cases. I resorted to manipulating the &lt;span class="caps"&gt;DOM&lt;/span&gt; with jQuery to fix some annoying bugs. &lt;/p&gt;

	&lt;p&gt;I made no effort whatsoever to get this working in Internet Explorer 6. I don&amp;#8217;t intend to either, unless anyone has compelling arguments otherwise. Less than 4% of my visitors uses Internet Explorer 6, which is such an insignificant amount that it doesn&amp;#8217;t warrant the extra development time and headaches. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/JeroenCoumansBlog/~4/pM9IPEy4J08" height="1" width="1"/&gt;</description>
 <comments>http://jeroencoumans.nl/journal/identity-management#comments</comments>
 <category domain="http://jeroencoumans.nl/journal/tag/personal">personal</category>
 <category domain="http://jeroencoumans.nl/journal/tag/website">website</category>
 <pubDate>Mon, 03 Mar 2008 16:56:47 +0000</pubDate>
 <dc:creator>Jeroen Coumans</dc:creator>
 <guid isPermaLink="false">3496 at http://jeroencoumans.nl</guid>
<feedburner:origLink>http://jeroencoumans.nl/journal/identity-management</feedburner:origLink></item>
<item>
 <title>We feel fine</title>
 <link>http://feedproxy.google.com/~r/JeroenCoumansBlog/~3/wkzOpz4ondA/we-feel-fine</link>
 <description>&lt;p&gt;Did you know that people are &lt;a href="http://wefeelfine.org/findings.html#happystates"&gt;happiest&lt;/a&gt; in Hawaii and &lt;a href="http://wefeelfine.org/findings.html#saddestcities"&gt;saddest&lt;/a&gt; in Singapore? And that people feel &lt;a href="http://wefeelfine.org/findings.html#sexy"&gt;most sexy&lt;/a&gt; in Las Vegas? &lt;a href="http://wefeelfine.org"&gt;We Feel Fine&lt;/a&gt; is an art experiment that has collected allmost 10 million feelings from 2 million people around the world and has built a unique interface to dive into this data. The project of internet artist &lt;a href="http://www.number27.org/"&gt;Jonathon Harris&lt;/a&gt; and Googler &lt;a href="http://www.stanford.edu/~sdkamvar"&gt;Sepandar Kamvar&lt;/a&gt; has been harvesting the expressions of human feelings from a large number of weblogs. The system searches occurences of the phrases &amp;#8220;I feel&amp;#8221; and &amp;#8220;I am feeling&amp;#8221;, and stores these in a database. It also extracts additional metadata, such as age, gender, geographical location and even weather conditions. &lt;/p&gt;

	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/jeroencoumans/2179991629" title="We Feel Fine"&gt;&lt;img src="http://farm3.static.flickr.com/2021/2179991629_59ccc6c9a3.jpg" alt="We Feel Fine" title="We Feel Fine"  class=" flickr-photo-img" height="371" width="500" /&gt;&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;&lt;!--break--&gt;&lt;/p&gt;

	&lt;p&gt;The interface is a thing of beauty in itself. &lt;/p&gt;

	&lt;blockquote&gt;
		&lt;p&gt;The interface to this data is a self-organizing particle system, where each particle represents a single feeling posted by a single individual. The particles&amp;#8217; properties – color, size, shape, opacity – indicate the nature of the feeling inside, and any particle can be clicked to reveal the full sentence or photograph it contains. The particles careen wildly around the screen until asked to self-organize along any number of axes, expressing various pictures of human emotion. We Feel Fine paints these pictures in six formal movements titled: Madness, Murmurs, Montage, Mobs, Metrics, and Mounds. (&lt;a href="http://wefeelfine.org/mission.html" title="http://wefeelfine.org/mission.html"&gt;http://wefeelfine.org/mission.html&lt;/a&gt;)&lt;/p&gt;
	&lt;/blockquote&gt;

	&lt;h3&gt;Panel&lt;/h3&gt;

	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/jeroencoumans/2177161505" title="The Panel"&gt;&lt;img src="http://farm3.static.flickr.com/2327/2177161505_467823e62c.jpg" alt="The Panel" title="The Panel"  class=" flickr-photo-img" height="370" width="500" /&gt;&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;At the top of the screen, there are the various attributes that function as advanced search parameters. These allow you to answer questions such as &amp;#8220;How are women in the ages of 20-29 feeling on a rainy day in New York&amp;#8221;? The top bar always shows the currently selected parameters, and hovering over it will open up the selection panel. &lt;/p&gt;

	&lt;p&gt;The navigation metaphor is based on movements that can be selected by scroll ingover the heart at the bottom left corner of the applet and clicking on the desired movement. In essence, each movement is a separate visualisation on a selection of the data. &lt;/p&gt;

	&lt;h3&gt;Madness&lt;/h3&gt;

	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/jeroencoumans/2177161575" title="Madness"&gt;&lt;img src="http://farm3.static.flickr.com/2329/2177161575_a9872892df.jpg" alt="Madness" title="Madness"  class=" flickr-photo-img" height="370" width="500" /&gt;&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;The default movement, Madness, displays all particles shooting around the screen wildly until one is clicked, after which it reveals its content. &lt;/p&gt;

	&lt;h3&gt;Murmurs&lt;/h3&gt;

	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/jeroencoumans/2177161643" title="Murmurs"&gt;&lt;img src="http://farm3.static.flickr.com/2085/2177161643_3953113715.jpg" alt="Murmurs" title="Murmurs"  class=" flickr-photo-img" height="370" width="500" /&gt;&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;The Murmurs movement displays a scrolling list of the selected feelings. &lt;/p&gt;

	&lt;h3&gt;Montage&lt;/h3&gt;

	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/jeroencoumans/2177161807" title="Montage"&gt;&lt;img src="http://farm3.static.flickr.com/2322/2177161807_6b99de4db9.jpg" alt="Montage" title="Montage"  class=" flickr-photo-img" height="371" width="500" /&gt;&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;The Montage view loads all images in a mosaic. Effectively, it shows you how a feeling &amp;#8220;looks&amp;#8221; like. Photographs can be clicked to zoom, revealing the associated sentence and author information. &lt;/p&gt;

	&lt;h3&gt;Mobs&lt;/h3&gt;

&lt;div style="img { float: left; }"&gt;
&lt;a href="http://www.flickr.com/photos/jeroencoumans/2177953282" title="Mobs"&gt;&lt;img src="http://farm3.static.flickr.com/2052/2177953282_c17e509f60_t.jpg" alt="Mobs" title="Mobs"  class=" flickr-photo-img" height="74" width="100" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/jeroencoumans/2177161895" title="Mobs"&gt;&lt;img src="http://farm3.static.flickr.com/2410/2177161895_d9e89fb4eb_t.jpg" alt="Mobs" title="Mobs"  class=" flickr-photo-img" height="74" width="100" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/jeroencoumans/2177953380" title="Mobs"&gt;&lt;img src="http://farm3.static.flickr.com/2280/2177953380_81886d7e10_t.jpg" alt="Mobs" title="Mobs"  class=" flickr-photo-img" height="74" width="100" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/jeroencoumans/2177161979" title="Mobs"&gt;&lt;img src="http://farm3.static.flickr.com/2254/2177161979_b00474c4f3_t.jpg" alt="Mobs" title="Mobs"  class=" flickr-photo-img" height="74" width="100" /&gt;&lt;/a&gt;
&lt;/div&gt;

	&lt;p&gt;The Mobs view reveals the statistical patterns in the chosed queries. It shows the most common metrics from each of the feeling, gender, age, weather and location attributes. &lt;/p&gt;

	&lt;h3&gt;Metrics&lt;/h3&gt;

&lt;div style="img { float: left; }"&gt;
&lt;a href="http://www.flickr.com/photos/jeroencoumans/2177162029" title="Metrics"&gt;&lt;img src="http://farm3.static.flickr.com/2299/2177162029_41d4b2c8a2_m.jpg" alt="Metrics" title="Metrics"  class=" flickr-photo-img" height="178" width="240" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/jeroencoumans/2177953518" title="Metrics"&gt;&lt;img src="http://farm3.static.flickr.com/2244/2177953518_f78cece349_m.jpg" alt="Metrics" title="Metrics"  class=" flickr-photo-img" height="177" width="240" /&gt;&lt;/a&gt;
&lt;/div&gt;

	&lt;p&gt;The Metrics views shows statistical anomalies of the various attributes, the traits that best distinguish the chosen query from the global average. Like the Mobs view, Metrics is divided in five axes.&lt;/p&gt;

	&lt;h3&gt;Mounds&lt;/h3&gt;

	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/jeroencoumans/2179988103" title="Mounds"&gt;&lt;img src="http://farm3.static.flickr.com/2337/2179988103_42c3b8da2a.jpg" alt="Mounds" title="Mounds"  class=" flickr-photo-img" height="370" width="500" /&gt;&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;The last view, Mounds, shows every feeling in the database, scaled and sorted in order of frequency. A small horizontal scrollbar can be used to traverse the complete database. &lt;/p&gt;

	&lt;p&gt;In all of the movements views, the particles content is revealed by it&amp;#8217;s size, shape and color. The top 200 feelings are manually assigned colors that roughly correspond to the feeling (e.g. happy is bright, sad is dark). &lt;/p&gt;

	&lt;p&gt;The end result is a fascinating look into the anonymized public feelings of people all over the world. People&amp;#8217;s most private feelings are public at the same time, particular while global, acquiring new meanings by being remixed into a large lump of similar data, becoming small and large pieces of customizable, collective art works. &lt;/p&gt;

	&lt;p&gt;It&amp;#8217;s interaction design is also very refreshing. Instead of opting for your standard search queries, Jonathan has created a beautiful, animated, organic interface which reacts to your every movement, making it feel very lively and yet unobtrusive. Every time I open the applet, I feel myself drawn to all the floating particles, endlessly combining options and diving deeper. This is without a doubt a very addictive, playful interface which is at the same time very efficient at unlocking the power of the underlying database. It&amp;#8217;s not very intuitive and definitely requires some instructions or learning before opening it, but it&amp;#8217;s a small learning curve and is well worth the trouble. &lt;/p&gt;

	&lt;p&gt;The interface is built as a Java applet, and all visualisations are done via the Open Source &lt;a href="http://www.processing.org"&gt;Processing&lt;/a&gt; scripting language. While the applet is obviously the most important aspect, the creators also added some social features. There&amp;#8217;s a gallery which allows you to save interesting images and send them by mail. It also shows the most sent, most saved and featured &amp;#8220;montages&amp;#8221; as they&amp;#8217;re called, and thus provides a sort of best-of. &lt;/p&gt;

&lt;div style="img { float: left; }"&gt;
&lt;a href="http://www.flickr.com/photos/jeroencoumans/2180857164" title="I feel those weirdos are actually an asset to college life"&gt;&lt;img src="http://farm3.static.flickr.com/2174/2180857164_4695389756_m.jpg" alt="I feel those weirdos are actually an asset to college life" title="I feel those weirdos are actually an asset to college life"  class=" flickr-photo-img" height="172" width="240" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/jeroencoumans/2180067665" title="I feel free"&gt;&lt;img src="http://farm3.static.flickr.com/2359/2180067665_8a01c99724_m.jpg" alt="I feel free" title="I feel free"  class=" flickr-photo-img" height="172" width="240" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/jeroencoumans/2180856602" title="I really feel something special when we&amp;#039;re together"&gt;&lt;img src="http://farm3.static.flickr.com/2066/2180856602_02725f62cc_m.jpg" alt="I really feel something special when we&amp;#039;re together" title="I really feel something special when we&amp;#039;re together"  class=" flickr-photo-img" height="174" width="240" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/jeroencoumans/2180067113" title="I feel like that sometimes"&gt;&lt;img src="http://farm3.static.flickr.com/2242/2180067113_510c8c45d7_m.jpg" alt="I feel like that sometimes" title="I feel like that sometimes"  class=" flickr-photo-img" height="173" width="240" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/jeroencoumans/2180066799" title="I feel so naughty"&gt;&lt;img src="http://farm3.static.flickr.com/2005/2180066799_54418bcaa6_m.jpg" alt="I feel so naughty" title="I feel so naughty"  class=" flickr-photo-img" height="173" width="240" /&gt;&lt;/a&gt;
&lt;/div&gt;

	&lt;p&gt;Last but not least, We Feel Fine also provides an &lt;a href="http://www.wefeelfine.org/api.html"&gt;API&lt;/a&gt;, which allows you to build query its database and build mash-ups. Strangely enough, the first mashup has yet to appear, as a quick search yielded no results. &lt;/p&gt;

	&lt;h3&gt;Other sources&lt;/h3&gt;

	&lt;p&gt;There&amp;#8217;s an interesting &lt;a href="http://www.netmag.co.uk/zine/discover-interview/the-brains-behind-wefeelfine-org"&gt;interview with Jonathan Harris&lt;/a&gt; on the efforts and thougths that went into We Feel Fine, and the rationale between the particle system, which is the metaphor behind most of the movements. Also, don&amp;#8217;t miss the excellent presentation Jonathan did at TED: &lt;a href="http://www.ted.com/talks/view/id/144"&gt;Jonathan Harris: The Web&amp;#8217;s secret storie&lt;/a&gt;, which gives a very nice overview of the complete application and the philosophy behind it. &lt;/p&gt;

	&lt;p&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="432" height="285" id="VE_Player" align="middle"&gt;&lt;param name="movie" value="http://static.videoegg.com/ted/flash/loader.swf"&gt;&lt;PARAM NAME="FlashVars" VALUE="bgColor=FFFFFF&amp;file=http://static.videoegg.com/ted/movies/JONATHANHARRIS-2007_high.flv&amp;autoPlay=false&amp;fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&amp;forcePlay=false&amp;logo=&amp;allowFullscreen=true"&gt;&lt;param name="quality" value="high"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="scale" value="noscale"&gt;&lt;param name="wmode" value="window"&gt;&lt;embed src="http://static.videoegg.com/ted/flash/loader.swf" FlashVars="bgColor=FFFFFF&amp;file=http://static.videoegg.com/ted/movies/JONATHANHARRIS-2007_high.flv&amp;autoPlay=false&amp;fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&amp;forcePlay=false&amp;logo=&amp;allowFullscreen=true" quality="high" allowScriptAccess="always" bgcolor="#FFFFFF" scale="noscale" wmode="window" width="432" height="285" name="VE_Player" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/object&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/JeroenCoumansBlog/~4/wkzOpz4ondA" height="1" width="1"/&gt;</description>
 <comments>http://jeroencoumans.nl/journal/we-feel-fine#comments</comments>
 <category domain="http://jeroencoumans.nl/journal/tag/c-md">c-md</category>
 <pubDate>Tue, 08 Jan 2008 10:23:13 +0000</pubDate>
 <dc:creator>Jeroen Coumans</dc:creator>
 <guid isPermaLink="false">3190 at http://jeroencoumans.nl</guid>
<feedburner:origLink>http://jeroencoumans.nl/journal/we-feel-fine</feedburner:origLink></item>
<item>
 <title>Do you use personas?</title>
 <link>http://feedproxy.google.com/~r/JeroenCoumansBlog/~3/D43DBTRb4os/do-you-use-personas</link>
 <description>&lt;p&gt;&lt;a href="http://www.37signals.com/svn/posts/690-ask-37signals-personas"&gt;37signals state that they don&amp;#8217;t use personas&lt;/a&gt; because:&lt;/p&gt;

	&lt;blockquote&gt;
		&lt;p&gt;&amp;#8220;We use ourselves. I believe personas lead to a false sense of understanding at the deepest, most critical levels.&amp;#8221;&lt;/p&gt;
	&lt;/blockquote&gt;

	&lt;p&gt;Personas are poor substitutes for real people, they argue, and you should always base your decisions on the problems and behaviour of real people instead of passive abstractions of people. This reasoning fits perfectly with their &amp;#8220;getting real&amp;#8221; process, which argues for a very agile development process. &lt;/p&gt;

	&lt;p&gt;&lt;!--break--&gt;&lt;/p&gt;

	&lt;p&gt;It&amp;#8217;s an interesting point, but this doesn&amp;#8217;t mean that personas are therefore useless. Of course, personas should never be used as stand-ins for actual users, and thus can never provide the feedback that real people provide &amp;#8211; it&amp;#8217;s impossible to do usability testing with them!. Rather, they&amp;#8217;re a heuristic tool to contextualise your design problems. Personas allow you to frame your design in a way that puts the goals of real people at the &lt;a href="http://www.37signals.com/svn/archives/000737.php"&gt;epicenter  of your interface&lt;/a&gt;. By making personas an integral part of the story that your design tells, they become a common ground for all involved parties, stakeholders, developers, designers, managers. &lt;/p&gt;

	&lt;p&gt;Personas should be based on proper, qualitative user research. The data can come from various sources, eg. interviews, discourse analysis, observations, surveys etc. The analysis is actually the hardest part, since it&amp;#8217;s very difficult to step outside your own frame of mind when trying to really understand people&amp;#8217;s behaviours. The ethnographic techniques can be learned quite easily, but the proper understanding of the methodology and the required reflective use of it makes it a very difficult task without academic education. &lt;/p&gt;

	&lt;p&gt;Clay Spinuzzi&amp;#8217;s observation that &lt;a href="http://www.greenonions.com/archives/2005/07/24/fighting-the-user-as-victim-stereotype-one-genre-at-a-time/"&gt;designers often frame themselves as &amp;#8216;heroes&amp;#8217; to rescue the poor &amp;#8216;users&amp;#8217;&lt;/a&gt; is a perfect example of designers executing a naive, superficial user research. But the solution is not to use yourself as the intended user of your application, unless you&amp;#8217;re building a product which is only meant to be used by yourself. Doing the proper research and crafting personas and scenarios are a good first step in designing not just for yourself. However, even 37signals can&amp;#8217;t be as arrogant as to presume they&amp;#8217;re representative for all the possible people that their products intend to reach. As with any tool or methodology, using it without proper understanding ultimately leads to failure, but that shouldn&amp;#8217;t be a reason to dismiss the tool completely. &lt;/p&gt;

	&lt;p&gt;&lt;ins&gt;Edit 18/11/07:&lt;/ins&gt; Other people weigh in as well.&lt;/p&gt;

	&lt;ul&gt;
		&lt;li&gt; Jared Spool makes a similair point on the difference between &lt;a href="http://www.uie.com/brainsparks/2007/11/14/crappy-personas-vs-robust-personas/"&gt;crappy personas vs. robust personas&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;Boxes and Arrows publishes a timely article on &lt;a href="http://www.boxesandarrows.com/view/building-a-data"&gt;building a data-backed persona&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
	&lt;ul&gt;
		&lt;li&gt;Andy Budd chips in with a post on &lt;a href="http://www.andybudd.com/archives/2007/11/personas_suck/"&gt;rethoric sensationalism&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/JeroenCoumansBlog/~4/D43DBTRb4os" height="1" width="1"/&gt;</description>
 <comments>http://jeroencoumans.nl/journal/do-you-use-personas#comments</comments>
 <category domain="http://jeroencoumans.nl/journal/tag/c-md">c-md</category>
 <category domain="http://jeroencoumans.nl/journal/tag/webdesign">webdesign</category>
 <pubDate>Wed, 07 Nov 2007 17:35:19 +0000</pubDate>
 <dc:creator>Jeroen Coumans</dc:creator>
 <guid isPermaLink="false">3134 at http://jeroencoumans.nl</guid>
<feedburner:origLink>http://jeroencoumans.nl/journal/do-you-use-personas</feedburner:origLink></item>
<item>
 <title>WYSIWYG editor usability tip</title>
 <link>http://feedproxy.google.com/~r/JeroenCoumansBlog/~3/LW-GC_DrMro/wysiwyg-editor-usability-tip</link>
 <description>&lt;p&gt;Open Source &lt;a href="http://jeroencoumans.nl/journal/wysiwyg-text-editing-in-cms"&gt;&lt;span class="caps"&gt;WYSIWYG&lt;/span&gt; editing in CMS&lt;/a&gt; still sucks, but with developments like the &lt;a href="http://www.wymeditor.org/en/"&gt;WYMeditor&lt;/a&gt; (&amp;#8220;What You Mean&amp;#8221; editor, built on jQuery) the situations is &lt;a href="http://www.456bereastreet.com/archive/200612/forget_wysiwyg_editors_use_wysiwym_instead/"&gt;improving&lt;/a&gt; &lt;a href="http://www.standards-schmandards.com/2006/wysiwym/"&gt;steadily&lt;/a&gt;. This editor lets content writers focus on the structure of their document instead of visual layout. As you can see, this editor provides subtle clues about the type of content you&amp;#8217;re currently editing with a clever stylesheet. Unfortunately, the WYMeditor is still in early beta, and &lt;a href="http://drupal.org/project/wymeditor"&gt;Drupal&amp;#8217;s module&lt;/a&gt; lags a couple of versions behind.&lt;/p&gt;

	&lt;p&gt;&lt;img src="/images/wymeditor.png" title="WYMEditor in its default configuration" alt="WYMEditor in its default configuration" /&gt;&lt;/p&gt;

	&lt;p&gt;&lt;!--break--&gt;&lt;/p&gt;

	&lt;p&gt;Until it&amp;#8217;s finished though, it&amp;#8217;s very use to use the WYMEditor stylesheet in your current editor (I mostly recommend FCKEditor in a stripped configuration, but TinyMCE works just as well). The stylesheet used by WYMEditor makes it very clear wether you&amp;#8217;re editing a block level element or an inline element. It adds little icons to signify the semantics of the elements. This makes it very easy to determine if there are any stray headers or paragraphs in your content, a problem that often occurs after copious editing but that is nearly impossible to fix without editing the source code. &lt;/p&gt;

	&lt;p&gt;Using this stylesheet in your own editor is very easy. Just download a copy of WYMeditor, extract it and copy the entire contents of the &lt;code&gt;iframe/default/&lt;/code&gt; directory to a speficic location on your webserver. In FCKEditor, you can edit the file &lt;code&gt;fckeditor/fckconfig.js&lt;/code&gt; and edit line 32, which states:&lt;/p&gt;

	&lt;p&gt;&lt;code&gt;
FCKConfig.EditorAreaCSS = FCKConfig.BasePath + &amp;#39;css/fck_editorarea.css&amp;#39; ;
&lt;/code&gt;&lt;/p&gt;

	&lt;p&gt;The last part (&lt;code&gt;css/fck_editorarea.css&lt;/code&gt;) points to the location of the &lt;span class="caps"&gt;CSS&lt;/span&gt; used by FCKEditor&amp;#8217;s textarea. Adjust it to reflect the location of WYMeditor&amp;#8217;s &lt;span class="caps"&gt;CSS&lt;/span&gt; file, which is called &lt;code&gt;wymiframe.css&lt;/code&gt;. &lt;/p&gt;

	&lt;p&gt;Note that it&amp;#8217;s not necessary to manually adjust this file if you use the &lt;a href="http://drupal.org/project/fckeditor"&gt;Drupal module for FCKEditor&lt;/a&gt;. Just go to admin/settings/fckeditor and put the location of wymiframe.css in the Custom stylesheet field, like this:&lt;/p&gt;

	&lt;p&gt;&lt;img src="/images/fckeditor-settings.png" title="Obviously, adjust your path to your own location" alt="Obviously, adjust your path to your own location" /&gt;&lt;/p&gt;

	&lt;p&gt;That&amp;#8217;s it! Happy editing! &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/JeroenCoumansBlog/~4/LW-GC_DrMro" height="1" width="1"/&gt;</description>
 <comments>http://jeroencoumans.nl/journal/wysiwyg-editor-usability-tip#comments</comments>
 <category domain="http://jeroencoumans.nl/journal/tag/drupal">drupal</category>
 <category domain="http://jeroencoumans.nl/journal/tag/usability">usability</category>
 <category domain="http://jeroencoumans.nl/journal/tag/webdesign">webdesign</category>
 <pubDate>Wed, 19 Sep 2007 13:29:58 +0000</pubDate>
 <dc:creator>Jeroen Coumans</dc:creator>
 <guid isPermaLink="false">3063 at http://jeroencoumans.nl</guid>
<feedburner:origLink>http://jeroencoumans.nl/journal/wysiwyg-editor-usability-tip</feedburner:origLink></item>
<item>
 <title>LUX Arthouse</title>
 <link>http://feedproxy.google.com/~r/JeroenCoumansBlog/~3/V-dnmTRAivI/lux-arthouse</link>
 <description>&lt;p&gt;&lt;a href="http://www.flickr.com/photos/jeroencoumans/2180336787" title="LUX Homepage"&gt;&lt;img src="http://farm3.static.flickr.com/2374/2180336787_185460ea40.jpg" alt="LUX Homepage" title="LUX Homepage"  class=" flickr-photo-img" height="394" width="500" /&gt;&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;Lux is one of the biggest Art houses in the Netherlands. It&amp;#8217;s a home for international cinema, theater, music, debate, multimedia and visual culture. Their old website was based on ancient code (frames!) and design and was  manageable by just one person. For their new website, Lux decided to go with &lt;a href="http://drupal.org"&gt;Drupal&lt;/a&gt; instead and brought in the help of &lt;a href="http://webschuur.nl"&gt;Webschuur&lt;/a&gt;, &lt;a href="http://www.guruburu.com"&gt;Guruburu&lt;/a&gt; and myself. Under visual direction of design and communication agency &lt;a href="http://wunderbar.nl"&gt;Wunderbar&lt;/a&gt;, I translated their Photoshop mockups to the Drupal theme you currently see. &lt;/p&gt;

	&lt;p&gt;&lt;!--break--&gt;&lt;/p&gt;

	&lt;p&gt;There were several challenges with this theme. I tried to set up all styles as generic as possible, selectively overriding Drupal&amp;#8217;s core stylesheets. This is always a challenge, since there is just too much &lt;span class="caps"&gt;CSS&lt;/span&gt; delivered out of the box with Drupal. My first instinct is to turn this all off to have a minimal, stable base to work on. Along the way, I enabled them so the admin pages would still be accessible and manageable under the new theme. &lt;/p&gt;

	&lt;p&gt;Lux has 4 main sections that each have a distinct visual theme. This was accomplished by configuring each section with its own body class, and using this class in the stylesheet to override colors and backgrounds. I used as much &lt;span class="caps"&gt;CSS&lt;/span&gt; sprites as possible to keep &lt;span class="caps"&gt;HTTP&lt;/span&gt; downloads to a minimum, which allows for a speedy website, especially with Drupal&amp;#8217;s caching. &lt;/p&gt;

	&lt;p&gt;A lot of effort went into making sure the website was coded with semantics and accessibility in mind. We had the explicit task to make the Lux website as searchengine-friendly as possible and to adhere to the Dutch &lt;a href="http://webrichtlijnen.overheid.nl"&gt;Web Richtlijnen&lt;/a&gt;, which are set of guidelines based on the W3C standards and international best practices. So the &lt;span class="caps"&gt;HTML&lt;/span&gt; structure and the ordering of information is intended to be as useful as possible; with the main content at the top (just below the branding), and navigation all at the bottom. All content chuncks were semantically marked up according to Andy Clarke&amp;#8217;s proposed identifiers which he presented in &lt;a href="http://www.librarything.com/work/1202197&amp;#38;book=15176096"&gt;transcending CSS&lt;/a&gt;, and using the names of new elements that are proposed in HTML5 as identifiers. &lt;/p&gt;

	&lt;p&gt;The final challenge was to come up with a decent system for managing a right sidebar which could be populated with either node-related content (such as on the film pages) or generic content. In Drupal, these two pieces of information are controlled in wildly different parts of the theme, and I had to resort to using variables in order to exclude them from conflicting with each other. Still, this allowed a lot of flexibility in the design of the pages and the views, making variations possible such as two colums, three columns with content-releated sidebar, and three columns with generic content. &lt;/p&gt;

	&lt;p&gt;Some &lt;a href="http://www.jaapstronks.nl/archief/nieuwe-lux-site-gelanceerd/"&gt;additional background information&lt;/a&gt; from Jaap Stronks, one of the programme developers, on his blog (in Dutch). &lt;/p&gt;

&lt;div style="a { display: block; float: left; padding: 0 1em 1em 0; }"&gt;
&lt;a href="http://www.flickr.com/photos/jeroencoumans/2180337093" title="Lady Chatterley | LUX"&gt;&lt;img src="http://farm3.static.flickr.com/2116/2180337093_bec2360749_m.jpg" alt="Lady Chatterley | LUX" title="Lady Chatterley | LUX"  class=" flickr-photo-img" height="240" width="189" /&gt;&lt;/a&gt; 
&lt;a href="http://www.flickr.com/photos/jeroencoumans/2181124152" title="Filmpremières | LUX"&gt;&lt;img src="http://farm3.static.flickr.com/2301/2181124152_f57c9df0d1_m.jpg" alt="Filmpremières | LUX" title="Filmpremières | LUX"  class=" flickr-photo-img" height="170" width="240" /&gt;&lt;/a&gt; 
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JeroenCoumansBlog/~4/V-dnmTRAivI" height="1" width="1"/&gt;</description>
 <comments>http://jeroencoumans.nl/journal/lux-arthouse#comments</comments>
 <category domain="http://jeroencoumans.nl/journal/tag/drupal">drupal</category>
 <category domain="http://jeroencoumans.nl/journal/tag/portfolio">portfolio</category>
 <category domain="http://jeroencoumans.nl/journal/tag/webdesign">webdesign</category>
 <pubDate>Wed, 19 Sep 2007 12:15:54 +0000</pubDate>
 <dc:creator>Jeroen Coumans</dc:creator>
 <guid isPermaLink="false">3062 at http://jeroencoumans.nl</guid>
<feedburner:origLink>http://jeroencoumans.nl/journal/lux-arthouse</feedburner:origLink></item>
<item>
 <title>Drupal image attach block module</title>
 <link>http://feedproxy.google.com/~r/JeroenCoumansBlog/~3/JQ4QB3BSq6o/drupal-image-attach-block-module</link>
 <description>&lt;p&gt;I recently created several &lt;span class="caps"&gt;PHP&lt;/span&gt; blocks for a Drupal website that made heavy use of the &lt;a href="http://drupal.org/project/image"&gt;image module&lt;/a&gt; and the image_attach module. While the block creation wasn&amp;#8217;t very difficult, it was still a process that took me a long night of researching &lt;a href="http://api.drupal.org"&gt;api.drupal.org&lt;/a&gt; and fiddling with &lt;span class="caps"&gt;SQL&lt;/span&gt; queries. (It was a great exercise though, since I hadn&amp;#8217;t practiced my PHP/MySQL skills since  I followed a basic course at &lt;a href="http://c-md.khlim.be"&gt;C-MD&lt;/a&gt; last spring. It&amp;#8217;s amazing how much you forget if you don&amp;#8217;t keep practicing&amp;#8230; )&lt;/p&gt;

	&lt;p&gt;&lt;!--break--&gt;&lt;/p&gt;

	&lt;p&gt;Anyway, the website I created these blocks for has an extensive product database set-up as custom nodes in Drupal. Besides presenting plain text information on their products, they also wanted to easily maintain their product photo&amp;#8217;s, and present them in galleries. To make this possible, I set up the image module. All photographs were imported at once via &lt;span class="caps"&gt;FTP&lt;/span&gt;, and attached to individual product nodes through the image_attach module. This proved to be very useful, since they could attach the same image to various products, e.g. for variants of the same product, and also multiple images to one product. &lt;/p&gt;

	&lt;p&gt;The challenge was for product pages to display the images in the sidebar. In Drupal, there is a clear seperation between node content and all other content, and they don&amp;#8217;t mix very well. So it&amp;#8217;s very difficult to display a piece of content in another place on your website without resorting to hacks or writing checks in your theme display logic. After Googling for a while, I took it upon myself to write two &lt;span class="caps"&gt;PHP&lt;/span&gt; blocks: one that displayed the attached images to the currently viewed node, and one block that displayed the nodes attached to the currently viewed image. This established the relationship between image and product, and allows users to click through the photo album to products, and vice versa.&lt;/p&gt;

	&lt;p&gt;Setting up these blocks wasn&amp;#8217;t particularly hard with the &lt;a href="http://api.drupal.org/api/function/block_example_block/5"&gt;great example&lt;/a&gt; of the &lt;a href="http://api.drupal.org/api/function/hook_block/5"&gt;hook_block function&lt;/a&gt; provided with the Drupal &lt;span class="caps"&gt;API&lt;/span&gt; documentation. With this template, it was mostly a matter of copying the provided code, and filling in the blanks for displaying my own queries. I spent a lot of time investigating Drupal&amp;#8217;s query functions, and searching for ways to access node information in a block context. For that, the following snippet proved very handy: &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
&amp;#60;?php 
if (arg(0) == &amp;#39;node&amp;#39; &amp;#38;&amp;#38; is_numeric(arg(1))) {
  $node = node_load(arg(1));
  // Rest of the code here...
}; ?&amp;#62;
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;This loads the node object, the concept in Drupal for a content page (as opposed to dynamically generated pages, such as listings of pages). Knowing what piece of content a user is currently viewing is essential for determining if the block needs to do something with it. &lt;/p&gt;

	&lt;p&gt;While the &lt;span class="caps"&gt;PHP&lt;/span&gt; blocks work great, I decided to go the extra mile and create modules of them. This has numerous advantages. By creating a module, the functionality can be easily deployed on other Drupal installations. For this customer, several localized product databases will be set-up. In a multi-site setup, this will mean that the codebase can be maintained and updated from one codebase. Also, the block can then have it&amp;#8217;s &lt;a href="http://drupal.org/node/104319"&gt;own theming&lt;/a&gt;, instead of the generic block theming. And it&amp;#8217;s possible to define addtional defaults or configuration settings. &lt;/p&gt;

	&lt;p&gt;I&amp;#8217;m sure there are lots of improvements that could be made to this module (and I&amp;#8217;d love to hear about them!), but it&amp;#8217;s quite usable based on my own tests. I&amp;#8217;m not sure if it should have a long live, since it would be perfectly acceptable for the Image module maintainers to integrate this in their own module. Nevertheless, I&amp;#8217;ve attached the current code for you to download. Please leave a message if you find it useful, or if you have any suggestions for improvements! &lt;/p&gt;

	&lt;p&gt;&lt;ins&gt;Update: the code is now &lt;a href="http://drupal.org/node/113326"&gt;included in the Image module&lt;/a&gt;, thus obseleting this module!&lt;/ins&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/JeroenCoumansBlog/~4/JQ4QB3BSq6o" height="1" width="1"/&gt;</description>
 <comments>http://jeroencoumans.nl/journal/drupal-image-attach-block-module#comments</comments>
 <category domain="http://jeroencoumans.nl/journal/tag/drupal">drupal</category>
 <enclosure url="http://jeroencoumans.nl/sites/jeroencoumans.nl/files/image_attach_block.tgz" length="7589" type="application/x-gzip" />
 <pubDate>Fri, 14 Sep 2007 16:28:00 +0000</pubDate>
 <dc:creator>Jeroen Coumans</dc:creator>
 <guid isPermaLink="false">3051 at http://jeroencoumans.nl</guid>
<feedburner:origLink>http://jeroencoumans.nl/journal/drupal-image-attach-block-module</feedburner:origLink></item>
<item>
 <title>YUI grids extension</title>
 <link>http://feedproxy.google.com/~r/JeroenCoumansBlog/~3/v-k1NuIzC08/yui-grids-extension</link>
 <description>&lt;p&gt;Despite the extra required &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; tags, I regularly use the &lt;a href="http://developer.yahoo.com/yui/grids/"&gt;Yahoo! UI grids framework&lt;/a&gt;. This provides several advantages when buidling multi-column layouts with CSS. Besides speedy development and source-order independence, it gives you a lot of flexibility when creating your site. More practically, it's extensively tested in A-grade browsers which includes the ancient, but still widely used Internet Explorer 6). Lastly, they're almost completely driven by &lt;code&gt;classes&lt;/code&gt;, which means you can add your own, semantically chosen, &lt;code&gt;id's&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The default widths provided can be used for pixel-precise layouts while maintaining font-size based scaling, but there's one curious thing about the default grids that has always bothered me. For the left sidebar, they provide widths of 160px, 180px and 300px, while for the right sidebar, they provide 180px, 240px and 300px. This asymmetry has bothered me long enough, so I whipped up some code for two additional sidebar configurations: the left 240px sidebar, and the right 160px sidebar. &lt;/p&gt;

&lt;!--break--&gt;

&lt;p&gt;You should be able to add the following code to any release of the grids.css:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
/* yui-t8: 240 on left */
.yui-t8 #yui-main {
  float: right;
  margin-left: -25em;
}

.yui-t8 .yui-b {
  float: left;
  width:18.4608em;
  *width:18.016em;
}

.yui-t8 #yui-main .yui-b {
  margin-left:19.4608em; 
  *margin-left:19.016em;
}

/* yui-t9: 160 on right */

.yui-t9 #yui-main {
  float: left;
  margin-right: -25em; 
}

.yui-t9 .yui-b {
  float:right;
  width:12.3207em;
  *width:12.0106em;
}

.yui-t9 #yui-main .yui-b {
  margin-right: 13.3207em;
   *margin-right:13.0106em;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I tested them in the major browsers and it seems to work really well (it would really surprise me if they didn't, since I used the exact same measurements as in .yui-t1 and .yui-t5).&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/JeroenCoumansBlog/~4/v-k1NuIzC08" height="1" width="1"/&gt;</description>
 <comments>http://jeroencoumans.nl/journal/yui-grids-extension#comments</comments>
 <category domain="http://jeroencoumans.nl/journal/tag/webdesign">webdesign</category>
 <pubDate>Tue, 11 Sep 2007 16:45:22 +0000</pubDate>
 <dc:creator>Jeroen Coumans</dc:creator>
 <guid isPermaLink="false">3049 at http://jeroencoumans.nl</guid>
<feedburner:origLink>http://jeroencoumans.nl/journal/yui-grids-extension</feedburner:origLink></item>
<item>
 <title>Edupaper</title>
 <link>http://feedproxy.google.com/~r/JeroenCoumansBlog/~3/KVx2NdHOtUU/edupaper</link>
 <description>&lt;p&gt;Edupaper is an innovative company with a green goal: it intends to reduce paper use in education by implementing mobile applications. Using electronic paper will reduce the number of books students need to carry, and in effect reduce the number of trees which have to be cut for books that students. Furthermore, by equipping and connecting them with Open Source Software such as Dokeos, it will enable students to learn more efficiently. Of course, when Frits Hoff, &lt;span class="caps"&gt;CEO&lt;/span&gt; of Edupaper, approached me for designing his website, I gladly accepted. &lt;/p&gt;

	&lt;p&gt;&lt;a href="http://edupaper.nl"&gt;&lt;img src="/images/edupaper-2007.png" title="Screenshot of the new Edupaper.nl design" alt="Screenshot of the new Edupaper.nl design" /&gt;&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;&lt;!--break--&gt;&lt;/p&gt;

	&lt;p&gt;After a few iterations we finally settled on this design, which I am quite fond of. Since modern electronic paper has such a high resolution and strong backlight, it&amp;#8217;s allmost as sharp as regular paper and can still be used outside. To support this communication goal, I focused on the typography, using large corpses for legibility and employing a vertical rhyme. Another goal was to make it as clean and fresh as possible, which I think is achieved very nicely by the use of just a few supportive colours.&lt;/p&gt;

	&lt;p&gt;The design was built as a Drupal theme. There were some small challenges, mostly in getting the vertical rhyme just right so it would line out with the background stripes. There was a very annoying issue with images seemingly getting a 7px padding in Firefox, which was clearly seen in Firebug, despite that all paddings and margins were explicitly set to 0. To solve this, I resorted to floating all content images, which isn&amp;#8217;t very nice but at least they line up properly. &lt;/p&gt;

	&lt;p&gt;For the logo, I used an alpha-transparent &lt;span class="caps"&gt;PNG&lt;/span&gt; image, since I wanted the background lines to shine through. This meant that a little bit of Javascript had to be used for Internet Explorer 6, which doesn&amp;#8217;t support this natively. It was very easy with a &lt;a href="http://jquery.andreaseberhard.de/pngFix/index.html"&gt;jQuery plugin&lt;/a&gt;, but unfortunately it required upgrading of Drupal&amp;#8217;s jQuery version, which is stuck at 1.0. The Drupal developers decided to stick with the same major version of jQuery so module developers have a stable target to work with, but it makes it so much harder for us theme developers since most plugins available nowadays require version 1.1. Fortunately, the &lt;a href="http://drupal.org/project/jquery_update"&gt;jQuery upgrade module&lt;/a&gt; takes care of upgrading Drupal&amp;#8217;s Javascript so it works with jQuery 1.1, but it requires you to replace the system jquery.js. This isn&amp;#8217;t always feasible, especially in a multi-site installation. But I digress&amp;#8230;&lt;/p&gt;

	&lt;p&gt;All in all, I think the website turned out great, and I&amp;#8217;m certain it brings a new level of professionalism and clear communication which will take Edupaper to the next level. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/JeroenCoumansBlog/~4/KVx2NdHOtUU" height="1" width="1"/&gt;</description>
 <comments>http://jeroencoumans.nl/journal/edupaper#comments</comments>
 <category domain="http://jeroencoumans.nl/journal/tag/drupal">drupal</category>
 <category domain="http://jeroencoumans.nl/journal/tag/portfolio">portfolio</category>
 <category domain="http://jeroencoumans.nl/journal/tag/webdesign">webdesign</category>
 <pubDate>Thu, 23 Aug 2007 10:24:47 +0000</pubDate>
 <dc:creator>Jeroen Coumans</dc:creator>
 <guid isPermaLink="false">3033 at http://jeroencoumans.nl</guid>
<feedburner:origLink>http://jeroencoumans.nl/journal/edupaper</feedburner:origLink></item>
</channel>
</rss>
