<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <id>tag:www.germanforblack.com,2005:/articles</id>
  <link rel="alternate" type="text/html" href="http://www.germanforblack.com"/>
  <link rel="self" type="application/atom+xml" href="http://www.germanforblack.com/articles.atom"/>
  <title>Articles by Ben Schwarz</title>
  <updated>2011-12-09T00:00:00-08:00</updated>
  <entry>
    <id>tag:www.germanforblack.com,2005:Article/</id>
    <link rel="alternate" type="text/html" href="http://www.germanforblack.com/articles/stress-and-creation"/>
    <title>Stress, and creation</title>
    <content type="html">&lt;div class='column eight'&gt;
  &lt;p&gt;I was recently having one of those &amp;ldquo;life, the universe and everything&amp;rdquo; conversations with a close industry (web) friend.&lt;/p&gt;
  
  &lt;p&gt;Mid-conversation I dropped that I&amp;rsquo;d identified three kinds of stress that we face as creators &amp;ndash; it felt somewhat poetic at the time, so I thought I&amp;rsquo;d take some time to describe it.&lt;/p&gt;
  
  &lt;p&gt;&lt;strong&gt;Physical&lt;/strong&gt;, the kind of stress you&amp;rsquo;re under when you&amp;rsquo;ve been eating poorly, drinking too much, exercising too little, or working too long. We&amp;rsquo;ve all been there, but for the most part, it&amp;rsquo;s manageable.&lt;/p&gt;
  
  &lt;p&gt;&lt;strong&gt;Mental&lt;/strong&gt;, you&amp;rsquo;ve got things floating around your head that are manifesting into bigger problems or you&amp;rsquo;re lacking the focus to handle what the real issues are. This is the hardest to self-diagnose, and is firmly linked to physical stress.&lt;/p&gt;
  
  &lt;p&gt;And finally, &lt;strong&gt;emotional&lt;/strong&gt; stress. This can be the most difficult aspect of your working life (if you&amp;rsquo;ve got the first two covered) &amp;ndash; it relates to how you&amp;rsquo;re feeling about your projects, clients, coworkers, bosses, or pretty much any other work-related situation. In my personal experience, this kind of stress can be the hardest to deal with, because you usually have to change something that you don&amp;rsquo;t really want to.&lt;/p&gt;
  
  &lt;p&gt;Having said all of that: I&amp;rsquo;m confident, ready, willing and able to deal with anything the world throws at me, but only as long as I&amp;rsquo;m producing work at a level that I&amp;rsquo;m satisfied with&#8212;That is, I&amp;rsquo;m defined by what I create.&lt;/p&gt;
  
  &lt;p&gt;To quote &lt;a href="http://pieratt.com/"&gt;Ben Pieratt&lt;/a&gt;, &amp;ldquo;Creation is a deeply personal and rewarding activity, which means that your Work should also be deeply personal and rewarding. If it&amp;rsquo;s not, then something is amiss.&amp;rdquo;&lt;/p&gt;
  
  &lt;p&gt;I firmly believe that we &amp;ndash; as creators &amp;ndash; trade a lot more than just time to practice our craft. We delve ourselves into our projects, and there are many costs incurred to build truly amazing things&amp;hellip;&lt;/p&gt;
&lt;/div&gt;
</content>
    <author>
      <name>Ben Schwarz</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.germanforblack.com,2005:Article/</id>
    <link rel="alternate" type="text/html" href="http://www.germanforblack.com/articles/false-fears"/>
    <title>False fears</title>
    <content type="html">&lt;div class='column eight'&gt;
  &lt;p&gt;I recently read the &lt;a href="http://consciousstartups.com/manifesto#we_believe_fear_is_the_main_thing_holding_you_back"&gt;conscious startups manifesto&lt;/a&gt; and it made me realise a few things about the way that I, my friends, my clients all run our businesses, projects and generally, lives.&lt;/p&gt;
  
  &lt;p&gt;It&amp;rsquo;s often a part of my role to ask clients if they really need something that they asked for, to understand their domain and make rational calls on what they should spend their budget (and my time, but that&amp;rsquo;s another story) doing, and as an arbiter (consultant) its very easy to do without emotion or fear.&lt;/p&gt;
  
  &lt;p&gt;So I got to thinking, why aren&amp;rsquo;t I releasing more projects?, my own apps, the things that sit half finished on my computer somewhere to never been seen by someone? It certainly isn&amp;rsquo;t a commitment thing&#8212;sometimes I love these things to death and for whatever reason they don&amp;rsquo;t live.&lt;/p&gt;
  
  &lt;p&gt;I think it&amp;rsquo;s false fears at work, we place them over every decision that we make&#8212;it needs this or that feature, or &amp;ldquo;the customers&amp;rdquo; (I hate calling people users) won&amp;rsquo;t like it because of x or really, whatever. It&amp;rsquo;s paralysing. I&amp;rsquo;ve dropped ideas before because I was scared of the &amp;lsquo;opportunity cost'&#8230; I&amp;rsquo;m getting old here, I can&amp;rsquo;t do everything, and I feel indebted to my projects.&lt;/p&gt;
  
  &lt;p&gt;There is no value in hoarding away your treasures. If you&amp;rsquo;re genuinely creating things that you want to share with other people, then put them out there, fail, make mistakes and poor judgements&#8230; but for gods sake, do something!&lt;/p&gt;
  
  &lt;p&gt;I&amp;rsquo;m working on it too. Good luck.&lt;/p&gt;
&lt;/div&gt;
&lt;aside&gt;
  &lt;p&gt;
    &lt;p&gt;&amp;ldquo;Only drug dealers and software companies call their customers &amp;lsquo;users&amp;rsquo;&amp;rdquo;&lt;/p&gt;
  &lt;/p&gt;
  &lt;p&gt;&#8212; Edward Tufte&lt;/p&gt;
&lt;/aside&gt;
</content>
    <author>
      <name>Ben Schwarz</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.germanforblack.com,2005:Article/</id>
    <link rel="alternate" type="text/html" href="http://www.germanforblack.com/articles/stepping-into-attribute-selectors"/>
    <title>Stepping into attribute selectors</title>
    <content type="html">&lt;div class='column eight'&gt;
  &lt;p&gt;For years we&amp;rsquo;ve been using IDs in our markup: &lt;code&gt;#wrapper&lt;/code&gt;, &lt;code&gt;#page&lt;/code&gt;, &lt;code&gt;#header&lt;/code&gt;, &lt;code&gt;#footer&lt;/code&gt;, &lt;code&gt;#sidebar&lt;/code&gt; and other friends. One of the efforts of HTML5 has been recognising these common patterns, and for a for a few years now we&amp;rsquo;ve had tags like &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;aside&amp;gt;&lt;/code&gt;.&lt;/p&gt;
  
  &lt;p&gt;These tags go quite aways to replacing the commonly used IDs in our markup, although due to the nature of document hierarchy, there are commonly many headers and footers within a HTML page.&lt;/p&gt;
  
  &lt;p&gt;So, the practice that I&amp;rsquo;ve been following alongside using the newer tags is the usage of some simple &lt;a href="http://www.w3.org/TR/wai-aria/roles"&gt;ARIA roles&lt;/a&gt; to semantically describe my content.&lt;/p&gt;
  
  &lt;p&gt;Specifically, &amp;ldquo;&lt;a href="http://www.w3.org/TR/wai-aria/roles#banner"&gt;banner&lt;/a&gt;&amp;rdquo; (&amp;ldquo;A region that contains mostly site-oriented content, rather than page-specific content&amp;rdquo;), &amp;ldquo;&lt;a href="http://www.w3.org/TR/wai-aria/roles#main"&gt;main&amp;rdquo;&lt;/a&gt; (&amp;ldquo;The main content of a document&amp;rdquo;), and finally &amp;ldquo;&lt;a href="contentinfo"&gt;contentinfo&lt;/a&gt;&amp;rdquo; (A large perceivable region that contains information about the parent document).&lt;/p&gt;
  
  &lt;script src="https://gist.github.com/1106038.js"&gt; &lt;/script&gt;
  
  
  
  
  &lt;script src="https://gist.github.com/1106042.js"&gt; &lt;/script&gt;
  
  
  &lt;p&gt;For those of you who aren&amp;rsquo;t targeting IE6, or better yet, totally not supporting it, the good news is that IE (7+) supports &lt;a href="http://www.w3.org/TR/css3-selectors/#attribute-selectors"&gt;attribute selectors&lt;/a&gt;&#8230; and, of course if you wanted to continue to support IE6, you could drop in &lt;a href="http://selectivizr.com/"&gt;selectivizr&lt;/a&gt; and move on with your life.&lt;/p&gt;
