<?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>Josh.st &#187; JavaScript</title>
	<atom:link href="http://josh.st/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://josh.st</link>
	<description>Web, English, 中国, and various geekosity</description>
	<lastBuildDate>Sat, 11 Feb 2012 10:39:41 +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>Firefox 4 status bar</title>
		<link>http://josh.st/2011/03/29/firefox-4-status-bar/</link>
		<comments>http://josh.st/2011/03/29/firefox-4-status-bar/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 23:25:28 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[unobtrusive]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://josh.st/?p=1675</guid>
		<description><![CDATA[On running Firefox 4 for the first time I was shocked to mouseover a link and apparently not be able to see where I was going. Had they banished the status bar? Of course, everyone’s just playing catchup to Chrome’s UI, and its status bar isn’t really a bar at all — it just appears [...]]]></description>
			<content:encoded><![CDATA[<p>On running Firefox 4 for the first time I was shocked to mouseover a link and apparently not be able to see where I was going. Had they banished the status bar? Of course, everyone’s just playing catchup to Chrome’s UI, and its status bar isn’t really a bar at all — it just appears as and when it’s needed. Perfect.</p>
<div id="attachment_1676" class="wp-caption alignnone" style="width: 496px"><img class="size-full wp-image-1676" title="Floating status bar in Chrome - only appears as you mouseover a link" src="http://josh.st/blog/wp-content//2011/03/floating-status-bar-chrome.png" alt="Floating status bar in Chrome - only appears as you mouseover a link" width="486" height="198" /><p class="wp-caption-text">The way it’s meant to happen!</p></div>
<p>As and when typically just means “right before you click on a link”, with the whole thing triggered by mouseovers. The first page Firefox loads when you start the browser is available here — <a href="http://www.mozilla.com/en-US/firefox/4.0/firstrun/">http://www.mozilla.com/en-US/firefox/4.0/firstrun/</a> — can you see what’s wrong with it?</p>
<p>I love event-listenery JavaScript as much as the next guy, but the icon on Step 2 suggested I’d be going to another page (c’mon, that’s just what right angle quotation marks have been co-opted to mean on the web!) while the browser wouldn’t say where.</p>
<p>Before visiting any actual pages in Firefox, not much trusting it at this point, I did some quick Googling and discovered two things:</p>
<ol>
<li>That you can bring back the status bar by simply typing ⌘ + / or Ctrl + /, and</li>
<li>That, not knowing this, people have created <a href="https://addons.mozilla.org/en-us/firefox/addon/status-4-evar/">at least one browser extension</a> to do exactly that.</li>
</ol>
<p>Fail.</p>
<p>Of course, if I’d bothered to actually USE Firefox for 2 minutes–trusting it even though it wouldn’t tell me where links were pointing–I’d have discovered that ordinarily it does. Pie-faced, I retreated to blogging angrily about how Mozilla’s first run screen is a great HTML5 page but a horrible initial demo of the browser’s capabilities.</p>
<p>A few observations from this:</p>
<ul>
<li>Browsers need to tell you where you’re going next. Users don’t[/shouldn’t] trust the Internet enough to find out when they arrive.</li>
<li>None of this would’ve happened had the team creating the landing page used progressive enhancement and unobtrusive JS technique.</li>
<li>The team probably didn’t because they wanted to show off how well their amazing browser does fancy “HTML5” (in the <a title="HTML5... lets web developers create advanced graphics, typography, animations and transitions..." href="http://www.apple.com/hotnews/thoughts-on-flash/">Jobs-ian CSS/JS inclusive sense</a>) stuff. Fine, but also link to a page that has the same content.</li>
<li>Browser vendors are responsible for keeping user’s trust from the very start. This is a weird issue because it’s actually nothing to do with the browser’s functionality itself, but it temporarily impacted my opinion on how seriously Firefox take user choice/security/usability in a significant way.</li>
<li>No-one <a title="Firefox 4 doubles IE9's 24-hour download tally" href="http://news.cnet.com/8301-30685_3-20046114-264.html">actually uses Firefox anymore</a>, so it doesn’t matter. It is a pain while using Firebug to test my own sites, though. ;-)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://josh.st/2011/03/29/firefox-4-status-bar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reiteration of hatred of table-based layout</title>
		<link>http://josh.st/2006/06/17/reiteration-of-hatred-of-table-based-layout/</link>
		<comments>http://josh.st/2006/06/17/reiteration-of-hatred-of-table-based-layout/#comments</comments>
		<pubDate>Sat, 17 Jun 2006 05:10:06 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://joahua.com/blog/2006/06/17/reiteration-of-hatred-of-table-based-layout</guid>
		<description><![CDATA[You all know the story. This time around it’s table-based layout with some crap JavaScript rollover script that is throwing debug errors in IE. Whatever.]]></description>
			<content:encoded><![CDATA[<p>You all know the story. This time around it’s table-based layout with some crap JavaScript rollover script that is throwing debug errors in IE. Whatever.</p>
]]></content:encoded>
			<wfw:commentRss>http://josh.st/2006/06/17/reiteration-of-hatred-of-table-based-layout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Knee-jerk response to Flickr Gamma</title>
		<link>http://josh.st/2006/05/18/knee-jerk-response-to-flickr-gamma/</link>
		<comments>http://josh.st/2006/05/18/knee-jerk-response-to-flickr-gamma/#comments</comments>
		<pubDate>Thu, 18 May 2006 03:52:46 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://joahua.com/blog/2006/05/18/knee-jerk-response-to-flickr-gamma</guid>
		<description><![CDATA[Flickr’s new Organizr is a huge step backwards. It takes an incredibly usable Flash application, reworks it into a much-slower JavaScript version (that’s still just as inaccessible, and who really cares about screen readers seeing as we’re dealing with vast numbers of photos? *flamebait*), and in the process removes useful graphic (as in, having the [...]]]></description>
			<content:encoded><![CDATA[<p>Flickr’s new Organizr is a huge step backwards. It takes an incredibly usable Flash application, reworks it into a much-slower JavaScript version (that’s still just as inaccessible, and who really cares about screen readers seeing as we’re dealing with vast numbers of photos? *flamebait*), and in the process removes useful graphic (as in, having the quality of graphs, not graphical) elements, replacing them with numeric date selectors, etc.</p>
<p>Oh, yeah, and they’re browser-sniffing and rejecting anyone aside from Firefox, Safari, and IE. Which is ridiculous because Opera is so much easier to get to work with stuff than Safari is… in fact, it’s one of the better behaved browsers. Meanwhile, Flash would work on anything and so many people have Flash it’s hardly a great problem. To choose between a great, usable app and a less-usable, quasi-standards-embracing, still-just-as-inaccessible app seems like it should have an obvious outcome. Sigh. Why couldn’t they just focus on making the Flash thing work better? Multi-select dragging in the Flash UI was the last thing I really desired from Organizr: beyond that, I’d be pretty much content with existing features. But no… they had to go tear it apart. Grrr. Just because programmers like numbers, doesn’t mean the rest of us do. Bring back the drag-and-drop!</p>
<p>p.s. Yes, I know you can get to <a href="http://flickr.com/photos/organize/?old=1">the old version still</a>. It’s not that so much as the new version seems like a massive regression with absolutely zero advantages, and development on the Flash version is going to be in permanent hiatus (at least until they realise I am infallible and surrender in their folly, etc., etc.)</p>
]]></content:encoded>
			<wfw:commentRss>http://josh.st/2006/05/18/knee-jerk-response-to-flickr-gamma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Horrible homonyms</title>
		<link>http://josh.st/2006/03/14/horrible-homonyms/</link>
		<comments>http://josh.st/2006/03/14/horrible-homonyms/#comments</comments>
		<pubDate>Tue, 14 Mar 2006 10:12:35 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[dev member]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://joahua.com/blog/?p=908</guid>
		<description><![CDATA[I’m not even thinking of homonyms so much (though that may be true of the word in question, if you ignore similar meanings) when I get upset (as I am at present) about the untenable nature of the word “class” or “classes” (as in school/education) in any context where it could possibly be confused with [...]]]></description>
			<content:encoded><![CDATA[<p>I’m not even thinking of homonyms so much (though that <em>may</em> be true of the word in question, if you ignore similar meanings) when I get upset (as I am at present) about the untenable nature of the word “class” or “classes” (as in school/education) in any context where it could possibly be confused with programming of any sort.</p>
<p>As usual, it’s the geeks’ fault. I suppose classes in programming generally refer to a grouping of objects, as a class of students is a grouping of the same… so perhaps context should make the distinction clearer. But still, waaaay too much potential for confusion. Roget’s was thoroughly unhelpful in this regard… “course” is inaccurate, “grade” is too broad, and everything else was way off the mark. I think I’m going to go with “course” for the minute, at least until/unless I come up with something better.</p>
<p>For those wondering why I’m talking about something IT-related outside of the murky realms of semantics (though this arguably relates, albeit in a different sphere!), pseudo-design/browser-bug-fighting, and my all-encompassing-JavaScript-ineptitude… well, I’m playing with <a href="http://www.rubyonrails.org/">Ruby on Rails</a> again. Or rather, properly for the first time. Because, you know, I don’t think there are enough balls I’m trying to juggle already ;-) Meh. If Rails is really fast and I don’t run out of time and make this drag out forever (which I inevitably will… bleh) this’ll probably take about a month. If Rails actually sucks, which by most reports it doesn’t — speculation about crap performance for large-scale services and concern over the small bus-factor (if one dev member got hit by a bus, what’d happen to the project?) aside — then I might give up for another couple of months. Whatever!</p>
<p>If nothing else maybe I’ll learn some stuff about MVC along the way. Not bad for an Arts student, hey?</p>
]]></content:encoded>
			<wfw:commentRss>http://josh.st/2006/03/14/horrible-homonyms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript print_r() equivalent</title>
		<link>http://josh.st/2006/02/28/javascript-print_r-equivalent/</link>
		<comments>http://josh.st/2006/02/28/javascript-print_r-equivalent/#comments</comments>
		<pubDate>Tue, 28 Feb 2006 04:44:24 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://joahua.com/blog/2006/02/28/javascript-print_r-equivalent</guid>
		<description><![CDATA[It was observed today that I’m doing an awful lot of JavaScript for someone who has no idea what they’re doing with it. Anyway, was looking for an easy way to do a PHP-esque print_r but with Javascript today and stumbled across this rather-nifty function. *bookmarks*]]></description>
			<content:encoded><![CDATA[<p>It was observed today that I’m doing an awful lot of JavaScript for someone who has no idea what they’re doing with it.  Anyway, was looking for an easy way to do a PHP-esque <code>print_r</code> but with Javascript today and stumbled across <a href="http://www.brandnewbox.co.uk/logbook/web/javascript/printr.html">this rather-nifty function</a>.</p>
<p>*bookmarks*</p>
]]></content:encoded>
			<wfw:commentRss>http://josh.st/2006/02/28/javascript-print_r-equivalent/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Don’t do this on a large site</title>
		<link>http://josh.st/2006/02/27/dont-do-this-on-a-large-site/</link>
		<comments>http://josh.st/2006/02/27/dont-do-this-on-a-large-site/#comments</comments>
		<pubDate>Mon, 27 Feb 2006 09:32:19 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[large site]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://joahua.com/blog/2006/02/27/dont-do-this-on-a-large-site</guid>
		<description><![CDATA[This post is actually something I meant to say last week, but forgot. So I’ll say it now: Loading JavaScript on a prominent page that builds a link to a non-existent resource is a BadThing. Think ridiculous numbers of 404 errors and partially-defeated statistics tracking! Having said that, I managed to manual work out JS/no-JS [...]]]></description>
			<content:encoded><![CDATA[<p>This post is actually something I meant to say last week, but forgot.</p>
<p>So I’ll say it now: Loading JavaScript on a prominent page that builds a link to a non-existent resource is a BadThing. Think ridiculous numbers of 404 errors and partially-defeated statistics tracking! Having said that, I managed to manual work out JS/no-JS support to be even lower than it is on this site — it’s 1.5% non-JS here — which is impressively (pleasingly) low!</p>
<p>AWstats is fun to run on many-gigabyte logfiles… just not multiple times once you’ve realised “Oh, I screwed up and no amount of grepping can save me now!” (First time I’ve absolutely required my dual-boot Ubuntu/XP install at work… because it’s lots easier to watch load on a computer you’re physically on rather than by SSH, and because multiple-GB-logfiles aren’t fun to transfer across networks!)</p>
]]></content:encoded>
			<wfw:commentRss>http://josh.st/2006/02/27/dont-do-this-on-a-large-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trapping return for form field focus</title>
		<link>http://josh.st/2006/02/21/trapping-return-for-form-field-focus/</link>
		<comments>http://josh.st/2006/02/21/trapping-return-for-form-field-focus/#comments</comments>
		<pubDate>Tue, 21 Feb 2006 08:44:12 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://joahua.com/blog/?p=890</guid>
		<description><![CDATA[Today I had to cook up a simple form with two input fields, so that two barcodes could be scanned into their respective fields and then submitted (the point being to link two IDs in a database that have been encoded in separate barcodes). There was one twist. The barcode reader automatically appends a return [...]]]></description>
			<content:encoded><![CDATA[<p>Today I had to cook up a simple form with two input fields, so that two barcodes could be scanned into their respective fields and then submitted (the point being to link two IDs in a database that have been encoded in separate barcodes). There was one twist.</p>
<p>The barcode reader automatically appends a return character to the end of the string it’s read… which would, in any normal circumstance, submit the form. Obviously problematic unless we split the form over several pages, which is just yuck.</p>
<p>If the barcode reader hadn’t returned character 13 (return/enter/whatever you’ll call it) at the end of the string, it’d be trivial to pick up a “maxlength=x then go to next field” script off the side of the road… they’re everywhere. Not so much the case with this exact problem, though, so I thought I’d share…</p>
<p>[source:str javascript]function catchEnter(e){<br />
var characterCode<br />
if(e &amp;&amp; e.which){<br />
e = e<br />
characterCode = e.which<br />
} else {<br />
e = event<br />
characterCode = e.keyCode<br />
}<br />
if(characterCode == 13){<br />
document.getElementById(‘cardid’).focus();<br />
return false<br />
} else{<br />
return true<br />
}<br />
}[/script]</p>
<p>Note we’re not using DOM methods here… there isn’t any equivalent to <code>which</code> or <a href="http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/keycode.asp"><code>keyCode</code></a> that I’m aware of (I looked enough). <code>keycode</code> is the important one… <code>which</code> is used by the likes of Netscape 4.x and other nasties… I don’t really want to know about it, but I stole the key trap code from somewhere (lost the site) and didn’t really have a reason to intentionally <em>break</em> the behaviour for those browsers!</p>
<p>So we use one of those (probably keycode) to set characterCode, which is a numeric value that corresponds to Unicode decimal values. 13 is <a href="http://en.wikipedia.org/wiki/Carriage_return">carriage return</a>. Then it needs to be compared to <code>event</code> (the character that triggered the onkeypress event), here used as <code>e</code> for convenience… and if <em>this</em> is true, then focus will go to the next field (in this case <code>cardid</code>) and the character will <code>return false</code> to prevent the form from submitting.</p>
<p><a href="/blog/wp-content/2006/02/barcode/"><img src="/blog/wp-content/2006/02/barcode/returnfocus.png" alt="Screenshot of the demo page" style="float: left; display: inline; text-align: left; margin-right: 1em" /></a></p>
<p>I’ve got <a href="/blog/wp-content/2006/02/barcode/">a static demo</a> here (don’t mind the message at the top, it was an HTML mockup)… try entering something into the first field and pressing return. Then press return again, and the form will submit.</p>
<p>Obviously this Javascript only works for a two-field case… but you could dynamically set the element for focus to follow to by parsing that through to the function <code>onkeypress</code> event. The only other thing I can think of is to <a href="http://www.mozilla.org/docs/dom/domref/dom_doc_ref50.html">getElementsByTagName</a> every input field in the form and use the array to dynamically set the “next” field… but that would have been waaaay overkill for what I had to do.</p>
<p>This behaviour isn’t just useful for barcode scanners, by the way. Desktop applications often exhibit this kind of behaviour, and it also goes some way to ensuring all fields are filled without doing formal validation (either JavaScript on <code>submit</code>, or server-side).</p>
]]></content:encoded>
			<wfw:commentRss>http://josh.st/2006/02/21/trapping-return-for-form-field-focus/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>St George Internet banking sucks</title>
		<link>http://josh.st/2006/02/15/st-george-internet-banking-sucks/</link>
		<comments>http://josh.st/2006/02/15/st-george-internet-banking-sucks/#comments</comments>
		<pubDate>Wed, 15 Feb 2006 09:35:07 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[bank]]></category>
		<category><![CDATA[incompetent web team]]></category>
		<category><![CDATA[Internet banking]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[PBX]]></category>
		<category><![CDATA[Virtual Machine]]></category>
		<category><![CDATA[web application]]></category>
		<category><![CDATA[web developer]]></category>
		<category><![CDATA[web support]]></category>
		<category><![CDATA[web team]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://joahua.com/blog/2006/02/15/st-george-internet-banking-sucks</guid>
		<description><![CDATA[It requires Java. I can live with that, it’s a web application. I had to call up to find out what browsers they officially supported, only to be told that support was limited to Internet Explorer on Windows, Mac (!!) and Netscape 7+ on both platforms. Firefox “hasn’t been tested”, Safari hasn’t been looked at. [...]]]></description>
			<content:encoded><![CDATA[<p>It requires Java. I can live with that, it’s a web application.</p>
<p>I had to call up to find out what browsers they officially supported, only to be told that support was limited to Internet Explorer on Windows, Mac (!!) and Netscape 7+ on both platforms. Firefox “hasn’t been tested”, Safari hasn’t been looked at. I’m not particularly keen on this, but hey, they’re a bank… we all expect them to be a bit backwards.</p>
<p>The application sniffs for a Java Virtual Machine and refuses to load <em>without even providing an error message</em> if one isn’t detected. This wouldn’t be so bad but for the fact that it checks explicitly and exclusively for the Sun virtual machine… so anyone who doesn’t use that platform for whatever reason (licensing, ethical, platform) — even if they have another fully compatible virtual machine — can’t get access.</p>
<p>My solution? Disable Java (not JavaScript) altogether using the Web Developer’s toolbar, then sign in (it doesn’t choke!), wait til you get to the main applet pane, re-enable Java, and press F5. Magic, it works.</p>
<p>There is <em>absolutely no reason or excuse</em> for this behaviour. If this fits into some perverted notion of security, I’m not comfortable having my money there. If it’s the product of an incompetent web team… well… they’re an incompetent web team. Grr.</p>
<p>I called up and asked why it wasn’t working, then explicitly asked for a report to be forwarded to the web team. Please lots of people do this (heh, you don’t even need to be with St George… they didn’t ask me for a name or account number during the phone call!)… this service is unneccessarily stupid at present!</p>
<p>On a plus side, their phone service is good fun. I couldn’t find a support number quickly, so I called the <strong>dragondirect</strong> number provided on a letter (1300 30 10 20) and when none of the options matched “support”, I just hammered “9” repeatedly. Works on a lot of PBX systems, and it worked there… I <a href="http://gethuman.com/">got through to a human</a> within 30 seconds, who then put me straight into the queue for web support. Good stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://josh.st/2006/02/15/st-george-internet-banking-sucks/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Sunrise Family website</title>
		<link>http://josh.st/2006/01/30/sunrise-family-website/</link>
		<comments>http://josh.st/2006/01/30/sunrise-family-website/#comments</comments>
		<pubDate>Sun, 29 Jan 2006 13:01:32 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[AppleScript]]></category>
		<category><![CDATA[assistive technologies]]></category>
		<category><![CDATA[australia]]></category>
		<category><![CDATA[Australian Open]]></category>
		<category><![CDATA[Dave Shea]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[Freq Club]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[internal Online team]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Internet Explorer/Windows XP]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[online team]]></category>
		<category><![CDATA[operating systems]]></category>
		<category><![CDATA[PDA]]></category>
		<category><![CDATA[search bar]]></category>
		<category><![CDATA[Seven Store]]></category>
		<category><![CDATA[step forward]]></category>
		<category><![CDATA[Sunrise]]></category>
		<category><![CDATA[syndication services]]></category>
		<category><![CDATA[Triple M]]></category>
		<category><![CDATA[web accessibility]]></category>
		<category><![CDATA[Web Dev extension]]></category>
		<category><![CDATA[web strategy]]></category>
		<category><![CDATA[Wendy's store]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows XP]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[Yahoo!]]></category>

		<guid isPermaLink="false">http://joahua.com/blog/?p=868</guid>
		<description><![CDATA[The site This is the vaguely alluded to website of a few days ago, for Seven Network’s breakfast show (I refuse to describe any such commercial network drivel as “current affairs”!), Sunrise. The Sunrise Family is essentially an incentive/loyalty scheme vaguely akin to Triple M’s (recently-abandoned… doubtless to be re-released in nearly exactly the same [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunrisefamily.com.au/"><img src="/blog/wp-content/2006/01/srf.jpg" alt="A screen capture of the Sunrise Family website" /></a></p>
<h3>The site</h3>
<p>This is the <a href="/blog/2006/01/27/something-unpredictable">vaguely alluded to</a> website of a few days ago, for Seven Network’s breakfast show (I refuse to describe any such commercial network drivel as “current affairs”!), <a href="http://seven.com.au/sunrise/">Sunrise</a>. The Sunrise Family is essentially an incentive/loyalty scheme vaguely akin to Triple M’s (recently-abandoned… doubtless to be re-released in nearly exactly the same form under a different brand) <a href="http://www.triplemrocks.com.au/freqclub/">Freq Club</a> and <a href="http://www.entertainmentbook.com.au/">Entertainment Book</a>–style discounts. There might be more later on, but that seems to be about it so far as what’s there right now. And, truth be told, I’m not really sure what else is coming… I’d love to replace Sunrise’s boring <a href="http://seven.com.au/sunrise/form_roswall">ROSwall form</a> with something akin to the infamous Flash <a href="http://www.flashcomguru.com/apps/letters/">Just Letters interactive fridge thingo</a>, though maybe in an add-only type way, which would link in to viewers’ existing Family login (i.e. so they don’t have to enter their name every time, etc.), but that’s just an idea of mine.</p>
<h3>The technology</h3>
<p>So, <a href="http://sunrisefamily.com.au/current/content/deals/">the deals</a>.</p>
<p>The interface is using AJAX, presently with inline onClick triggers — because, unfortunately, I’m not quite good enough to make it pull the data from the ID… though, if you view source, I’ve setup the ID’s to have two pieces of data in there. If anyone can tell me how to write an event handler that converts an ID into a string which I can then feed to an onClick handler (and, server-side, explode() using PHP) I’m still very keen to fix that “properly”. The ID’s have two data elements because the Deals interface is designed to add support for multiple states (i.e. localised offers, etc.) in the future. And they’re prefixed by <code>d_</code> because, obviously, valid identifiers can’t start with a number. D can stand for “deal” or “data”, whatever :-)</p>
<p>As for how the AJAX is pulling down data, I’m just using innerHTML, because it works in pretty much everything and is lots faster and lots simpler than “real” DOM methods, especially here. Observe the “Details” pane on the right of that page, and how there are different numbers of paragraphs of text, different types of data (lists, anchors, etc.), then consider how ridiculous it would be to use DOM scripting there. Euuuuccch. So, I’m not-quite standard but perfectly comfortable about that. I am, however, using HTML 4.01 as the doctype. There is no reason to use XHTML, and I’m not happy to use XHTML and not serve it properly. And, if I serve it properly, it’s too likely to break (parsers spit the dummy when encountering bad XHTML, because tolerance is zero) for a production site. Further, obviously, innerHTML doesn’t work when documents aren’t served/parsed as anything other than <code>text/html</code>.</p>
<p>I’d rather do absolutely awesome HTML 4.01 than valid but mediocre (and ultimately pointless, seeing as it’s not being parsed as XML even) XHTML.</p>
<p>In other nifty technology-related stuff, Yahoo!7’s partnership means (hopefully) that Seven will up the ante in terms of what technologies they’re unfurling. For us, this means taking a step forward and providing syndication services (both Atom and RSS formats) for the deals. For Seven as a whole? Well, maybe they’ll start to get rid of their once-ubiquitous table-based layouts, and (maybe) embrace more of an open broadcasting paradigm in line with their web strategy — assuming Yahoo! are directing that in any way, and/or that Seven’s online team have open minds — I don’t really know and haven’t personally dealt with anyone there, so I’ll just assume they must have a handful of cluey people on board!</p>
<p>The RSS and Atom feeds won’t be available if you’re checking it out on Monday, but it’ll likely be running by the end of the week. For Yahoo! users, this means they can add Sunrise Family Deals to their personalised page (but, seriously, who uses portals? I never understood that whole thing). For everyone else, you should be able to download a feed reader and add the feeds. I’d love to have a page telling people how to do this on the site, but imagine Yahoo! would object. So I’m saying it here: the people that matter know how to do it! (Though, I imagine, the “people that matter” — you, dear reader — aren’t particularly regular Sunrise viewers. Or, like me, never Sunrise viewers. Heh.)</p>
<p>We’ve also implemented a spot of JavaScript to fix text-selection in Internet Explorer. My layout is pretty insane in terms of the sheer quantity of absolutely positioned elements, which broke that functionality in Internet Explorer. One quick question to the WSG mailing list later, someone had provided a JavaScript fix (which we had to edit a little bit to make work properly, because we had problems with flickering elements even with cache enabled).</p>
<h3>The eye-candy</h3>
<p>I’ve implemented useless (but rather cool) eye-candy on the Deals page in the Details pane whenever a new deal is selected. A variation of the <a href="http://www.axentric.com/aside/fat/">Fade Anything Technique</a>, which is only meant to be pretty. No originality is claimed, we’ve had this technology all millennium.</p>
<h3>Accessibility</h3>
<p>Disable JavaScript and you lose the fades, and use a little more bandwidth as the entire page reloads for every item you click. In terms of non-visual user agents with JavaScript disabled, I’ve put the “Details” above the list of offers in source-order, and on every reload they only hear “Sunrise Family. Link: Skip to main content” (presuming they select the link) before getting to the actual details, so I’m fairly happy on that front.</p>
<p>Additionally, I’ve got the “header” from <a href="http://www.yahoo7.com.au/">Yahoo!7</a> last in source-order, so anyone with assistive technologies don’t have to skip over that EVERY TIME they change the page. It was a little painful to figure out, not in the least because Yahoo’s supplied universal header isn’t at all nice for sites that are built properly — i.e. with web standards and accessibility in mind — but I much prefer it this way. This is also something we had to achieve silently and without complaining, because, whilst anyone who has a clue about web accessibility will immediately see this is a good idea, marketing people would conceivably think: “But we <em>want</em> people to see our search bar more often!”. Er, no, you don’t achieve anything by pissing off users. No matter, we pulled it off without making any noise about it!</p>
<p>We’re server-side sniffing for Firefox and handing it an “Add Yahoo!7 to the Firefox Search Box” link (which, incidentally, has particularly horrid inline JavaScript — but I don’t care because the only UA it’s being served to can do something useful with it), whilst IE users get a “Make this my homepage” link in its place. Yahoo’s version (which you can see on Seven’s — pure Flash, *obligatory shudder* — <a href="http://ausopen.seven.com.au/australianopen2006/">Australian Open website</a>, though I think that version (of the header, not the website) might now be deprecated) uses JavaScript for that, but it was fairly obtrusive and, seeing as we have the ability to do that server-side, I’d much rather reduce page weight.</p>
<p>In terms of accessibility generally speaking, I’ve bundled in all the usual goodies such as a skip to main content link, as well as skip to login on the front page, base font size of 100.01%, and relative font sizing throughout… but extensive image replacement techniques mean that the headers are probably sub-optimal in terms of visibility. This one is out of my control, and everyone else in the workplace seems to love small text (even Lyn, who seems to often put on glasses to read things on a screen… go figure!) so I wasn’t going to fight too hard about it. All other text will scale pretty well, with the exception of the deals — because the layout is so tight, it’s only really possible to go up one, maybe two size steps in most browsers.</p>
<p>We’re lacking any explicit accessibility statement, and we’re also lacking access keys. Mostly because I’m convinced access keys are practically useless, and rarely bother to implement them. (On forms, there are never enough buttons for access keys and/or there’s no logical combination available, and everywhere else it sort of seems a bit pointless unless <em>everything</em> has an access key. Where do you draw the line?)</p>
<p>This site is interesting to me because, even though it’s a television audience, I still can’t make assumptions about how people will be browsing. PDA devices, for example, would struggle with our built-for-1024 layout had we done it with tables. For this site, PDA/mobile users are realistic: for example, if someone incidentally is near a Wendy’s store and remembers they might’ve seen something on the Sunrise website but can’t remember the details, they can quickly and painlessly look it up.</p>
<p>Further, the site also has to cater for people with cognitive or motor disabilities. For cognitive disabilities, one thing in our favour is that we’ve provided a short summary of each deal before a more heavy-duty fulltext item. For users with motor disabilities, the entire website should be accessible via tabbing — including the JavaScript-enabled Deals page.</p>
<p>I lost an argument regarding target=“_blank”, but <em>will</em> eventually win this point. A handful of advertisements — including those for intra-network links, such as for the Seven Store — open in new windows, which I am most certainly not a fan of. All external links, however, should have the <code>rel</code> attribute set to external. There is unfortunately no visual cue associated with this. Links I count as my biggest area of defeat in this website, which is pretty good (as in, I’d rather it just be that than something more significant such as iframe usage, enormous usability problem though new windows may present).</p>
<p>Inline JavaScript is completely unrelated to accessibility in light of the <em>way</em> this has been implemented. Admittedly, it would be advantageous to use event handlers in place of inline JavaScript (and we will be thinking that to ourselves as we look at the traffic statistics), but from an accessibility perspective it has very little impact. Standard HREF’s are defined, and caught with Javascript using <code>return false;</code> No functionality is lost. I much prefer this method to scattering iframes throughout the site! At any rate, I’m still trying to resolve this one, accessibility related or not. It’s a matter of personal pride, I suppose.</p>
<h3>The Styles and Bugs</h3>
<p>The entire design (done in-house by Dacien) is awesome (in my opinion — if I didn’t think it was, I just would have kept quiet about it), but <em>very</em> tight.</p>
<p>So tight, in fact, that I had to set outline:0; on some links to stop Firefox from breaking the layout (1 pixel difference) when a link was active (as they are when you click a deal and it’s caught by JavaScript rather than actually reloading the page — the link <em>remains</em> active), adding a 1 pixel dotted border. Cross browser support is pretty awesome — it should be good in IE back to 5 — Opera, Safari, Konqueror, and even (mostly) IE 5.2 Mac are happy. Firefox deserves special mention: it has so many little (big for this site) things wrong with it that it’s often rather painful to make work properly. In fact, of all browsers mentioned, Firefox 1.0.x (on non-Windows platforms) is the only one whose behaviour I’m definitely not happy with (mostly because I expect better from it, but also because it gets some things horribly wrong).</p>
<p>Such as, for example, the “<a href="http://sunrisefamily.com.au/current/content/meet/">Meet the Family</a>” page. It works perfectly or near-perfectly in every other browser, but certain Firefox variants on certain platforms render only the first two items in the “Sunrise Team” list(/right column, if you’ll excuse my presentational-speak) on first load… and then renders perfectly if you refresh the page. This is what I meant by my <a href="/blog/2006/01/25/predictable-inadequacy">“predictable inadequacy”</a> post of a few days ago. I’m fairly certain it’s something to do with floated list items, but possibly not.</p>
<p>Another bug is (also in Firefox — noticing a trend, anyone? No, I didn’t build for IE. I wrote about 90% of the stylesheet sitting in Firefox 1.5.x using Chris Pederick’s Web Dev extension, and both that browser and Opera operate near-perfectly) Firefox 1.0.x’s penchant for adding scrollbars where they’re not required with overflow:auto (see front page on non-Windows platforms, and the Deals page — lots of style overlap/common classes there, so this is to be expected).</p>
<p>By far the most <em>interesting</em> rendering difference I encountered building a layout this tight was between Internet Explorer/Windows XP with and without Windows Themes enabled. Yes, it does make a difference. Interface widgets shouldn’t really interfere with styles at all, IMO, but they did here. The solution basically entailed shaving off a couple of pixels where required, so I didn’t come up with something particularly innovative for it!</p>
<h3>Summary</h3>
<p>In all, I’m pretty happy with the site. Seven’s internal Online team apparently noticed/complimented our team on the absence of layout tables, which I (perhaps arrogantly) take with some degree of indifference: people shouldn’t be building sites with tables for that purpose anyway. If we are to be complemented, then it should be on the design (and, as part of that, achieving a design this ‘tight’ with CSS), or on the usability benefits realised by intelligent integration of AJAX, or the development pace (again, partially because of the flexibility CSS gives us), or maybe on lightweight, semantic code as a cost-saving mechanism.</p>
<p>Truth be told, I now believe we may have even gone a little overboard with the tables elimination. If I could do it all again, the Deals page would feature a table instead of a list, and I’d use DOM scripting to insert/delete records rather than replace the “state” part with innerHTML. The markup might gain a (very) little bit of weight, but it’d be worth it. It would, of course, remain semantically sensible and completely accessible. It’d probably be <em>more</em> semantically sensible, actually. I realised a table would work great about two days after I’d finished styling the list, and thought “I’ve put way too much effort into this to pull it now”, but felt like <a href="http://www.mezzoblue.com/archives/2005/03/31/too_far/">Dave Shea must have after building a “pseudo table”</a> without realising. At least it wasn’t that complex!</p>
<p>Anyway, I’m really interested to hear what people have to say about the site. We’re being plugged every half hour on Sunrise tomorrow morning from 6am, and will be anxiously watching the server to see what, exactly, the effect of promotion on a show with 4 million viewers daily has on bandwidth, etc. I’ve also installed an AWstats tracker to collect aggregate data (as on this site) which we’ll parse later on (assuming the horrible monster that it’s running on, Zeus, outputs normal-ish log files for me! Oh, and it doesn’t support mod_rewrite, but instead has some retarded alternative that seems like a cross between VBA and AppleScript — and fails as much as the latter did in terms of <em>actual</em> ease of use, despite trying to use human language. It’s very dumb.) to figure out how Australia is doing in terms of browsers, operating systems, screen resolutions, JavaScript support, and the like. Should be incredibly interesting stuff, and I can’t wait!</p>
]]></content:encoded>
			<wfw:commentRss>http://josh.st/2006/01/30/sunrise-family-website/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Something unpredictable…</title>
		<link>http://josh.st/2006/01/27/something-unpredictable/</link>
		<comments>http://josh.st/2006/01/27/something-unpredictable/#comments</comments>
		<pubDate>Fri, 27 Jan 2006 09:25:27 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[australia]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Jeremy Keith]]></category>
		<category><![CDATA[Moore College]]></category>
		<category><![CDATA[New Zealand]]></category>
		<category><![CDATA[semantic-web junk]]></category>
		<category><![CDATA[time doing web development]]></category>
		<category><![CDATA[University of Sydney]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://joahua.com/blog/?p=865</guid>
		<description><![CDATA[[Or, making up for a distinct absence of posting for various reasons not to be discussed but hopefully rectified — the content absence, that is — by this post.] Until about three weeks ago, I was convinced I was going to take a year off between finishing school and starting uni to work full time. [...]]]></description>
			<content:encoded><![CDATA[<p>[Or, making up for a distinct absence of posting for various reasons not to be discussed but hopefully rectified — the content absence, that is — by this post.]</p>
<p>Until about three weeks ago, I was convinced I was going to take a year off between finishing school and starting uni to work full time. I’d roundly insulted a small web firm a couple of weeks before leaving for New Zealand, re-building their site with CSS in about three hours (it wasn’t perfect, but it was a decent effort) and going into their office to tell them their version sucked and mine was better. To date, the website in question hasn’t been ‘fixed’, as it were, but I got a call the day after I returned from New Zealand asking if I was interested in coming in for an interview. I’ve been working four days a week there since.</p>
<p>Tori came back. We spent some time together, and I kind of realised that putting off University for another year wasn’t a brilliant move, contrary to what more than a handful of… older people… had said. The main reason is probably social (which I don’t ever talk about too much on here, I guess), but financially it’s not… compelling… to stay any further away from the <em>other</em> side of Uni any longer than is neccessary, because “that side” means a job/career I’m interested in as a longer-term option, hence financial stability more so than in an industry I’m perfectly interested in provided I get to do the things I like — and where I am presently fortunate enough to be in a position where that’s pretty close to what I’m doing — and indifferent about it (the industry) otherwise. Social/political information theory notwithstanding, because that’s an entirely separate kettle of fish that relates both to my pre– and post– uni directions. Which are, incidentally, IT/connectivity/accessibility now, and education later. Somewhere in the middle there’ll be (is?) a fusion of the two, which has been bandied about a little over the last 12 months. I had a very interesting conversation RE: something along these lines last night, which will hopefully evolve into something in the not-too distant future!</p>
<p>So yes, as of Monday I’m officially an Arts student at the <a href="http://www.usyd.edu.au/">University of Sydney</a>. In a way I feel bad about this because I’d said to work that I was planning on sticking around in a near-F/T capacity for a year (and at the time I had been), but at the same time this feels so much more… sensible? Plus everyone was mind-blowingly nice about it, even though I called on Saturday to say I’d be in late Monday because I had to enrol (because of when the offer had come in, and because I’d been putting off saying it the week before).</p>
<p>Anyway, in summary: I’m working nearly full time doing web development in an awesome role where I get to do lots of CSS, semantic-web junk, usability work, and some occasional JavaScript (though mercifully not too much! Still learning. If anyone else in Aus is interested in getting a copy of Jeremy Keith’s allegedly-excellent “<a href="http://www.domscripting.com/book/">DOM Scripting</a>” book, let me know so we can order a few copies from Amazon and get cheaper shipping, because <em>no-one</em> in Australia is stocking copies for another month or three!). And as much or as little server-side work as I want. At the minute I’m unequivocally saying “little”, but that might change at some point, maybe. I’m going to uni, too. That doesn’t start until March, so I’m going to be working ‘normally’ up until then, and after that feeling my way according to timetables, how much of a life I have, how broke I am, etcetera!</p>
<p>Tied into the whole work thing, my first to-be-promoted-on-TV website is going live sometime in the wee hours of <del>Sunday</del> <ins>Monday</ins>, which is audaciously exciting. Not in the least because it will hopefully attract insane amounts of traffic, and <em>the CSS-is-good-for-your-bandwidth-costs argument carries weight here!!</em> It also features AJAX, chiefly for usability/bandwidth-saving reasons… but also because it’s just damn cool! Anyway, there will be posts, screenshots, etcetera (probably saying the same kind of thing I just said, only naming names and with pretty pictures!) scheduled for release here to co-incide with the site’s launch, so… watch this space.</p>
<p>As for Uni? English, Philosophy, Classics and (Ancient) Greek are currently on the menu. Greek… may be swapped out, possibly. For Linguistics or maybe Latin if anything, but possibly not. The reasoning behind it — because I’ve attracted many strange looks as I tell people I’m planning on studying Ancient Greek — is essentially:</p>
<ol>
<li>Learning another language (any other language) helps me understand English better. Doing English, no-one will ever explain grammar and structure of language to me. It sucks. Admittedly, Linguistics could prove to be useful in this department, too.</li>
<li>Ancient Greek ties in with the Classics courses I’m taking. Don’t ask me to remember what they are, or even look them up, because I don’t have a copy of my preferences (they took it, because their stupid computers were stupidly broken. I’m so glad I’m not studying IT!) and it’s not available online yet <em>and</em> I’m just lazy. And trying to get this massive post finished so I can get back to having a life, or something.</li>
<li>The New Testament is written in Greek. As Kristen so eloquently expressed it last night:<br />
<blockquote><p>You can be one of those people at Bible studies who go “Well, the greek word for that <em>actually</em> means ‘this is ambiguous…’”</p></blockquote>
<p>Heh. Marcelo coughed something that sounded suspiciously like “Moore College” (a Sydney Bible college) when he found out, but that’s not really what I had in mind choosing it… maybe, though!</li>
</ol>
<p>Anyway. The blog has nearly caught up to me. Almost. There’s a bunch of other stuff happening, but this is the glut of stuff I needed to write at some point and had been putting off!</p>
]]></content:encoded>
			<wfw:commentRss>http://josh.st/2006/01/27/something-unpredictable/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>To do: Learn JavaScript properly</title>
		<link>http://josh.st/2005/09/25/to-do-learn-javascript-properly/</link>
		<comments>http://josh.st/2005/09/25/to-do-learn-javascript-properly/#comments</comments>
		<pubDate>Sun, 25 Sep 2005 12:33:19 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[web standards groupies thing]]></category>

		<guid isPermaLink="false">http://www.joahua.com/blog/2005/09/25/to-do-learn-javascript-properly</guid>
		<description><![CDATA[I read an article today on using JavaScript for image previewing without any extra markup, and was, needless to say, suitably impressed. And slightly scared that if I were locked in a room with a computer and no access to the Internet, I couldn’t possibly write something like that. I can hack bits of JavaScript [...]]]></description>
			<content:encoded><![CDATA[<p>I read <a href="http://icant.co.uk/articles/imagepreview/">an article</a> today on using JavaScript for image previewing without any extra markup, and was, needless to say, suitably impressed. And slightly scared that if I were locked in a room with a computer and no access to the Internet, I couldn’t possibly write something like that. I can hack bits of JavaScript together and come out with something that works (heaven help anyone who has to comprehend it or, worse still, subsequently extend it), but it probably isn’t Doing Things Properly — ironic, because Doing Things Properly is what the whole CSS/(X)HTML web standards groupies thing is about. I’m vaguely ashamed that I can be passionate about presentation and content but completely fail to “get” the behaviour layer of things.</p>
<p>As <acronym title="Asynchronous JavaScript and XML">AJAX</acronym> becomes more prevalent, there’s less and less excuse (or scope, whilst remaining in the industry!) for failing to comprehend these things. And that scares me a little, whilst being incredibly exciting.</p>
]]></content:encoded>
			<wfw:commentRss>http://josh.st/2005/09/25/to-do-learn-javascript-properly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Something about backwards search engines</title>
		<link>http://josh.st/2005/04/04/something-about-backwards-search-engines/</link>
		<comments>http://josh.st/2005/04/04/something-about-backwards-search-engines/#comments</comments>
		<pubDate>Mon, 04 Apr 2005 07:21:59 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[AAP]]></category>
		<category><![CDATA[australia]]></category>
		<category><![CDATA[brand new search engine]]></category>
		<category><![CDATA[fresh search engine]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[internal web team]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[main search results]]></category>
		<category><![CDATA[search clutter]]></category>
		<category><![CDATA[Search engine]]></category>
		<category><![CDATA[search engines]]></category>
		<category><![CDATA[search terms]]></category>
		<category><![CDATA[software providers]]></category>
		<category><![CDATA[Sydney Morning Herald]]></category>
		<category><![CDATA[the Sydney Morning Herald]]></category>

		<guid isPermaLink="false">http://www.joahua.com/blog/2005/04/04/something-about-backwards-search-engines</guid>
		<description><![CDATA[No, I’m not talking about elgooG. The Sydney Morning Herald published an article entitled “New Australian search engine launched” today, the first paragraph of which reads “Australia’s newest search engine Ansearch opens for business today with a novel twist, demographic searching.” It’s not a particularly well written article, but the article vendor is AAP, not [...]]]></description>
			<content:encoded><![CDATA[<p>No, I’m not talking about <a href="http://www.alltooflat.com/geeky/elgoog/">elgooG</a>.</p>
<p>The Sydney Morning Herald published an article entitled “<a href="http://www.smh.com.au/news/Technology/New-Australian-search-engine-launched/2005/04/04/1112489391541.html">New Australian search engine launched</a>” today, the first paragraph of which reads “Australia’s newest search engine <a href="http://www.ansearch.com.au/">Ansearch</a> opens for business today with a novel twist, demographic searching.”  It’s not a particularly well written article, but the article vendor is AAP, not the SMH itself, so we’ll leave <em>that</em> alone, at least for the minute.</p>
<p>It goes on to laud the search engine for their innovation, both in this feature of demographic searching, and in other areas:</p>
<blockquote><p>Ansearch says it cuts down search clutter by displaying the main search results as single websites and not the individual pages of websites.</p></blockquote>
<p>What, like the Google [More results from domainname] feature?  You know, the one that actually <em>works properly</em>?  I say “works properly”, because a quick search of Ansearch reveals that their “cutting search clutter” feature is a tad broken — not to mention their character encoding.</p>
<p><img src="/blog/wp-content/2005/04/ansbrokendashlite.jpg" alt="Proof that it's broken, demonstrated by duplicate entries and incorrectly encoded characters" /></p>
<p><span id="more-523"></span></p>
<p>Speaking of broken character encoding, let’s take a look at their source… well, they get some marks — at least they bothered with a Content-Type.  Never mind if the content is <em>broken</em> when displayed with that Content-Type — it’s not like a search engine could actually do any useful data processing to make things display correctly when using a slightly redundant Content-Type… oh, wait, disregard that comment: <em>they’re not using a doctype, either</em>.</p>
<p>See, what gets me is that this search engine has <em>just been launched</em>.  Which means the climate in which it’s been developed isn’t the same as 5 years ago, when accessibility was just on the very edges of the radar — you’d (wishfully) imagine that at least a <strong>doctype</strong> wouldn’t be too much to ask for, even if they still insisted on using table-based layouts.  Interestingly enough, that’s what one of their software providers, <a href="http://www.omniture.com">Omniture</a>, have done.  Which leaves something of a foul taste in the mouth, too, because they’re reselling that garbage to people — including, if you believe their website, three of the five top Fortune 500 companies (aside: doesn’t that make them three of the top Fortune 5?).</p>
<p>Perhaps that criticism is unfair — their latest version (assuming that’s what powers their own website, although possibly not… maybe their internal web team accepts that their product would be overkill, and coded it in Dreamweaver, instead… some of the JavaScript certainly looks Dreamweaver-esque, and, if Ansearch’s website is any example, the doctype probably doesn’t come from the Overture system!) seems to handle much better than what Ansearch are running: I say this, because apparently they’re using a version which was written back in 2003.  Hey, if it works… but we’ve already established it <em>doesn’t</em>.</p>
<p>And there concludes my rave review of yet another quite-some-way-from innovative and fresh search engine, this time in Australian waters.</p>
<p><small>Note: I’m not saying it’s any worse in terms of accessibility, usability, and semantics than most other search engines are — only that it has less excuse, being launched <em>now</em>, as opposed to 5 or 10 years ago.  It’s easier to make something work first time than it is to haphazardly patch over it later, especially something as gargantuan as I’d imagine a search engine would be.</small></p>
<p>Oh, and now for something that’s just plain amusing — the number 1 search terms on this brand new search engine, from befuddled users wondering why it sucks so much:</p>
<p><img src="/blog/wp-content/2005/04/anspopsearch.jpg" alt="Top search queries are Google for both Weekly and Monthly statistics" /></p>
<p>Yes indeed, the first thing users did was try to escape… how’s that for telling?</p>
]]></content:encoded>
			<wfw:commentRss>http://josh.st/2005/04/04/something-about-backwards-search-engines/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>RTFHTMLD!</title>
		<link>http://josh.st/2004/07/16/rtfhtmld/</link>
		<comments>http://josh.st/2004/07/16/rtfhtmld/#comments</comments>
		<pubDate>Fri, 16 Jul 2004 13:43:04 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Before WordPress]]></category>
		<category><![CDATA[chair]]></category>
		<category><![CDATA[hour nightmare search]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[pain]]></category>

		<guid isPermaLink="false">http://www.joahua.com/blog/2004/07/16/rtfhtmld</guid>
		<description><![CDATA[I’ve been hacking a JavaScript dropdown menu for a client’s site on and off over the last few days, but only finally sat down with a view to fixing the crazy thing this evening. My goodness. You know those moments where you kick yourself so hard you pity the chair you were sitting in? Okay, [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been hacking a JavaScript dropdown menu for a client’s site on and off over the last few days, but only finally sat down with a view to fixing the crazy thing this evening. My goodness. You know those moments where you kick yourself so hard you pity the chair you were sitting in? Okay, so I sit in front of my computer too much, but you get the point. This is like… ouch. ARRRRRRRGGGGGGGGHHHHHHHH!!!! Calm is good.</p>
<p>A note, for anyone who is looking to implement not-overly-documented dropdown menus — read your base source file in its <em>entirety</em> before even contemplating trying to implement. It was <em>two lines</em>. Two bloody lines of JavaScript which turned into a ~1 hour nightmare search — not to mention time which I haven’t counted, because it was hackish, not goal-oriented coding. Of course, the longer spent, the more it hurts to find out exactly what I’d missed.</p>
<pre><code>  var ddmx = new DropDownMenuX('topnav');
  ddmx.init();</code></pre>
<p>Those two lines. So much pain!</p>
<p>Oh, and just to clear up any confusion, the acronym which is the title of this news post ends in D, for “Document”. Not “dotcom” or anything stupid like that ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://josh.st/2004/07/16/rtfhtmld/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

