<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>szafranek.net &#187; Webstandards</title>
	<atom:link href="http://www.szafranek.net/blog/category/webstandards/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.szafranek.net</link>
	<description>The homepage of Krzysztof Szafranek, a guy who makes websites</description>
	<lastBuildDate>Sun, 22 Jan 2012 14:28:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Front-Trends 2010</title>
		<link>http://www.szafranek.net/blog/2010/11/03/front-trends-2010/</link>
		<comments>http://www.szafranek.net/blog/2010/11/03/front-trends-2010/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 01:37:39 +0000</pubDate>
		<dc:creator>Szafranek</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Webstandards]]></category>

		<guid isPermaLink="false">http://szafranek.net/?p=1545</guid>
		<description><![CDATA[Front-Trends 2010 was a conference with ambitions. How it turned out eventually? See my impressions from the conference.]]></description>
			<content:encoded><![CDATA[<p>
I was happy to learn this spring that people I had a pleasure to work with are going organize in Poland a conference about front-end development. I was thrilled primarily because such events haven&#8217;t been hosted before in my country. When the speaker line-up was announced it turned out that there&#8217;s much more to be excited about than the location. With names such as Douglas Crockford, Peter Paul Koch and Tantek Çelik it looked more than promising.
</p>
<p>
The <a href="http://front-trends.com/">Front-Trends 2010</a> conference took place last week. How did it go? Excellent.
</p>

<p>Subjects ranged from web and mobile design, through CSS and markup to unit testing and server-side JavaScript. With the name of the conference explicitly mentioning trends, I was looking for some of them in the talks. In fact trends did emerge.</p>

<h4>Mobile</h4>

<p>I have been hearing about the need for focus on mobile web since years. Phones with web browsers have been around for a decade. So what&#8217;s the deal? Well, we reached a point when designing for mobile is not an extra activity that requires knowledge about obscure phone-only technologies (anybody still remembers WAP?). We can finally apply existing knowledge about web standards such as CSS and HTML. Surprisingly, contemporary smartphones often provide better capabilities than their desktop counterparts: Webkit has become a de facto standard rendering engine for the phones, while desktop web still struggles with IE6 legacy. Last but not least, better touch screens make browsing on the phone a pleasure rather than sadomasochistic experience it was just few years ago.</p>

<p>The subject of mobile web appeared in few presentations:</p>
<ul>
    <li><a href="http://www.thinmachine.ch/presentations/ft2010/">“You know WebOS”</a> by Markus Leutwyler</li>
    <li>“Cross-Device Applications Development”, talk about <a href="http://www.phonegap.com/">PhoneGap</a> by <a href="http://twitter.com/KamilTrebunia">Kamil Trebunia</a></li>
    <li>“Mobile UX and Current Trends in Mobile Design” by <a href="http://ribot.co.uk/">Antony Ribot</a></li>
    <li><a href="http://www.quirksmode.org/blog/archives/2010/10/fronttrends_sli.html">“JSON over SMS”</a> by Peter Paul Koch</li>
</ul>

<div class="figure">
    <a href="http://www.flickr.com/photos/krzysztofdanek/5108040733/" title="PPK and Douglas Crockford - Panel Discussion by Krzychu Danek, on Flickr" class="page"><img src="http://farm2.static.flickr.com/1161/5108040733_f38057f818_m.jpg" width="240" height="160" alt="PPK and Douglas Crockford - Panel Discussion" /></a>
    <div class="legend">
        PPK and Douglas Crockford &#8211; Panel Discussion; photo credit by <a href="http://www.flickr.com/photos/krzysztofdanek/">Krzysztof Danek</a>
    </div>
</div>

<p>Koch&#8217;s talk was certainly one of my favorites. For the last two years PPK has been working for Vodafone on what he does best: discovering quirks and bugs in browsers. Except this time he&#8217;s been doing this in the wild mobile world, where the sheer amount of browsers, resolutions, viewports and phone models can give a headache. In his talk he tried to predict how the mobile landscape will look like in 2018, when phones as powerful as today&#8217;s iPhone 3G will be accessible at 10 euro price tag. Make sure to check back this blog post in eight years to verify PPK&#8217;s predictions:</p>

<ul>
    <li>HTML5 apps are the future, not the native ones. Only applications written with open standards ensure cross-platform interoperability and thus the broadest reach.</li>
    <li>App stores are destined to die. There&#8217;s already at least 41 of them – Apple&#8217;s App Store is just one of the many. The value they provide is either overrated (discoverability), already provided by others (payments have been handled by operators for years) or will be replaced by open standards (common APIs). What I am missing on this list is the convenience for users, so I wonder how this particular prediction will turn out.</li>
    <li>Access to phone features (calls, camera, storage etc.) will be standardized across different devices. <a href="http://www.wholesaleappcommunity.com/" title="Wholesale Applications Community">WAC</a> initiative is a step in that direction.</li>
    <li>High-speed network coverage will not grow as fast as the computing power of mobile devices. Thus there still will be the need for efficient and cheap data transfer format. This format could be a streamlined version of JSON sent over SMS (thus the title of the talk).</li>
    <li>We are about to see some totally new JavaScript events untangled by mobile devices, way beyond desktop metaphors such as click and hover. Think events like <code>orientationchange</code>, <code>phonecall</code>, <code>move</code> (GPS location change), <code>cameraopen</code>. Mobile context enables creativity that&#8217;s been somewhat missing in the desktop web in the last ten years.</li>
</ul>


<p>
My personal takeaway from the talks on mobile is that it&#8217;s worth to invest time <em>now
</em> in learning how to design for this new environment. It&#8217;s not that hard to adapt existing web sites and web applications to mobile devices, but it requires consideration during design and development phases. Reasonably working devices and standards are already there. The share of users accessing the web through phones will only continue to grow.
</p>

<h4>JavaScript as THE programming language of the web</h4>
<p>
JavaScript has been around for over a decade and from the beginning it was used to spice up user interface (as any other spice, it has been widely abused). In the last 5 years – after “Ajax revolution” – it has become indispensable ingredient of web applications with heavy client. So what&#8217;s the news here? I think there are two, actually:
</p>
<div class="figure">
    <a href="http://www.flickr.com/photos/morganroderick/5130688735/" title="Douglas Crockford by Morgan Roderick, on Flickr" class="page"><img src="http://farm2.static.flickr.com/1222/5130688735_dcfcf11046_m.jpg" width="160" height="240" alt="DSC_0149" /></a>
    <div class="legend">
        Douglas Crockford; photo credit by <a href="http://www.flickr.com/photos/morganroderick/">Morgan Roderick</a>
    </div>
</div>
<ol>
    <li><strong>JavaScript is now used for more complex tasks than ever before.</strong> Animations and DOM interactions, integration of browser APIs and web services – all this is done with JavaScript. As the applications become more complex, development style for JavaScript has changed. It&#8217;s no longer the fragile cycle: write, reload, pray it works. With tools like JSLint, Firebug and unit testing frameworks it&#8217;s finally possible to efficiently develop and debug even large JavaScript codebases. With complexity came new design challenges and the notion of “JavaScript application architecture” doesn&#8217;t sound ridiculous anymore.</li>
    <li><strong>JavaScript expands to the server side.</strong> This idea is not new. Proprietary solutions utilizing JavaScript syntax on the server side have been around since 1990&#8242;s, with Microsoft JScript being the most popular. But with <a href="http://nodejs.org/">node.js</a> there seems to be finally a framework that embraces language&#8217;s philosophy (like architecture based on asynchronous callbacks) instead of merely using familiar syntax.</li>
</ol>

<p>
This changed approach to JavaScript was reflected in several talks:
</p>

<ul>
    <li><a href="http://www.slideshare.net/shadedecho/rise-of-the-middle-end">“JavaScript: The Rise of the Middle-End”</a> by Kyle Simpson</li>
    <li>“Testing JavaScript” by <a href="http://roderick.dk/">Morgan Roderick</a></li>
    <li><a href="http://cjohansen.no/en/javascript/fronttrends_2010">“Test-First JavaScript”</a> by Christian Johansen</li>
    <li><a href="http://webreflection.blogspot.com/2010/10/front-trends-2010-my-talk.html">“JS Performances vs Common Good Practices”</a> by Andrea Giammarchi</li>
    <li><a href="http://www.slideshare.net/cheilmann/using-web-services-with-javascript-fronttrends-2010">“Using Web Services with JavaScript”</a> by Chris Heilman</li>
    <li><a href="http://www.yuiblog.com/blog/2010/08/30/yui-theater-douglas-crockford-crockford-on-javascript-scene-6-loopage-52-min/">“Server-Side JavaScript”</a> by Douglas Crockford</li>
    <li><a href="http://www.slideshare.net/jaffathecake/reusable-code-for-good-or-for-awesome">“Reusable Code, For Good Or For Awesome”</a> by Jake Archibald</li>
</ul>

<p>While I skipped the talks about unit testing (having a conference with two tracks enforces tough choices), it&#8217;s encouraging to see that unit testing and Test Driven Development are not anymore alien concepts in JavaScript world. To the point that they deserved a <a href="http://www.amazon.com/Test-Driven-JavaScript-Development-Developers-Library/dp/0321683919" title="Test-Driven JavaScript Development on Amazon">600-page book</a> written by one of the speakers. (Fortunately it&#8217;s not obligatory to read it in order to start writing unit tests in JavaScript.)</p>

<p>Kyle Simpson&#8217;s and Douglas Crockford&#8217;s talks addressed the subject of server-side JavaScript. It&#8217;s still in its infancy – e.g. there are not many libraries out there and even node.js is in an early phase – but I hope that eventually we will be able to run the same code on the server and the client. That was the premise of Kyle&#8217;s talk about middle-end, which was a fancy name for JS code that bridges the gap between the client and the server. Think about solution for eternal problem of validation code repeated in JavaScript and server-side language.</p>

<p>An interesting point was made by Douglas Crockford during the (excellent) panel discussion with PPK and Tantek Çelik: JavaScript has become a Virtual Machine for the world. Any application doing anything interesting on the web right now has to execute JavaScript in the browser runtime. It&#8217;s especially striking with projects like <a href="http://code.google.com/webtoolkit/" title="Google Web Toolkit">GWT</a>, that allow developers to use their language of choice (in this case: Java), but eventually compile to JavaScript for execution.</p>

<p>One of the most inspiring talks of the whole conference was delivered by <a href="http://www.wait-till-i.com/">Chris Heilman</a>. He first showed how to use JavaScript to create mashups connecting data from different REST web services. While totally feasible and not too complex, the task can quickly become tedious when developer has to go through registration process for different APIs and learn their details. Therefore in the second part Chris showed how to reduce the whole effort to two lines of code. Silver bullet? In fact it&#8217;s <a href="http://developer.yahoo.com/yql/">YQL</a>, a language for web service integration with syntax similar to SQL. It takes care of the mundane details and allows developer to treat RESTful services or even regular HTML websites as database tables that can be joined and queried. For instance, imagine a query that takes Twitter messages in Polish with the keyword “Warszawa” inside and automatically translates them to English using Google Translation API. Sounds like a lot of work, but in fact it can be done with one line of YQL code. I knew that YQL has been around for a while, but the presentation gave me a boost to create something new with that shiny new toy. I mean tool.</p>

<h4>HTML5 and CSS3</h4>

<p>A conference about front-end development cannot happen without addressing web standards. On Front-Trends CSS3 and HTML5 were all the rage. While both buzzwords were repeated like a mantra in most of the talks, three presentations went into details:</p>

<ul>
    <li><a href="http://www.slideshare.net/robnyman/javascript-html5-brave-new-world">“JavaScript &amp; HTML – Brave New World”</a> by Robert Nyman</li>
    <li><a href="http://leaverou.me/2010/10/my-ft2010-slides-and-csss-my-presentation-framework/">“Pragmatic CSS”</a> by Lea Verou</li>
    <li>“<a href="http://tantek.com/presentations/2010/10/html5-now/">HTML5: Right Here, Right Now”</a> by Tantek Çelik</li>
</ul>

<div class="figure">
    <a href="http://www.flickr.com/photos/krzysztofdanek/5108037665/" title="Lea Verou - &quot;Pragmatic CSS&quot; (4) by Krzychu Danek, on Flickr" class="page"><img src="http://farm2.static.flickr.com/1327/5108037665_a50d3e438d_m.jpg" width="160" height="240" alt="Lea Verou - &quot;Pragmatic CSS&quot; (4)" /></a>
    <div class="legend">
        Lea Verou; photo credit by <a href="http://www.flickr.com/photos/krzysztofdanek/">Krzysztof Danek</a>
    </div>
</div>

<p>
According to people who have seen it, Lea&#8217;s presentation was one of the best of the conference (unfortunately I missed it). She published her <a href="http://leaverou.me/ft2010/">slides</a> online and they&#8217;re definitely worth checking. The presentation itself is written in HTML5 and styled with CSS3. Lea went through several new CSS3 properties, explained them and showed how they can be used to simplify the code and deliver features that were previously hard or impossible to implement. All this was accompanied with information about browser support, so one can tell immediately how feasible is the cutting edge. Spoiler: a lot from CSS3 can be used right now.
</p>

<p>
The talk by Tantek Çelik was in a similar spirit. Tantek went through most of the new features of HTML5 and grouped them into five buckets:
</p>
<ol>
    <li>dependable now</li>
    <li>roughly usable</li>
    <li>awkward</li>
    <li>interesting but ignorable</li>
    <li>worthy of experimentation</li>
</ol>

<p>I strongly recommend checking his <a href="http://tantek.com/presentations/2010/10/html5-now/">slides</a> as they give a primer of what&#8217;s possible now with HTML5 and what&#8217;s just around the corner.</p>

<p>One of the highlights of his talks was a call to action: send the following tweet to Internet Explorer 9 team:</p>

<blockquote>
    <p>Dear <a href="http://twitter.com/IE">@IE</a>: please implement Geolocation API, it&#8217;s Candidate Recommendation now!</p>
</blockquote>

<div class="figure">
    <a href="http://www.flickr.com/photos/krzysztofdanek/5108040277/" title="Tantek Çelik (2) by Krzychu Danek, on Flickr" class="page"><img src="http://farm2.static.flickr.com/1339/5108040277_dd44186bcf_m.jpg" width="160" height="240" alt="Tantek Çelik (2)" /></a>
    <div class="legend">
        Tantek Çelik; photo credit by <a href="http://www.flickr.com/photos/krzysztofdanek/">Krzysztof Danek</a>
    </div>
</div>

<p>Tantek is a former Microsoft employee and a person behind IE5 for Mac, known at the time for its excellent CSS support. Microsoft is usually implementing W3C specs that reached certain level of maturity, so there&#8217;s a hope that <a href="http://www.w3.org/TR/geolocation-API/">Geolocation API</a> will make its way into IE9. I have sent a <a href="http://twitter.com/#!/szafranek/status/28447174247">tweet</a>, have you?</p>

<h4>Truthy value</h4>

<p>
The conference was not without some flaws. In accordance with long tradition of tech gatherings, the wifi didn&#8217;t survive the rush of 300 bandwidth-hungry nerds. Nevertheless, the whole event was fantastic.</p>

<p>I&#8217;ve already heard about most of the new developments shown during the conference. Yet after leaving the venue I felt inclined to give some of them a try NOW, instead of waiting for IE8&#8242;s death in 2050. If the conference inspires you to try something new, could you wish for something more?
</p>]]></content:encoded>
			<wfw:commentRss>http://www.szafranek.net/blog/2010/11/03/front-trends-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Filling the gaps with Flash</title>
		<link>http://www.szafranek.net/blog/2009/08/20/filling-the-gaps-with-flash/</link>
		<comments>http://www.szafranek.net/blog/2009/08/20/filling-the-gaps-with-flash/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 19:28:44 +0000</pubDate>
		<dc:creator>Szafranek</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Webstandards]]></category>

		<guid isPermaLink="false">http://szafranek.net/?p=1525</guid>
		<description><![CDATA[I was a fan of web standards but I have fallen to the dark side. But before you judge me, let me tell you my story.]]></description>
			<content:encoded><![CDATA[<p>This is an exciting time for web standards. HTML 5 is starting to catch on, JavaScript is faster than ever before and CSS allows for <a href="http://www.satine.org/archives/2009/07/11/snow-stack-is-here/" title="3D animation in Safari running under Snow Leopard">accelerated 3D animation</a>.</p>

<p>Adobe Flash has been dubbed a casualty of this revolution – a few days ago I saw a link to a demo of new CSS features, with animated text saying: <a href="http://js-fireworks.appspot.com/?msg=Die%20Flash%2C%20die" title="js-fireworks">“Die Flash, die”</a>. In spite of all this, a few weeks ago I started to learn Flash. And, I must say, the rumors of Flash&#8217;s death have been greatly exaggerated.</p>

<h4>How I have fallen to the dark side</h4>

<p>It all started when my friend Łukasz, a graphic designer, showed me a design proposal for his online portfolio. The project included interactive image browsers with real-time reflections, shadows and some perspective effects. It was a perfect opportunity to play with cool toys, like HTML 5&#8242;s <code>canvas</code>, custom fonts and new CSS properties, so I decided to code it.</p>
<p>However, the more I read about features required to implement this mini-site, the chances looked more gloomy:</p>
<ul>
<li>CSS image effects, like reflections, can be now used only with Webkit nightly builds.</li>
<li><code>canvas</code> element is a more widely available alternative, but, obviously, Internet Explorer doesn&#8217;t support it and needs JavaScript libraries for emulation.</li>
<li><code>canvas</code> <abbr title="Application Programming Interface">API</abbr> is very low-level. In practice, piles of complex code are needed to achieve the simplest effect. Libraries supporting such effects either don&#8217;t exist or have very limited functionality.</li>
<li>The performance of the above libraries is less than satisfying.</li>
<li>Getting custom fonts to work in CSS is a nightmare, even if the font itself is free. It&#8217;s a topic for a separate story. Let me just say that converting from Open Type Font (.otf) to Microsoft&#8217;s .eot format turned out to be beyond my skills (and the budget).</li>
</ul>

<h4>Enter Flash</h4>
<p>Eventually <a href="http://klimatika.com/" title="klimatika.com">I implemented the site with Flash</a>. It was my first Flash project, but the tool was mature and well-featured, documentation was complete, and libraries and tutorials abundant. I bought the license.
</p>

<p>The site is very simple: an animated image browser with preloader and some effects calculated in real-time. Sadly, achieving the same results with a combination of HTML, CSS and JavaScript is just not possible yet. I also noticed something even more disturbing: a guilty pleasure from using a reliable tool, where everything works as documented. This is a liberating experience for someone who used to work with web browsers. The discreet charm of proprietary platform has its price, but still: it&#8217;s so fine!</p>

<p>What exactly makes Flash such a great tool to work with?</p>

<h5>ActionScript</h5>

<p>While the future of JavaScript 2.0 is still unclear, ActionScript 3.0 – the programming language of Flash platform, already offers the best of both ECMAScript and compiled languages:</p>
<ul>
  <li>Variables can be (optionally) typed to allow compile-time type checking and type-based code completion in the <acronym title="Integrated Development Environment">IDE</acronym>.</li>
  <li>The code can be neatly organized in namespaces, packages and classes.</li>
  <li>Inheritance is supported through prototypes (like in JavaScript) and classes (like in Java). Though JavaScript is a fully object-oriented language, I find Java&#8217;s syntax for <acronym title="Object-Oriented Programming">OOP</acronym> more straightforward.</li>
</ul>

<h5>Rich API&#8217;s</h5>

<p>Flash provides today some API&#8217;s which web developers are craving for. Few of these API&#8217;s (e.g. E4X) are already available in some browsers, but developers cannot rely on their presence. On the other hand, Flash already shines here:</p>

<div class="figure">
  <a href="/files/news/20090820/upload.png" title="Enlarge"><img src="/files/news/20090820/tn-upload.png" width="165" height="136" alt="Multiple file upload"/></a>
  <div class="legend">
    Multiple file upload: we still need to wait few years for this to work in HTML
  </div>
</div>


<ul>
  <li><code>URLLoader</code> class provides the ability to send HTTP requests and get progress information necessary for preloaders.</li>
  <li><acronym title="Document Object Model">DOM</acronym> interaction is simplified with the support for <a href="http://en.wikipedia.org/wiki/E4X" title="ECMAScript for XML">E4X</a>. Mozilla Firefox has supported it for the past few years, but it still doesn&#8217;t work across all browsers.</li>
  <li><code>FileReferenceList</code> class allows multiple file selection and upload. I think it&#8217;s embarrassing that <code>&lt;input type="file"/&gt;</code> still needs to wait for HTML 5 to adopt this “technological breakthrough”.</li>
  <li><code>ExternalInterface</code> serves as a bridge between ActionScript and JavaScript. It can be used to access DOM and populate Flash movies with content coming from HTML.</li>
  <li>Animation is easy. Originally Flash was a tool for annoying users with bouncing balls and flying rectangles. In the course of the years it has become more useful, but animation is still one of its biggest strengths. What I like the most about animating with Flash is a straightforward programming model: elements on stage are objects whose properties can be manipulated. It&#8217;s not yet possible with HTML 5&#8242;s <code>canvas</code>, where the scene needs to be composed from individual pixels or basic shapes in a loop, frame by frame. This difference alone already makes animating with Flash easy compared to HTML/JavaScript alternatives – and I didn&#8217;t even touch the topic of browser performance and compatibility&#8230;</li>
</ul>

<p>Speaking of which:</p>

<h5>The platform</h5>

<p>Flash Player is now <a href="http://www.adobe.com/products/player_census/flashplayer/version_penetration.html" title="Adobe - Flash Player Version Penetration">the most widely available programming platform</a>. Adobe has managed to deploy new versions really fast so that developers can safely assume the presence of the player which is one-year old or newer. Combine this with the fact that Flash is backward compatible and you&#8217;ll get a platform you can rely on (with the notable exception for the iPhone). Again, this is refreshing for anyone tired with differences among web browsers. To be fair, Firefox 3.5, Google Chrome and Safari 4 offer high levels of compatibility and performance, but IE6 and IE7 are a few years behind. Most likely IE8 will be equally outdated before it disappears from the market. Most of the development time in modern web apps is spent on fixing differences between browsers. Libraries, like jQuery, make life easier, but it&#8217;s unlikely to ever have a homogeneous environment with so many rendering engines out there.</p>

<p>Meanwhile, Flash is backward compatible, quickly adopted and robust. And when you&#8217;re done with writing the code, it just works. Unbelievable.</p>

<p>A good example is of the above is custom font support. Flash has it for what seems like ages. It&#8217;s been the foundation of <a href="http://www.mikeindustries.com/blog/sifr/">sIFR</a>. On the browsers&#8217; side of things: latest versions of Safari and Firefox support direct embedding of TrueType font files, outraging font foundries. IE supports its own format EOT since 1997, but nobody else seems to be interested in implementing it. There&#8217;s dozens of hacks using anything from <a href="http://wiki.github.com/sorccu/cufon/about" title="Cufón">drawing letters from vector curves</a> with <code>canvas</code> to centrally-hosted <a href="http://typekit.com/" title="Typekit">font licensing service</a>. In short: it&#8217;s a mess with unknown outcome, whereas in Flash it just works.</p>

<h4>Before you jump in</h4>

<p>Having said all that, I still believe that open web standards are the way to go. Incompatibilities are the price for progress and competition. Features of HTML pages, like Unique Resource Identifiers or readable source code can be easily overlooked. Yet, they made it possible for the web to grow so fast and become an integrated system rather than a set of separate data islands. As it sometimes happen to Flash pages, forgotten by God and search engines.</p>

<p>Flash has improved over the years, but it still has some serious problems. Some of these problems might be solved someday, some are innate:</p>
<ul>
  <li>The only practical way to develop with Flash is to buy an expensive IDE.</li>
  <li>There&#8217;s a single vendor controlling the format. It makes developers&#8217; life easier, but introduces the risk of lockdown.</li>
  <li>Flash files are alien objects on web pages. Only recently they received (rather limited) support from main search engines. They cannot be crawled so easily as HTML or XML files.</li>
  <li>For the same reason, significant effort is required to enable URL-based linking on Flash pages. With HTML, it comes for free. And even with an added bonus: <em>Back</em> button support.</li>
  <li>Flash still poses serious accessibility problems for disabled people. SWF files are not part of the tabbing order in browsers other than IE on Windows, making Flash sites virtually inaccessible. More importantly, Flash is an intrinsically visual environment, built around graphics and animation. HTML is deep-rooted in text, with other layers, like JavaScript, added on top of it. It makes it much harder for Flash to be easily translated for vision-impaired users.</li>
</ul>
<div class="figure">
  <a href="/files/news/20090820/2advanced.jpg" title="Enlarge"><img src="/files/news/20090820/tn-2advanced.jpg" width="165" height="150" alt="2advanced.com"/></a>
  <div class="legend">
   2advanced.com – Flash at its best, as of 2001
  </div>
</div>
<p>There&#8217;s also one non-technical problem, raised by Jacob Nielsen in his famous essay <a href="http://www.useit.com/alertbox/20001029.html" title="Flash: 99% Bad (Jakob Nielsen's Alertbox)">Flash: 99% Bad</a>: Flash encourages design abuse. With Flash it&#8217;s so easy to abolish conventions and develop “creative” and “innovative” projects. For a long time the safest way to win a web design award and recognition among “progressive designers” was to create an unusable clone of <a href="http://v3.2a-archive.com/flashindex.htm" title="2Advanced.com – a landmark in Flash web desing">2Advanced.com</a>. Apparently, such sites served no other purpose and are now long forgotten. To the surprise of progressive designers, users turned back to “ugly” and “uninspired” sites, built without bells, whistles and Flash.</p>

<p>Fortunately, a lot has changed since the original Nielsen article. Flash still offers a wide range of tools for harming users, but it can be used for the good too.</p>

<h4>Flash enhancement</h4>
<div class="figure">
  <a href="/files/news/20090820/gmail.png" title="Enlarge"><img src="/files/news/20090820/tn-gmail.png" width="165" height="108" alt="Gmail"/></a>
  <div class="legend">
   Gmail – Flash in 2009
  </div>
</div>
<p>If 2Advanced.com was the example of a Flash site in 2001, Gmail is the example of how Flash can be used in 2009. If you check the HTTP traffic on Gmail, you&#8217;ll notice few SWF files. They&#8217;re used there to play sounds in chat, support video and display upload progress. Unlike the artificial, hi-tech interface of 2Advanced.com, Gmails feels like a normal web page. Flash is entirely transparent to the user and augments, not replaces, core elements built with HTML, JavaScript and CSS.</p>

<p>This attitude towards Flash is worth embracing if you&#8217;re a web standards fan. Until browsers will consistently support what web developers need, Flash will be a viable tool to overcome the deficiencies. Frankly, I don&#8217;t expect the current situation to end any time soon: legacy browsers like IE7 (not to mention the living dead, IE6) won&#8217;t disappear quickly. And even though HTML 5 is gaining grounds at rapid pace, Flash doesn&#8217;t stale either. When HTML 5 will be finally ubiquitous (<a href="http://www.webmonkey.com/blog/HTML_5_Won_t_Be_Ready_Until_2022DOT_Yes__2022DOT" title="HTML 5 Won t Be Ready Until 2022DOT Yes  2022DOT - Webmonkey">in the year 2022</a>, according to the spec&#8217;s editor Ian Hickson), I&#8217;m sure Flash will have something exciting up its sleeve.</p>

<p>Flash knowledge is certainly a valuable asset in a front-end engineers&#8217; arsenal. Flash can be used today to enhance user experience and provide functionality that otherwise wouldn&#8217;t be possible with current browsers. In fact, it&#8217;s already used to enable:</p>

<ul>
  <li><a href="http://www.mikeindustries.com/sifr" title="sIFR">custom fonts</a></li>
  <li>multiple <a href="http://swfupload.org/" title="SWFUpload">file upload</a> with progress indication</li>
  <li><a href="http://juggernaut.rubyforge.org/" title="Juggernaut plugin for Rails">Comet pattern</a> (aka “push”)</li>
  <li><a href="http://www.youtube.com/" title="YouTube">video</a>!</li>
</ul>

<p>Flash provides numerous API&#8217;s that can be called from JavaScript and used to enhance HTML-based web apps. It also works the other way around: Flash can access the DOM of its own HTML page. SWF file can display HTML text with special effects or animate images embedded in the HTML source. It means that Flash-enabled browsers can display fully-fledged animation while other user agents, like search bots, can still crawl HTML content. That&#8217;s exactly what progressive enhancement is about: provide the best experience possible, but still allow less capable devices to access the information.</p>

<p>So, if you&#8217;re facing a complex problem in your web app, maybe <a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/index.html" title="Flash CS4 Professional ActionScript 3.0 Language Reference">an answer is already there</a>?</p>]]></content:encoded>
			<wfw:commentRss>http://www.szafranek.net/blog/2009/08/20/filling-the-gaps-with-flash/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>CSS in the large</title>
		<link>http://www.szafranek.net/blog/2006/10/10/css_in_the_large/</link>
		<comments>http://www.szafranek.net/blog/2006/10/10/css_in_the_large/#comments</comments>
		<pubDate>Tue, 10 Oct 2006 02:52:15 +0000</pubDate>
		<dc:creator>Szafranek</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Webstandards]]></category>

		<guid isPermaLink="false">http://szafranek/blog/2006/10/10/css-in-the-large/</guid>
		<description><![CDATA[CSS is not a programming language. Its syntax was intended to be easy to grasp for designers – people who think in a visual rather than procedural way. It might be discussed if CSS really fits designers. What I&#8217;m sure is that it doesn&#8217;t fit programmers, at least the ones I know. Some of them [...]]]></description>
			<content:encoded><![CDATA[<p>CSS is not a programming language.
	Its syntax was intended to be easy to grasp for designers – people who think in a visual rather than procedural way.
	It might be discussed if CSS really fits designers. What I&#8217;m sure is that it doesn&#8217;t fit programmers, at least the ones I know.
	Some of them dislike it as a heap of peculiar workarounds for browsers&#8217; limitations.
	Others point out that CSS lacks a lot of programming constructs, such as variables or expression evaluation (<a href="http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/overview/recalc.asp">IE&#8217;s proprietary extensions</a>, while powerful, look a lot like hacks).</p>
	<p>The first argument is particularly valid.
	Writing stylesheets often requires magical powers and is not straightforward at all.
	But the problem lies at broken implementations (sometimes referred to as “browsers”) rather than in CSS itself.
	The second shortcoming is clear when it comes to managing large websites.
	During the last few months I&#8217;ve been working on a custom intranet content management system as a frontend developer.
	Let me share my experiences from this project.
	I&#8217;m really eager to hear comments from you, especially if you have your own experiences with large scale projects using CSS extensively.
	</p>
<h4>Requirements</h4>
<p>
	The single installation of our CMS in theory can handle even few thousands of websites arranged into groups.
	Typical group contains from one to over a dozen of websites.
	Each group is a separate entity, owned by a customer who&#8217;s also responsible for the content.
	While websites and groups are managed by different people, they all share similar layout and main functions.
	It assures consistency across the intranet.
	Websites within groups are even more alike to each other, as they usually serve the same purpose.
	</p>
	<p>
	As you can see, the above setup is very similar to a typical portal or large e-commerce site.
	There are independent sections updated by different people but sharing some common branding elements and structure.
	</p>
	<p>
	During system design phase, I aimed to:
	</p>
<ol>
<li>Preserve consistency across all the sites.</li>
<li>Allow for design flexibility.</li>
<li>Maximize code reuse and avoid copy and paste programming.</li>
</ol>
<h4>The hierarchy</h4>
<p>
	We (me and other members of my team) decided to create a 3-level hierarchy for CSS, JavaScript, images and template files.
	At the top (“root”) level we put all files needed to lay out a website.
	So if you set up one, it gets the default look based on files from a root level.
	</p>
<div class="figure">
	<img src="/files/news/20061010/hierarchy.gif" alt="Hierarchy" class="image" width="437" height="425"/>
	<div class="legend">The particular website uses files inherited from its group and root level</div>
	</div>
<p>
	To create a custom appearance for a group you&#8217;d need to put new files at lower level.
	The set of available files has been defined at the beginning and slightly updated when needed.
	For example the home icon is always <kbd>/images/icons/home.gif</kbd>.
	If you want to use a completely different icon for the group, just put this new image in the corresponding location on the group level.
	The same rule applies when you want to introduce further customization on the website level:
	you just need to place the file in the proper location at the bottom of the directory tree.
	</p>
	<p>
	How does the CMS know which one to choose? It&#8217;s looking for the files from the bottom up.
	If the image, script or template is found on the website level, then it will be used.
	Otherwise the application looks for the same file at the group level or, if it’s not here, at the root level.
	CSS stylesheets are handled a bit different.
	The ones from lower level do not replace the files above, but instead are appended at the end of their “ancestors”.
	The server-side mechanism merges all the stylesheets with the same name and sends the result to the browser as a single file.
	This exception was made for a reason.
	CSS rules rarely have to be created from scratch — it&#8217;s much easier to define common setup and then to extend it by overwriting individual rules or adding new.
	</p>
	<p>
	How this approach works in practice? Surprisingly well.
	Since all the files needed for laying out a new site are already at the root level, content managers can quickly create a running site and edit content.
	They don’t have to wait until designers will finish their work and provide finished design specification.
	As all websites share the same codebase they are all consistent. It&#8217;s also very easy to introduce global changes.
	All you need is to put the code at the top CSS file, and all the websites will inherit it.
	Finally, there is no need to copy the code. You just have to write things specific to the group or website.
	</p>
<h4>But there is always “but”</h4>
<p>
	All the good things come at some cost. The biggest difficulty with the hierarchy is to control the differences between portals.
	It&#8217;s easy when they have the same grid and typography, and the only differences are colors or images.
	Things start to get complicated when each group or even website introduce a new layout.
	Multiply the number of CSS files by 50, and you will get the picture.
	Updates that require overwriting a single rule are easy to implement, but layout changes quickly become hard to manage.
	In order the make it work the designer have to keep the discipline.
	And have you ever tried to “discipline” your client&#8217;s requirements?
	</p>
	<p>
	Another issue is related to features that are used across few groups but not everywhere. Where should they belong?
	If you create a copy in each group this feature is needed, you&#8217;ll quickly face the problem of managing these different copies.
	Putting them at the root level sounds better, but in that case all other sites will use bloated CSS stylesheets.
	</p>
<h4>Going further</h4>
<p>
	How to overcome these problems? The latter could be addressed by further modularization of CSS files.
	Currently I&#8217;ve split stylesheets into few files.
	<kbd>colors.css</kbd>, <kbd>grid.css</kbd>, <kbd>forms.css</kbd> handle most distinct areas of a design,
	while <kbd>main.css</kbd> is used for typography, background images and small details.
	Distinct areas – such as navigation, header, login form – could have their own stylesheets.
	These stylesheets should be then included on portal level only when needed.
	The pros of this approach is the minimization of the code bloat — only actually used sets of rules would be included.
	To make it really work CSS files should be merged on the server. Otherwise dozens of HTTP requests would kill the performance.
	</p>
	<p>
	Another idea that pops up is to provide few file hierarchies, each defining completely different visual structure.
	It would let the designer to have more flexibility.
	Moreover, a single installation of the CMS would be able to handle many diverse groups of independent websites.
	</p>
	<p>
	I&#8217;m using a subjunctive form when writing about these improvements, as I haven&#8217;t tried them yet.
	What&#8217;s clear to me, after few months of learning by trial and error, is that there is no silver bullet.
	Each solution involves compromises and has liabilities.
	Managing the code of 50 websites can get tricky.
	Things get even more interesting when three frontend guys work on the same code simultaneously.
	But CSS, with all its quirks, glitches and flaws, simply works. Updates and fixes are quick.
	Usually I don&#8217;t even touch HTML templates: the rule “write once and forget” can be applied only with web standards approach.
	</p>
<p>
	Yet, I&#8217;m sure some things could be improved. What are your ideas? Do you have similar experiences? Please feel free to share!
	</p>]]></content:encoded>
			<wfw:commentRss>http://www.szafranek.net/blog/2006/10/10/css_in_the_large/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>The obligatory @media 2006 write up</title>
		<link>http://www.szafranek.net/blog/2006/06/22/the_obligatory_media_2006_write_up/</link>
		<comments>http://www.szafranek.net/blog/2006/06/22/the_obligatory_media_2006_write_up/#comments</comments>
		<pubDate>Thu, 22 Jun 2006 01:05:28 +0000</pubDate>
		<dc:creator>Szafranek</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Webstandards]]></category>

		<guid isPermaLink="false">http://szafranek/blog/2006/06/22/the-obligatory-media-2006-write-up/</guid>
		<description><![CDATA[It&#8217;s never easy to start something completely new. I mean huge things, like to sign up for the first trip to Mars, engage in a war against United States, or to start blogging in another language, nothing less. As I am too busy for the first two right now, I settled down for the third [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s never easy to start something completely new. I mean huge things, like to sign up for the first trip to Mars, engage in a war against United States, or to start blogging in another language, nothing less. As I am too busy for the first two right now, I settled down for the third option.</p>
A good motivation for the switch was the purely English event:
<a href="http://www.vivabit.com/atmedia2006/">@media 2006</a>
Web conference in London.
<p>
	The conference was held in Queen Elizabeth II Conference Center on 15th and 16th June. For those who wanted to get the most of this unusual gathering of web standards geeks, there were also unofficial meetings (also known as “parties”) at Wednesday and Saturday, and after each day of the conference.
</p>
<p>It was the first time I attended this kind of event. But I enjoyed it not only because of initial excitement. The meeting was also a great chance to listen and say hello to people like
	<a href="http://mezzoblue.com">Dave Shea</a>,
	<a href="http://simon.incutio.com/">Simon Willison</a>,
	<a href="http://www.themaninblue.com/">Cameron Adams</a>, and many more I admire and previously knew only from their blogs. Even though it was difficult to hear something you never ever read before in the blogosphere, it&#8217;s always great to ask questions directly to the members of the web vanguard.
</p>
<p>
	You could find a complete <a href="http://www.vivabit.com/atmedia2006/sessions/">list of sessions</a> on the conference&#8217;s website. I hope podcasts and slides will be there soon. Given that, let me focus on few selected presentations I enjoyed the most.
</p>
<h4>IE 7 and beyond</h4>
<div class="figure">
<a href="/files/news/20060622/chris.jpg" title="Enlarge"><img src="/files/news/20060622/tn_chris.jpg" alt="Chris Wilson" width="200" height="134" class="image"/></a>
<div class="legend">Chris Wilson back then and now</div>
</div>
<p>
	I had a really big expectations before this talk given by Chris Wilson. Chris is a Group Program Manager for Internet Explorer 7, aka The Man to Blame. If you&#8217;ve been following
	<a href="http://blogs.msdn.com/ie/">IEblog</a>, there was not too much news in the Chris&#8217; presentation: he focused on RSS related features and support for OpenSearch. The latter is a standard that allows any website to be searched directly from the browser. It is similar to
	<a href="https://addons.mozilla.org/search-engines.php">custom search engines</a>
	you know from Firefox, but uses XML rather than some custom markup. (Firefox 2.0 will support OpenSearch too.)
</p>
<p>
	Predicting that this issue will be eventually raised, Chris mentioned the support for running IE 7 next to IE 6. He said that it wasn&#8217;t disabled intentionally, to prevent developers from testing websites in both versions of the browser simultaneously. While it&#8217;s unlikely that we&#8217;ll be able to have two fully fledged IEs on the same machine because of the browser&#8217;s strong integration with the OS, in the future we may could use both rendering engines for testing. Chris said that the Internet Exporer team is working on this. I really hope it will be possible, since now IE 7, when installed next to IE 6, requires some nasty
	<a href="http://weblogs.asp.net/jgalloway/archive/2006/02/02/437196.aspx">registry hacks</a>
	and eats 100% of the processing power.
</p>
<p>
	Chris mentioned the highly anticipated better support for webstandards, which provoked me to ask a question about his view on the work done by
	<a href="http://whatwg.org/">WHAT WG</a>. (This a group of people from Apple, Mozilla and Opera who work outside of W3C on updating the HTML specification to better support developers&#8217; needs, especially in the field of web applications). Wilson is very skeptical about these developments and the way they&#8217;re done (ie: outside of the W3C). He also claims that they may break several patents. Thus I think that it&#8217;s very unlikely that we&#8217;ll see support for <code>canvas</code> element or HTML 5 any time soon in IE.
</p>
<h4>The New Accessibility Guidelines: WCAG 2.0</h4>
<div class="figure">
<a href="/files/news/20060622/wcag.jpg" title="Enlarge"><img src="/files/news/20060622/tn_wcag.jpg" alt="WCAG 2.0 panel" class="image" width="200" height="100"/></a>
<div class="legend">The WCAG Clan</div>
</div>
<p>
	After the lunch I was listening to the panel about the new, highly criticized Web Content Accessibility Guidelines, version 2.0. The panelists, —
	<a href="http://www.stuffandnonsense.co.uk/">Andy Clarke</a>,
	<a href="http://www.splintered.co.uk/">Patrick Lauke</a>,
	<a href="http://juicystudio.com/">Gez Lemon</a>, and
	<a href="http://lloydi.com/">Ian Lloyd</a>
	— were trying to explain the thinking behind WCAG 2.0, especially the idea of being “technology agnostic”. Yet, they didn&#8217;t even try to pretend that it has anything to do with “comprehensible”. The new guidelines don&#8217;t mention specific technology which makes them general and universal. Unfortunately, they&#8217;re also abstract to the point they may become useless: if content authors won&#8217;t be able to easily understand them, how can one expect that the guidelines will be actually implemented?
</p>
<p>
	There are small lights in the tunnel, though. After recent Joe&#8217;s Clark article,
	<a href="http://www.alistapart.com/articles/tohellwithwcag2">To Hell with WCAG 2</a>, there is a lot of talk about new guidelines and hopefully it may cause <a href="http://www.w3.org/WAI/" title="Web Accessiblity Inititative">WAI</a> members to make guidelines more, ehm, accessible. The last call period for the spec was extended to 22th June. Personally I doubt if it will matter much. The recently formed
	<a href="http://wcagsamurai.org/">WCAG Samurai</a>, the group of people with deep knowledge and interest with the state of accessiblity, may come up with something much better. The panelists seemed to be looking forward for Samurai&#8217;s work. As I&#8217;m sure Samurai people will create something worth of attention, I wonder if they&#8217;ll have as much impact as W3C has. This is an important factor, since WCAG guidelines are not just some geeky specs, but also a baseline for accessibility regulations in many countries.
</p>
<p>
	One of the panelists, Gez Lemon, mentioned the page I personally find very useful:
	<a href="http://www.w3.org/WAI/WCAG20/quickref/">WCAG 2.0 Quick Reference</a>. The guidelines are presented there as a customizable list, along with links to related CSS and markup techniques.
</p>
<h4>Designing the Next Generation of Web Apps</h4>
<div class="figure">
<a href="/files/news/20060622/jeff.jpg" title="Enlarge"><img src="/files/news/20060622/tn_jeff.jpg" alt="Jeffrey Veen" class="image" width="200" height="150"/></a>
<div class="legend">Jeffrey Veen</div>
</div>
<p>
	The first day ended with
	<a href="http://www.veen.com/jeff/">Jeffrey&#8217;s Veen</a>
	presentation. I&#8217;ve read before that Veen is an awesome speaker, but what I saw on stage was beyond my expectations. All the sessions were recorded, so I hope that the video with his performance (the word <em>presentation</em>
	is not accurate enough) will be published somewhere. Although Jeff left no doubt that the phrase
	<em>
		Web 2.0
	</em>
	is actually extremely passé now, he did his best to show what we could learn from this buzzword driven fad.
</p>
<h4>DOM Scripting: The Next Level</h4>
<div class="figure">
<a href="/files/news/20060622/js.jpg" title="Enlarge"><img src="/files/news/20060622/tn_js.jpg" alt="JavaScript panel" class="image" width="200" height="87"/></a>
<div class="legend">The longest part of the JavaScript panel</div>
</div>
<p>
	Next morning I enjoyed the panel led by Cameron Adams. The panelists have showed a broad spectrum of views on JavaScript libraries.
	<a href="http://www.quirksmode.org/" title="Peter Paul Koch">PPK</a>
	doesn&#8217;t use them at all,
	<a href="http://www.danwebb.net/">Dan Webb</a>
	is very skeptical,
	<a href="http://www.kryogenix.org/">Stuart Langridge</a>
	use them to simplify tedious tasks such as Ajax scripting, and Simon Willison seemed to be the most enthusiastic about them. It&#8217;s clear that, as tempting as they might look, the libraries could easily be source of the disaster if you belive that you could use them without deep understanding of JavaScript. I think it was the main point of this session: use them, but only if you know what you&#8217;re doing.
</p>
<p>
	Both Stuart and Simon were  very positive and optimistic about
	<a href="http://dojotoolkit.org/">dojo</a>. Although this library is still in an early stage of development and needs more documentation badly, it also has a widest set of features and introduces many innovative concepts, such as compression based on real JS parsing or client-side persistent storage. The drawback is that dojo is a kitchensink now, with a lot of magic going on under the hood.
</p>
<p>
	On the sidenote, it was really nice to see Simon talking very positively about dojo, even though his
	<a href="http://www.yahoo.com/">current employer</a>
	promotes a
	<a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">different library</a>
	now.
</p>
<h4>Internationalization: Awakening the Sleeping Giant</h4>
<div class="figure">
<a href="/files/news/20060622/molly.jpg" title="Enlarge"><img src="/files/news/20060622/tn_molly.jpg" alt="Molly Holzschlag" class="image" width="200" height="174"/></a>
<div class="legend">God is in the details</div>
</div>
<p>
	Later on I enjoyed
	<a href="http://molly.com">Molly&#8217;s Holzschlag</a>
	session  on internationalization. Although Molly only touched the tip of the iceberg, she made a really important point: internationalization and localization are much more than translation. When creating a localized version of the website, we must think not only about particular words but also about text layout, keyboard usage, iconography and even color, as its meaning changes across different cultures. I feel obliged to note that Molly is very energetic and engaging speaker. It was a real pleasure watching and listening to her.
</p>
<h4>Microformats: Evolving The Web</h4>
<div class="figure">
<a href="/files/news/20060622/tantek.jpg" title="Enlarge"><img src="/files/news/20060622/tn_tantek.jpg" alt="Tantek Çelik" class="image" width="200" height="150"/></a>
<div class="legend">Tantek Çelik</div>
</div>
<p>
	The last presentation was given by <a href="http://tantek.com/">Tantek Çelik</a> of <a href="http://technorati.com">Technorati</a> and IE for Mac fame. Tantek is one the people behind
	<a href="http://microformats.org/">microformats</a>, a set of pieces of basic XHTML augmented with class attributes. The idea behind microformats is to build a publicly agreed standards for common pieces of data we used to put on the web very often, such as contact information.
</p>
<p>
	In my opinion it&#8217;s much like a “Semantic Web for the poor”. The
	<a href="http://www.w3.org/2001/sw/">Semantic Web</a>
	is a set of W3C standards, such as
	<a href="http://www.w3.org/RDF/" title="Resource Description Framework">RDF</a>
	and
	<a href="http://www.w3.org/2004/owl/" title="Web Ontology Language">OWL</a>, created to make the data easily parsable by spiders and interchangeable. Unfortunately, the Semantic Web didn&#8217;t make its way through the internet yet and I doubt if it will any time soon. Standards are complicated, the required knowledge level required to make use of them is high and most web developers never heard of the idea before, not to mention implementing this. After reading several articles on the topic on great
	<a href="http://mimas.ceti.pl/tarpit/">Michał&#8217;s Świątkiewicz weblog</a>
	(unfortunately it&#8217;s  only in Polish now) I became enthusiastic about the idea, however I&#8217;m still very skeptical about the adoption of these standards.
</p>
<p>
	Microformats aren&#8217;t as sophisticated at all. They&#8217;re build upon technology any web developer already knows — XHTML. Tantek pointed out two important things that make microformats so promising. First, they&#8217;re searchable by contemporary search robots. There&#8217;s also this “laziness factor” we should never underestimate — the Web has already shown that simple, open solutions based on existing technologies have much more chances to survive.
</p>
<p>
	I asked Tantek whether he sees microformats as competitor to Semantic Web standards. He admitted this, but also pointed out that microformats could be easily transformed to RDF using <acronym title="Extensilbe Stylesheet Language Transformations">XSLT</acronym>. They&#8217;re pieces of well formed XML, after all. So even though personally I&#8217;d like to see a broader adoption of RDF, microformats can be a step in a good direction, too.
</p>
<h4>Hot Topics</h4>
<div class="figure">
<a href="/files/news/20060622/hot_topics.jpg" title="Enlarge"><img src="/files/news/20060622/tn_hot_topics.jpg" alt="Hot Topics" class="image" width="200" height="107"/></a>
<div class="legend">“Hot Topics” panelists</div>
</div>
<p>
	For my surprise, the ending “Hot Topics” panel turned out to be one the most engaging parts of the conference. The panelists, Molly, <a href="http://adactio.com/" title="Jeremy Keith">Jeremy</a>, <a href="http://www.hicksdesign.co.uk/" title="Jon Hicks">Jon</a>, Tantek and <a href="http://meyerweb.com/" title="Eric Meyer">Eric</a>, shared their thoughts on such deep topics as “What&#8217;s your favourite furry animal?” (obviously Ewok left all the competitors behing) and “Who&#8217;ll win the World Cup?” (we should soon see for ourselves whether Eric was right, betting on New York Knicks).
</p>
<p>
	There were also other, at least equally insightful, questions.
</p>
<h5>In the era of web applications, what we could learn from traditional GUI designers?</h5>
<p>
	Panelists tend to agree that&#8230; not too much, since a lot of existing conventions don&#8217;t fit the web or poses unnecessary limitations. Jon pointed out that on the web users have a much more control over the interface. Users can now set up the text size or use own stylesheets.
</p>
<p>
	Tantek said that one big missing feature of web apps is the lack of undo function. When present, it could eliminate the need for disturbing confirmation dialogs, which break the workflow. The <code>Back</code> button should carry out this role but it still doesn&#8217;t work well with current generation of web apps.
</p>
<h5>Can Ajax be made accessible?</h5>
<p>
	This question caused a lot of consternation. I think that Eric phrased it in the best way: “It can be, but will be?”. In order to make Ajax really accessible, significant changes are required in browsers and screenreaders. Tests show that even
	<a href="http://www.joeclark.org/ice/iceweb2006-test-results.html" title="Usability tests of Basecamp done by Joe Clark">sophisticated Ajax applications may work with screenreaders</a>. On the other hand, Tantek mentioned that 15% of Technorati user&#8217;s have JavaScript disabled. It&#8217;s a huge number that shouldn&#8217;t be understated.
	<a href="http://www.technorati.com/watchlist/">Technorati&#8217;s Watchlist</a>
	was mentioned as a good example of Ajax application that degrades nicely when JavaScript is not available.
</p>
<h5>Isn&#8217;t the massive movement of high-profile web designers to large companies like Google a little worrying?</h5>
<p>
	All of the panelist don&#8217;t work for Google or Yahoo! (yet) and all of them were a bit concerned. The good thing is that the companies mentioned give out for free a lot of great services. But the problem can be that they also tend to limit the sharing of the ideas. When inside the corporate giant, web designers and developers are often limited on what they can show to the world. The obvious sign of this is that many of them blog much less now.
</p>
<p>
	Jon was worried that a lot of people now start their own web ventures just to be bought by Google or Yahoo later on, instead of providing actual value to the users. Personally I&#8217;m sensing a gloomy shadow of
	<a href="http://www.paulgraham.com/hiring.html" title="Hiring is obsolete — Paul Graham">Paul Graham</a>
	here.
</p>
<h4>Summary?</h4>
<p>
	Unfortunately, I didn&#8217;t attend the Saturday get-togethers, so “Hot Topics” panel was the last session for me, beside the after conference party. The conference was a great experience. I can&#8217;t wait for the next year.
</p>]]></content:encoded>
			<wfw:commentRss>http://www.szafranek.net/blog/2006/06/22/the_obligatory_media_2006_write_up/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>The Zen of CSS Design</title>
		<link>http://www.szafranek.net/blog/2005/12/02/the_zen_of_css_design/</link>
		<comments>http://www.szafranek.net/blog/2005/12/02/the_zen_of_css_design/#comments</comments>
		<pubDate>Thu, 01 Dec 2005 23:27:07 +0000</pubDate>
		<dc:creator>Szafranek</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Webstandards]]></category>

		<guid isPermaLink="false">http://szafranek/blog/2005/12/02/the-zen-of-css-design/</guid>
		<description><![CDATA[Za sprawą szczęśliwego zrządzenia losu miałem ostatnio okazję przeczytać &#8220;The Zen of CSS Design&#8221;, książkę Davida Shea i Molly Holzschlag. Jeszcze zanim trafiła w moje ręce, słyszałem od znajomego, że jest ślicznie wydana. Faktycznie, robi pod tym względem bardzo dobre wrażenie. Co prawda jest w miękkiej okładce, ale dobry papier, ogromna liczba kolorowych ilustracji i [...]]]></description>
			<content:encoded><![CDATA[<p>Za sprawą szczęśliwego zrządzenia losu miałem ostatnio okazję przeczytać <a href="http://www.amazon.com/gp/product/0321303474/">&#8220;The Zen of CSS Design&#8221;</a>, książkę Davida Shea i Molly Holzschlag. Jeszcze zanim trafiła w moje ręce, słyszałem od znajomego, że jest ślicznie wydana. Faktycznie, robi pod tym względem bardzo dobre wrażenie. Co prawda jest w miękkiej okładce, ale dobry papier, ogromna liczba kolorowych ilustracji i staranny skład robią swoje. Od razu daje się odczuć, że to pozycja przeznaczona dla projektantów.</p>
<div class="figure"><img alt="Okładka" title="Okładka książki" src="/files/news/20051202/cover.jpg" class="image" width="217" height="240"/><div class="legend"></div></div>
<p>Właśnie. To chyba pierwsza z dość już sporego zbioru książek o standardach internetowych, która jest skierowana do bardzo konkretnej grupy odbiorców. Co prawda na początku autorzy zarzekają się, że jest ona równie dobrze przeznaczona dla programistów, ale myślę, że najwięcej korzyści odniosą z niej ludzie zajmujący się projektowaniem wyglądu stron oraz tworzeniem szablonów XHTML i CSS. I bardzo dobrze. Słynna <a href="http://helion.pl/ksiazki/pswsta.htm" title="Projektowanie serwisów WWW. Standardy sieciowe">Pomarańczowa Książeczka Zeldmana</a> miała trafić i do managerów, i do programistów, i do projektantów, a ostatecznie może znudzić ich wszystkich. Co stwierdzam z przykrością i pomimo sympatii dla autora.</p>
<p>Osobom interesującym się <acronym title="Cascading Style Sheets">CSS</acronym>-em raczej nie trzeba przedstawiać autorów, ale na wszelki wypadek przypomnę, że Shea jest pomysłodawcą <a href="http://csszengarden.com/">CSS Zen Garden</a>, chyba najlepszej w sieci demonstracji możliwości, jakie projektantom daje CSS. Prowadzi też bardzo dobrego bloga <a href="http://mezzoblue.com/" title="Strona domowa Dave'a Shea">mezzoblue</a>. <a href="http://www.molly.com/" title="Strona domowa Molly Holzschlag">Molly Holzschlag</a> jest ostatnio znana głównie z tego, że współpracuje z zespołem tworzącym Internet Explorera 7 jako przedstawicielka <a href="http://www.webstandards.org/">Webstandards Project</a>. Jak widać, oboje znają się na rzeczy.</p>
<p>Co więc można znaleźć w książce? Całość obraca się wokół projektów stworzonych na potrzeby założonej przez Dave&#8217;a strony <a href="http://csszengarden.com/">CSS Zen Garden</a>. Kod <acronym title="Extensible Markup Language">XHTML</acronym> napisany przez Shea&#8217;ę został ostylowany przez wielu naprawdę świetnych projektantów, a efekty ich pracy &#8212; grafikę i arkusze stylów &#8212; można oglądać na tej stronie. Miło jest odnotować, że wśród projektów dokładnie opisanych w książce jest też <a href="http://www.csszengarden.com/?cssfile=/097/097.css&amp;page=0">No Frontiers!</a> &#8220;naszego&#8221; <a href="http://nf.hyperreal.info/" title="Strona domowa Michała Mokrzyckiego">Michała Mokrzyckiego</a>. </p><p>Książka podzielona jest na siedem części, z których każa omawia na przykładach wybrane zagadnienie związane z projektowaniem z użyciem CSS:
</p>
<ol>
<li><strong>View Source</strong> to analiza XHTML-a, który powstał na potrzeby Zen Garden. Zawiera dużo cennych wskazówek, jak pisać elastyczny i dający się łatwo stylować kod.</li>
<li><strong>Design</strong> &#8212; rozdział poświęcony między innymi dobieraniu kolorów, kontrastu i oświetlenia.</li>
<li><strong>Layout</strong> to omówienie możliwości, jakie daje CSS podczas projektowania układu strony. Przedstawia różne metody pozycjonowania elementów.</li>
<li><strong>Imaginery</strong> to część poświęcona tworzeniu grafiki strony. Zawiera zarówno garść wskazówek przydatnych zarówno podczas pracy z Photoshopem&#8230; przepraszam, programem graficznym, jak i umieszczania swoich dzieł na stronie za pomocą CSS.</li>
<li><strong>Typography</strong>. Można tu znaleźć kilka naprawdę cennych uwag na temat czytelności i różnorodnych technik manipulowania tekstem.</li>
<li><strong>Special Effects</strong> przedstawia nieco bardziej zaawansowane zastosowania CSS. Głównym bohaterem negatywnym tego rozdziału są ograniczenia Pewnej Przeglądarki &#8482; i metody radzenia sobie z nimi.</li>
<li><strong>Reconstruction</strong> omawia bardzo szczegółowo kilka wybranych projektów i pozwala na prześledzenie krok po kroku procesu budowania strony.</li>
</ol>
<p>Całość jest przyjemna w czytaniu, choć fani błyskotliwych dygresji a&#8217;la Zeldman mogą poczuć się zawiedzeni. Jak wspomniałem na początku, głównym adresatem są projektanci i może dlatego autorzy nie wdają się w szczegółowe omawianie różnych niuansów specyfikacji. Na przykład po macoszemu potraktowano jeden z problemów, który sprawia problemy nawet zaawansowanym znawcom CSS: tworzenie elastycznych układów z użyciem właściwości <code>float</code>.
</p><p>Mimo to książka jest naprawdę praktyczna i nawet osoby pewnie czujące się w tej dziedzinie znajdą w niej coś dla siebie. Z tak zwanych dobrze poinformowanych źródeł wiem, że trwają prace nad polskim tłumaczeniem. Mam nadzieję, że zostanie równie starannie przygotowane i wydane jak oryginał. Warto mieć na półce, polecam z czystym sumieniem.
</p>]]></content:encoded>
			<wfw:commentRss>http://www.szafranek.net/blog/2005/12/02/the_zen_of_css_design/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