&lt;/div&gt;
&lt;aside&gt;
  &lt;h1&gt;Disclaimer&lt;/h1&gt;
  &lt;p&gt;It appears that Jeremy Keith &lt;a href="http://adactio.com/journal/4267/"&gt;wrote about this&lt;/a&gt; at the start of the year, but, being that I wrote this before realising Jeremy's article existed, I'll publish it anyway. (+1 Jeremy)&lt;/p&gt;
  &lt;h1&gt;Note&lt;/h1&gt;
  &lt;p&gt;&lt;a href="http://www.accessibleculture.org"&gt;Jason Kiss&lt;/a&gt; wrote a &lt;a href="http://www.accessibleculture.org/research/html5-aria-2011/"&gt;fantastic summary&lt;/a&gt; of the current status of HTML5 elements, ARIA roles and screen readers.&lt;/p&gt;
&lt;/aside&gt;
</content>
    <author>
      <name>Ben Schwarz</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.germanforblack.com,2005:Article/</id>
    <link rel="alternate" type="text/html" href="http://www.germanforblack.com/articles/html5-for-web-developers"/>
    <title>HTML5, for web developers</title>
    <content type="html">&lt;style type='text/css'&gt;
  /*&lt;![CDATA[*/
    body#article article header h1 { width: auto; }
    body#article section[role="main"] h2 { font-weight: bold; font-size: 1.5em; }
  /*]]&gt;*/
&lt;/style&gt;
&lt;div class='column eight'&gt;
  &lt;p&gt;Today marks a very special day &#8212; I&#8217;m proud to announce the official launch of the &lt;a href="http://developers.whatwg.org"&gt;WHATWG HTML5 specification &lt;em&gt;for web developers&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
  
  &lt;p&gt;It features find-as-you-type search, offline access, beautiful typography, technical references pulled inline, and alternate styles for handheld devices or low resolution displays.&lt;/p&gt;
  
  &lt;p&gt;The aim? To produce a companion specification for web developers to use on a regular basis. All details that are considered &amp;ldquo;for browser vendors&amp;rdquo; are omitted.&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="http://developers.whatwg.org"&gt;&lt;img src="http://img.skitch.com/20110220-gmxbsdmfhjb7551srhdideywp2.jpg" alt="HTML5, for developers" /&gt;&lt;/a&gt;&lt;/p&gt;
  
  &lt;p&gt;Back in March 2010 I started a now &lt;a href="http://ajaxian.com/archives/w3c-hire-ben-schwarz-now-making-specs-nice-to-look-at"&gt;rather well documented&lt;/a&gt; project to &lt;a href="http://germanforblack.com/articles/moving-towards-readable-w3c-specs" title="W3C Design
  &#8212; an article by Ben Schwarz"&gt;restyle all of the W3C&#8217;s specification pages&lt;/a&gt;, to make them more readable.&lt;/p&gt;
  
  &lt;p&gt;This project was moderately successful, I &lt;a href="http://www.slideshare.net/benschwarz/building-a-better-web"&gt;presented&lt;/a&gt; and launched the results with &lt;a href="http://people.w3.org/mike/"&gt;Mike&#8482; Smith&lt;/a&gt; at &lt;a href="http://south10.webdirections.org/"&gt;Web directions south&lt;/a&gt;.&lt;/p&gt;
  
  &lt;p&gt;Time passed, and a lot of things happened, but in January 2011, I started logging to IRC&#8212;basically, to become a part of the web standards community.&lt;/p&gt;
  
  &lt;p&gt;&lt;em&gt;Within 10 minutes&lt;/em&gt; of joining the WHATWG IRC channel (&lt;a href="http://krijnhoetmer.nl/irc-logs/whatwg/20110105"&gt;Read the transcript&lt;/a&gt;) &lt;a href="http://hixie.ch/"&gt;Ian Hickson&lt;/a&gt; had granted me approval to continue with my own build of the spec, targeted for web developers.&lt;/p&gt;
  
  &lt;h2&gt;In closing&lt;/h2&gt;
  
  &lt;p&gt;Last week I wrote about &lt;a href="http://germanforblack.com/articles/taking-the-web-back" title="Taking the web back
  &#8212; an article by Ben Schwarz"&gt;participating actively in web standards&lt;/a&gt;. What you see above is the result of my participation with the WHATWG and W3C.
  As this project draws towards the end, I look forward to working with the amazing people who helped along the way&#8212;&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="http://aestheticallyloyal.com"&gt;Anthony Kolber&lt;/a&gt; (the other 50% of &lt;a href="http://ab-c.com.au"&gt;AB+C&lt;/a&gt;) &lt;a href="http://paulirish.com/"&gt;Paul Irish&lt;/a&gt;, &lt;a href="http://hixie.ch/"&gt;Ian Hickson&lt;/a&gt;, &lt;a href="http://twitter.com/jon_neal"&gt;Jonathan Neal&lt;/a&gt;, &lt;a href="http://people.w3.org/mike/"&gt;Michael&#8482; Smith&lt;/a&gt;, &lt;a href="http://oli.jp/"&gt;Oli Studholme&lt;/a&gt;, &lt;a href="http://www.brucelawson.co.uk/"&gt;Bruce Lawson&lt;/a&gt;, &lt;a href="http://nimbupani.com/"&gt;Divya Manian&lt;/a&gt;, &lt;a href="http://lstoll.net"&gt;Lincoln Stoll&lt;/a&gt; &amp;amp; &lt;a href="http://almaer.com/blog/"&gt;Dion Almaer&lt;/a&gt;, all&#8212;Thank you.&lt;/p&gt;
