<?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:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>maratz.com</title>
	
	<link>http://www.maratz.com/blog</link>
	<description>Hypertext rulez™</description>
	<lastBuildDate>Tue, 09 Feb 2010 15:48:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/maratzcom" /><feedburner:info uri="maratzcom" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Simple page or section redirect in WordPress</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/Q_HuJsVwjsA/</link>
		<comments>http://www.maratz.com/blog/archives/2010/02/09/simple-page-or-section-redirect-in-wordpress/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 15:47:30 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[tips]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=1000</guid>
		<description><![CDATA[Recently we had a chance to re-code the old client site: Graniti-Sušec. The site was first developed back in 2003. and was in fact the first commercial (non-personal) site done with web standards in Croatia.
At that time I was much more involved with ASP 2.0 and only heard about PHP. But since then — my [...]]]></description>
			<content:encoded><![CDATA[<p>Recently we had a chance to re-code the old client site: <a href="http://www.graniti-susec.hr/">Graniti-Sušec</a>. The site was first developed back in 2003. and was in fact the first commercial (non-personal) site done with web standards in Croatia.</p>
<p>At that time I was much more involved with ASP 2.0 and only heard about PHP. But since then — my focus shifted far, far away from ASP, and we decided not to fix the ancient codebase, but to move the backend to WordPress.</p>
<p>With the migration, we had to take care about the new URL scheme. The language part of previous scheme was full-length language name and therefor clumsy. The transition had to be seamless, so we don’t cut-off visitors landing from Google.</p>
<p>The solution is quite simple. All pages are organized as a child pages of two parents: <code>/hr/</code> and <code>/en/</code>. We created two additional first-level pages — <code>/hrvatska/</code> and <code>/english/</code> — and set both pages’ templates to &#8220;Page Redirect&#8221;. This is how it’s done step by step:<span id="more-1000"></span></p>
<h2>Step 1: Create page template</h2>
<p>In your WordPress theme folder create new blank file: <code>page-redirect.php</code>, paste the code below and save it. Keep in mind that there’s no space left before <code>&#60;?php</code> or after <code>?></code> or it might throw you an error.</p>
<p><code>
<pre>&#60;?php
/*
Template Name: Page Redirect
*/
    header('HTTP/1.1 301 Moved Permanently'); 

    $redirect_url = get_post_meta($post->ID, 'redirect_url', true); 

    if (!empty($redirect_url)) {
        header('Location: ' . $redirect_url);
    } else {
        header('Location: /');
    }
?></pre>
<p></code></p>
<h2>Step 2: Add New Page</h2>
<p>Create new page in WordPress (Pages » Add New), and paste the old URL into <em>Permalink</em> field — right below the title field.</p>
<h2>Step 3: Add custom field</h2>
<p>In Custom Fields box, enter new custom field, named <code>redirect_url</code> and set the value to new URL.</p>
<h2>Step 4: Choose page template</h2>
<p>In attribute box (usually on the right hand side), there is Templates drop-down. Select &#8220;Page Redirect&#8221; and hit Publish.</p>
<p>Type the old URL into browser’s address bar, and it should be instantly redirected to your new URL. WordPress will also automagically redirect all child pages, so in my example <code>/english/marble/</code> redirects to <code>/en/marble/</code>.</p>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/Q_HuJsVwjsA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2010/02/09/simple-page-or-section-redirect-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2010/02/09/simple-page-or-section-redirect-in-wordpress/</feedburner:origLink></item>
		<item>
		<title>Exclude articles from a category tree on your WordPress homepage</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/EQbs-m7zqnU/</link>
		<comments>http://www.maratz.com/blog/archives/2009/07/13/exclude-articles-from-a-category-tree-on-your-wordpress-homepage/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 11:12:49 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=972</guid>
		<description><![CDATA[A nice way to manage articles visible only to registered users on your WordPress based site is to create one parent category exclusively for those posts and then create sub categories if needed.
Once you have the top, subscriber-only category, you will most likely not change it, and therefor you can use its category ID as [...]]]></description>
			<content:encoded><![CDATA[<p>A nice way to manage articles visible only to registered users on your <a href="http://wordpress.org/">WordPress</a> based site is to create one parent category exclusively for those posts and then create sub categories if needed.</p>
<p>Once you have the top, subscriber-only category, you will most likely not change it, and therefor you can use its category ID as an argument to construct your query, for instance <code>query_posts(cat=-3)</code>.</p>
<p>This should exclude all the post from the category with ID 3 from the listing. However, this doesn’t exclude posts in child categories, and if we knew all the IDs, we’d expand the call to function like so <code>query_posts(cat=-3,-4,-5)</code>.</p>
<p>In a real life, there are two possible issues. First, it’s a bad practice to rely on IDs for child categories, and the second one is that the default argument syntax <code>cat=-3</code> won’t always work, due to plugins incompatibilities.<span id="more-972"></span></p>
<h2>How to get the child categories IDs?</h2>
<p>We use <code><a href="http://codex.wordpress.org/Function_Reference/get_categories">get_categories</a></code> to get the sub categories. In the following example I first created a string, which you’d use with <code>query_posts(cat=' . $subcat_string)</code>, but aforementioned issues with plugins could require a different argument construction.</p>
<p><code>
<pre>&#60;?php 

    // In this example, the parent category ID is 3
    <strong>$subcategories = get_categories('child_of=3');</strong>

    <strong>$subcat_string = '';
    foreach ($subcategories as $subcat) {
        $subcat_string .= '-' . $subcat->cat_ID . ',';
    }</strong>

    // we also include parent category ID in the list
    <strong>$subcat_string .= '-3';</strong>

    // and then call query_posts
    <strong>query_posts(cat=' . $subcat_string);</strong>

?&#62;</pre>
<p></code></p>
<p>A slightly more advanced (for designers at least) <code>query_posts()</code> call is to use an array for arguments. Quite often where <code>cat=-n</code> doesn’t work this should fix the problem. I believe this is due to plugins incompatibility, but it could be also due to  WordPress itself. Whatever the problem is, this is one way to handle it:</p>
<p><code>
<pre>&#60;?php 

    // Subcategories IDs as an array

    // In this example, the parent category ID is 3
    <strong>$subcategories = get_categories('child_of=3');</strong>

    <strong>$subcat_array = array();
    foreach ($subcategories as $subcat) {
        $subcat_array[] = '-' . $subcat->cat_ID;
    }</strong>

    // we also include parent category ID in the list
    <strong>$subcat_array[] = '-3';</strong>

    // and then call query_posts
    <strong>query_posts(array('category__not_in' => $subcat_array));</strong>

?&#62;</pre>
<p></code> </p>
<h2>Hide posts from the members-only categories</h2>
<p>To check if a visitor is logged-in or not, you’d test <code>$user_ID</code> variable. If the visitor is not a member, we display latest articles sans members-only category. For signed-in users we display the default query results, i.e. all articles from all categories.</p>
<p><code>
<pre>&#60;?php

<strong>if (!$user_ID) {</strong>

     // we created an array of categories to exclude:
     $subcategories = get_categories('child_of=3');
     $subcat_array = array();
     foreach ($subcategories as $subcat) {
         $subcat_array[] = '-' . $subcat->cat_ID;
     }
     $subcat_array[] = '-3';

     // Here, we set $limit for showposts (so it can be redefined via admin if needed)
     <strong>$limit = get_option('posts_per_page');</strong>

     // ... and $paged (to tell WP which page in the Loop is current)
     <strong>$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;</strong> 

     // then populate arguments
     <strong>$args = array(
         'category__not_in' => $subcat_array,
         'paged' => $paged,
         'showposts' => $limit
     );</strong>

     // and call the function
     <strong>query_posts($args);</strong>

     // the general loop code goes here

<strong>}</strong>

?&#62;</pre>
<p></code></p>
<p>Got something to add? Speak up!</p>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/EQbs-m7zqnU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2009/07/13/exclude-articles-from-a-category-tree-on-your-wordpress-homepage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2009/07/13/exclude-articles-from-a-category-tree-on-your-wordpress-homepage/</feedburner:origLink></item>
		<item>
		<title>WordPress related articles by tags and/or categories</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/fEqvPRJ6pu4/</link>
		<comments>http://www.maratz.com/blog/archives/2009/06/15/wordpress-related-articles-by-tags-andor-categories/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 05:03:05 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[coding/design]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=953</guid>
		<description><![CDATA[Here is a quick code snippet for displaying any given number of articles, related first by tags and optionally from the same category. This is by no means definitive solution, but might come in handy as a quick start.
Drop this inside the loop in single.php template, I suggest right behind the the_content() call. See it [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a quick code snippet for displaying any given number of articles, related first by tags and optionally from the same category. This is by no means definitive solution, but might come in handy as a quick start.</p>
<p>Drop this inside <a href="http://codex.wordpress.org/The_Loop"><em>the loop</em></a> in <code>single.php</code> template, I suggest right behind the <a href="http://codex.wordpress.org/Template_Tags/the_content"><code>the_content()</code></a> call. See it in action on the <a href="http://www.gadgeterija.net/2009/06/12/zaradili-300000-dolara-kupovinom-vlastite-glazbe-na-itunesu-ukradenim-karticama/#related-articles">live site</a>.</p>
<p>Use it as a base for more advanced features, or simply c/p. It&#8217;ll work :)</p>
<p><span id="more-953"></span></p>
<p><code>
<pre>&#60;?php

    $max_articles = 7;  // How many articles to display

    echo '&#60;div id="related-articles" class="sidebox"&#62;&#60;h3&#62;Related articles&#60;/h3&#62;&#60;ul&#62;';

    $cnt = 0;

    $article_tags = get_the_tags();
    $tags_string = '';
    if ($article_tags) {
        foreach ($article_tags as $article_tag) {
            $tags_string .= $article_tag-&#62;slug . ',';
        }
    }

    $tag_related_posts = get_posts('exclude=' . $post-&#62;ID . '&#038;numberposts=' . $max_articles . '&#038;tag=' . $tags_string);

    if ($tag_related_posts) {
        foreach ($tag_related_posts as $related_post) {
            $cnt++;
            echo '&#60;li class="child-' . $cnt . '"&#62;';
            echo '&#60;a href="' . get_permalink($related_post-&#62;ID) . '"&#62;';
            echo $related_post-&#62;post_title . '&#60;/a&#62;&#60;/li&#62;';
        }
    }

    // Only if there's not enough tag related articles,
    // we add some from the same category

    if ($cnt &#60; $max_articles) {

        $article_categories = get_the_category($post-&#62;ID);
        $category_string = '';
        foreach($article_categories as $category) {
            $category_string .= $category-&#62;cat_ID . ',';
        }

        $cat_related_posts = get_posts('exclude=' . $post-&#62;ID . '&#038;numberposts=' . $max_articles . '&#038;category=' . $category_string);

        if ($cat_related_posts) {
            foreach ($cat_related_posts as $related_post) {
                $cnt++;
                if ($cnt &#62; $max_articles) break;
                echo '&#60;li class="child-' . $cnt . '"&#62;';
                echo '&#60;a href="' . get_permalink($related_post-&#62;ID) . '"&#62;';
                echo $related_post-&#62;post_title . '&#60;/a&#62;&#60;/li&#62;';
            }
        }
    }

    echo '&#60;/ul&#62;&#60;/div&#62;';

?&#62;</pre>
<p></code></p>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/fEqvPRJ6pu4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2009/06/15/wordpress-related-articles-by-tags-andor-categories/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2009/06/15/wordpress-related-articles-by-tags-andor-categories/</feedburner:origLink></item>
		<item>
		<title>Definition list for article comments or IM dialogue</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/5iRaNJ5ynJI/</link>
		<comments>http://www.maratz.com/blog/archives/2009/06/05/definition-list-for-article-comments-or-im-dialogue/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 07:00:16 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[coding/design]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=924</guid>
		<description><![CDATA[HTML5 is the buzzword this season. Leading people in the industry are using appropriate class names for what will hopefully once become fully supported structural elements. Fully supported = fully supported by browsers.
In getting ready for HTML5 instead of element header:

&#60;header>Site Name&#60;/header>

you’d write

&#60;div class="header">Site Name&#60;/div>

For the inclined readers, here’s the HTML5 working draft. Quick overview [...]]]></description>
			<content:encoded><![CDATA[<p>HTML5 is <em>the</em> buzzword this season. Leading people in the industry are using appropriate class names for what will hopefully once become fully supported structural elements. Fully supported = fully supported by browsers.</p>
<p>In getting ready for HTML5 instead of element <code>header</code>:</p>
<p><code>
<pre>&#60;header>Site Name&#60;/header></pre>
<p></code></p>
<p>you’d write</p>
<p><code>
<pre>&#60;div class="header">Site Name&#60;/div></pre>
<p></code></p>
<p>For the inclined readers, here’s the <a href="http://www.w3.org/html/wg/markup-spec/">HTML5 working draft</a>. Quick overview of the element list will help you catch the train.</p>
<h2>Definition lists, rediscovered</h2>
<p>Definition list is a personal favorite HTML pattern for marking-up 2 or more related content elements. I found it especially useful when nested in list-items on search results pages and various tag/category listings. This raised a lots of controversy in the past and is still raising today, but I won’t go down that route now. Here’s just a quick example, just in case you don’t have a clue what I’m talking about: <span id="more-924"></span></p>
<p><code>
<pre>&#60;ul>
    &#60;li>&#60;dl>
        &#60;dt>Title&#60;/dt>
        &#60;dd class="thumbnail">&#60;img src="image.jpg" alt="" />&#60;/dd>
        &#60;dd class="abstract">Lorem ipsum dolor sit amet...&#60;/dd>
    &#60;/dl>&#60;/li>
&#60;/ul></pre>
<p></code></p>
<p>The all new rediscovered <a href="http://www.w3.org/TR/html5/semantics.html#the-dialog-element">use of definition lists is with comments or dialogs</a>, for instance Twitter conversation. It has always been it’s intended for this, but now with the dawn of HTML5 (or launch-break for many) it regains the popularity.</p>
<p><cite><a href="http://www.w3.org/TR/html4/struct/lists.html#h-10.3">HTML4 specs</a> say:</cite></p>
<blockquote><p>Another application of <code>DL</code>, for example, is for marking up dialogues, with each <code>DT</code> naming a speaker, and each <code>DD</code> containing his or her words.</p></blockquote>
<p>And here it is:</p>
<p><code>
<pre>&#60;dl class="dialog">
    &#60;dt>
        &#60;a href="http://twitter.com/designer">
            &#60;img src="designer.jpg" alt="" /> @designer
        &#60;/a>
    &#60;/dt>
    &#60;dd>Oh, it looks beautiful with shortcuts.&#60;/dd>

    &#60;dt>
        &#60;a href="http://twitter.com/projectmanager">
            &#60;img src="projectmanager.jpg" alt="" /> @projectmanager
        &#60;/a>
    &#60;/dt>
    &#60;dd>What? But we have full sentences over there!&#60;/dd>  

    &#60;dt>
        &#60;a href="http://twitter.com/designer">
            &#60;img src="designer.jpg" alt="" /> @designer
        &#60;/a>
    &#60;/dt>
    &#60;dd>Huh?... but it breaks my grid?!
        F*ckin user generated content.&#60;/dd>

    &#60;dt>
        &#60;a href="http://twitter.com/projectmanager">
            &#60;img src="projectmanager.jpg" alt="" /> @projectmanager
        &#60;/a>
    &#60;/dt>
    &#60;dd>Another solution is: we don’t let users post anything.&#60;/dd>

    &#60;dt>
        &#60;a href="http://twitter.com/designer">
            &#60;img src="designer.jpg" alt="" /> @designer
        &#60;/a>
    &#60;/dt>
    &#60;dd>No, we can’t do that neither.
        How about we ask
            &#60;a href="http://twitter.com/programmer">@programmer&#60;/a>
            to shorten strings?&#60;/dd>

    &#60;dt>
        &#60;a href="http://twitter.com/projectmanager">
            &#60;img src="projectmanager.jpg" alt="" /> @projectmanager
        &#60;/a>
    &#60;/dt>
    &#60;dd>Clever idea! Go ask him!&#60;/dd>

    &#60;dt>
        &#60;a href="http://twitter.com/designer">
            &#60;img src="designer.jpg" alt="" /> @designer
        &#60;/a>
    &#60;/dt>
    &#60;dd>I came with the idea, &#60;em>you&#60;/em> ask him!&#60;/dd>

    &#60;dt>
        &#60;a href="http://twitter.com/projectmanager">
            &#60;img src="projectmanager.jpg" alt="" /> @projectmanager
        &#60;/a>
    &#60;/dt>
    &#60;dd>On second thought, I’ll tell
        &#60;a href="http://twitter.com/cssdeveloper">@cssdeveloper&#60;/a>
        to think of something.&#60;/dd>

    &#60;dt>
        &#60;a href="http://twitter.com/designer">
            &#60;img src="designer.jpg" alt="" /> @designer
        &#60;/a>
    &#60;/dt>
    &#60;dd>See? Problem solved!&#60;/dd>
&#60;/dl></pre>
<p></code></p>
<p>Is this making any sense? Or should we just stick with ordered/unordered lists and <code>cite</code> + <code>blockquote</code> pairs?</p>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/5iRaNJ5ynJI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2009/06/05/definition-list-for-article-comments-or-im-dialogue/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2009/06/05/definition-list-for-article-comments-or-im-dialogue/</feedburner:origLink></item>
		<item>
		<title>How do you start your own web design workshops</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/2byfEo5weJE/</link>
		<comments>http://www.maratz.com/blog/archives/2009/05/27/how-do-you-start-your-own-web-design-workshops/#comments</comments>
		<pubDate>Wed, 27 May 2009 09:29:24 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[events]]></category>
		<category><![CDATA[webradionice]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=874</guid>
		<description><![CDATA[So here we are — Alen Grakalić of CSS Globe fame and yours truly — preparing for our first very own web design workshop in Zagreb, Croatia. It&#8217;s all new to both of us and really, really exciting — even though the first one is just a case study, an experiment — to see if [...]]]></description>
			<content:encoded><![CDATA[<p>So here we are — Alen Grakalić of <a href="http://cssglobe.com/">CSS Globe</a> fame and yours truly — preparing for our first very own <a href="http://webradionice.com/">web design workshop</a> in Zagreb, Croatia. It&#8217;s all new to both of us and really, really exciting — even though the first one is just a case study, an experiment — to see if we (and the market) are up-to the task.<span id="more-874"></span></p>
<h2>How we decided about holding web design workshops?</h2>
<p>We found that there is a huge gap between top guns in the industry in this part of Europe and beginner-level CSS coders. At the moment it&#8217;s quite difficult to find at least an intermediate level client-side recruit. It&#8217;s even harder to hire a CSS rock star.</p>
<p>Various courses don&#8217;t provide web standards training at all, and only a few colleges in Croatia — by the share enthusiasm of the individual professors —  barely introduced web standards through brief presentations and seminars.</p>
<p>Quite obviously, what&#8217;s current on the Internet now, will be outdated by the time it gets approved by the ministries responsible for the scholarship programs. And the materials will be even more obsolete when those students leave their schools and colleges in search for a job.</p>
<h2>Why focusing on a single segment?</h2>
<p>We decided to go with single topics, because we feel this is the best value for the money. We have been visiting conferences in the past, with broader range of presentations: from strategy, to branding, to user experience, to design, to CSS, to JavaScript, to server-side programing, to server management — <em>all in one</em>.</p>
<p>Not everyone is interested in everything. It&#8217;s rare that a web professional is intimate with all of the planes, so we are focusing on a single topic one workshop at the time.</p>
<h2>Are you on your own?</h2>
<p>Luckily not. We still have client work to do, so for the sanity, we formed some awesome partnerships: </p>
<ul>
<li><a href="http://www.plus.hr/">Plus hosting</a> covered operational costs and as a result provided lower registration fees.</li>
<li><a href="http://ivanbrezakbrkan.com/">Ivan Brezak Brkan</a> is handling all the administrative/promotional tasks.</li>
</ul>
<h2>Misc F.A.Q.</h2>
<ul>
<li>
<dl>
<dt>Q: Do you plan to hold workshops other than about Web Standards, HTML and CSS?</dt>
<dd>A: Yes, we do — some of the next workshops will introduce you to Design for Web, User Experience, Usability and Accessibility, Typography for Web, DOM and jQuery, WordPress Themes, Content Strategy and Production, Small Business Management, Client Relationship Management etc.</dd>
</dl>
</li>
<li>
<dl>
<dt>Q: Do you plan to visit other cities than Zagreb?</dt>
<dd>A: Yes, we do — please DM <a href="http://twitter.com/webradionice">@webradionice</a> and we&#8217;ll consider bringing the show somewhere near you.</dd>
</dl>
</li>
<li>
<dl>
<dt>Q: Are you giving a certificate?</dt>
<dd>A: No we don&#8217;t — we don&#8217;t test participants at the end of the workshop, hence there&#8217;s no certificate. We are never meant to be the judges or appraisers, we are aiming to educate people in a way we&#8217;d like to be educated — telling a real stories from the trenches.</dd>
</dl>
</li>
<li>
<dl>
<dt>Q: Alright, but what do I get then?</dt>
<dd>A: You get the experience, tips and best practice advice from the experienced professionals.</dd>
</dl>
</li>
</ul>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/2byfEo5weJE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2009/05/27/how-do-you-start-your-own-web-design-workshops/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2009/05/27/how-do-you-start-your-own-web-design-workshops/</feedburner:origLink></item>
		<item>
		<title>Mini Seedcamp Ljubljana 2009</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/ypT0bEizyVI/</link>
		<comments>http://www.maratz.com/blog/archives/2009/04/24/mini-seedcamp-ljubljana-2009/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 06:44:25 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[events]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=869</guid>
		<description><![CDATA[Mini Seedcamp Ljubljana aims to connect the startup communities in Albania, Bosnia &#038; Herzegovina, Bulgaria, Croatia, Greece, Macedonia, Montenegro, Serbia, Slovenia and beyond!
Overheard: Seedcamp is a competition for prospective IT and web entrepreneurs. Each of first five teams gets an investment of 50K Euro — plus: three months of training and business development lectures in [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Mini Seedcamp Ljubljana aims to connect the startup communities in Albania, Bosnia &#038; Herzegovina, Bulgaria, Croatia, Greece, Macedonia, Montenegro, Serbia, Slovenia and beyond!</p></blockquote>
<p><strong>Overheard:</strong> Seedcamp is a competition for prospective IT and web entrepreneurs. Each of first five teams gets an investment of 50K Euro — plus: three months of training and business development lectures in London, UK — held by expert consultants from Google, Microsoft, Mozilla and Facebook.</p>
<p>Official site: <a href="http://seedcamp.com/pages/ljubljana09">Seedcamp Ljubljana 2009</a>.</p>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/ypT0bEizyVI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2009/04/24/mini-seedcamp-ljubljana-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2009/04/24/mini-seedcamp-ljubljana-2009/</feedburner:origLink></item>
		<item>
		<title>First look at the CSS support in Internet Explorer 8</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/-WmzXWcBQXU/</link>
		<comments>http://www.maratz.com/blog/archives/2009/03/22/first-look-at-the-css-support-in-internet-explorer-8/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 14:53:23 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[CSS 101]]></category>
		<category><![CDATA[coding/design]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=844</guid>
		<description><![CDATA[Internet Explorer 8 is released last week. The IE team promised the browser will be more standards aware, similar to it&#8217;s major competition Firefox, Opera and Safari.
The trouble is — designers and developers don&#8217;t settle for current minimum, we are always into something new. So, by the time a giant vendor locks the feature list, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.microsoft.com/windows/internet-explorer/">Internet Explorer 8</a> is released last week. The IE team promised the browser will be more standards aware, similar to it&#8217;s major competition <a href="http://www.mozilla.org/firefox">Firefox</a>, <a href="http://www.opera.com/">Opera</a> and <a href="http://www.apple.com/safari">Safari</a>.</p>
<p>The trouble is — designers and developers don&#8217;t settle for current minimum, we are always into something new. So, by the time a giant vendor locks the feature list, a more flexible and agile competition goes miles away.</p>
<p>In the era of rounded corners/borders and transparency made possible purely with CSS, IE team missed to implement both, or at least in the form that wouldn&#8217;t require separate style-sheets files to conform to <a href="http://www.w3.org/">W3C</a> guidelines.</p>
<p>I checked a few dozens of CSS-based web sites, and I&#8217;m not even sure anymore if everything works because developers payed special attention to IE 6 and IE 7, or is it because IE 8 is mature enough to render CSS layouts properly.</p>
<h2>What works, what isn&#8217;t working</h2>
<p>PNGs work without hacking. Rounded corners with CSS not. Text shadow — no. Alpha transparency is still possible only with proprietary filter property, for instance <code>filter: alpha(opacity=10);</code>.</p>
<p>Naturally, if you want your CSS to validate — this rule has to be extracted in separate file, <a href="/blog/archives/2005/06/16/essentials-of-css-hacking-for-internet-explorer/">preferably with conditional comments</a>.</p>
<p>The old <a href="http://www.maratz.com/blog/archives/2006/10/23/ie-7-quirks-round-one/">typeface order bug</a> is still present, and easy font embedding with <code>@font-face</code> doesn&#8217;t work either, so if you prefer this method, read <a href="http://jontangerine.com/log/2008/10/font-face-in-ie-making-web-fonts-work">how to do it in IE</a>. </p>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/-WmzXWcBQXU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2009/03/22/first-look-at-the-css-support-in-internet-explorer-8/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2009/03/22/first-look-at-the-css-support-in-internet-explorer-8/</feedburner:origLink></item>
		<item>
		<title>BarCamp Zagreb II</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/-SrcLV-yIIw/</link>
		<comments>http://www.maratz.com/blog/archives/2009/01/16/barcamp-zagreb-ii/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 05:28:35 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[events]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=824</guid>
		<description><![CDATA[A last minute announcement, but that is quite typical considering the ad-hoc nature of BarCamp Zagreb. This year&#8217;s event is taking place at the same venue, the Faculty of Electrical Engineering and Computing in Zagreb, Croatia at 23 JAN 2009.
BarCamp is a free event, there is no entry fee, but the attendees are encouraged to [...]]]></description>
			<content:encoded><![CDATA[<p>A last minute announcement, but that is quite typical considering the ad-hoc nature of <a href="http://barcamp.ini.hr/">BarCamp Zagreb</a>. This year&#8217;s event is taking place at the same venue, the <strong><a href="http://www.fer.hr/en">Faculty of Electrical Engineering and Computing</a> in Zagreb, Croatia</strong> at <strong>23 JAN 2009</strong>.</p>
<p>BarCamp is a free event, there is no entry fee, but the attendees are encouraged to participate with questions and open discussion. Take a look at the <a href="http://barcamp.ini.hr/raspored/">schedule</a>, consider submitting with your own presentation/panel and don&#8217;t forget to <a href="http://barcampzagreb.eventwax.com/barcamp-zagreb-no2/register">grab your seat</a>!</p>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/-SrcLV-yIIw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2009/01/16/barcamp-zagreb-ii/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2009/01/16/barcamp-zagreb-ii/</feedburner:origLink></item>
		<item>
		<title>Backup2Mail v.0.16</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/mkU8kJXZhus/</link>
		<comments>http://www.maratz.com/blog/archives/2009/01/11/backup2mail-v016/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 10:19:02 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[coding/design]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=813</guid>
		<description><![CDATA[Backup2Mail is automatic MySQL database backup web application. It is now upgraded and supports different host names. Download v.0.16.
Media Temple and some other hosting providers are using internal naming conventions for their database hosts (i.e. other than &#8216;localhost&#8217;). This upgrade enables backing up databases on such hosting setups.
Any feedback is appreciated!
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.backup2mail.com/">Backup2Mail</a> is automatic MySQL database backup web application. It is now upgraded and supports different host names. <a href="http://www.backup2mail.com/">Download v.0.16</a>.</p>
<p><a href="http://mediatemple.net/">Media Temple</a> and some other hosting providers are using internal naming conventions for their database hosts (i.e. other than &#8216;localhost&#8217;). This upgrade enables backing up databases on such hosting setups.</p>
<p>Any feedback is appreciated!</p>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/mkU8kJXZhus" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2009/01/11/backup2mail-v016/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2009/01/11/backup2mail-v016/</feedburner:origLink></item>
		<item>
		<title>Episode Four: Create bullet-proof, eco-friendly CSS</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/dyOZIQ5aC0k/</link>
		<comments>http://www.maratz.com/blog/archives/2008/12/18/episode-four-create-bullet-proof-eco-friendly-css/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 09:07:29 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[CSS 101]]></category>
		<category><![CDATA[coding/design]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=807</guid>
		<description><![CDATA[
This is the fourth part of the series, “Environmental friendly CSS”

In the previous episodes we’ve created a creative/technical brief, mocked-up design in Photoshop and decided on proper markup for the category cloud. Finally, we turn our design into web page element with some nifty CSS.
For those of you who better understand from live examples, here&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<div class="alignleft-pull pullquote">
<p>This is the fourth part of the series, “<a href="http://www.maratz.com/blog/archives/2008/11/23/environmental-friendly-css-the-series/">Environmental friendly CSS</a>”</p>
</div>
<p>In the previous episodes we’ve <a href="http://www.maratz.com/blog/archives/2008/11/27/episode-one-prepare-your-content-and-interface-copy/">created a creative/technical brief</a>, <a href="http://www.maratz.com/blog/archives/2008/12/04/episode-two-visually-design-information-elements-and-user-interface/">mocked-up design</a> in Photoshop and decided on <a href="http://www.maratz.com/blog/archives/2008/12/11/episode-three-mark-it-up/">proper markup for the category cloud</a>. Finally, we turn our design into web page element with some nifty CSS.</p>
<p>For those of you who better understand from live examples, here&#8217;s a <a href="http://webdesign.maratz.com/lab/environmental-friendly-css/">little treat for you</a>. If you&#8217;re beginner in CSS, read on. <span id="more-807"></span></p>
<h2>From the outside to the inside</h2>
<p>It is common sense to most of us, but nevertheless here&#8217;s an advice — don&#8217;t get into details too early, because you will have to go forth and back in the code too often.</p>
<p>Let&#8217;s pull the markup on stage:</p>
<p><code>
<pre>&#60;div id="categories"&#62;
	&#60;h4&#62;Most popular joke types and categories&#60;/h4&#62;
	&#60;ul&#62;
		&#60;li&#62;&#60;a href="#"&#62;Political jokes&#60;/a&#62;&#60;/li&#62;
		&#60;li&#62;&#60;a href="#"&#62;Professional humor&#60;/a&#62;&#60;/li&#62;
		&#60;li&#62;&#60;a href="#"&#62;Mathematical jokes&#60;/a&#62;&#60;/li&#62;
		&#60;li&#62;&#60;a href="#"&#62;Ethnic jokes&#60;/a&#62;&#60;/li&#62;
		&#60;li&#62;&#60;a href="#"&#62;British tell jokes&#60;/a&#62;&#60;/li&#62;
		&#60;li&#62;&#60;a href="#"&#62;Self-deprecating humor&#60;/a&#62;&#60;/li&#62;
		&#60;li&#62;&#60;a href="#"&#62;Blonde jokes&#60;/a&#62;&#60;/li&#62;
		&#60;li&#62;&#60;a href="#"&#62;Redneck jokes&#60;/a&#62;&#60;/li&#62;
	&#60;/ul&#62;
&#60;/div&#62;</pre>
<p></code></p>
<p>First set-up the main frame: set the dimensions and positioning of the <code>&#60;div id="categories"&#62;</code>. The width is fixed, but we let the height stay flexible, so if more content gets in there in the future, the box won&#8217;t break.</p>
<p>If you haven&#8217;t done so yet, <a href="http://www.maratz.com/downloads/environmental-friendly-css/environmental-friendly-css.psd.zip">Download .PSD file</a> and open it with Photoshop.</p>
<p>The rounded box has a width of 300px, so here the CSS goes:</p>
<p><code>
<pre>#categories { width: 300px; }</pre>
<p></code></p>
<p>The area below links to the bottom of the lowest character shadow is approximatelly 275px high. We add bottom padding, so there is always plenty of room for the comic dialog, no matter how many links is displayed:</p>
<p><code>
<pre>#categories {
    width: 300px;
    padding-bottom: 275px;
}</pre>
<p></code></p>
<p>Next, slice the top part of the box, name it <code>box-top.gif</code> and Save it in the same folder where the CSS file resides. It should look something like this:</p>
<p><img src="/img/2008/12-dec/18/01.gif" alt="" width="300" height="20" /></p>
<p>Now add background to the box:</p>
<p><code>
<pre>#categories {
    width: 300px;
    padding-bottom: 275px;
    background: #000 url(box-top.gif) no-repeat 0 0;
}</pre>
<p></code></p>
<h2>Detail 1: the heading</h2>
<p>We are not going to use the copy in the markup. Instead, there is a dialog bubble which is supposed to do the communication.</p>
<p>You&#8217;ve noticed that the bubble (i.e. <code>h4</code>) is off-set to the right. We have also set fixed width to <code>&#60;div id="categories"&#62;</code>. With <code>position: absolute</code> we&#8217;re going to shift the bubble outside the box. It will not break layout because absolute positioned elements are out of the document flow, which means they don&#8217;t affect their surrounding elements.</p>
<p>We already made some room for the dialog with bottom padding. Now we only have to add one more rule to <code>&#60;div id="categories"&#62;</code> so we can position <code>h4</code> relatively to the container:</p>
<p><code>
<pre>#categories {
    width: 300px;
    padding-bottom: 275px;
    background: #000 url(box-top.gif) no-repeat 0 0;
    position: relative;
}</pre>
<p></code></p>
<p>Remember, we left 275 pixels in height, so we use it to dimension the <code>h4</code>. Width is set to 100% by default, since <code>h4</code> is a block level element, but we need to push it outside the box, so we also need to increase its default with from 300 pixels (100%) to 350 pixels.</p>
<p>Finally, we use <code>bottom</code> and <code>left</code> CSS properties to set coordinates.</p>
<p><code>
<pre>#categories {
    width: 300px;
    padding-bottom: 275px;
    background: #000 url(box-top.gif) no-repeat 0 0;
    position: relative;
}

#categories h4 {
    position: absolute;
    height: 275px;
    width: 350px;
    left: 0;
    bottom: 0;
}
</pre>
<p></code></p>
<p>Now, go back to Photoshop and slice the bottom of the box and the dialog. You should get 350 x 275 pixels .GIF. Name it — you guessed it — <code>box-bottom.gif</code> and Save it in the same folder where the CSS file resides:</p>
<p><img src="/img/2008/12-dec/18/02.gif" alt="" width="350" height="275" /></p>
<p>Add background to CSS:</p>
<p><code>
<pre>#categories {
    width: 300px;
    padding-bottom: 275px;
    background: #000 url(box-top.gif) no-repeat 0 0;
    position: relative;
}

#categories h4 {
    position: absolute;
    height: 275px;
    width: 350px;
    left: 0;
    bottom: 0;
    background: url(box-bottom.gif);
}
</pre>
<p></code></p>
<p>And shift the remaining text to the left, by <code>text-indent</code>:</p>
<p><code>
<pre>#categories {
    width: 300px;
    padding-bottom: 275px;
    background: #000 url(box-top.gif) no-repeat 0 0;
    position: relative;
}

#categories h4 {
    position: absolute;
    height: 275px;
    width: 350px;
    left: 0;
    bottom: 0;
    background: url(box-bottom.gif);
    text-indent: -9999px;
    overflow: hidden; /* with this rule
        the container doesn't stretch to the left */
}
</pre>
<p></code></p>
<p>So far, so good: only the category links have been left to be done.</p>
<h2>Detail 2: list of categories</h2>
<p>At the beginning of the list styling, remove bullets and the default display behavior:</p>
<p><code>
<pre>#categories {
    width: 300px;
    padding-bottom: 275px;
    background: #000 url(box-top.gif) no-repeat 0 0;
    position: relative;
}

#categories h4 {
    position: absolute;
    height: 275px;
    width: 350px;
    left: 0;
    bottom: 0;
    background: url(box-bottom.gif);
    text-indent: -9999px;
    overflow: hidden; /* with this rule
        the container doesn't stretch to the left */
}

#categories li {
    list-style: none;
    display: inline;
}
</pre>
<p></code></p>
<p>Then we tell text to go into center, add some padding to <code>ul</code> element and remove possibly inherited margins:</p>
<p><code>
<pre>#categories {
    width: 300px;
    padding-bottom: 275px;
    background: #000 url(box-top.gif) no-repeat 0 0;
    position: relative;
}

#categories h4 {
    position: absolute;
    height: 275px;
    width: 350px;
    left: 0;
    bottom: 0;
    background: url(box-bottom.gif);
    text-indent: -9999px;
    overflow: hidden; /* with this rule
        the container doesn't stretch to the left */
}

#categories ul {
    text-align: center;
    padding: 1em 1.5em;
    margin: 0;
}

#categories li {
    list-style: none;
    display: inline;
}
</pre>
<p></code></p>
<p>And FINALLY add Comic Sans font to links:</p>
<p><code>
<pre>#categories {
    width: 300px;
    padding-bottom: 275px;
    background: #000 url(box-top.gif) no-repeat 0 0;
    position: relative;
}

#categories h4 {
    position: absolute;
    height: 275px;
    width: 350px;
    left: 0;
    bottom: 0;
    background: url(box-bottom.gif);
    text-indent: -9999px;
    overflow: hidden; /* with this rule
        the container doesn't stretch to the left */
}

#categories ul {
    text-align: center;
    padding: 1em 1.5em;
    margin: 0;
}

#categories li {
    list-style: none;
    display: inline;
}

#categories li a {
    font-family: 'Comic Sans MS', sans-serif;
    text-decoration: none;
    color: #fff;
}
</pre>
<p></code></p>
<p>Links are now perhaps too crowded, so we tweak them with some right and left padding. Also don&#8217;t forget <code>:hover</code> and <code>:focus</code> states:</p>
<p><code>
<pre>#categories {
    width: 300px;
    padding-bottom: 275px;
    background: #000 url(box-top.gif) no-repeat 0 0;
    position: relative;
}

#categories h4 {
    position: absolute;
    height: 275px;
    width: 350px;
    left: 0;
    bottom: 0;
    background: url(box-bottom.gif);
    text-indent: -9999px;
    overflow: hidden; /* with this rule
        the container doesn't stretch to the left */
}

#categories ul {
    text-align: center;
    padding: 1em 1.5em;
    margin: 0;
}

#categories li {
    list-style: none;
    display: inline;
}

#categories li a {
    font-family: 'Comic Sans MS', sans-serif;
    text-decoration: none;
    color: #fff;
    padding: 0 .2em;
        /* equals to 2px if calculated font-size is 10px */
}

#categories li a:hover,
#categories li a:focus {
    text-decoration: underline;
}
</pre>
<p></code></p>
<p>Excellent! Here is <strong>the final <a href="http://webdesign.maratz.com/lab/environmental-friendly-css/">working example</a></strong>. Go ahead, resize the text in your browser, or add more items — it won&#8217;t break. Everything is done except&#8230;</p>
<h2>Different font sizes?</h2>
<p>We miss one more thing — the different font sizes. But, it&#8217;s not done in CSS file, but with some inline HTML attributes. Basically, it all comes down to two approaches:</p>
<ul>
<li>a set of distinctive class names or</li>
<li>inline styles.</li>
</ul>
<p>Either way, you&#8217;ll have to do it server side or with JavaScript (both methods coming-up early in 2009.).</p>
<h2>What have we learned?</h2>
<p><strong>With lean markup, but smart CSS, almost any design can be sliced to a high quality web interface.</strong> Not only that — we also managed to make it bullet-proof, so the various scenarios (text resize and different amounts of content) don&#8217;t break the layout.</p>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/dyOZIQ5aC0k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2008/12/18/episode-four-create-bullet-proof-eco-friendly-css/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2008/12/18/episode-four-create-bullet-proof-eco-friendly-css/</feedburner:origLink></item>
		<item>
		<title>Episode Three: Mark it up!</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/NWK3di9cLqk/</link>
		<comments>http://www.maratz.com/blog/archives/2008/12/11/episode-three-mark-it-up/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 11:54:21 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[CSS 101]]></category>
		<category><![CDATA[coding/design]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=792</guid>
		<description><![CDATA[
This is the third part of the series, “Environmental friendly CSS”

In the previous episodes we’ve created a creative/technical brief and then mocked-up design in Photoshop. The next step in a process is creating solid XHTML markup. Let&#8217;s open it up with a question:
How to markup category cloud?
There are two simple approaches that usually comes to [...]]]></description>
			<content:encoded><![CDATA[<div class="alignleft-pull pullquote">
<p>This is the third part of the series, “<a href="http://www.maratz.com/blog/archives/2008/11/23/environmental-friendly-css-the-series/">Environmental friendly CSS</a>”</p>
</div>
<p>In the previous episodes we’ve <a href="http://www.maratz.com/blog/archives/2008/11/27/episode-one-prepare-your-content-and-interface-copy/">created a creative/technical brief</a> and then <a href="http://www.maratz.com/blog/archives/2008/12/04/episode-two-visually-design-information-elements-and-user-interface/">mocked-up design</a> in Photoshop. The next step in a process is creating solid XHTML markup. Let&#8217;s open it up with a question:</p>
<h2>How to markup category cloud?</h2>
<p>There are two simple approaches that usually comes to mind at first: a paragraph and an unordered list.</p>
<p>If we use paragraph with links, we wouldn&#8217;t probably miss it in terms of the default presentation across the range of User Agents. The thing is — if one is marking-up a &#8216;cloud&#8217;, it&#8217;s natural that all the links are inline, one after another.</p>
<blockquote><p>— Let me think about it! Yea, I will just set <code>text-alignment: center</code> to that paragraph and I&#8217;m done. Great!</p></blockquote>
<p><span id="more-792"></span></p>
<div><code>
<pre>&#60;div id="category-cloud"&#62;
	&#60;h4&#62;Most popular joke types and categories&#60;/h4&#62;
	&#60;p&#62;
		&#60;a href="#"&#62;Political jokes&#60;/a&#62;
		&#60;a href="#"&#62;Professional humor&#60;/a&#62;
		&#60;a href="#"&#62;Mathematical jokes&#60;/a&#62;
		&#60;a href="#"&#62;Ethnic jokes&#60;/a&#62;
		&#60;a href="#"&#62;British tell jokes&#60;/a&#62;
		&#60;a href="#"&#62;Self-deprecating humor&#60;/a&#62;
		&#60;a href="#"&#62;Blonde jokes&#60;/a&#62;
		&#60;a href="#"&#62;Redneck jokes&#60;/a&#62;
	&#60;/p&#62;
&#60;/div&#62;</pre>
<p></code></div>
<p><strong>Not great!</strong> The above code is wrong. The &#8216;cloud&#8217; is a visual cue, not the structural element. The category cloud is — in its essence — a list of categories, so the more suitable XHTML element would be unordered list.</p>
<h2>It&#8217;s not a cloud, it&#8217;s a list</h2>
<p>Cloud as typography or XHTML element doesn&#8217;t exist. Tag or category <strong>cloud is a visual representation  of the list</strong> of categories. So let&#8217;s try semantically correct markup — an unordered list.</p>
<div><code>
<pre>&#60;div id="categories"&#62;
	&#60;h4&#62;Most popular joke types and categories&#60;/h4&#62;
	&#60;ul&#62;
		&#60;li&#62;&#60;a href="#"&#62;Political jokes&#60;/a&#62;&#60;/li&#62;
		&#60;li&#62;&#60;a href="#"&#62;Professional humor&#60;/a&#62;&#60;/li&#62;
		&#60;li&#62;&#60;a href="#"&#62;Mathematical jokes&#60;/a&#62;&#60;/li&#62;
		&#60;li&#62;&#60;a href="#"&#62;Ethnic jokes&#60;/a&#62;&#60;/li&#62;
		&#60;li&#62;&#60;a href="#"&#62;British tell jokes&#60;/a&#62;&#60;/li&#62;
		&#60;li&#62;&#60;a href="#"&#62;Self-deprecating humor&#60;/a&#62;&#60;/li&#62;
		&#60;li&#62;&#60;a href="#"&#62;Blonde jokes&#60;/a&#62;&#60;/li&#62;
		&#60;li&#62;&#60;a href="#"&#62;Redneck jokes&#60;/a&#62;&#60;/li&#62;
	&#60;/ul&#62;
&#60;/div&#62;</pre>
<p></code></div>
<p>Some novice CSS developers in the past argued that they were having troubles with list-items in tag clouds. In the last article (coming up next week) we will explain it throughout. But, it&#8217;s very important to <strong>learn how to shift from visual/CSS mindset to semantic/contextual XHTML mindset</strong>.</p>
<h2>A little practice will get you there</h2>
<p>When deciding on the XHTML structure for any given element, <strong>try to ignore the design at first</strong>. You will easily modify markup later if you find no other way to accomplish layout only with CSS.</p>
<p>Instead, dive-in under the surface and check the bare-naked content and context to decide what markup should do the job.</p>
<p>If creating XHTML snippets is a second nature to you, please share how do <em>you</em> <strong>fight your thoughts about how it&#8217;s going to look</strong> when choosing appropriate markup?</p>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/NWK3di9cLqk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2008/12/11/episode-three-mark-it-up/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2008/12/11/episode-three-mark-it-up/</feedburner:origLink></item>
		<item>
		<title>Episode Two: Visually design information elements and user interface</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/xdQsOJFcQtk/</link>
		<comments>http://www.maratz.com/blog/archives/2008/12/04/episode-two-visually-design-information-elements-and-user-interface/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 08:01:24 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[coding/design]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=772</guid>
		<description><![CDATA[
This is the second part of the series, “Environmental friendly CSS”

In the previous episode we&#8217;ve created a creative/technical brief. In this article we are going to use that document to design the category cloud area. For all busy readers, here is the final result:

The process
Most of the time, you&#8217;d want to first scribble some sketches, [...]]]></description>
			<content:encoded><![CDATA[<div class="alignleft-pull pullquote">
<p>This is the second part of the series, “<a href="http://www.maratz.com/blog/archives/2008/11/23/environmental-friendly-css-the-series/">Environmental friendly CSS</a>”</p>
</div>
<p>In the <a href="http://www.maratz.com/blog/archives/2008/11/27/episode-one-prepare-your-content-and-interface-copy/">previous episode</a> we&#8217;ve created a creative/technical brief. In this article we are going to use that document to design the category cloud area. For all busy readers, here is the final result:</p>
<p><img src="http://www.maratz.com/img/2008/12-dec/environmental-friendly-css-final.gif" alt="Final image" width="420" height="500" /></p>
<h2>The process</h2>
<p>Most of the time, you&#8217;d want to first scribble some sketches, the old school way — pencil and paper. Yes, another Moleskine sucker.</p>
<p><img src="http://www.maratz.com/img/2008/12-dec/environmental-friendly-css-moleskine.jpg" alt="Final image" width="420" height="234" /></p>
<p>As you can see, it all comes down to some quick ideas and metaphors in order to get rid of the noise. This way you can rapidly test <a href="http://www.thinkvitamin.com/features/design/how-crap-is-your-site-design">proximity, contrast and alignment</a> and set the overall look-and-feel.</p>
<p>Before I fired-up Photoshop, I knew I was going to have a dialogue between two characters on a window, carelessly enjoying the force of the nature. As a contrast, I planed another character who&#8217;s experience wouldn&#8217;t be so pleasant and optimistic. <span id="more-772"></span></p>
<p>See some different/transitional design versions:</p>
<p><img src="http://www.maratz.com/img/2008/12-dec/environmental-friendly-css-01.gif" alt="ver. 01" width="420" height="500" /></p>
<p><img src="http://www.maratz.com/img/2008/12-dec/environmental-friendly-css-02.gif" alt="ver. 02" width="420" height="500" /></p>
<p><img src="http://www.maratz.com/img/2008/12-dec/environmental-friendly-css-03.gif" alt="ver. 03" width="420" height="500" /></p>
<p><img src="http://www.maratz.com/img/2008/12-dec/environmental-friendly-css-04.gif" alt="ver. 04" width="420" height="500" /></p>
<h2>Photoshop steps</h2>
<p>The approximate Photoshop process goes like this:</p>
<ul>
<li><strong>Rectangular marquee tool</strong>: for the dimensions (300px in width, random in height), set Guides</li>
<li><strong>Rounded rectangle tool</strong> (Shape layers toggled): draw main box (the window), set stroke</li>
<li><strong>Elliptical marquee tool</strong>: create random circles and ellipses by holding Shift to form the big cloud, fill selection with color.</li>
<li><strong>Pen tool</strong> (Shape layers toggled): draw lightning</li>
<li><strong>Type tool</strong>: write copy (tags and the label)</li>
<li><strong>Custom shape tool</strong> (Shape layers toggled): choose Talk 4 shape, draw dialog cloud, set stroke</li>
<li><strong>Elliptical marquee and Polygonal lasso tools</strong>: draw the character prototype using selections and then filling it with black.</li>
<li><strong>Duplicate</strong> the character and test downscaling, rotation and perspective (Edit &#8594; Transform).</li>
<li>Set the characters in place, modify the one that is going to be hit by the lightning (I used <strong>a combination of elliptical selections and brushes</strong> for the face).</li>
<li>Draw radiator with <strong>Pen tool</strong> (Paths toggled), then <strong>Make selection</strong>, and then <strong>Fill</strong>. If you draw the perspective freehand, it could take a couple of attempts to get it right.</li>
<li><strong>Pen tool</strong> (Paths toggled): draw a cable curve, then <strong>Stroke path with Brush</strong> (toggle simulate pressure checkbox).</li>
<li>Draw grills, color them red, make it all looks hot (as in hot temperature) with <strong>Outer Glow</strong>.</li>
<li>Select one of the inside character layer, then <strong>Select &#8594; Modify &#8594; Contract</strong> for about 2px, then create new <strong>Layer via Copy</strong> (Cmd/Ctrl + J), keep the selection toggled.</li>
<li><strong>Brush tool</strong>: set <strong>Opacity</strong> to very low, color: red, and gently draw the reflection on the character; repeat for the second one.</li>
<li><strong>Custom shape tool</strong> (Shape layers toggled): choose <strong>Heart card</strong> shape, draw a couple of hearts, variate size and opacity.</li>
<li><strong>Elliptical marquee tool</strong>: select some ellipses, fill with black, free-transform and lower the opacity.</li>
<li>Make final tweaks.</li>
</ul>
<h2>Deliverables</h2>
<p>To get a better picture about how it looks like in layers, <strong>download open source PSD file <a href="http://www.maratz.com/downloads/environmental-friendly-css/environmental-friendly-css.psd.zip">environmental-friendly-css.psd.zip (68 KB)</a></strong>.</p>
<h2>Movie anyone?</h2>
<p>I&#8217;m aware that the written steps and a PSD don&#8217;t get you as close as you might want to, so at the end of the series we&#8217;re going to deliver a screen-cast of the whole process.</p>
<p>In a mean-time, please share your thoughts: Would you do it in the similar fashion? Or would you take totally different approach?</p>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/xdQsOJFcQtk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2008/12/04/episode-two-visually-design-information-elements-and-user-interface/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2008/12/04/episode-two-visually-design-information-elements-and-user-interface/</feedburner:origLink></item>
		<item>
		<title>Episode One: Prepare your content and interface copy</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/6oWx4SSP3zc/</link>
		<comments>http://www.maratz.com/blog/archives/2008/11/27/episode-one-prepare-your-content-and-interface-copy/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 06:02:40 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[coding/design]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=755</guid>
		<description><![CDATA[
This is the first part of the series, “Environmental friendly CSS”

We want to keep this simple. The example scenery is a fictitious blog with jokes and funny videos. Furthermore, the build part of the series will be based on the WordPress theme template, so you&#8217;d feel more comfortable following the code.
Setup the context
In this series, [...]]]></description>
			<content:encoded><![CDATA[<div class="alignleft-pull pullquote">
<p>This is the first part of the series, “<a href="http://www.maratz.com/blog/archives/2008/11/23/environmental-friendly-css-the-series/">Environmental friendly CSS</a>”</p>
</div>
<p>We want to keep this simple. The example scenery is a fictitious blog with jokes and funny videos. Furthermore, the build part of the series will be based on the <a href="http://wordpress.org/">WordPress</a> theme template, so you&#8217;d feel more comfortable following the code.</p>
<h2>Setup the context</h2>
<p>In this series, we are about to design and style the tag cloud for a sidebar.<br />
You&#8217;ve already seen those. If not, see <a href="http://www.coolinarika.com/recepti">the live example</a> (bottom right).</p>
<p>Additionally, we are going to reuse some common HTML snippets to add a little spice to interface design. More on that in the next episodes.<span id="more-755"></span></p>
<h2>The Content</h2>
<p>For the main content area, let&#8217;s use a random internet joke and a <a href="http://www.youtube.com/watch?v=h_vvI26NnwE">random video from Youtube</a>. We&#8217;ll also use some common blog navigation items and a search box.</p>
<p>For the tag cloud we have <a href="http://en.wikipedia.org/wiki/Joke#Types_of_jokes">types of jokes</a>: <em>Political jokes</em>, <em>Professional humor</em>, <em>Mathematical jokes</em>, <em>Ethnic jokes</em>, <em>British tell jokes</em>, <em>Self-deprecating humor</em>, <em>Blonde jokes</em>, <em>Redneck jokes</em> etc.</p>
<h2>User experience requirements</h2>
<p>Visitors of such a site would want to have a good laugh. The interface is supposed to support that, so we should invent some less formal labels and meta-titles to facilitate overall experience.</p>
<p>Instead of <q>&#8220;tag cloud&#8221;</q> we&#8217;re going with <q>&#8220;OMG, look at the storm!&#8221;</q>.</p>
<h2>Non-graphic User Agent requirements</h2>
<p>The web site should be accessible via mobile phones, so visitors can enjoy jokes while commuting or attending a boring meeting.</p>
<p>Regarding the later, the site should be easy to use with just one hand under the conference table — while you are pretending that you are participating in a meeting. Make it dead simple: linear with appropriate skip-to links.</p>
<p>The sentence <q>&#8220;OMG, look at the storm&#8221;</q> that we are using in full blown desktop browser is inadequate here. If we remove graphics, it&#8217;s silly to call a visitor to look at something that isn&#8217;t there. So we are going to name it something more clear and inline with the device. Read on.</p>
<h2>Search engines requirements</h2>
<p>Proper wording (keywords, phrases and labels) facilitate searching and getting the right search results. Users probably wouldn&#8217;t enter <q>&#8220;joke tags&#8221;</q> into Google search box, but they might search for <q>&#8220;joke categories&#8221;</q>, <q>&#8220;joke types&#8221;</q> or <q>&#8220;popular joke types&#8221;</q>.</p>
<p>Obviously, what is technically correct isn&#8217;t necessary user-friendly. Try to think about the phrases a random seeker would use to get to the content you are offering.</p>
<p>Said the above, let&#8217;s settle down with <q>&#8220;Most popular joke types and categories&#8221;</q>.</p>
<h2>Summary</h2>
<p>It&#8217;s always nice to create a short document which will outline your research in a form of Interface brief for the designer and/or front-end developer.</p>
<p>Don&#8217;t make it too fancy, stay focused, give a little background and then describe elements. See <a href="http://www.maratz.com/downloads/environmental-friendly-css/sample-interface-brief.pdf">sample Interface brief (17KB PDF)</a>.</p>
<p>In the next episode, we are going to deliver interface design mockup, based on the requirements outlined in this article.</p>
<p>Any Comments? Too basic, too advanced? Fire at will!</p>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/6oWx4SSP3zc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2008/11/27/episode-one-prepare-your-content-and-interface-copy/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2008/11/27/episode-one-prepare-your-content-and-interface-copy/</feedburner:origLink></item>
		<item>
		<title>Environmental friendly CSS, the series</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/ATAZvyCLNcU/</link>
		<comments>http://www.maratz.com/blog/archives/2008/11/23/environmental-friendly-css-the-series/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 11:14:38 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[CSS 101]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=719</guid>
		<description><![CDATA[Anything is recyclable, so is your HTML markup. Claim the right to do it with nature-, eco-, environmental-friendly style sheets! (use whichever buzzword).
Buckle up, ‘cause we are introducing Environmental friendly CSS, a four article series, that aims to shift any novice and CSS expert alike — into ecologically aware client-side developer. The series is based [...]]]></description>
			<content:encoded><![CDATA[<p>Anything is recyclable, so is your HTML markup. Claim the right to do it with nature-, eco-, environmental-friendly style sheets! (use whichever buzzword).</p>
<p>Buckle up, ‘cause we are introducing <strong>Environmental friendly CSS</strong>, a four article series, that aims to shift any novice and CSS expert alike — into ecologically aware client-side developer. The series is based on a real-world web site, developed as we speak.</p>
<p><img src="http://www.maratz.com/img/2008/11-nov/environmental-friendly-css.jpg" alt="" /></p>
<p>The first article is expected this Thursday morning CET, and the others over the next three weeks. Here is the series overview:</p>
<ol>
<li>
<dl>
<dt><a href="http://www.maratz.com/blog/archives/2008/11/27/episode-one-prepare-your-content-and-interface-copy/">Prepare your content and interface copy</a></dt>
<dd>Think about the context, the content, the real users, accessibility and search engines.</dd>
</dl>
</li>
<li>
<dl>
<dt><a href="http://www.maratz.com/blog/archives/2008/12/04/episode-two-visually-design-information-elements-and-user-interface/">Visually design information elements and user interface</a></dt>
<dd>Go wild in your graphic editor to lead the eyes around the layout.</dd>
</dl>
</li>
<li>
<dl>
<dt><a href="http://www.maratz.com/blog/archives/2008/12/11/episode-three-mark-it-up/">Mark it up!</a></dt>
<dd>Create sound and solid markup, with accessibility in mind — without looking into the visual mockup.</dd>
</dl>
</li>
<li>
<dl>
<dt><a href="http://www.maratz.com/blog/archives/2008/12/18/episode-four-create-bullet-proof-eco-friendly-css/">Create bullet-proof, eco-friendly CSS</a></dt>
<dd>Use CSS skills to recycle accessibility-related markup into visually attractive hints.</dd>
</dl>
</li>
</ol>
<p>For all the fans out there: we are going to disclosure Director&#8217;s Special at the end of the series.</p>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/ATAZvyCLNcU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2008/11/23/environmental-friendly-css-the-series/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2008/11/23/environmental-friendly-css-the-series/</feedburner:origLink></item>
		<item>
		<title>Must-have vs. Nice-to-have feature list</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/TfgX3TkkaJA/</link>
		<comments>http://www.maratz.com/blog/archives/2008/11/14/must-have-vs-nice-to-have-feature-list/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 05:04:21 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[tips]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=709</guid>
		<description><![CDATA[By separating specifications to Must-have and Nice-to-have lists, we are helping clients better understand the process and have more control over the product and the budget.
Clients are usually not familiar with the complexity of certain features. Something that occupies small area on the interface — for instance, a newsletter subscription form or &#8220;send to a [...]]]></description>
			<content:encoded><![CDATA[<p>By separating specifications to Must-have and Nice-to-have lists, we are helping clients better understand the process and have more control over the product and the budget.</p>
<p>Clients are usually not familiar with the complexity of certain features. Something that occupies small area on the interface — for instance, a newsletter subscription form or &#8220;send to a friend&#8221; — might be more complex than the rest of the site.</p>
<h2>RFP full of features</h2>
<p>When glancing over the request for a proposal that is full of tiny little add-ons, you already know — it will boost the quote up to the sky. Most of the functionalities are in their original form simple and straight-forward, but each project has it&#8217;s own twists. Ideally, each detail have to be tailored to perfectly fit the rest of the site.</p>
<p>When the prospect is able to bare her requirements down to absolutely essential parts, the &#8220;core&#8221;, you are half way there.</p>
<p>This is not a single player match. We as an experienced professionals should help and educate clients  — and finally: make them confident in our abilities.</p>
<p>Depending on the nature of the relationship with the client, ask simple questions:</p>
<blockquote><p>— &#8220;If you&#8217;d ask someone to create a web site as a favor, what would be the absolutely necessary parts?&#8221;.</p></blockquote>
<h2>Break it by milestones</h2>
<p>It is a win-win situation. Quoting a Must-have list is so much easier! When you&#8217;re both settled with the features/price, call it a milestone, a phase in a process.</p>
<p>During the first phase, you&#8217;re about to show the client that you are worth her money. Release this first &#8220;essential&#8221; version. If she&#8217;s satisfied with the results, price and timeline, you gained the trust.</p>
<p>From that point on, discussing the Nice-to-have features is a breeze.</p>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/TfgX3TkkaJA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2008/11/14/must-have-vs-nice-to-have-feature-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2008/11/14/must-have-vs-nice-to-have-feature-list/</feedburner:origLink></item>
		<item>
		<title>Bring it on!</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/dLmpmHwdgRU/</link>
		<comments>http://www.maratz.com/blog/archives/2008/11/13/bring-it-on/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 07:00:24 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[fatherhood]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=670</guid>
		<description><![CDATA[I have two beautiful boys and the best Mrs in the World. The time has come to start my own business.
Why now?
Tin is now 4 months old and has been diagnosed dystonia. It&#8217;s nothing as fatal as it sounds, but we still need to stay focused and keep up with the physical therapy. If we do, [...]]]></description>
			<content:encoded><![CDATA[<p>I have two beautiful boys and the best Mrs in the World. The time has come <strong>to start <a href="http://www.creativenights.com/">my own business</a></strong>.</p>
<h2>Why now?</h2>
<p>Tin is now 4 months old and has been diagnosed <a href="http://en.wikipedia.org/wiki/Dystonia">dystonia</a>. It&#8217;s nothing as fatal as it sounds, but we still need to stay focused and keep up with the physical therapy. If we do, everything should be fine by his first birthday.</p>
<p>Apart from being a web enthusiast, I&#8217;m also a kinesiologist. While Mrs is a genuine super-mom who handles both of our boys well, I need to help as much as I can to develop Tin&#8217;s motor abilities. And who fits better than <a href="http://www.godtube.com/view_video.php?viewkey=8cf08faca5dd9ea45513">his own father</a>?</p>
<p>Going freelance will hopefully provide more schedule flexibility, in opposite to company lifestyle, where you&#8217;re expected to be available <em>nine to five</em>.</p>
<h2>What&#8217;s next?</h2>
<p>I&#8217;m not leaving <a href="http://www.adriamedia.hr/">Adria Media Zagreb</a> completely, though. We managed to find a win-win relationship. I will still collaborate on a new projects to join the company blockbusters <a href="http://www.croportal.net/">Croportal</a>, <a href="http://www.roditelji.hr/">Roditelji</a> and <a href="http://www.story.hr/">Story</a>.</p>
<p>If you are from Croatia and find the above sites exciting, check out the <a href="http://www.croportal.hr/lab/2008/11/12/zovi-pojacanje/">2 new job openings</a>.</p>
<p>I also have an extensive list of faithful clients from all around the globe, which should keep the cash flow steady. If you can see me helping your project, <a href="/contact/">shoot me a message</a>.</p>
<p>Last, but not least, I&#8217;d love to finally bring to life some of the ideas that have been laying around for a while. A couple of pro-bono PSDs are also waiting for a chop.</p>
<p><q>— Bring it on!</q></p>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/dLmpmHwdgRU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2008/11/13/bring-it-on/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2008/11/13/bring-it-on/</feedburner:origLink></item>
		<item>
		<title>Web typography class at School of Design</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/EM2N50DQFAI/</link>
		<comments>http://www.maratz.com/blog/archives/2008/10/23/web-typography-class-at-school-of-design/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 06:06:48 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[typography]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=633</guid>
		<description><![CDATA[Earlier this month Tin Kadoić invited me to hold a class to a group of students at School of Design in Zagreb. The topic was Web Typography and the goal was to introduce students to how type works in modern browsers.
We weren&#8217;t aiming to teach them CSS or any coding techniques for that matter. We [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier this month <a href="http://www.blackduke.com/">Tin Kadoić</a> invited me to hold a class to a group of students at <a href="http://www.studijdizajna.com/">School of Design in Zagreb</a>. The topic was Web Typography and <strong>the goal was to introduce students to how type works in modern browsers</strong>.</p>
<p>We weren&#8217;t aiming to teach them CSS or any coding techniques for that matter. <strong>We were after explaining technical limitations on the web.</strong> It was all about a few important points, live explained with <a href="http://www.typetester.org/">Typetester</a> and presented in a form of a <a href="http://www.maratz.com/downloads/web-typography-checklist.pdf">checklist</a> (PDF, 24KB).</p>
<p>The group was already familiar with the design theory. I was quite astonished how well they handle typographic vocabulary. They were, on the other hand, disappointed by the fact that there&#8217;s only quite a few fonts they can use for body copy in order to cover the majority of visitors.</p>
<p>The students were interested in learning about progressive enhancement of a web page with image/Flash replacement methods. Once I explained structural layers and how site mechanics work in general, they asked a couple of smart questions, which lead to an interesting discussion. Mission accomplished.</p>
<p><a href="http://jontangerine.com/">Jon Tan&#8217;s</a> article <a href="http://jontangerine.com/log/2008/10/flipped-types">Flipped Types</a> was a great help to explain <strong>the major difference in approach when designing for print vs. web</strong>.</p>
<p>The summary of the morning is best explained by one of the students&#8217; genuine eureka conclusion:</p>
<blockquote><p>&#8220;Oh, God! So it basically means, we have to think about many different scenarios when designing for web?&#8221;</p></blockquote>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/EM2N50DQFAI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2008/10/23/web-typography-class-at-school-of-design/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2008/10/23/web-typography-class-at-school-of-design/</feedburner:origLink></item>
		<item>
		<title>About Us: Copy and Paste</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/GWwAsJtgg4o/</link>
		<comments>http://www.maratz.com/blog/archives/2008/10/17/about-us-copy-and-paste/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 05:57:01 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[tips]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=605</guid>
		<description><![CDATA[I was taught to care about who is behind the portfolio. 
When I land to a site, I&#8217;m interested to first read About us section, so I can visualize author while browsing her showcase. It helps me better remember people, and more easily get back when I need to. Authentic copy helps. Photo, too. Don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>I was taught to care about who is behind the portfolio. </p>
<p>When I land to a site, I&#8217;m interested to first read <strong>About us</strong> section, so I can visualize author while browsing her showcase. It helps me better remember people, and more easily get back when I need to. Authentic copy helps. Photo, too. <strong>Don&#8217;t make it generic.</strong></p>
<p>Don&#8217;t copy and paste sentences and phrases you found on other sites. Don&#8217;t claim you&#8217;re something, you&#8217;re not, hoping that such facts would bring you more work. Rather than that — show us what would you like to be sometimes in the future, and someone might give you a chance.</p>
<p>It&#8217;s okay if you don&#8217;t have experience, it stinks if you provide false or generic information.</p>
<p><strong>The quantity of experience is not the essential part of your resume. It&#8217;s the progress, and the current state of you.</strong> If you have tendency to develop new professional interests and enhance personal grow over time, then you have an advantage over a person who sticks at the same level over years, just switching companies.</p>
<p><strong>If you are your own copywriter, let friends and colleagues randomly describe you.</strong> You&#8217;ll have enough raw material to chop off the interesting chunks of text and spice it up with your own writing style.</p>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/GWwAsJtgg4o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2008/10/17/about-us-copy-and-paste/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2008/10/17/about-us-copy-and-paste/</feedburner:origLink></item>
		<item>
		<title>Jim Coudal: The Three Question Test</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/ZY3SmInsSPA/</link>
		<comments>http://www.maratz.com/blog/archives/2008/10/01/jim-coudal-the-three-question-test/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 04:21:43 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=600</guid>
		<description><![CDATA[Jim Coudal on evaluating whether or not to pursue a project:
1. Will we be able to make money? We&#8217;re a business. We have mortgages and tuitions to pay. Plus, if we don&#8217;t make some cash once in a while, how will we feed our habit of continually screwing around?
2. When we&#8217;re done, will we be [...]]]></description>
			<content:encoded><![CDATA[<p><cite><a href="http://www.coudal.com/">Jim Coudal</a></cite> on evaluating whether or not to pursue a project:</p>
<blockquote><p><strong>1. Will we be able to make money?</strong> We&#8217;re a business. We have mortgages and tuitions to pay. Plus, if we don&#8217;t make some cash once in a while, how will we feed our habit of continually screwing around?</p>
<p><strong>2. When we&#8217;re done, will we be proud of the work we&#8217;ve done?</strong> Slaving for months on a project only to not want to show it to anyone when you&#8217;re finished just plain sucks. No amount of money can make that feel better.</p>
<p><strong>3. Can we learn a little something new along the way?</strong> Executing the project has to make us smarter and help satisfy our curiosity, which we think is our greatest asset.</p></blockquote>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/ZY3SmInsSPA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2008/10/01/jim-coudal-the-three-question-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2008/10/01/jim-coudal-the-three-question-test/</feedburner:origLink></item>
		<item>
		<title>The curse of estimates</title>
		<link>http://feedproxy.google.com/~r/maratzcom/~3/GJrI8cj1Od8/</link>
		<comments>http://www.maratz.com/blog/archives/2008/09/30/the-curse-of-estimates/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 05:56:35 +0000</pubDate>
		<dc:creator>Marko Dugonjić</dc:creator>
				<category><![CDATA[tips]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.maratz.com/blog/?p=535</guid>
		<description><![CDATA[
I want to run faster.Get brief. Set goals. Score. Get out.Wet dreams.

Experts are cursed. In my experience — the more a person knows, the more she is unsure when asked for an approximation in terms of time for the task at hand.
This can be quite challenging situation, since the majority of clients/investors are not able [...]]]></description>
			<content:encoded><![CDATA[<div class="alignleft-pull pullquote">
<p>I want to run faster.<br />Get brief. Set goals. Score. Get out.<br />Wet dreams.</p>
</div>
<p>Experts are cursed. In my experience — the more a person knows, the more she is unsure when asked for an approximation in terms of time for the task at hand.</p>
<p>This can be quite challenging situation, since the majority of clients/investors are not able to deliver fully developed specs. <strong>Most of the time, they just tell you what they envision in general, and you&#8217;ll have to figure it all out by yourself</strong>. If you are not reacting promptly, in many cases you loose a prospect.</p>
<p>In fact, prospects are right. They hire you to create magic from their random thoughts. The only problem is — you can&#8217;t charge your know-how separately. But I digress.</p>
<p><strong>All professions on the web are infected by the correct estimate syndrome.</strong> Perhaps because I&#8217;m at the front-end side of things, I perceive back-end people are more into this epidemic than designers or front-end developers. I rarely ask front-end people, since I already know what can be done at what cost and in what time. So take my claims with a grain of salt.</p>
<p>Designers as a more irrational people are giving the estimate by their gut feeling or quite often already have established prices for various deliverables.</p>
<p>Programmers are rational and concrete, so they are always trying to give the exact estimate. I dare to send a message: <strong>we need such a precision only and exclusively in your work</strong>. The time programmer spends on discovering how things work, should be calculated in the estimate. I strongly believe that anything can be disassembled in matter of days, if not hours.</p>
<p>Features that clients request are almost always invented before. Clients are occasionally surprisingly informed and educated, but very rarely with a true authentic concept. My logic tells me — <strong>we are re-factoring what have already being adopted on the web</strong>. We should be familiar with 95% of the requested features or tasks.</p>
<p>Unless it&#8217;s something completely new. People are telling me <q>The new things are fun to work with</q>. I hear that all the time. So I have a second-guess that the estimate in terms of billable hours is not applicable here.</p>
<p>As I see it — <strong>you work repetitive tasks for money, while you innovate for fun and personal growth</strong> (and so you can make more money later, when the feature becomes popular request or part of a standard package).</p>
<p>For any task, there is the worst case estimate, the super-optimistic case estimate and the estimate by experience. Experienced <a href="http://www.maratz.com/blog/archives/2008/09/28/experts/">expert</a> should know:</p>
<ul>
<li>what can go wrong</li>
<li>how fast she can do it, if she is in the right mood</li>
<li>how much time and effort some similar task(s) took her in the past</li>
</ul>
<p>This is, of course, my point of view. What&#8217;s your approach on this?</p>
<h3>Addenum</h3>
<p><a href="http://snook.ca/">Snook</a> lists the most common tasks a true web developer has to go through in <a href="http://snook.ca/archives/opinion/web-dev-personal-projects/">A Web Developer&#8217;s Personal Projects</a>.</p>
<img src="http://feeds.feedburner.com/~r/maratzcom/~4/GJrI8cj1Od8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.maratz.com/blog/archives/2008/09/30/the-curse-of-estimates/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://www.maratz.com/blog/archives/2008/09/30/the-curse-of-estimates/</feedburner:origLink></item>
	</channel>
</rss>
