<?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>tactile</title>
	
	<link>http://tactile.co.za/blog</link>
	<description>- thoughts on CSS, UIs and UX.</description>
	<lastBuildDate>Sun, 18 Sep 2011 14:43:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/tactile" /><feedburner:info uri="tactile" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Weaving a styling tale</title>
		<link>http://feedproxy.google.com/~r/tactile/~3/TcSBN1GOHzw/</link>
		<comments>http://tactile.co.za/blog/2011/weaving-a-styling-tale/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 12:03:46 +0000</pubDate>
		<dc:creator>Shaun</dc:creator>
				<category><![CDATA[Analogies]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://tactile.co.za/blog/?p=93</guid>
		<description><![CDATA[Imagine for a moment that CSS is a diligent (and somewhat queer) fashion designer.  He is always trying to dress his subject matter in all manner of fashion, from the formal to the flashy.  Think of CSS as a roving clothing-wielding fashionista. CSS peppers his daily routine with studying his favourite subject matter: HTML Elements.  The [...]]]></description>
			<content:encoded><![CDATA[<p>Imagine for a moment that CSS is a diligent (and somewhat queer) fashion designer.  He is always trying to dress his subject matter in all manner of fashion, from the formal to the flashy.  Think of CSS as a roving clothing-wielding fashionista.</p>
<p>CSS peppers his daily routine with studying his favourite subject matter: HTML Elements.  The Elements are a curious set of creatures to CSS, and nowhere is this curiosity more evident than in CSS&#8217;s regular [and published I might add] fashion reports on his subject matter. Reading like the annals of an Ethnographer, CSS describes what it was like when he first encountered The Elements&#8230;</p>
<p><span id="more-93"></span></p>
<blockquote><p>&#8220;[...] The Elements arrange themselves in similar and yet strange-fitting uniforms, some of the uniforms stretch rather badly over the more robust figures (such as the fat one I call &#8216;Textarea&#8217;) and yet they continue to wear these uniforms day by day.  [I must do something to avert this fashion crisis - it's a g'damn tragedy!]&#8220;</p></blockquote>
<p>Before CSS set about clothing The Elements in the latest trendy garb, he decided to investigate why The Elements were wearing those strange uniforms in the first place. CSS needed to witness the birth and early life of an Element. His findings were logged as such:</p>
<blockquote><p>&#8220;[...] These elements all start out in life as simple naked objects, never trying to distinguish themselves from their peers. [They look so boring, so same-y!] Early in their lives, these elements are visited by the clothes merchants (for some reason called &#8216;Browsers&#8217;) and they dress the elements in various lines of fashion (at a price).  <a href="http://meiert.com/en/blog/20070922/user-agent-style-sheets/">These merchants have their own style guidelines for the various elements</a>, and curiously, each merchant&#8217;s style guideline shows very little difference from the next. [Maybe all the merchants got together one day and agreed upon how they'd style these Elements.  Must investigate further.]&#8220;</p></blockquote>
<p>CSS went about correcting the bland fashion mistakes perpetuated by the Browsers, setting new life into The Elements. Can you picture CSS flitting about, his paintbrush splurging a spectrum of colour over his new creations?<br />
Some of these creations were boxy, intended for the ones he called Div, Pee and so.<br />
Other creations took on a more fluid nature, a special ocean blue one intended for the charismatic Anchor element was weaved and it was gorgeous!</p>
<p>One day, as CSS recalls, something strange happened:</p>
<blockquote><p>&#8220;[...] Span, that loose character, came in to my shop asking for a change of clothes again, as he usually does. [He's always changing his mind about what he wears, it's so irritating!] I was absorbed in my latest creation, so I motioned for Span to have a look around.<br />
&#8216;Waddayathink?&#8217; I heard a little later; there was Span dressed to the nines, looking just like that handsome devil: H1.<br />
I couldn&#8217;t believe it at first.  How did Span fill out into H1&#8242;s figure?&#8221;</p></blockquote>
<p>It was a revelation &#8211; the impact would be profound!<br />
It was then that CSS realised he had made a huge mistake&#8230;</p>
<blockquote><p>&#8220;I had been stupidly using the Merchant&#8217;s (or Browsers) clothes as a base for all my own creations as if they were boxy underpants.  In a way, I was inheriting their forms, their textures.  I can&#8217;t believe I didn&#8217;t realise that all these Elements are amourphous &#8211; I can style them as I see fit! (within reason ofc)&#8221;</p></blockquote>
<p>With the limits removed, CSS became an even more talented designer.<br />
A flowing robe was weaved with love and dedication for Pee.<br />
Anchor took on new heights and stature with his new box-cut jeans.<br />
In short, CSS transcended fashion design and his impact on the fashion world have indeed been profound.</p>
<p>CSS&#8217;s works have set the bar for all aspiring designers, even to this day. His reports formed the basis for all studies in fashion design.<br />
Meeting CSS in person is a rare treat for younger designers.  &#8221;Don&#8217;t forget&#8230;&#8221;, he would say to them, &#8220;an element is an element is an element.  Dress them as you see fit, not by what they&#8217;re fitting into.&#8221;</p>
<img src="http://feeds.feedburner.com/~r/tactile/~4/TcSBN1GOHzw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tactile.co.za/blog/2011/weaving-a-styling-tale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://tactile.co.za/blog/2011/weaving-a-styling-tale/</feedburner:origLink></item>
		<item>
		<title>Freed from IE6!</title>
		<link>http://feedproxy.google.com/~r/tactile/~3/MmLGteMA7-0/</link>
		<comments>http://tactile.co.za/blog/2011/freed-from-ie6/#comments</comments>
		<pubDate>Wed, 12 Jan 2011 21:48:26 +0000</pubDate>
		<dc:creator>Shaun</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[browser support]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[internet explorer 6]]></category>

		<guid isPermaLink="false">http://tactile.co.za/blog/?p=128</guid>
		<description><![CDATA[What does a web development company have to gain by dropping IE6 support?  Once you've read this article, I hope you'll find less reason to develop for this shockingly-old and buggy browser.]]></description>
			<content:encoded><![CDATA[<p><img src="http://tactile.co.za/blog/wp-content/uploads/2011/01/yola-ie6_awsm1.png" alt="yola minus IE6 equals awesome" title="yola-ie6_awsm" width="660" height="106" class="aligncenter size-full wp-image-149" /></p>
<p>It has been more than 8 months since <a href="http://www.yola.com">www.yola.com</a> went live with a redesign, built and designed by a small team of people here in Cape Town.<br />
Before we started the build (after months of <a href="http://www.smashingmagazine.com/2010/06/29/why-design-by-commitee-should-die/">design by committee</a>), a simple decision was made: <strong>Let&#8217;s abandon Internet Explorer 6</strong>.  This simple decision has had a significant impact on our development and design work at Yola, all for the better.<br />
<span id="more-128"></span></p>
<h3>The effects of IE6 on a company</h3>
<p>IE6 affects many areas of a web development company, not just its engineers.  You&#8217;ll feel its cold, evil touch in:</p>
<ul>
<li>Product and Design</li>
<li>Development / Engineering</li>
<li><acronym title="Quality Assurance">QA</acronym></li>
<li>&#8230;and even Customer Support.</li>
</ul>
<p>Let me explain&#8230;</p>
<h4>The influence of IE6 on web design</h4>
<p>Any good web designer will tell you how limiting it is having to design with IE6 in mind.  IE6 feels boxy, slow and above all else: ancient.  One of the single biggest limitations it has (from an aesthetics point-of-view) is the lack of native blended transparency support typically afforded by PNG-24.</p>
<h4>IE6 adds obstacles to the QA cycle</h4>
<p>Not only do your QA engineers have to have an additional IE6-ready <acronym title="Virtual Machine">VM</acronym> (or physical machines if you&#8217;re kicking it old-school style) but so too do your developers.<br />
<a href="http://www.gtalbot.org/BrowserBugsSection/MSIE6Bugs/">IE6&#8242;s impressive list of 119 bugs</a> are encountered any time you, for example, use a CSS float or influence an element&#8217;s box properties.  Testing in IE6 is relatively easy, when it works, but debugging is another matter entirely.</p>
<h4>IE6: the thorn in the side of every web developer</h4>
<p>Microsoft created the <a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=95e06cbe-4940-4218-b75d-b8856fced535">Developer Toolbar</a> for IE 6 and 7 (which feels archaic compared to Firebug).  Without this toolbar, simple as it is, dev-life would be even harder working with IE.<br />
If you work towards Standards-based HTML and CSS development, your handiwork will look great in Standards-compliant browsers, and then completely crap in IE6 &#8211; often causing a refactoring of the CSS and HTML so that sensible IE6 fixes can be applied.<br />
To add to the frustration, the fixes for IE6 incompatibility are typically inconsistent and unreliable.  Take our blended transparency issue above&#8230; Developers usually get around this IE6 limitation by using png-fixes &#8211; which lead to more headaches &#8211; try using a pngfix on a blended background image with an offset background-position!</p>
<h4>Dealing with IE6 users</h4>
<p>Bugs do sometimes slip through to production environments, and these bugs usually occur in IE. Those poor Customer Service people have to deal with IE6 too, but primarily through its frustrated users. </p>
<h3>What did we gain by dropping IE6?</h3>
<p>I think the primary benefit for me was the reduced frustration.  IE6 is incredibly frustrating to develop for, which is a feeling so contradictory to the one accompanied by building a well-mannered website.</p>
<p>So, a rudimentary list of benefits in dropping IE6 support:</p>
<ul>
<li>Fewer design limitations allowing design work to push the envelope</li>
<li>All supported browsers can now use blended transparency without the need for hacks / fixes</li>
<li>Improved development turn-around times &#8211; less time wasted by testing and fixing IE6 bugs</li>
<li>Fully native CSS1, greatly improved CSS2.1 and even improved native CSS3 selector support!</li>
<li>Improved CSS selector support puts less strain on HTML development</li>
<li>One less VM for QA peeps and Engineers</li>
<li>One less browser officially supported by CS peeps</li>
<li>&#8230;and less frustration!</li>
</ul>
<p>Someday I&#8217;ll create a nice fat blog post on the CSS selector changes we saw.  (It makes me giddy just thinking of the impact this has had on the CSS and markup development for yola.com)</p>
<h3>To conclude</h3>
<p>Some web developers will be locked into IE6 for good, others will find it worth the effort to develop for.  All I can say now is that I&#8217;m glad we turned our back on IE6, in a way, we&#8217;re doing our part to make IE6 less of a necessity on the web.</p>
<img src="http://feeds.feedburner.com/~r/tactile/~4/MmLGteMA7-0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tactile.co.za/blog/2011/freed-from-ie6/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://tactile.co.za/blog/2011/freed-from-ie6/</feedburner:origLink></item>
		<item>
		<title>The bane of touch-screen interfaces</title>
		<link>http://feedproxy.google.com/~r/tactile/~3/FbFnb_kfPnY/</link>
		<comments>http://tactile.co.za/blog/2010/the-bane-of-touch-screen-interfaces/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 22:13:43 +0000</pubDate>
		<dc:creator>Shaun</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Interfaces]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[sci-fi]]></category>
		<category><![CDATA[touch-screen]]></category>

		<guid isPermaLink="false">http://tactile.co.za/blog/?p=94</guid>
		<description><![CDATA[With the launch of the iPad comes another generation of touch-based and yet non-tactile human-computer interfaces.  Why is this a problem and how could we possibly go about finding an applicable solution?]]></description>
			<content:encoded><![CDATA[<p>The touch-screen experience on the new <a href="http://www.apple.com/ipad">iPad</a> should be nothing short of amazing, if the iPhone is anything to go by.  The user&#8217;s experience on this new device will tend towards a perfect one, a nirvana of human-machine connectedness, but comes with one major disclaimer:  <strong>You have to be able to see the interface</strong>.</p>
<div id="attachment_104" class="wp-caption alignnone" style="width: 510px"><a href="http://www.flickr.com/photos/ari/4488250277/in/photostream/"><img class="size-full wp-image-104" src="http://tactile.co.za/blog/wp-content/uploads/2010/04/up_yours.jpg" alt="A man using the touch-screen interface of the new iPad" width="500" height="332" /></a><p class="wp-caption-text">Touch Screen Interfaces - a big &#39;Up Yours&#39; to non-sighted users.  Photo by Steven Rhodes</p></div>
<p><span id="more-94"></span></p>
<p>The iPad will hopefully be bundled with Apple&#8217;s Shining Knight of Accessibility dubbed <a href="http://www.apple.com/accessibility/voiceover/">VoiceOver</a>; which should belay some fears of it being truly inaccessible, but I can&#8217;t help but think that visually impaired users are getting the shaft once again.  Sure, you could plug in an external keyboard, and use the headphones to hear your way through the system, but that detracts from the portability and practicality of a device such as the iPad.</p>
<h3>Accessibility and Responsibility</h3>
<p>This weekend also saw the introduction of a <a href="http://www.prnewswire.com/news-releases/us-representative-jan-schakowsky-introduces-technology-bill-of-rights-for-the-blind-82834412.html">Technology-based Bill of Rights for the Blind</a> in the United States.  Such a bill would put some limits on what devices government-run institutions can purchase, tending towards devices that can be used by every member of society.</p>
<p>The iPad is more than just a portable information consuming device, it is a powerful application platform.  These apps, will they be accessible to visually-impaired users?  Will there, or should there be guidelines towards creating accessible applications?<br />
Creating hardware that is accessible is relatively easy compared to enforcing policy or creating guidelines in software accessibility standards.  It&#8217;s been done for the web through the <a href="http://www.w3.org/TR/WCAG10/"><acronym title="Web Content Accessibility Guidelines">WCAG</acronym></a>, but will we see a <acronym title="Software Application Accessibility Guidelines">SAAG</acronym> emerge any time soon?</p>
<p>This problem of neglecting the needs of non-seeing users has its roots in the touch interface &#8211; it&#8217;s a flat, almost-non-tactile surface.  You can feel it&#8217;s there, but you can&#8217;t feel where it begins, ends or <em>is different</em>.<br />
As the hype machine accelerates to our material oblivion, we&#8217;ll see more touch-based devices enter the market &#8211; devices founded out of jealous and incompetent mimicry for the sole purpose of making money.  Do you think these competing devices will be coupled with an Accessibility plugin?  Highly doubtful.</p>
<p>So, what can we do about not leaving the visually-impaired behind in our gadget-driven pursuit?  Well, for one, the visually-impaired will buy devices they can use effectively. For truly holistic user interfaces, what we really need here is a miracle, and I&#8217;m not necessarily talking about restoring sight to the blind.</p>
<h3>Waiting for a miracle</h3>
<p>The majority of possible solutions could be ones born in Sci-fi, such concepts as:</p>
<ul>
<li>Tactile display-surfaces,</li>
<li>Retinal or Visual Cortex Implants,</li>
<li>and the unholy-grail: The Neural Interface</li>
</ul>
<h4>Tactile display-surfaces</h4>
<p>Imagine a molten-glass-like surface, cool to the touch, that could grow out of the surface towards the user as the visuals underneath it required these height differences.  A height-map would accompany the visuals, describing the pits and mounds of such things as buttons and form input fields.  When you focus on a text field, a keyboard would rise out of the display surface.  You would be able to feel where the home-keys are.<br />
Think of this surface as a mix between an LED display panel and an <a href="http://en.wikipedia.org/wiki/Refreshable_Braille_display">Refreshable Braille Display</a>.  Apple have shown their commitment to visually-impaired users by supporting Braille Displays and creating such wonderful software as VoiceOver: I wonder if they&#8217;ve filed a patent for a truly tactile display surface?  I imagine it won&#8217;t be long before such a device is available to the general public.</p>
<h4>Retinal or Visual Cortex Implants</h4>
<p>It also won&#8217;t be long before &#8216;Visual Prosthesis&#8217; becomes more than just a research term.  Visually-impaired patients could have an electronic retina implanted, or instead opt for the Rolls Royce of artificial sight: a Visual Cortex Implant.  By the time these implants become available, I reckon we would have grown out of our fad-like needs to use non-tactile touch screens, instead opting for the unholy grail of cyborgism: The Neural Interface.</p>
<h4>The Neural Interface</h4>
<p>No Sci-Fi attribution would be complete without a mention of Peter F. Hamilton&#8217;s epic:<a href="http://en.wikipedia.org/wiki/The_Night%27s_Dawn_Trilogy">The Night&#8217;s Dawn Trilogy</a>.  In it, he described a neural implant dubbed a Sensevise &#8211; a full and recorded sensory experience was shareable to anyone else with the same implant.  With such a device, gone are the needs of eyes and fingers if we can interface such experiences directly to the brain.  Hamilton took the concept even further by describing a gene that would allow the bearer an ability called Affinity &#8211; a form of telepathy.  As time has shown, it&#8217;s just a matter of discipline, imagination and believing the impossible possible before we &#8216;see&#8217; such advancements.</p>
<h3>Back to Reality</h3>
<p>In the meantime, let&#8217;s start getting realistic about including every member of society in these technology-driven times.  If you create software or hardware, I implore you to consider those on the periphery of our &#8216;norms&#8217; by creating holistic computing experiences.  Accessible computing is good computing.</p>
<img src="http://feeds.feedburner.com/~r/tactile/~4/FbFnb_kfPnY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tactile.co.za/blog/2010/the-bane-of-touch-screen-interfaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://tactile.co.za/blog/2010/the-bane-of-touch-screen-interfaces/</feedburner:origLink></item>
		<item>
		<title>CSS Reset and ‘Sensible Defaults’</title>
		<link>http://feedproxy.google.com/~r/tactile/~3/4na6vL_rtXw/</link>
		<comments>http://tactile.co.za/blog/2010/css-reset-and-sensible-defaults/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 22:55:24 +0000</pubDate>
		<dc:creator>Shaun</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[code-maintenance]]></category>
		<category><![CDATA[idiocy]]></category>
		<category><![CDATA[stackoverflow]]></category>
		<category><![CDATA[teams]]></category>

		<guid isPermaLink="false">http://tactile.co.za/blog/?p=4</guid>
		<description><![CDATA[This Web Standards Drone goes down the wrong road with reset.css and comes out better for it.]]></description>
			<content:encoded><![CDATA[<p>Web Standards Advocates should really be called Zealots.  I am also guilty of punting Web Standards, sometimes with no sound reasoning behind my convictions.  This &#8216;blind faith&#8217; led me to a point where one of my team members reigned me in and showed me the misinterpretation of my ways, and it had all to do with Reset CSS and my lack of &#8216;<em>Sensible Defaults</em>&#8216;.<br />
<img src="http://tactile.co.za/blog/wp-content/uploads/2010/03/sensible.jpg" alt="" title="Roadmarkings" width="500" height="338" class="alignnone size-full wp-image-84" /></p>
<p><span id="more-4"></span></p>
<h3>CSS Reset</h3>
<p><a href="http://meyerweb.com/">Eric Meyer</a> is one of the original Web Standards Gurus.  His work is good, and pure, and great time savers for us minions.  Case in point: <a href="http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/">Eric&#8217;s work on reset.css</a>.</p>
<p>What reset.css essentially does is set a common foundation in all browsers by removing the browser&#8217;s default rendering of HTML elements.  This makes it easier to author a web document so that it can look very similar in each separate browser.</p>
<h3>The problem</h3>
<p>I&#8217;ve been happily using reset.css on many projects, never noticing along the way the time I&#8217;ve spent on redefining margins on <code>&lt;ul&gt;</code> and <code>&lt;p&gt;</code> elements &#8211; time that could have been saved by defining a &#8216;<em>Sensible Default</em>&#8216;.</p>
<p>Here&#8217;s an example&#8230;</p>
<pre class="brush: css; title: ; notranslate">
ul {margin:0; padding:0; list-style:none; /*etc*/}
</pre>
<p>Reset.css would set all Unordered-Lists (<code>&lt;ul&gt;</code>) to have no margins, and no <code>list-style</code>.  This was great for defining semantic menus in the navigation and footer blocks, but&#8230;<br />
the rule would cascade! (DUH!) and each time I wanted to have default rendering of a <code>&lt;ul&gt;</code> I&#8217;d have to define it explicitly.  This situation would be exacerbated for each case when an <code>&lt;ul&gt;</code> needed to be displayed as expected, e.g. in a sidebar:</p>
<pre class="brush: css; title: ; notranslate">
#sidebar ul {margin:1em 0 1em 2em; list-style:disc;}
</pre>
<h3>The situation</h3>
<p>I started working with Christo on a Django web-app, where I basically had to handle the templates, HTML and CSS + Supporting Images.  I was using reset.css as normal.<br />
Christo started voicing his frustrations with having to rely on me to define each and every case where a paragraph was needing margins, or an unordered-list was missing its bullets.  It came down to a point where he asked me to remove reset.css.  My Standards Zeal kicked in and I refused it, saying I&#8217;d have to create more exceptions than the rule by not using reset.css.<br />
It ended up in a stalemate, so I thought I&#8217;d open up the dialogue to the <a href="http://stackoverflow.com/">StackOverflow</a> audience.  <a href="http://stackoverflow.com/questions/2281766/generic-vs-specific-element-styles-for-maintainability">I put together a quick question</a> and waited 24 hours for the answers to roll in.</p>
<h3>Enter: Sensible Defaults</h3>
<p>It turns out that the practice of defining Sensible Defaults is a common Programming tip. (This just goes to show my lack of formal programming experience!)  <a href="http://idunno.org/archive/2006/01/03/242.aspx">Defaults can save a lot of headaches</a>, and this situation of mine was no different.</p>
<h3>The solution</h3>
<p>Christo and I met half way by overriding the Reset rules just for the content area.</p>
<pre class="brush: css; title: ; notranslate">
#content ul {margin:1em 0 1em 2em; list-style:disc;}
#content p {margin:1em 0;}
/* etc */
</pre>
<p>This way I could rely on Reset.css to ease the styling of header and footer elements, and then <em>reset the reset</em> by providing default styling to any content items such as paragraphs and unordered-lists.</p>
<h3>TLDR? A warning as a conclusion</h3>
<p>So, if you want to use reset.css then please, do The Right Thing&trade;:</p>
<ul>
<li>Don&#8217;t be an idiot and implement something without understanding it</li>
<li>Define sensible defaults for where they&#8217;re needed.</li>
</ul>
<p>That is all.</p>
<img src="http://feeds.feedburner.com/~r/tactile/~4/4na6vL_rtXw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tactile.co.za/blog/2010/css-reset-and-sensible-defaults/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://tactile.co.za/blog/2010/css-reset-and-sensible-defaults/</feedburner:origLink></item>
		<item>
		<title>Skinput – I touch myself</title>
		<link>http://feedproxy.google.com/~r/tactile/~3/xEbhn30T3ms/</link>
		<comments>http://tactile.co.za/blog/2010/skinput-i-touch-myself/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 06:00:22 +0000</pubDate>
		<dc:creator>Shaun</dc:creator>
				<category><![CDATA[Interfaces]]></category>
		<category><![CDATA[skinput]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tactile.co.za/blog/?p=69</guid>
		<description><![CDATA[A video demonstrating an interface that uses your own body as the touch-input surface.]]></description>
			<content:encoded><![CDATA[<p>From <a href="http://ignco.de/251">IgnoreTheCode</a>:</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/g3XPUdW9Ryg&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x2b405b&#038;color2=0x6b8ab6"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/g3XPUdW9Ryg&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x2b405b&#038;color2=0x6b8ab6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<img src="http://feeds.feedburner.com/~r/tactile/~4/xEbhn30T3ms" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tactile.co.za/blog/2010/skinput-i-touch-myself/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://tactile.co.za/blog/2010/skinput-i-touch-myself/</feedburner:origLink></item>
		<item>
		<title>LESSCSS</title>
		<link>http://feedproxy.google.com/~r/tactile/~3/HEoi3mq_4DM/</link>
		<comments>http://tactile.co.za/blog/2010/lesscss/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 14:08:30 +0000</pubDate>
		<dc:creator>Shaun</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://tactile.co.za/blog/?p=7</guid>
		<description><![CDATA[After 2 weeks of using LESS.app, I thought I'd share my thoughts on this nifty little CSS authoring timesaver.]]></description>
			<content:encoded><![CDATA[<p>2 weeks ago, <a href="http://vhata.net/">Jonathan</a> dropped me an <acronym title="Instant Message">IM</acronym> concerning a nifty little Mac OSX app called <a href="http://incident57.com/less/">LESS</a>. Essentially, LESS.app is a fancy GUI for a Ruby gem called <a href="http://lesscss.org/">LESSCSS</a>, a CSS parsing and authoring tool designed to speed up CSS development.</p>
<p><a href="http://incident57.com/less/"><img class="alignnone size-full wp-image-21" title="LESS.app" src="http://tactile.co.za/blog/wp-content/uploads/2010/02/less_logo.png" alt="" width="314" height="124" /></a><br />
I&#8217;m not going to go into detail about it&#8217;s function, but what I will do is give a review, highlight its pros and cons and maybe even offer some mixins you can use.<br />
<span id="more-7"></span></p>
<h3>Setting up</h3>
<p>Installing LESS.app was a breeze, and being familiar with installing Ruby Gems, the command-line app LESSCSS was also swiftly installed.<br />
My initial reasons for using LESS was to use the Mixin functionality, and create a library of common mixins I tend to use on each project.  I was hoping that I could store this &#8216;common library&#8217; in a central place and reference it from all my projects &#8211; this was not the case, as all LESS imports have to be sourced from the same folder.</p>
<h3>Pros and Cons</h3>
<p>In these 2 weeks of using LESS, I&#8217;ve noticed a few limitations &#8211; they&#8217;re not deal-breakers, but then I haven&#8217;t used LESS in a team-environment yet.</p>
<h4>Pros:</h4>
<ul>
<li>LESS Syntax is very similar to CSS, which makes it easier to use than SASS.</li>
<li>Storing your common mixins in a separate file speeds up development on subsequent projects</li>
<li>Non-invasive file monitoring means your LESS files are compiled as you save them.  No need for compiling manually.</li>
</ul>
<h4>Cons:</h4>
<ul>
<li>No support as yet for some dynamic mixins that use proprietary properties such as Microsoft&#8217;s <code>alpha(opacity)</code> property</li>
<li>Multiple comma-separated ancestral selectors are converted into multiple selectors, dropping the comma in the selector and repeating the rule each time over.</li>
<li>Larger, more numerous imports and more complex LESS files take longer to compile.  I find I&#8217;m often refreshing my browser twice because I refreshed before the CSS was compiled.</li>
</ul>
<p>Talking of a team-environment&#8230; everyone who touches the CSS would have to use LESS, else there&#8217;ll be some crazy merging going on when someone updates the CSS and not the source LESS files.</p>
<p>All that said, I&#8217;d recommend using LESS to anyone who&#8217;s working on their CSS independently.</p>
<h3>Further exploration</h3>
<p>The compiling side of LESS CSS must  surely be able to minify the output!  At the moment it dumps each property on a new line, leading to horrendously long CSS files with lots of whitespace.  (I&#8217;m a big fan of multiple properties per line for each selector)  I&#8217;ll see what I can find in terms of <code>lessc</code> options, but for now it&#8217;s not a big issue.</p>
<h3>Momentum</h3>
<p>After I subscribed to the <a href="http://groups.google.com/group/lesscss">LESSCSS Google Group</a> and read through a few of the discussions, I noticed that there seems to be some momentum in the project, but not a lot.  There are plenty of new users asking questions, but not a lot of active developer feedback. (Probably because <a href="http://twitter.com/cloudhead">cloudhead</a> is working on <a href="http://github.com/cloudhead/less.js">LESS.js</a> at the moment)  Maybe that&#8217;s a call for more community involvement in the app.  If you&#8217;ve done work on Ruby gems before, why not <a href="http://github.com/cloudhead/less/tree">get involved with LESS on GitHub</a>?</p>
<h3>As promised&#8230;</h3>
<p>&#8230;some mixins I use already:</p>
<p>Cross-browser border-radius, still no IE support though</p>
<pre class="brush: css; title: ; notranslate">
.border-radius (@radius:5px) {border-radius:@radius; -moz-border-radius:@radius; -webkit-border-radius:@radius;}
.border-radius-top-left (@radius:5px) {border-radius-top-left:@radius; -moz-border-radius-topleft:@radius; -webkit-border-top-left-radius:@radius; }
.border-radius-top-right (@radius:5px) {border-radius-top-right:@radius; -moz-border-radius-topright:@radius; -webkit-border-top-right-radius:@radius;}
.border-radius-bottom-left (@radius:5px) {border-radius-bottom-left:@radius; -moz-border-radius-bottomleft:@radius; -webkit-border-bottom-left-radius:@radius;}
.border-radius-bottom-right (@radius:5px) {border-radius-bottom-right:@radius; -moz-border-radius-bottomright:@radius; -webkit-border-bottom-right-radius:@radius;}
</pre>
<p>IE 6 &amp; 7 hack to support min-height</p>
<pre class="brush: css; title: ; notranslate">
.ie_min-height (@height:300px) {height:auto !important; height:@height;}
</pre>
<p>Malarkey Image Replacement</p>
<pre class="brush: css; title: ; notranslate">
.mir () {text-indent:-1000em; letter-spacing:-1000em; overflow:hidden;}
</pre>
<p>&#8216;Off-left&#8217; screen-reader supporting layer hiding</p>
<pre class="brush: css; title: ; notranslate">
.off_left () {display:block; position:absolute; top:0; left:-9999em;}
</pre>
<p>Cross-browser Opacity &#8211; Missing IE filters: not supported in LESS yet.</p>
<pre class="brush: css; title: ; notranslate">
.opacity (@opacity_percent:50) {-moz-opacity:@opacity_percent / 100; opacity:@opacity_percent / 100;}
</pre>
<p>Self-clearing for Non-IE browsers: Apply to :after the float container</p>
<pre class="brush: css; title: ; notranslate">
.self_clearing () {content:&quot;.&quot;; display:block; clear:left; visibility:hidden; height:0; width:0;}
</pre>
<img src="http://feeds.feedburner.com/~r/tactile/~4/HEoi3mq_4DM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tactile.co.za/blog/2010/lesscss/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://tactile.co.za/blog/2010/lesscss/</feedburner:origLink></item>
		<item>
		<title>Another SA UX Cape Town meet-up in the bag</title>
		<link>http://feedproxy.google.com/~r/tactile/~3/B74iOMpB3gY/</link>
		<comments>http://tactile.co.za/blog/2010/another-sa-ux-cape-town-meet-up-in-the-bag/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 22:08:20 +0000</pubDate>
		<dc:creator>Shaun</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://tactile.co.za/blog/?p=9</guid>
		<description><![CDATA[Phil Barrett, Jason Hobbs and Professor Uli Weinberg talked about Design Thinking, User Experience and Research methods at the Bandwidth Barn, Cape Town.  I was there to help organise, and of course learn.]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t know how we do it, but each event we have for the <a href="http://groups.google.com/group/sa-ux-forum?hl=en">SA UX Forum</a> in Cape Town just seems to be better than the last.</p>
<p>60 chairs were laid out at the <a href="http://www.bandwidthbarn.org/">Bandwidth Barn</a> tonight, we had wine sponsored by the <a href="http://www.citi.org.za/">CITI</a> and snacks + drinks available.  We were expecting less than 60, but in the end 75 UX-keen people showed up. This meant a dash for more space and seating,  somehow we just managed to squeeze everyone in.<span id="more-9"></span><br />
<img class="alignnone size-full wp-image-14" title="Professor Weinberg presenting" src="http://tactile.co.za/blog/wp-content/uploads/2010/02/saux_presenting.jpg" alt="" width="400" height="300" /></p>
<h3>Why all the interest?</h3>
<p>Phil Barrett&#8217;s infectious charm has a lot to do with it. He managed to scoop up <a href="http://www.hpi.uni-potsdam.de/d_school/studies/teachers/ulrich_weinberg.html?L=1">Professor Uli Weinberg</a> (who was on an African holiday) for a talk on <a href="http://www.hpi.uni-potsdam.de/d_school/news/beitrag/was-in-aller-welt-ist-eigentlich-design-thinking.html?L=1&amp;cHash=54d3d0e649">Design Thinking</a>.  I didn&#8217;t get to see or hear much of the Professor&#8217;s talk, but the audience seemed well engaged for the ~45 minute talk on collaborative and innovative thinking.  [I did notice the Professor was using one of those complex annimated image-map-type slides for the visual part of his talk.  I'm not sure I like those, they're very distracting!]</p>
<p>The caterers were waiting patiently for us after the first talk which ended at 8:30pm.  A lot of folks were networking and the general mood was pleasant.</p>
<p><a href="http://www.jh-01.com/">Jason Hobbs</a>, one of the Johannesburg SA UX big-wigs, then gave a talk after the break on &#8220;The door, the wind, the bird and the valise.&#8221;.  What had that to do with anything?  Well, Jason likes his Academia, Information Architecture and the thinking behind the thinking.  His talk tied in well with Prof. Weinberg&#8217;s, in that it was exploring the periphery of our UX thinking and research methods.  Jason highlighted Practice-orientated or Practice-led Research as a way to help build knowledge bases, but also to help us understand our respective UX disciplines and therefore apply more academic methodologies to our work.</p>
<p>User Experience and its varied disciplines are very much in their infancy, when compared to established industries such as medical or financial ones.  There&#8217;s a growing need for solidifying and understanding our work as Web Designers, Information Architects and User Experience Consultants from an academic point of view.  We&#8217;re getting there, albeit slowly.  [I'd love to do a specialised and associated degree on the subject(s)!]</p>
<p><img class="alignnone size-full wp-image-13" title="Packed to the rafters!" src="http://tactile.co.za/blog/wp-content/uploads/2010/02/saux_packed.jpg" alt="" width="400" height="300" /></p>
<p>Back to the event itself, sound clarity wasn&#8217;t great, some folks couldn&#8217;t hear our two speakers very clearly, partly because the air-conditioners were working overtime, and not really accomplishing much &#8211; our venue was busting at the seams.</p>
<h3>What next?</h3>
<p>We&#8217;re taking notes and had a lot to learn from tonight.  In terms of the next event, we&#8217;ve got some talks offered already, it&#8217;s just a case of finding a venue and a date.  I think we&#8217;d actually like to run two types of events:</p>
<ul>
<li>A chin-wag, social event for a small crowd.  Food and drinks</li>
<li>Small evening conferences such as tonights.</li>
</ul>
<p>We&#8217;re always looking for initiative from the SA UX community, so if you&#8217;ve got a talk, know of a decent venue or would like to help organise the next event, stand up and be noticed!</p>
<p>Until the next time&#8230;</p>
<p><img class="alignnone size-full wp-image-12" title="Cheers!" src="http://tactile.co.za/blog/wp-content/uploads/2010/02/saux_cheers.jpg" alt="" width="400" height="300" /></p>
<img src="http://feeds.feedburner.com/~r/tactile/~4/B74iOMpB3gY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tactile.co.za/blog/2010/another-sa-ux-cape-town-meet-up-in-the-bag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://tactile.co.za/blog/2010/another-sa-ux-cape-town-meet-up-in-the-bag/</feedburner:origLink></item>
	</channel>
</rss>