&lt;/div&gt;
</content>
    <author>
      <name>Ben Schwarz</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.germanforblack.com,2005:Article/</id>
    <link rel="alternate" type="text/html" href="http://www.germanforblack.com/articles/taking-the-web-back"/>
    <title>Taking the web back</title>
    <content type="html">&lt;div class='column eight'&gt;
  &lt;p&gt;Since the &lt;a href="http://userscripts.org/scripts/review/76281"&gt;bookmarklet&lt;/a&gt; and &lt;a href="/articles/moving-towards-readable-w3c-specs"&gt;W3C restyle project&lt;/a&gt; that I kicked off last year, I&amp;rsquo;ve been extremely fortunate&#8212;people, companies and opportunities have presented themselves to me like never before (let&amp;rsquo;s call it karma, but that&amp;rsquo;s just an aside) which has meant that I&amp;rsquo;ve had more first-hand exposure to working groups than most people.&lt;/p&gt;
  
  &lt;p&gt;Most web developers seem to have strong opinions about the W3C, without anything to really back it up.&lt;/p&gt;
  
  &lt;p&gt;That is, their frustration with the whole web standards movement has lead them to believe that the W3C are incompetent and act as a barrier for the web to move forward.&lt;/p&gt;
  
  &lt;p&gt;What I have witnessed first hand with the W3C as an organisation is that its representatives are extremely motivated people who genuinely care about the web as a medium, they are frustrated also, not only are they tied to an organisation that as moves slowly as an academic institution or a bank, but the unrealistic expectations that the web industry have of them.&lt;/p&gt;
  
  &lt;p&gt;To put a few things straight;&lt;/p&gt;
  
  &lt;ul&gt;
  &lt;li&gt;The W3C are not a figure of authority&lt;/li&gt;
  &lt;li&gt;The W3C do however attempt to act as a central hub of documentation for technical specifications that make up what we know as the web&lt;/li&gt;
  &lt;li&gt;The W3C don&amp;rsquo;t &amp;ldquo;make standards&amp;rdquo; they &amp;ldquo;create recommendations&amp;rdquo;&lt;/li&gt;
  &lt;li&gt;Some of their projects can be considered experimental&lt;/li&gt;
  &lt;/ul&gt;
  
  
  &lt;p&gt;I don&amp;rsquo;t think that there is anything wrong with this, rather than construct a document of fiction, I&amp;rsquo;d rather pull together a real world use case.&lt;/p&gt;
  
  &lt;p&gt;As an aside, the &lt;a href="http://developer.mozilla.org"&gt;mozilla developer center&lt;/a&gt; (MDC) has now shifted its focus to become a greater source of documentation for the web&#8212;in general. &lt;br&gt;I&amp;rsquo;ve begun to use this as a reference alongside the specifications.&lt;/p&gt;
  
  &lt;p&gt;Fact is that the W3C and WHATWG working groups receive a lot of feedback after the point; Many web developers do not realise that they &lt;em&gt;must&lt;/em&gt; use existing communication channels to influence the future of web technology.&lt;/p&gt;
  
  &lt;p&gt;So, you&#8230;  humble reader with opinions: Get your (virtual) ass into irc&lt;sup&gt;1, 2&lt;/sup&gt;, up on to the mailing lists&lt;sup&gt;3, 4&lt;/sup&gt; and form professional relationships with the people who are writing the specifications and making judgement calls.&lt;/p&gt;
  
  &lt;p&gt;Create a large and well considered feedback loop. After all, the web doesn&amp;rsquo;t belong to the W3C, WHATWG, apple, google, mozilla or anyone else. It belongs to all of us.&lt;/p&gt;
  
  &lt;p&gt;I personally not only want to understand my tools, but I want to shape the way that I interact with them also.&lt;/p&gt;
  
  &lt;p&gt;Lets take back control of the web together.&lt;/p&gt;
&lt;/div&gt;
&lt;nav id='footnotes'&gt;
  &lt;a href='http://webchat.freenode.net/?channels=whatwg'&gt;
    &lt;sup&gt;1&lt;/sup&gt;
    WHATWG on IRC
  &lt;/a&gt;
  &lt;a href='http://webchat.freenode.net/?channels=html5'&gt;
    &lt;sup&gt;2&lt;/sup&gt;
    HTML5 on IRC
  &lt;/a&gt;
  &lt;a href='http://lists.w3.org/Archives/Public/public-html/'&gt;
    &lt;sup&gt;3&lt;/sup&gt;
    WHATWG mailing lists
  &lt;/a&gt;
  &lt;a href='http://www.whatwg.org/mailing-list'&gt;
    &lt;sup&gt;4&lt;/sup&gt;
    W3C mailing lists (public-html)
  &lt;/a&gt;
&lt;/nav&gt;
</content>
    <author>
      <name>Ben Schwarz</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.germanforblack.com,2005:Article/</id>
    <link rel="alternate" type="text/html" href="http://www.germanforblack.com/articles/citylink-australia-new-website-in-review"/>
    <title>Citylink's new site</title>
    <content type="html">&lt;div class='column eight'&gt;
  &lt;p&gt;In Melbourne we have a traffic authority who have an automatic tollway / gate system that deducts funds from your account. Now, like every public service, people have their grievances&#8224;.&lt;/p&gt;
  
  &lt;p&gt;In the case of transurban, it&amp;rsquo;s how &amp;lsquo;citylink&amp;rsquo; choose to conduct their business and treat their &amp;ldquo;customers&amp;rdquo;. (Its probably not worth going into what I&amp;rsquo;ve seen, but just think &amp;ldquo;like a bank &amp;rdquo;)&lt;/p&gt;
  
  &lt;p&gt;Recently, &lt;a href="http://twitter.com/pda"&gt;@pda&lt;/a&gt; alerted me to the fact that they had indeed updated their website. Visually, its a reasonable improvement, however&#8212;&lt;/p&gt;
  
  &lt;h4&gt;&#8224; Here comes one of those grievances&lt;/h4&gt;
  
  &lt;p&gt;&lt;strong&gt;&lt;em&gt;All&lt;/em&gt; logged in sections of the site use Adobe&#174; Flex for the interface. &lt;/strong&gt;&lt;/p&gt;
  
  &lt;p&gt;This is a web tragedy:&lt;/p&gt;
  
  &lt;ul&gt;
  &lt;li&gt;I can&amp;rsquo;t check my account status on my mobile phone&lt;/li&gt;
  &lt;li&gt;I can&amp;rsquo;t check my account status on my iPad&lt;/li&gt;
  &lt;li&gt;If I was using a screen reader, I&amp;rsquo;d be fucked&lt;/li&gt;
  &lt;/ul&gt;
  
  
  &lt;p&gt;From the Adobe Flex documentation&lt;/p&gt;
  
  &lt;pre&gt;&lt;code&gt;"By default, Flex accessibility features are not enabled. &amp;#x000A;When you enable accessibility, you enable the application &amp;#x000A;to communicate with a screen reader."&amp;#x000A;&lt;/code&gt;&lt;/pre&gt;
  
  &lt;p&gt;I find it beyond incredible that a &amp;ldquo;professional&amp;rdquo; web developer would choose such a technology, for a government entity, for such a deployment.&lt;/p&gt;
  
  &lt;p&gt;The original designer of the site &lt;a href="http://twitter.com/michaelcassius"&gt;@michaelcassius&lt;/a&gt; &lt;a href="https://twitter.com/michaelcassius/status/155076452654657537"&gt;tweeted that he designed it four years ago&lt;/a&gt;. I guess that&amp;rsquo;s a fair insight into transurban.&lt;/p&gt;
  
  &lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: Michael Cassius mentioned to me that while he worked on the project, it was done so while he worked with the team at &lt;a href="http://www.citrus.com.au"&gt;Citrus&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
