<?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>My Little Black Book &#187; workshop</title>
	<atom:link href="http://blog.williegoosen.com/tag/workshop/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.williegoosen.com</link>
	<description></description>
	<lastBuildDate>Tue, 24 Aug 2010 11:42:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Performance Bootcamp</title>
		<link>http://blog.williegoosen.com/2010/02/performance-bootcamp/</link>
		<comments>http://blog.williegoosen.com/2010/02/performance-bootcamp/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 12:10:35 +0000</pubDate>
		<dc:creator>Willie Goosen</dc:creator>
				<category><![CDATA[Webstock2010]]></category>
		<category><![CDATA[day3]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://blog.williegoosen.com/?p=89</guid>
		<description><![CDATA[Presenters : Amy Hoy @amyhoy Thomas Fuchs @thomasfuchs Sites: http://mir.aculo.us http://slash7.com/about/ photo credit: Chris Shiflett A quote from Thomas Fuchs&#8217; site&#8230; &#8220;You&#8217;re using my work every day, even if you&#8217;re not aware of it&#8221;. Thomas is the author of http://script.aculo.us and working group member of prototype.  Funnily enough williegoosen.com uses mootools, which uses prototype.  Amy has [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p><a title="Chris Shiflett" href="http://www.flickr.com/photos/shiflett/3639618407/" target="_blank"><img class="alignright" style="border: 0pt none;" src="http://farm3.static.flickr.com/2270/2272128435_209181ef4d_m.jpg" border="0" alt="Amy Hoy and Thomas Fuchs" width="240" height="160" /></a> Presenters :</p>
<ul>
<li>Amy Hoy <a href="http://twitter.com/amyhoy" target="_blank">@amyhoy</a></li>
<li>Thomas Fuchs <a href="http://twitter.com/thomasfuchs" target="_blank">@thomasfuchs</a></li>
</ul>
<p>Sites:</p>
<ul>
<li> <a href="http://mir.aculo.us" target="_blank">http://mir.aculo.us</a></li>
<li> <a href="http://slash7.com/about/" target="_blank">http://slash7.com/about/</a></li>
</ul>
<p><small><a title="Attribution-NonCommercial-NoDerivs License" href="http://creativecommons.org/licenses/by-nc-nd/2.0/" target="_blank"><img src="../wp-content/plugins/photo-dropper/images/cc.png" border="0" alt="Creative Commons License" width="16" height="16" align="absmiddle" /></a> photo credit: <a title="Link to Chris Shiflett's photostream" rel="dc:creator cc:attributionURL" href="http://www.flickr.com/photos/shiflett/" target="_blank">Chris Shiflett</a></small></p>
<p>A quote from Thomas Fuchs&#8217; site&#8230; &#8220;You&#8217;re using my work every day, even if you&#8217;re not aware of it&#8221;. Thomas is the author of http://script.aculo.us and working group member of prototype.  Funnily enough williegoosen.com uses mootools, which uses prototype.  Amy has also made some rather cool tweet walls http://twistori.com/ and more recently http://letsfreckle.com/ a time sheeting app.</p>
<p>So I knew there were some tricks, having spent some time with ySlow in the weeks before, but was enlightened by the simple techniques that make a lot of difference.  Amy and Thomas did a great job of tag teaming through a rather dry subject and made it rather interesting, with one of the team walking through the slides and the other answering questions on a chat room style back-channel.</p>
<p>The talk started off with one of the rules being &#8220;only fix it if you need to&#8221; which i suppose makes a lot of sense. Tweaking performance can be a real fickle business, but if the users aren&#8217;t happy you have to fix it quick!</p>
<p>Test, don&#8217;t guess. benchmark. Make sure you can quantify the issue before you attempt any fixes so you can measure your improvement.</p>
<p>In some cases it will just be impossible to please your users but there are ways to keep people engaged and let them feel you are not ignoring them, while doing the heavy lifting in the background.</p>
<p><strong>Main areas of focus<br />
</strong> <em>Loading </em>-  connecting/spinning wheel, back-end speed, dns, latency * easiest win*.<br />
<em>Rendering </em>- white screen of death, you can see items still loading in the status bar.<br />
<em>Execution </em>- site stops responding after is completely rendered.</p>
<p>But to be honest there were just so many &#8220;oooh I should be doing that&#8221;, &#8220;woops shouldn&#8217;t be doing that&#8221; moments I will try and capture a bunch of them. Non-techy people can stop reading here.</p>
<p><strong>Do&#8217;s</strong></p>
<ul>
<li>Simple html = simple dom = faster rendering.</li>
<li>Use yslow and dommonster to identify issues.</li>
<li>JS scripts at the bottom of your pages.</li>
<li>Keep external assets to a minimum.</li>
<li>Set content expiry time frames correctly in the headers.</li>
<li>Yuicompressor + gzip to reduce .js .css .html size x5 smaller <a href="http://refresh-sf.com/yui/" target="_blank">http://refresh-sf.com/yui/</a>.</li>
<li>Merge .js files into a single .min.js file see <a href="http://getsprockets.org/" target="_blank">http://getsprockets.org/</a> and <a href="http://dailyjs.com/2010/01/27/pro-practices-1/" target="_blank">http://dailyjs.com/2010/01/27/pro-practices-1/</a>.</li>
<li>Reduce image size with http://smush.it 30% size reduction no loss.</li>
<li>Far future cache-headers (resolve updates issues by replacing with new file names).</li>
<li>Multiple asset hosts &#8211; assets on separate hosts than HTML allows for concurrent downloading.</li>
<li>Focus on whats important to users, webapps(gmail) focus on executing where as static pages (google search) focus on loading/rendering real fast.</li>
<li>Only HTML and maybe analytics JS should be load in subsequent loads rest should be cached.</li>
</ul>
<p><strong>Dont&#8217;s</strong></p>
<ul>
<li>JS in the middle of a page will block the execution of the whole page until its finished running, and can leave the user looking at an unrendered page.</li>
<li>404 requests really hurt.</li>
<li>Avoid slow external assets \ 3rd party libs.</li>
<li>Watch out for weight of frameworks, try microframeworks instead see underscore.js and emile.js.</li>
<li>Frameworks and widgets are frowned upon but if you have to script.aculo.us and jquery were mentioned</li>
</ul>
<p><strong>Interesting</strong></p>
<ul>
<li>Cool animation on how browser renders components does multiple sweeps over content to do the layout see <a href="http://en.boose.gr/gecko-reflow/">http://en.boose.gr/gecko-reflow/</a>.</li>
<li>Other open tabs can affect your sites performance or crash the whole browser.</li>
<li>-webkit-transforms are fast and very cool 2/3d stuff at 30-60fps for used on iphone and some android phones similar in jquery animation would be 5-10 fps.</li>
<li>If it takes long in real life to do something you could get away with a bit of lag, moving between forms and search should be instant.</li>
<li>Too many page assets becomes a performance hit conciser 3-5 streams for asset downloads being the default in a browser and will require cueing if more assest are required.</li>
<li>Dynatrace http://ajax.dynatrace.com/ IE tool for testing page loading.</li>
</ul>
<p>&#8220;Silence of more than four seconds become embarrassing because that implies a breaking of the thread of communication.&#8221; RB Miller(1968)</p>
<p>And if the conversations is still not happening after all the tuning, then its time to fake it!</p>
<ul>
<li>Perception is critical.</li>
<li>Tell people how long it will take &#8211; visual indication of progress can increase patience up to 5x.</li>
<li>User should feel like they are heard and their input is being considered.</li>
<li>Instant reaction even if action takes longer for action to complete.</li>
<li>Never leave the user bored.</li>
</ul>
<div class="shr-publisher-89"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom -->]]></content:encoded>
			<wfw:commentRss>http://blog.williegoosen.com/2010/02/performance-bootcamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction to jQuery and jQuery UI</title>
		<link>http://blog.williegoosen.com/2010/02/jquery-intro/</link>
		<comments>http://blog.williegoosen.com/2010/02/jquery-intro/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 02:24:27 +0000</pubDate>
		<dc:creator>Willie Goosen</dc:creator>
				<category><![CDATA[Webstock2010]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[day2]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://blog.williegoosen.com/?p=98</guid>
		<description><![CDATA[My respect only grew for John as he did a 3 hr live demo of jQuery  and jQuery UI, with only one minor hiccup which he fixed within minutes..... a true JavaScript ninja.]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p><a title="John Resig" href="http://www.flickr.com/photos/87703047@N00/2537762643/" target="_blank"><img class="alignright" style="border: 0pt none;" src="http://farm3.static.flickr.com/2231/2537762643_818233102d_m.jpg" border="0" alt="John Resig" width="240" height="160" /></a> <small><a title="drewm" href="http://www.flickr.com/photos/87703047@N00/2537762643/" target="_blank"></a></small>Presenter: John Resig<br />
Twitter: <a href="www.twitter.com/jeresig" target="_blank">@jeresig</a><br />
Site: <a href="http://ejohn.org/" target="_blank">ejohn.org</a><br />
Lead Developer and creator of jQuery, and a JavaScript Evangelist at Mozilla</p>
<p><small><a title="Attribution-NonCommercial License" href="http://creativecommons.org/licenses/by-nc/2.0/" target="_blank"><img src="../wp-content/plugins/photo-dropper/images/cc.png" border="0" alt="Creative Commons License" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit: <a title="drewm" href="http://www.flickr.com/photos/87703047@N00/2537762643/" target="_blank">drewm</a></small></p>
<p>Second day of workshops at Webstock 2010 was first time i had a look at jQuery, i have had a play with script.aculo.us and mootools in the past, so jumped at the thought of a workshop with a creator of such a frame work, as they make JavaScript sooo much more bearable, especially for someone with a Java background.</p>
<p>My respect only grew for John as he did a 3 hr live demo of jQuery  and jQuery UI, with only one minor hiccup which he fixed within minutes&#8230;.. a true JavaScript ninja.</p>
<p>In essence jQuery it looked as simple as this:</p>
<ul>
<li>Find object</li>
<li>Do something with the set</li>
</ul>
<p>Couple of bits that got me interested:</p>
<ul>
<li>Lots of people agree jQuery is awesome, its used by Microsoft, Google, Mozilla, IBM, Amazon, HP, Intel, Ruby on Rails, WordPress, Django</li>
<li>Selectors uses CSS like syntax</li>
<li>Good looking, easy to read documentation that has recently been reviewed</li>
<li>Fails gracefully, if you layer jQuery over and already functioning website</li>
<li>Big community and plugins(use with care)</li>
</ul>
<p>My rough notes on the presentation on the points that stood out to me, for the full presentation see the link at the bottom of the page.</p>
<p><strong>Finding things<br />
</strong></p>
<ul>
<li>CSS Selectors with some special selectors like :first :hidden etc</li>
<li>jQuery Methods</li>
<li>Both are methods used for traversing the DOM</li>
<li>Can be chained together  <a href="http://api.jquery.com/jQuery"><br />
</a></p>
<pre>$("div").hide().css("color","blue");</pre>
</li>
</ul>
<ul>
<li>Chained Traversal ( pretty cool )
<pre>$("button")
  .parent().css("border", "3px solid red")
  .siblings().css("border", "3px solid green");</pre>
</li>
</ul>
<p><strong>Doing Things</strong></p>
<ul>
<li>Manipulation</li>
<li>Event handling(normally user actions)</li>
<li>Live Events for current and future elements(ajax)</li>
<li>Effects .animate ( pretty nice )</li>
<li>Helpers to load xml,  json or html with ajax</li>
</ul>
<p><strong>Plugins</strong></p>
<ul>
<li>Strong Community</li>
<li>Recomended ones were
<ul>
<li> jQuery UI</li>
<li>Validation</li>
<li>Ajax Form</li>
<li>jqGrid</li>
<li>jQuery Tools</li>
</ul>
</li>
<li>Themeroller &#8211; mechanism to style jQuery UI</li>
</ul>
<p><strong>Tips</strong></p>
<ul>
<li>Write in HTML first then layer jQuery over the top</li>
<li>Apply your jQuery to a fully functional site, this way if JavaScript fails your site is still fully functional</li>
<li>&#8220;return false&#8221; Disables the default old behavior</li>
<li>With server-side code, add conditional to check it the &#8220;ajax&#8221; header is present, if so strip off header and footer code and only display id=content, to reduce server traffic</li>
<li>Look at using jquery off CDN minimised and gziped optimized &#8211; on Google&#8217;s CDN, if its good enough</li>
</ul>
<p>As a round up I would definitely consider using jQuery on my next project, as with all frameworks im sure there will be some limitations as this kind of ease of use doesn&#8217;t come without trade-offs.</p>
<p>The full presentation can be found here <a href="http://ejohn.org/apps/workshop/intro/">http://ejohn.org/apps/workshop/intro/</a></p>
<div class="shr-publisher-98"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom -->]]></content:encoded>
			<wfw:commentRss>http://blog.williegoosen.com/2010/02/jquery-intro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evolution of Web Security</title>
		<link>http://blog.williegoosen.com/2010/02/evolution-of-web-security/</link>
		<comments>http://blog.williegoosen.com/2010/02/evolution-of-web-security/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 09:27:12 +0000</pubDate>
		<dc:creator>Willie Goosen</dc:creator>
				<category><![CDATA[Webstock2010]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[day1]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://blog.williegoosen.com/?p=87</guid>
		<description><![CDATA[Presenter : Chris Shiflett Twitter: @shiflett Site: shiflet.org / analog.coop photo credit: Chris Shiflett Security is always a hot topic, and in today&#8217;s world it&#8217;s always good to have a fresh look at web security on the first day of the Webstock 2010 workshops. Chris Shiflett is currently part of a web development co-op Analog and [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p><a title="Chris Shiflett" href="http://www.flickr.com/photos/shiflett/3639618407/" target="_blank"><img class="alignright" style="border: 0pt none;" src="http://farm4.static.flickr.com/3406/3639618407_c6e7cfbf66_m.jpg" border="0" alt="Chris Shiflett" width="240" height="160" /></a><br />
Presenter : Chris Shiflett<br />
Twitter: @shiflett<br />
Site: <a href="http://shiflet.org/" target="_blank">shiflet.org</a> / <a href="http://analog.coop" target="_blank">analog.coop</a></p>
<p><small><a title="Attribution-NonCommercial-NoDerivs License" href="http://creativecommons.org/licenses/by-nc-nd/2.0/" target="_blank"><img src="../wp-content/plugins/photo-dropper/images/cc.png" border="0" alt="Creative Commons License" width="16" height="16" align="absmiddle" /></a> photo credit: <a title="Link to Chris Shiflett's photostream" rel="dc:creator cc:attributionURL" href="http://www.flickr.com/photos/shiflett/" target="_blank"><strong>Chris Shiflett</strong></a></small></p>
<p>Security is always a hot topic, and in today&#8217;s world it&#8217;s always good to have a fresh look at web security on the first day of the Webstock 2010 workshops. Chris Shiflett is currently part of a web development co-op Analog and has a keen interest in PHP and web security.  He is also a webstock veteran and author of <a href="http://shiflett.org/books" target="_blank">Essential PHP Security</a>.</p>
<p>At risk of missing any of the important points, please check out the full presentation at the end of my notes.</p>
<p>Fundamentals</p>
<ul>
<li>Defense in depth, use all safeguards available, use <a href="http://www.owasp.org" target="_blank">owasp.org</a>.</li>
<li>Least privilege, lock the system down as much as possible.</li>
<li>Least complicated, complexity allows mistakes to happen.</li>
</ul>
<p>Golden Rule, ok more like a golden acronym &#8211; FI EO</p>
<ul>
<li>Filter input &#8211; ensure any inputs are what you expect and no more.</li>
<li>Escape output &#8211; ensure data going out is not misinterpreted.</li>
</ul>
<p>List of common exploits</p>
<ul>
<li><strong>Cross-Site Scripting</strong> &#8211; an XSS flaw occurs whenever an application takes user supplied data and sends it to a web browser without first validating or encoding that content. XSS allows attackers to execute script in the victim&#8217;s browser which can hijack user sessions, deface web sites and possibly introduce worms.</li>
<li><strong>Cross-Site Request Forgeries</strong> &#8211; a CSRF attack forces a logged-on victim&#8217;s browser to send a pre-authenticated request to a vulnerable web application, which then forces the victim&#8217;s browser to perform a hostile action to the benefit of the attacker. CSRF can be as powerful as the web application that it attacks.</li>
<li><strong>SQL Injection</strong> &#8211; injection occurs when user-supplied data is sent to an interpreter as part of a command or query. The attacker&#8217;s hostile data tricks the interpreter into executing unintended commands or changing data.</li>
<li><strong>Session Fixation</strong> &#8211; attempt to exploit the vulnerability of a system which allows one person to fixate (set) another person&#8217;s session identifier.</li>
<li><strong>Session Hijacking &#8211; </strong>session tokens are often not properly protected. Attackers compromise passwords, keys, or authentication tokens to assume other users&#8217; identities.</li>
<li><strong>Email Injection</strong> &#8211; similar to SQL injection.</li>
<li><strong>Remote Code Injection</strong> &#8211; similar to SQL injection.</li>
</ul>
<p>In a lot of  these attacks it is rather trivial to get the basics right by following the golden acronym FIEO, but all posible defences should be used for defence in depth.  The full presentaion goes into the ways to &#8220;Stop It&#8221;. Also do your own research to pick up on latest trends.  A rather concise resource was mentioned by @nzrob see www.owasp.org <a href="http://www.owasp.org/index.php/Top_10_2007" target="_self">Top 10 vulnerabilities</a> which gives large amount option to protect your application.</p>
<p>The full presentation can be found here,  <a href="http://shiflett.org/evolution-of-web-security.pdf" target="_blank">http://shiflett.org/evolution-of-web-security.pdf</a>.</p>
<p>Tips</p>
<ul>
<li>Specify character encoding and make sure it is consistant from front to back end.</li>
<li>Get users to reconfirm password for important actions like changing password.</li>
<li>Good understanding of http and session management helps with prevention.</li>
<li>Keep source code short and concise.  Complexity breeds flaws.</li>
<li>Human peception can also lead to perceved security breaches &#8211; see <a href="http://blogoscoped.com/archive/2008-01-28-n59.html" target="_self">SmugMug example</a>.</li>
<li>Host static files on separate subdomain to limit session token exposure.</li>
</ul>
<p>Final thoughs were around trending of user behaviour to identifying abnormalities and maybe using something like <a href="https://panopticlick.eff.or/" target="_blank">https://</a><a href="https://panopticlick.eff.or/" target="_blank">panopticlick</a><a href="https://panopticlick.eff.org/" target="_blank">.eff.org/</a> for uniquely identifying users from bots.</p>
<p>Chris did an excellent job in presenting the information in an easily ledgible format and good concrete examples. I am gutted I prioritised another talk over his &#8220;Security-Centered Design&#8221; talk at the Webstock conference but I&#8217;ll be sure to catch up on it when the video is available and post the link here if I remember.</p>
<p>Be Safe :)</p>
<div class="shr-publisher-87"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom -->]]></content:encoded>
			<wfw:commentRss>http://blog.williegoosen.com/2010/02/evolution-of-web-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Day Three Accessibility and Ajax</title>
		<link>http://blog.williegoosen.com/2009/02/day_three_accessibility_and_ajax/</link>
		<comments>http://blog.williegoosen.com/2009/02/day_three_accessibility_and_ajax/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 10:53:16 +0000</pubDate>
		<dc:creator>Willie Goosen</dc:creator>
				<category><![CDATA[Webstock2009]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[day3]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://blog.williegoosen.com/?p=51</guid>
		<description><![CDATA[Derek Featherstone Real world Accessibility for Ajax and Web Apps Sites : www.boxofchocolates.ca www.furtherahead.com Right so i got caught out by the title like the typical buzzword try-er-outer. So first thing i read going through the workshops, was &#8230;. AJAX. So wow that&#8217;s like so now and everyone is doing it so the more AJAX [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p>Derek Featherstone<br />
Real world Accessibility for Ajax and Web Apps<br />
Sites : <a href="http://www.boxofchocolates.ca">www.boxofchocolates.ca</a> <a href="http://www.furtherahead.com">www.furtherahead.com</a></p>
<p><a class="flickr-image alignright" title="Derek Featherstone and the class" href="http://www.flickr.com/photos/greendott/3303362102/"><img src="http://farm4.static.flickr.com/3312/3303362102_dce60f91a9_m.jpg" alt="Derek Featherstone and the class" /></a></p>
<p>Right so i got caught out by the title like the typical buzzword try-er-outer. So first thing i read going through the workshops, was &#8230;. AJAX. So wow that&#8217;s like so now and everyone is doing it so the more AJAX the better right?</p>
<p>Upon closer inspection the workshop was more around the _accessibility_ part. And the first 10 min I thought whoops not quite what I intended to spend a day on, but i was captivated after the intro.</p>
<p>Quick key points<br />
1. Forms<br />
- Watch out for Visual labeling, use <label> element<br />
- &#8220;em&#8221; inside the &#8220;label&#8221; and position with CSS<br />
- Replace &#8220;em&#8221; with a &#8220;strong&#8221; if its an error.<br />
- Plan error/advisory information carefully (keep in flow or shift focus to it if not in flow)<br />
- Dual purpose interfaces can cause issues.</label></p>
<p>2. Linear Flow<br />
- feedback on an action should be where your focus is going<br />
- have elements linear in HTML and position with CSS for visual organisation</p>
<p>3. Proximity<br />
- when injecting content with ajax place do so in context.<br />
- avoid injecting content at the end of the document if possible<br />
- best yet avoid ajax if it can be hidden with CSS and revealed</p>
<p>4. Backup plan<br />
- have a fall back option, multiple ways of achieving same goal<br />
- use headings for &#8220;rescue point&#8221; if user gets lost in document</p>
<p>5. Visual Design vs Structure<br />
- check that your visual design and un-styled document is telling the same story<br />
- turn your CSS off see if site still makes sense<br />
- build linear flow into your wire frames</p>
<p>6. Development  Testing<br />
- Test for accessibility from the start.<br />
Design Stage: Color contrasts, general layout<br />
Functional Testing: must work with keyboard<br />
Demo Testing: all alt must be accurate, screen reader emulators, turn off css<br />
Final Test: real people varied needs.<br />
- test success error AND corrective paths<br />
- check for alt tags and that they make sence.</p>
<p>A Tools and Links<br />
- Screen readers Shark and Dragon Natural speaking<br />
- HTML Tidy in Firefox is a good start<br />
- <a href="http://www.standards-schmandards.com/projects/fangs/">Fangs</a> Firefox plug-in screen reader emulator<br />
- Juicy Studio Firefox plug-in for <a href="http://juicystudio.com/services/luminositycontrastratio.php">Luminosity Colour Contrast Ratio Analyser</a><br />
- <a href="http://www.simplyaccessible.org">www.simplyaccessible.org</a> for some examples<br />
- WCAG the accessibility bible</p>
<p>Soo once again to make some sence of all the random jucy tidbits of knowledge, its definitely something i will be promoting from now on.</p>
<p>At a basic level it costs nothing. Its up to the UX designer and Developers to just take a bit more care in element placement and thinking about the project not just from you users perspective but also the less able users. As a by product this will produce a much higher quality product and the HTML is bound to be more semantic and efficient.</p>
<p>A quote from Derek that summed it up quite well :</p>
<blockquote><p><em>Its about whats under the covers</em></p></blockquote>
<div class="shr-publisher-51"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom -->]]></content:encoded>
			<wfw:commentRss>http://blog.williegoosen.com/2009/02/day_three_accessibility_and_ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Day Two Agile Goodness</title>
		<link>http://blog.williegoosen.com/2009/02/day-two-agile-goodness/</link>
		<comments>http://blog.williegoosen.com/2009/02/day-two-agile-goodness/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 05:58:30 +0000</pubDate>
		<dc:creator>Willie Goosen</dc:creator>
				<category><![CDATA[Webstock2009]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[day2]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://blog.williegoosen.com/?p=37</guid>
		<description><![CDATA[Presenter M. Jackson Wilkinson Twitter @wafro Site: www.jounce.net Developer(Python), Project manager, Agile Man So i went into this presentation having seen a couple of agile projects in practice, and not quite sure what it was all about i did a couple of googles some time ago. When this opportunity came around i thought it would [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p>Presenter M. Jackson Wilkinson<br />
Twitter @wafro<br />
Site: <a href="http://www.jounce.net">www.jounce.net</a><br />
Developer(Python), Project manager, Agile Man</p>
<p><a class="flickr-image alignright" title="William Jackson's Agile Workshop" href="http://www.flickr.com/photos/greendott/3303361952/"><img src="http://farm4.static.flickr.com/3451/3303361952_8b16261805_m.jpg" alt="William Jackson's Agile Workshop" /></a></p>
<p>So i went into this presentation having seen a couple of agile projects in practice, and not quite sure what it was all about i did a couple of googles some time ago. When this opportunity came around i thought it would be rude not too.</p>
<p>Jackson was a great presenter and covered a wide range of topics from various peoples perspectives in the project team. I will not try and repeat it all as i would be here forever and its a bluebird day in welly so i&#8217;ll keep it short.</p>
<p>- Collaboration is imperative<br />
- Embrace change<br />
- Choose the team very carefully<br />
- Everybody on the project team must &#8220;buy-in&#8221; to the goal<br />
- Attention to the technical detail not just a quick hack as more time is spent on the development rather than the process.<br />
- Release _working_ software often to the client to show progress. Not every cycle has a release</p>
<p>We brushed over the how the process works :</p>
<p>1. Cycle Zero<br />
- Research<br />
- Product Design<br />
- Development Prep get ready to start coding<br />
- Moodboards(very cool) for quick look &amp; feel concepts<br />
- Very importantly Defining Done</p>
<p>2. Cycle Planning<br />
- Develop User stories eg. User can search for a photo.<br />
- Test planning &#8211; asumption, success criteria, out of scope bits<br />
- Use and index card to capture information gathered so far.<br />
- Estimate is placed on each card and determined which cycle its targeted for.<br />
- Use 1.2.4.8.16.32.64 for giving each storie points.<br />
- Find your teams balance on how many storie points you can complete in a cycle<br />
- Keep team rolling with backlog of the easy 1.2.4 tasks</p>
<p>3. Collaborative UX/UI<br />
- Get business and designers to build mock ups together<br />
- Quick and on paper gives you LOFI wireframes<br />
- You can do more detailed wire frames but risk quibbling over detail<br />
- Mock ups avoids confusion and developers love them</p>
<p>4. Daily Progress<br />
- Focus on YTB, yesterday, today, blocks<br />
- Use time keep it short and standing<br />
- Just Google &#8220;scrum&#8221; it&#8217;s all there i promise<br />
- there are all sorts of rules but use what works.</p>
<p>5. Pairing<br />
- Thinker and Checker and the Does/Executor<br />
- Development &#8211; Beter code less bugs<br />
- Wireframes &#8211; review asumptions and help brainstorm</p>
<p>6. Test Driven Development<br />
- Is a must<br />
- Every function must have a test<br />
- Selinium and Windmill for frontend test automation</p>
<p>7. Continuous Integration<br />
- Automate Release cycle (cruzecontrol or hudson?)<br />
- Frequent Release cycle (dayly, hourly)<br />
- Check out, Build, Run Test, Notify if errored, Deploy(in Test)</p>
<p>8. Retrospective<br />
- just before start of next cycle<br />
- where are we at now<br />
- reflect on previous cycle<br />
- review story points completion<br />
- review pairing arrangements</p>
<p>Appendix &#8211; Artifacts<br />
- This one is still baffeling me as the whole point of agile is to just get into it, and only document what will be reused. But this means that some desision points may be lost because of lack of documentation.<br />
- The code should be self commenting plus enough comments to make the rest understandable, frequent refactoring and good comments should improve this further<br />
- Project wikis was also suggested.<br />
- I do like documentation, so im unconvinced on this point of limited documentation</p>
<p>An interesting new term that was topic for a bit of discussion as it wasn&#8217;t on Google yet was &#8220;Layered Progress&#8221;<br />
It is when you do development for your whole site in high level wire frames in the first pass. Next stage as they become available replace high level wire frames with more detailed ones, and as the final functional pages are available replace them again.<br />
Implementation of this is up to you, if you hunt hard enough something like this may be found somewhere.</p>
<p>Another new one, for me at least, was &#8220;Coding Dirty&#8221;<br />
It is when you developer builds the functionality and designer does the design afterward. This is fraught with danger as if your html/css is not marked up well it will produce a sub optimal result. Some people in the group has had success with this order.</p>
<p>Soo final thoughts. I&#8217;m not totally sold yet, there are some facets to it that i like but i will chew on the methodology a bit longer.</p>
<p>To give it appropriate visibility in an organisation you will need to try it on a small not critical but highly visible project to get the hang of it and get buy-in based on its success.</p>
<p>Now for some rest before day three AJAX and Accessibility shenanigans.</p>
<div class="shr-publisher-37"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom -->]]></content:encoded>
			<wfw:commentRss>http://blog.williegoosen.com/2009/02/day-two-agile-goodness/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Day One Mastering CSS &amp; HTML</title>
		<link>http://blog.williegoosen.com/2009/02/day-one-mastering-css-html/</link>
		<comments>http://blog.williegoosen.com/2009/02/day-one-mastering-css-html/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 10:05:41 +0000</pubDate>
		<dc:creator>Willie Goosen</dc:creator>
				<category><![CDATA[Webstock2009]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[day1]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://blog.williegoosen.com/?p=25</guid>
		<description><![CDATA[After a mad dash from the airport we made it just in time for the first session on the day. We did luck out on the good seats. But not even the neck wrenching all day long could take away from the sessions content.]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p><a class="flickr-image alignright" title="Webstock" href="http://www.flickr.com/photos/tashmahal/3030305441/"><small><a title="Attribution License" rel="license" href="http://creativecommons.org/licenses/by/2.0/"></a></small></a></p>
<p><a class="flickr-image alignright" title="Russ Weakley" href="http://www.flickr.com/photos/greendott/3302571751/"><img src="http://farm4.static.flickr.com/3444/3302571751_a2cc9ea6a2_m.jpg" alt="Russ Weakley" /></a>After a mad dash from the airport we made it just in time for the first session on the day. We did luck out on the good seats. But not even the neck wrenching all day long could take away from the sessions content.</p>
<p>I was amazed at the amount of ground that was covered by Russ Weakley. Fast paced and action packed till the last bell rang at 5pm.</p>
<p>Areas of particular interest to me, no i might hear you say du!, but my css and html skills have been hacked togeter like a IE 5 stylesheet.</p>
<ul>
<li>I&#8217;m slowly getting my head around Inline, Block and Terminal Block elements. I&#8217;ll have to go check out that last one again.</li>
<li>Selectors are your friend, esp descendant selectors save you from needing to assign classes unnecessarily</li>
<li>Try and use your site without a mouse, for basic accessibility testing</li>
<li>Check out <a href="http://maxdesign.com.au">http://maxdesign.com.au</a> for some css goodness and examples</li>
<li>display:inline = inflow, display:block = out of flow</li>
<li>CSS Sprites, have all your icons in one gif file to save round trips to the server. Use ample white space(100px) to avoid strange effects when font size gets increased.</li>
<li>User more of &#8220;em&#8221; unit to make site more fluid when font size in the browser gets changed.</li>
<li>Russ finally got me to make sense of &#8220;li&#8221; elements for navigation and how easy they are to work with.</li>
<li>Also see &#8220;Sliding Door&#8221; for nice and neat little tabs with rounded corners. a and span elements are your friends here.</li>
<li>Tables in forms are _bad_ for accessablility</li>
<li>Build for standard compliant browser ALWAYS!!!, you can add IE specific hacks in at IE only style sheet.</li>
<li>When doing a printable stylesheet see &#8220;media&#8221; attribute of the link element.</li>
</ul>
<p>So at the end of a long day im calling it a wrap. The sooner i go to bed the sooner i can go and have a coffee at <a href="http://coffee.gen.nz/cafe/309-deluxe">Delux</a></p>
<blockquote><p><em>Double Margin Float bug is quite bizarre</em> &#8211; Russ(Sounding like the Steve Irwin of CSS)</p></blockquote>
<div class="shr-publisher-25"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom -->]]></content:encoded>
			<wfw:commentRss>http://blog.williegoosen.com/2009/02/day-one-mastering-css-html/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