</content>
    <author>
      <name>Ben Schwarz</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.germanforblack.com,2005:Article/</id>
    <link rel="alternate" type="text/html" href="http://www.germanforblack.com/articles/moving-towards-readable-w3c-specs"/>
    <title>W3C Design</title>
    <content type="html">&lt;style type='text/css'&gt;
  /*&lt;![CDATA[*/
    body#article p.anthony { font-family: "Courier New", courier; font-size: 1.2em; background: url('http://gravatar.com/avatar/be96b1cbc1142ec537d66dc85626b909?s=20') 2px left no-repeat; padding: 0em 0em 0em 4em; margin: 0em 0em 2em -4em; position: relative; }
    section#content div.eight .anthony,
    section#content p .anthony { background-image: none; margin: 0 0 1em 0; padding: 0px 0px 0px 2px; }
    .anthony:before { content: '\2301'; font-size: 1.2em; color: #999; position: absolute; top: 0em; left: -0.9em; }
    section#content p .anthony:before { content: ''; }
    
    div#co-author { margin: 0em 0em 0em 1em; }
    
    p img.nested { border: 1px solid #eee; max-width: 237px; float: left; margin: 2em 2em; }
    article p { clear: left; }
    
    #install a.button { margin: 1em 0em 0.5em; display: block; background-color: #ccc; border-radius: 5px; 
      padding: 0.5em 1em; color: #333; text-shadow: 1px 1px 1px white; font-size: 1.4em; 
      font-style: italic; text-decoration: none;
      -webkit-box-shadow: 0px 1px 3px #999;
      -moz-box-shadow: 0px 1px 3px #999;
      background: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#ccc));
      text-align: center;
    }
    #install a.button:hover {
      text-shadow: 1px 1px 1px #ccc;
      background: -webkit-gradient(linear, left top, left bottom, from(#ccc), to(#999));
    }
    #install a.button:active {
      background: -webkit-gradient(linear, left top, left bottom, from(#666), to(#999));
      -webkit-box-shadow: 0px -3px 3px #ccc;
      color: white;
      text-shadow: 0 0 0 transparent;
    }
    
    #install p { font-size: 1em; padding: 0.5em; }
  /*]]&gt;*/
&lt;/style&gt;
&lt;div class='column eight'&gt;
  &lt;p&gt;While preparing my &lt;a href="http://workshop.germanforblack.com"&gt;HTML workshop&lt;/a&gt;, I&amp;rsquo;ve been
  re-reading W3C specs in far further detail than I ever would&amp;rsquo;ve imagined.
  The reading experience is far from delightful. Not only is the text
  the entire browser width in measure, but it&amp;rsquo;s dense and laborious to read.
  No wonder browser vendors have traditionally missed subtle details.&lt;/p&gt;
  
  &lt;p&gt;Directly working on the improving the writing and review process would
  be far too difficult, I needed something and I needed it &lt;em&gt;now&lt;/em&gt;.
  I set off to make the reading experience better.&lt;/p&gt;
  
  &lt;p&gt;My goal was to add some sane styles to the pre-existing spec pages
  that would vastly improve the reading experience.&lt;/p&gt;
  
  &lt;p&gt;I whipped up a quick bookmarklet to load some custom CSS. I was
  already happy. I wrote to Anthony; a typical kind of email that we
  would trade:&lt;/p&gt;
  
  &lt;p&gt;&lt;img src="/readable-w3c/email.png" title="E-Mail" alt="An email traded between Anthony and I" /&gt;&lt;/p&gt;
  
  &lt;p&gt;I promptly pushed my progress to github and added Anthony as a
  contributor.&lt;/p&gt;
  
  &lt;p class="anthony"&gt;Having attempted to read through some of the specs myself, I had to agree. They are by nature very dense documents, made all the worse by a lack of proper typographic consideration. Neither of us was up to the task of rewriting the specs themselves, but improving the readability of the page was a good starting point.&lt;/p&gt;
  
  
  &lt;h2&gt;The typefaces&lt;/h2&gt;
  
  &lt;p&gt;I wanted the titles to be large and image-like. No spidery, thin text;
  it needed to cement the content that followed. I chose Chunk from
  &lt;a href="http://www.theleagueofmoveabletype.com/"&gt;The league of Movable Type&lt;/a&gt;
  and used &lt;code&gt;@font-face&lt;/code&gt;.&lt;/p&gt;
  
  &lt;p class="anthony"&gt;The main body typeface specified by the w3c is &lt;code&gt;font-family: sans-serif&lt;/code&gt;, which resolves to Arial on Windows and Helvetica on Mac OS. Not a terrible choice, but while these typefaces give a clean, structured feel to the page, they are less ideal for large blocks of text. We switched out sans-serif in favour of &lt;a href="http://www.microsoft.com/typography/fonts/family.aspx?FID=4"&gt;Matthew Carter's Georgia&lt;/a&gt;, whose larger x-height and excellent hinting makes it much better suited to extended reading on screen.&lt;/p&gt;
  
  
  &lt;h2&gt;The measure&lt;/h2&gt;
  
  &lt;p&gt;When a typographer refers to &amp;ldquo;the measure&amp;rdquo;, they mean the width of
  the text body. Simply put, when copy is too wide or poorly spaced it
  becomes difficult to read. This was the first issue that I had; physically
  scanning back and forth over the text was annoying and frustrating.&lt;/p&gt;
  
  &lt;p class="anthony"&gt;The general rule for a comfortable measure is around
  60&#8211;70 characters per line. Taking into account that each character
  averages out to around &lt;em&gt;0.5em&lt;/em&gt; in width, setting a measure of 
  &lt;em&gt;33em&lt;/em&gt; should keep each line within the optimum range.&lt;/p&gt;
  
  
  
  
  &lt;p&gt;&lt;img src="/readable-w3c/old-measure.png" alt="Old measure" class="nested"&gt;
  &lt;img src="/readable-w3c/new-measure.png" alt="New measure" class="nested"&gt;&lt;/p&gt;
  
  
  &lt;h2&gt;Useless information&lt;/h2&gt;
  
  &lt;p&gt;Why do I want to know about this version, the previous version,
  editors and previous editors before I&amp;rsquo;d read any of the spec or its
  introduction? Perhaps this is useful internally, but for the rest of
  us, its just visual noise that could be removed.&lt;/p&gt;
  
  &lt;h2&gt;Poorly defined hierarchy&lt;/h2&gt;
  
  &lt;p&gt;A spec is hard to scan, its even harder to decipher the different
  levels of hierarchy. We decided to make a visual feature and pull the
  numbering out to the left, creating a column that overhung the
  original left margin.&lt;/p&gt;
  
  &lt;p&gt;&lt;img src="/readable-w3c/hanging-numbers-old.png" alt="" class="nested"&gt;
  &lt;img src="/readable-w3c/hanging-numbers.png" alt="" class="nested"&gt;&lt;/p&gt;
  
  
  
  
  &lt;p&gt;&lt;img src="/readable-w3c/list-style-old.png" alt="" class="nested"&gt;
  &lt;img src="/readable-w3c/list-style.png" alt="" class="nested"&gt;&lt;/p&gt;
  
  
  
  
  &lt;p class="anthony"&gt;We added an additional colour palette based off &lt;code style="background:#066;text-shadow:0px 0px 0px;color:#fff;border-radius:0px;"&gt;#066&lt;/code&gt; to help clarify the multiple levels of headings. Colour variation is much easier for the eye to differentiate than the hierarchical number system the w3c currently employs. Additionally, #066 blends easily with the black body text &#8212; letting us emphasise links without them interrupting the reading flow. It also gives a nice tonal range to work with, all the way down to &lt;code style="background:#cff;text-shadow:0px 0px 0px;color:#000;border-radius:0px;"&gt;#cff&lt;/code&gt; which works well as a background tint behind black (which we used for the main code blocks).&lt;/p&gt;
  
  
  
  
  &lt;p&gt;
    &lt;code style="background:#000;text-shadow:0px 0px 0px;color:#000;border-radius:0px;line-height:4.6;padding:8px 2px;"&gt;#000&lt;/code&gt;
    &lt;code style="background:#033;text-shadow:0px 0px 0px;color:#033;border-radius:0px;line-height:4.6;padding:8px 2px;"&gt;#033&lt;/code&gt;
    &lt;code style="background:#066;text-shadow:0px 0px 0px;color:#066;border-radius:0px;line-height:4.6;padding:8px 2px;"&gt;#066&lt;/code&gt;
    &lt;code style="background:#399;text-shadow:0px 0px 0px;color:#399;border-radius:0px;line-height:4.6;padding:8px 2px;"&gt;#399&lt;/code&gt;
    &lt;code style="background:#6cc;text-shadow:0px 0px 0px;color:#6cc;border-radius:0px;line-height:4.6;padding:8px 2px;"&gt;#6cc&lt;/code&gt;
    &lt;code style="background:#cff;text-shadow:0px 0px 0px;color:#cff;border-radius:0px;line-height:4.6;padding:8px 2px;"&gt;#cff&lt;/code&gt;
  &lt;/p&gt;
  
  
  &lt;h2&gt;Putting it together&lt;/h2&gt;
  
  &lt;p&gt;Next up, a &lt;a href="http://userscripts.org/scripts/show/76281"&gt;userscript version&lt;/a&gt;
  was in order.&lt;/p&gt;
  
  &lt;p&gt;The script is really simple; it just adds the styles and script tags
  into spec pages. The external script and style files are currently hosted
  straight out of the Github repository.&lt;/p&gt;
  
  &lt;h2&gt;Going forward&lt;/h2&gt;
  
  &lt;p class="anthony"&gt;We have spent a bit of time writing override rules to clean up the w3c's table and list styles and to reduce some of the more unwieldy page sections. Due to the complexity and variety of spec pages, it's an ongoing project. The styles will continue to be updated as we come across more awkward type treatments throughout the specs.&lt;/p&gt;
  
  
  &lt;p&gt;We haven&amp;rsquo;t styled every single element that we&amp;rsquo;ve come across through
  the W3C specs, so if you find something that looks out of place and feel like
  getting your hands dirty, please &lt;a href="http://github.com/benschwarz/w3c-spec-styles"&gt;fork the project&lt;/a&gt; and
  send me a patch.&lt;/p&gt;
  
  &lt;p&gt;What would we like to see happen with this alternate stylesheet?
  w3c adoption. Until the w3c put further respect in to the standards
  that they govern for the world, we will continue to live in a web
  environment that has a poor understanding for its medium. Now, with
  WHATWG, communication and transparency and a &amp;ldquo;do-over&amp;rdquo; in HTML5, we can
  change the face of the future of the web. Now thats a project worth
  working on.&lt;/p&gt;
  
  &lt;h2&gt;Before/After&lt;/h2&gt;
  
  &lt;p&gt;&lt;a href="http://www.w3.org/TR/css3-fonts/"&gt;&lt;img src="/readable-w3c/w3c-before.png" alt="" class="nested"&gt;&lt;/a&gt;
  &lt;a href="http://www.germanforblack.com/css-fonts-demo/index.html"&gt;&lt;img src="/readable-w3c/w3c-after.png" alt="" class="nested"&gt;&lt;/a&gt;&lt;/p&gt;
  
  &lt;p&gt;&#8211; Best, &lt;a href="http://www.ab-c.com.au" title="AB+C"&gt;Anthony + Ben&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;aside&gt;
  &lt;section id='co-author'&gt;
    &lt;p class='anthony'&gt;
      &lt;p class="anthony"&gt;Co-authored by &lt;a href="http://aestheticallyloyal.com" class="anthony"&gt;Anthony Kolber&lt;/a&gt;. His comments marked up in Courier New.&lt;/p&gt;
    &lt;/p&gt;
  &lt;/section&gt;
  &lt;section class='note' id='install'&gt;
    &lt;p&gt;&lt;a class="button" href="http://userscripts.org/scripts/show/76281"&gt;Get the userscript&lt;/a&gt;&lt;/p&gt;
    
    &lt;p&gt;To use our alternate styles, you'll need either Safari (with &lt;a href="http://8-p.info/greasekit/"&gt;Greasekit&lt;/a&gt;), 
    Firefox (with &lt;a href="http://www.greasespot.net/"&gt;Greasemonkey&lt;/a&gt;) or &lt;a href="http://www.google.com/chrome"&gt;Chrome&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;
&lt;/aside&gt;
</content>
    <author>
      <name>Ben Schwarz</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.germanforblack.com,2005:Article/</id>
    <link rel="alternate" type="text/html" href="http://www.germanforblack.com/articles/stop-writing-down-your-plans"/>
    <title>Stop writing plans</title>
    <content type="html">&lt;div class='column eight'&gt;
  &lt;p&gt;I&amp;rsquo;m often surprised when a client or co-worker decides to record the plans made during a feature design session when it has been decided that the feature won&amp;rsquo;t be completed during the next iteration.
  Seen someone take a photo of the whiteboard? How many times have you actually ever referenced those whiteboard photos?&lt;/p&gt;
  
  &lt;p&gt;I think I can personally count the occasions on one hand.&lt;/p&gt;
  
  &lt;p&gt;From what I&amp;rsquo;ve seen over the last few years of developing web applications is that the cream always rises to the top. That is, if you&amp;rsquo;ve discussed a feature idea through its courses, everyone in your team should be able to coherently dictate the concept.&lt;/p&gt;
  
  &lt;p&gt;When you decide to put a feature off, the notion of even considering its inclusion &lt;em&gt;one day&lt;/em&gt; is a waste of time, that is; &lt;a href="http://en.wikipedia.org/wiki/Muda_(Japanese_term)"&gt;Muda (&#28961;&#39364;)&lt;/a&gt;. So why write it down?&lt;/p&gt;
  
  &lt;p&gt;Of course, there are always details that the project leads need to discuss in detail and occasionally put into words. But it should never impede on the creative process. Recording an idea is like making a contract that reads &amp;ldquo;we will build this one day&amp;rdquo;, this can be vastly damaging to the development of an idea or a business, and its why we see toolbars like this.&lt;/p&gt;
  
  &lt;p&gt;&lt;img src="http://img.skitch.com/20100405-dwa548t42tyrhm68mqgnie95j6.jpg" alt="&amp;quot;The TinyMCE demo toolbar&amp;quot;" /&gt;&lt;/p&gt;
  
  &lt;p&gt;A &amp;ldquo;Good idea&amp;rdquo; can skew your vision and cause you to miss your real goals. Skeptics will say &amp;ldquo;Well, I have to tell our customers what we&amp;rsquo;re delivering.&amp;rdquo;, and sure; I get it. Really though, they&amp;rsquo;re thinking about it the wrong way around.&lt;/p&gt;
  
  &lt;p&gt;Write down the user story or scenario, not the implemented result that you&amp;rsquo;ve pre-conceptualised. That is, write about the problem that you&amp;rsquo;re aiming to address.&lt;/p&gt;
  
  &lt;p&gt;If it still applies in 6 months, go for it, plan it then with the new constraints of your application, not those that existed when you thought of the idea. An application is an ecosystem, not a series of features.&lt;/p&gt;
  
  &lt;p&gt;We all have great ideas, but to be fair to our craft, sometimes we have to forget them.&lt;/p&gt;
&lt;/div&gt;
&lt;aside&gt;
  &lt;h1&gt;Notes&lt;/h1&gt;
  &lt;p&gt;Note: What I&amp;rsquo;m discussing is pretty much only for teams of people working on single products. In an agency situation, where you have many projects ongoing in parallel, this doesn&amp;rsquo;t really apply.&lt;/p&gt;
&lt;/aside&gt;
</content>
    <author>
      <name>Ben Schwarz</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.germanforblack.com,2005:Article/</id>
    <link rel="alternate" type="text/html" href="http://www.germanforblack.com/articles/handling-website-design-with-grids"/>
    <title>Web design with grids</title>
    <content type="html">&lt;div class='column eight'&gt;
  &lt;p&gt;If you&amp;rsquo;ve ever at all worked as a designer or peeked into the world of typography you probably realise that &amp;ldquo;grids&amp;rdquo; are used to structure content.&lt;/p&gt;
  
  &lt;p&gt;Interestingly, working with grids (on the web) has only really come to popularity over the last few years. This is thanks to the work of people like &lt;a href="http://www.markboulton.co.uk/journal/comments/five-simple-steps-to-designing-grid-systems-part-1"&gt;Mark Boulton&lt;/a&gt;, &lt;a href="http://www.subtraction.com/2007/03/18/oh-yeeaahh"&gt;Khoi Vinh&lt;/a&gt; and &lt;a href="http://www.digital-web.com/articles/redesigning_ebay_registration/"&gt;Garrett Dimon&lt;/a&gt; and, I must say it has certainly helped me begin to grasp information architecture far better.&lt;/p&gt;
  
  &lt;p&gt;In 2009 &lt;a href="http://toolmantim.com"&gt;Tim Lucas&lt;/a&gt; kept a sneaky easter egg in the Web Directions South &lt;a href="http://wds09.tweeps.webdirections.org/"&gt;&amp;ldquo;Tweeps&amp;rdquo; mini-site.&lt;/a&gt;
  Basically, files named &lt;code&gt;h-grid-12.png&lt;/code&gt;, &lt;code&gt;h-grid-6.png&lt;/code&gt; and &lt;code&gt;h-grid-1.png&lt;/code&gt; could be displayed using a secret modifier code (Its &lt;code&gt;Shift+H&lt;/code&gt;, sorry Tim.)&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="http://wds09.tweeps.webdirections.org/"&gt;&lt;img src="http://img.skitch.com/20100317-bnihqheathcgxd3jqubdft52ju.jpg" title="The grid on tweeps" alt="Screenshot of the Tweeps site" /&gt;&lt;/a&gt;&lt;/p&gt;
  
  &lt;h4&gt;The red tubes are &amp;ldquo;columns&amp;rdquo;, the gaps in between are known as &amp;ldquo;gutters&amp;rdquo;.&lt;/h4&gt;
  
  &lt;p&gt;People, including myself are building sites using grids. Now it seems to me that when you&amp;rsquo;re designing in a browser&#8224; you want to be able to follow the grid&amp;rsquo;s principals all the way through the process.&lt;/p&gt;
  
  &lt;h2&gt;Getting practical&lt;/h2&gt;
  
  &lt;p&gt;When I first built my own web site (the one you&amp;rsquo;re looking at now) I used the following CSS technique, you won&amp;rsquo;t see it in action now though (I&amp;rsquo;ve moved on to the latter solution).&lt;/p&gt;
  
  &lt;pre&gt;&lt;code&gt;.col { float: left; margin-right: 20px; }&amp;#x000A;&lt;/code&gt;&lt;/pre&gt;
  
  &lt;p&gt;This sets an element to sit alongside any neighbouring floated element, in order of HTML appearance.&lt;/p&gt;
  
  &lt;p&gt;The element that sits in your last horizontal column probably doesn&amp;rsquo;t need a right margin, for that I used &lt;code&gt;.col:last-child { margin-right: 0; }&lt;/code&gt;&lt;/p&gt;
  
  &lt;p&gt;Now while this is all very well and good, you&amp;rsquo;ll need to set some widths to get the columns filling out.&lt;/p&gt;
  
  &lt;pre&gt;&lt;code&gt;.one    { width: 100px; }&amp;#x000A;.two    { width: 160px; }&amp;#x000A;.three  { width: 220px; }&amp;#x000A;.four   { width: 340px; }&amp;#x000A;.five   { width: 400px; }&amp;#x000A;.six    { width: 460px; }&amp;#x000A;.seven  { width: 520px; }&amp;#x000A;.eight  { width: 580px; }&amp;#x000A;&lt;/code&gt;&lt;/pre&gt;
  
  &lt;p&gt;To apply grid widths to the design, I went through and added classes to my markup:&lt;/p&gt;
  
  &lt;pre&gt;&lt;code&gt;&amp;lt;article class="col eight"&amp;gt;&amp;#x000A;&lt;/code&gt;&lt;/pre&gt;
  
  &lt;p&gt;This technique works pretty well, in fact I really like that you can jump into an element inspector (Webkit or Firebug) and change a column width to see how your content might better flow if it were arranged differently.&lt;/p&gt;
  
  &lt;p&gt;&lt;img src="http://img.skitch.com/20100317-pdeqdwuq16w1ce34tsh5ghkgd.jpg" title="Element inspector" alt="Screen shot of webkit's element inspector" /&gt;&lt;/p&gt;
  
  &lt;h2&gt;Criticisms&lt;/h2&gt;
  
  &lt;p&gt;Now, this provides a pretty blissful working environment. Its simple and pretty quick to get started. (Also, we&amp;rsquo;re not doing anything scary in CSS to achieve this) I really feel that I can do better than this. I&amp;rsquo;ve never been a fan of littering your markup with no-meaning class names.&lt;/p&gt;
  
  &lt;p&gt;This is also the very same rationale that prevents me from using a framework like &lt;a href="http://www.blueprintcss.org/"&gt;Blueprint CSS&lt;/a&gt;. Most of the blueprint users that I&amp;rsquo;ve come across say &amp;ldquo;its easy to comprehend, I can get a reasonable looking design quickly &amp;mdash; and without a designer.&amp;rdquo;&lt;/p&gt;
  
  &lt;h2&gt;Doing better&lt;/h2&gt;
  
  &lt;p&gt;People who know me might already know that one of my biggest qualms with abstractions is that they prevent people from understanding the code or process that they&amp;rsquo;re abstracting. I feel very different about &lt;a href="http://lesscss.org/"&gt;LessCSS&lt;/a&gt; &amp;mdash; It uses real css, with some smart extensions.&lt;/p&gt;
  
  &lt;p&gt;So, my aim is to keep my HTML clean, semantically correct and reduce the addition of strictly presentational classes.&lt;/p&gt;
  
  &lt;p&gt;LessCSS provides some basic mathematical and &amp;ldquo;mixin&amp;rdquo; (explained a little, below.) features (Amongst others).
  These functions are run through an engine that returns good old regular CSS, it basically means that you get to write in a more powerful manner, producing wonderful machine-readable CSS.&lt;/p&gt;
  
  &lt;h3&gt;Time for a deep breath!&lt;/h3&gt;
  
  &lt;pre&gt;&lt;code&gt;.column (@width: 0) { width: 100px + (60 * @width); float: left; margin-right: 20px; }&amp;#x000A;&lt;/code&gt;&lt;/pre&gt;
  
  &lt;p&gt;This wonderfully powerful line of Less is a &amp;ldquo;mixin&amp;rdquo;, it means that I can &amp;ldquo;drop in&amp;rdquo; this style to another element selector.&lt;/p&gt;
  
  &lt;pre&gt;&lt;code&gt;article { .column(8); }&amp;#x000A;&lt;/code&gt;&lt;/pre&gt;
  
  &lt;p&gt;My articles will be exactly 8 columns wide, it&amp;rsquo;ll also handle the gutters!&lt;/p&gt;
  
  &lt;p&gt;Whats more is that there is also a default in there (the &lt;code&gt;@width: 0&lt;/code&gt;) so if I wanted to set a selector to be a single column wide, I could use &lt;code&gt;.column;&lt;/code&gt; and thats it!&lt;/p&gt;
  
  &lt;p&gt;Thankfully I can also be selective about elements that sit within the last column. Less is smart and won&amp;rsquo;t include the gutter (&lt;code&gt;width-right: 20px;&lt;/code&gt;) when I do something like:&lt;/p&gt;
  
  &lt;pre&gt;&lt;code&gt;.selector { .column; margin-right: 0; }&amp;#x000A;&lt;/code&gt;&lt;/pre&gt;
  
  &lt;p&gt;For now, this is how I&amp;rsquo;m going to run. I still find it fast for layouts and easy to manipulate. If you&amp;rsquo;ve got some commentary or ideas on what would be better, be sure to drop me a line.&lt;/p&gt;
&lt;/div&gt;
&lt;aside&gt;
  &lt;h1&gt;Notes&lt;/h1&gt;
  &lt;p&gt;&#8224; Designing in the browser, made famous by &lt;a href="http://www.stuffandnonsense.co.uk/"&gt;Andy Clarke&lt;/a&gt;.&lt;/p&gt;
&lt;/aside&gt;
</content>
    <author>
      <name>Ben Schwarz</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.germanforblack.com,2005:Article/</id>
    <link rel="alternate" type="text/html" href="http://www.germanforblack.com/articles/ruby-autoload"/>
    <title>Hacking ruby's autoload</title>
    <content type="html">&lt;div class='column seven'&gt;
  &lt;p&gt;Recently, I wrote &lt;a href="http://github.com/benschwarz/transcoder"&gt;transcoder&lt;/a&gt; as a means of parsing common web formats (&lt;code&gt;json&lt;/code&gt;, &lt;code&gt;xml&lt;/code&gt;, &lt;code&gt;rss/atom&lt;/code&gt; anyone?) without being too concerned about what a web service or API was returning to you.&lt;/p&gt;
  
  &lt;p&gt;I pushed out 0.1.0 hastily and went for &lt;a href="http://twitpic.com/16xkt6"&gt;sake&lt;/a&gt;, glorious, comfortable sake. I knew however, that something wasn&amp;rsquo;t quite right.&lt;/p&gt;
  
  &lt;p&gt;When transcoder was required' it would bring in all of its dependencies, so if you were only hoping to parse a &lt;code&gt;yaml&lt;/code&gt; file, you got everything: json, xml and rss. Not good, too much.&lt;/p&gt;
  
  &lt;h2&gt;Ruby&amp;rsquo;s autoload&lt;/h2&gt;
  
  &lt;p&gt;Autoload is a Ruby kernel method, you give it a constant and a filepath, when the constant is found to be undefined, it attempts to load the filepath.
  Fantastic right? Well, sadly. No.&lt;/p&gt;
  
  &lt;p&gt;Autoload will only load from your &lt;code&gt;$LOAD_PATH&lt;/code&gt;, so I decided to &lt;a href="http://gist.github.com/324367"&gt;roll up my sleeves&lt;/a&gt;.&lt;/p&gt;
  
  &lt;p&gt;Now, I&amp;rsquo;m sure that overriding &lt;code&gt;Object&lt;/code&gt; is pretty much a no-no in nearly every circumstance, but &lt;code&gt;Kernel&lt;/code&gt; as well? &lt;a href="http://en.wikipedia.org/wiki/Ludacris"&gt;Ludacris&lt;/a&gt;!&lt;/p&gt;
  
  &lt;h2&gt;In closing&lt;/h2&gt;
  
  &lt;p&gt;No matter how &lt;a href="http://images.google.com.au/images?sourceid=chrome&amp;amp;q=tom%20cruise%20on%20couch&amp;amp;um=1&amp;amp;ie=UTF-8&amp;amp;sa=N&amp;amp;hl=en&amp;amp;tab=wi"&gt;bat-shit-crazy&lt;/a&gt; you might think this hack is, its actually very awesome.&lt;/p&gt;
  
  &lt;h2&gt;Conclusion&lt;/h2&gt;
  
  &lt;p&gt;I wrote this post full-well knowing that this was a pretty dirty solution &amp;ndash; certainly not one that you would want in library code.&lt;/p&gt;
  
  &lt;p&gt;Where do you turn? To &lt;a href="http://blog.fallingsnow.net/"&gt;Evan Phoenix&lt;/a&gt;, thats who.&lt;/p&gt;
  
  &lt;p&gt;I explained the design problem that I was faced with to Evan. One of the most magical things about the &lt;a href="http://rubini.us/"&gt;Rubinius&lt;/a&gt; project is that Evan and &lt;a href="http://github.com/brixen"&gt;Brian&lt;/a&gt; are implmenting Ruby IN RUBY.&lt;/p&gt;
  
  &lt;p&gt;They&amp;rsquo;ve probably thought about or wrestled with similar design issues or requirements while implementing the core ruby language.&lt;/p&gt;
  
  &lt;p&gt;Evan explained a design solution, and &lt;a href="http://github.com/benschwarz/transcoder/commit/eb4463380925dde8436f766edc4d4b98066ffffa"&gt;I implemented it&lt;/a&gt;.
  Hopefully I didn&amp;rsquo;t trample too much over this. A big thanks is due to Evan.&lt;/p&gt;
&lt;/div&gt;
&lt;aside&gt;
  &lt;h1&gt;Notes&lt;/h1&gt;
  &lt;p&gt;View: &lt;a href="http://gist.github.com/324367"&gt;The gist&lt;/a&gt;.
  View: &lt;a href="http://github.com/benschwarz/transcoder/commit/eb4463380925dde8436f766edc4d4b98066ffffa"&gt;The final implementation&lt;/a&gt;&lt;/p&gt;
&lt;/aside&gt;
</content>
    <author>
      <name>Ben Schwarz</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.germanforblack.com,2005:Article/</id>
    <link rel="alternate" type="text/html" href="http://www.germanforblack.com/articles/growing-up-with-a-new-site"/>
    <title>Growing up</title>
    <content type="html">&lt;div class='column eight'&gt;
  &lt;p&gt;In January, &lt;a href="http://toolmantim.com"&gt;Tim Lucas&lt;/a&gt; pulled together a shiny new site and boosted his article quality dramatically. I thought &amp;ldquo;he&amp;rsquo;s doing it right&amp;rdquo;, I really wanted to get my site together.
  That was January&#8212;here I sit the day before August staring into textmate typing the first article I&amp;rsquo;ve written in almost 2 years, I haven&amp;rsquo;t even bothered to move those old posts. It wasn&amp;rsquo;t worth it.&lt;/p&gt;
  
  &lt;p&gt;During this year I&amp;rsquo;ve made more open source releases and contributions than ever before, I&amp;rsquo;ve lapped up various technologies and concepts, wrote my first DSL with ruby and felt like I was pushing through to another level, mentally anyway.&lt;/p&gt;
  
  &lt;p&gt;Its not hard to say that leaving my salary paying job and moving to consulting was one of the best things I&amp;rsquo;ve done. It felt selfish to leave the team for a reason none other than &lt;em&gt;&amp;ldquo;I needed time away&amp;rdquo;&lt;/em&gt;. That was a year ago. Since then I&amp;rsquo;ve had more time to reflect on life and importantly, development.&lt;/p&gt;
  
  &lt;h2&gt;Juicy details&lt;/h2&gt;
  
  &lt;p&gt;You might notice that the new site has a bunch of links to various web services. I&amp;rsquo;m pulling my &amp;ldquo;about the author&amp;rdquo; image from &lt;a href="http://twitter.com/"&gt;twitter&lt;/a&gt;, &amp;ldquo;upcoming events&amp;rdquo; from &lt;a href="http://upcoming.org"&gt;upcoming&lt;/a&gt;, &amp;ldquo;projects&amp;rdquo; from &lt;a href="http://github.com"&gt;github&lt;/a&gt;, &amp;ldquo;presentations&amp;rdquo; from &lt;a href="http://slideshare.com"&gt;slideshare&lt;/a&gt;, &amp;ldquo;links&amp;rdquo; from &lt;a href="http://delicious.com"&gt;delicious&lt;/a&gt; and recent images from &lt;a href="http://flickr.com"&gt;flickr&lt;/a&gt; &amp;ndash; all using &lt;a href="http://github.com/benschwarz/smoke"&gt;Smoke&lt;/a&gt;, not only that, but I do so using only &lt;a href="http://github.com/benschwarz/benschwarz-site/blob/6dd0fd6523e350be24b90d010e4d1f6f82cad60e/lib/stream.rb"&gt;about 45 lines of source code&lt;/a&gt;.&lt;/p&gt;
  
  &lt;p&gt;I was inspired by &lt;a href="http://pipes.yahoo.com"&gt;Yahoo&amp;rsquo;s &amp;ldquo;Pipes&amp;rdquo;&lt;/a&gt; but frustrated with the strange act of dragging elements around the screen. While knowing what I wanted to do, I found that I could probably write a custom parser &lt;em&gt;faster&lt;/em&gt;.
  A vast majority of the research or &amp;lsquo;learning&amp;rsquo; projects that I&amp;rsquo;ve put together consume web services. Now, with Smoke I can pull services together, mash them up, cut them to pieces and re-interpret the web the way I feel it should be.&lt;/p&gt;
  
  &lt;p&gt;The article facet of this site is pinched straight from &lt;a href="http://github.com/toolmantim/toolmantim/"&gt;Tim Lucas' site&lt;/a&gt;, I dropped it in, it worked, &lt;a href="https://twitter.com/benschwarz/statuses/2934620984"&gt;I drank beer&lt;/a&gt;.&lt;/p&gt;
  
  &lt;p&gt;I typed a series of commands (maybe, 5?) and my site was running on &lt;a href="http://heroku.com"&gt;Heroku&lt;/a&gt;. Job done. I&amp;rsquo;ll probably leave the beer alone tonight though. What an awesome experience that was, I&amp;rsquo;m a fan of &lt;a href="http://github.com/benschwarz/passenger-stack"&gt;doing it yourself&lt;/a&gt;, but this quick win felt so good.&lt;/p&gt;
  
  &lt;p&gt;For now, I&amp;rsquo;m going to run without comments, if you&amp;rsquo;ve got something to stay ensure that you &lt;a href="/about"&gt;drop me a line&lt;/a&gt;, I&amp;rsquo;d love to hear about it.&lt;/p&gt;
  
  &lt;p&gt;The markup used on the site is HTML5, thanks to &lt;a href="http://lachstock.com.au"&gt;Lachlan Hardy&lt;/a&gt; it even displays pretty well in IE6. No hacks are used, perhaps a few CSS methods that don&amp;rsquo;t appear in older browsers, however the fallback is indeed graceful.&lt;/p&gt;
  
  &lt;p&gt;I&amp;rsquo;m responsible for the design of the site. &lt;a href="http://aestheticallyloyal.com"&gt;Anthony&lt;/a&gt; gave me moral support, slapped some layout tips and rules on me when I asked for them. I think he found it really hard to watch me go through the process of putting the site together. Generally, when &lt;a href="http://ab-c.com.au"&gt;we&lt;/a&gt; &lt;a href="http://ffolio.net"&gt;work together&lt;/a&gt; he is the design part of our &lt;a href="http://images.google.com.au/images?q=voltron&amp;amp;oe=utf-8&amp;amp;rls=org.mozilla:en-US:official&amp;amp;client=firefox-a&amp;amp;um=1&amp;amp;ie=UTF-8&amp;amp;ei=iNRySvjDGoPuswOg8NzQCA&amp;amp;sa=X&amp;amp;oi=image_result_group&amp;amp;ct=title&amp;amp;resnum=4"&gt;voltron&lt;/a&gt; machine. In future I&amp;rsquo;ll leave our client design work up to him.&lt;/p&gt;
  
  &lt;h2&gt;In closing&lt;/h2&gt;
  
  &lt;p&gt;A web site is never &amp;ldquo;done&amp;rdquo;, I hope to evolve this site and keep it as fresh as I can for as long as I can (using technology, of course). Perhaps I&amp;rsquo;ll end up writing better&amp;hellip; God, I failed english in high school because I preferred to skip it to eat chinese and play pool with my friends. If it doesn&amp;rsquo;t kill me it&amp;rsquo;ll only make me stronger, right?&lt;/p&gt;
&lt;/div&gt;
&lt;aside&gt;
  &lt;h1&gt;Notes&lt;/h1&gt;
  &lt;p&gt;The source to the site is open and available &lt;a href="http://github.com/benschwarz/benschwarz-site"&gt;on Github&lt;/a&gt;.&lt;/p&gt;
&lt;/aside&gt;
</content>
    <author>
      <name>Ben Schwarz</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.germanforblack.com,2005:Article/</id>
    <link rel="alternate" type="text/html" href="http://www.germanforblack.com/articles/rubykaigi-a-western-perspective"/>
    <title>RubyKaigi, a western perspective</title>
    <content type="html">&lt;div class='column eight'&gt;
  &lt;p&gt;I booked everything only 3 days before. Rushed around to shutdown the office for a couple of weeks and get everything in order. I woke up the day I was to depart feeling like I was getting a cold. I avoided packing until an hour and a half before I left for the airport.&lt;/p&gt;
  
  &lt;p&gt;As the plane descended into Narita I felt a throbbing pain in my ear that felt like the side of my head was going to explode like an ACME bomb on a roadrunner cartoon.&lt;/p&gt;
  
  &lt;p&gt;That lasted for at least two days, I had managed to take a full jar of echinaccia by the third
  day.  Appropriately, I shook the bug before it settled in &#8211; Anyway, this was the most disorientating feeling I&#8217;ve ever had. I was partially deaf, that is; I had to turn my head to my right ear to understand conversation with (english speaking) people.&lt;/p&gt;
  
  &lt;p&gt;What a contrast from the Melbourne winter! (max 14&#186;c) Tokyo was 33&#186;c and around 90% humidity.  If Tokyo wasn&#8217;t already disorientating enough with the bright (like daylight) city lights of Shinjuku, the visual noise of the subway maps and the sheer volume of people everywhere.&lt;/p&gt;
  
  &lt;p&gt;During the week of the RubyKaigi, we managed to have &lt;a href="http://www.flickr.com/photos/benschwarz/sets/72157621527844256/"&gt;dinner and drinks in a michelin star rated restaurant&lt;/a&gt;, &lt;a href="http://www.flickr.com/photos/benschwarz/sets/72157621638227795/"&gt;hang in an awesome japanese metal / rock bar&lt;/a&gt;, attempt to go to the fish market (straight from the awesome bar) and scream &#8220;ruby ruby ruby&#8221; along with the kaiser chiefs most nights (at least once in an &#8216;all you can drink&#8217; karaoke bar)&lt;/p&gt;
  
  &lt;p&gt;The visual impact of Tokyo streets blew me away. As did the friendliness and acceptance of the japanese people &amp;ndash; even with the 5 or 6 japanese words that I poorly executed to get my way around.
  &lt;img src="http://farm3.static.flickr.com/2639/3732701792_0004d6f87a.jpg" title="Our chef spoke fantastic english" alt="Pops" /&gt;&lt;/p&gt;
  
  &lt;p&gt;Although I was the invader, I found many japanese locals to know far more english than I did japanese.&lt;/p&gt;
  
  &lt;p&gt;On my first night in Tokyo, while running late to dinner the manager of a small connivence store walked me from one end of a massive train station to the other, where I needed to be to catch a specific line. He also taught me how to fish, rather than just showing me where it was. I thanked him, he bowed and trundled back to his store.&lt;/p&gt;
  
  &lt;h3&gt;Where is this going anyway?&lt;/h3&gt;
  
  &lt;p&gt;Not really anywhere, it was a long way home from Tokyo and I thought this post during a warm embrace with my headphones and iPhone.&lt;/p&gt;
  
  &lt;h4&gt;Rubykaigi is almost more than 60% japanese content&lt;/h4&gt;
  
  &lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3440/3742724460_ed3329978c.jpg" title="Ruby" alt="Ruby in Japanese" /&gt;
  &lt;a href="http://twitter.com/lchin"&gt;Leonard Chin&lt;/a&gt; was a superstar, he had live translations on a second monitor in all of the japanese sessions that I attended. Anyway, I skipped more than 60% of the talks at Railsconf this year (having a current technical talk at these big conferences is almost impossible). Most times conferences are more about going to meet and hang out with other like minded people. RubyKaigi was awesome and it&amp;rsquo;ll be pretty hard to not attend next year. See you there?&lt;/p&gt;
&lt;/div&gt;
</content>
    <author>
      <name>Ben Schwarz</name>
    </author>
  </entry>
</feed>
