<?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"
	>

<channel>
	<title>chaostangent</title>
	<atom:link href="http://blog.chaostangent.com/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.chaostangent.com</link>
	<description>More squirrels than sense</description>
	<pubDate>Wed, 27 Aug 2008 19:25:42 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<item>
		<title>Expectancy: PHP 5.3</title>
		<link>http://blog.chaostangent.com/archives/446</link>
		<comments>http://blog.chaostangent.com/archives/446#comments</comments>
		<pubDate>Wed, 27 Aug 2008 19:18:00 +0000</pubDate>
		<dc:creator>ChaosTangent</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[namespaces]]></category>

		<category><![CDATA[oop]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[php4]]></category>

		<category><![CDATA[php5]]></category>

		<category><![CDATA[php5.2]]></category>

		<category><![CDATA[php5.3]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.chaostangent.com/?p=446</guid>
		<description><![CDATA[
The release of PHP 5.3 is due sometime soon and with a feature freeze in place since the 24th of July and a pre-release alpha now available, it&#8217;s worth exploring some of the many additions and changes that are going to be introduced.
As PHP is the language I most frequently work in and one which [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/php.gif"><img class="alignnone size-medium wp-image-447" title="Pretty Hard Panda" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/php.gif" alt="" width="120" height="67" /></a></p>
<p>The release of PHP 5.3 is due sometime soon and with a feature freeze in place since the 24th of July <em>and</em> a pre-release alpha now available, it&#8217;s worth exploring some of the many additions and changes that are going to be introduced.<span id="more-446"></span></p>
<p>As PHP is the language I most frequently work in and one which I&#8217;ve done all sorts with (from web applications, to <a href="http://blog.chaostangent.com/archives/370">file exploration</a> to <a href="http://blog.chaostangent.com/archives/14">media player scripting</a>), I like to think I&#8217;m sensitive to deficiencies and oddities in the released implementations. Version 5.3 contains a lot of elements backported from the still distant version 6, the most glaring omission being end-to-end Unicode support without mb_* fudges or iconv; being able to use string-backed functions like array_unique() without suspicion will be a big help, but I&nbsp;digress.</p>
<p>The most high-profile addition is that of namespaces, gone will be the warts that dot current frameworks (e.g. Zend_Db_Table_Rowset) which will make different frameworks and modules far easier to use and far more friendly when you want them to play nicely&nbsp;together.</p>
<p>Static functions have also been promoted to all a lot of the meta-programming niceties that member functions have including true overloading support which will allow first level abstractions such as database wrappers to not require instantiation before being called (which I discovered around the same time as <a href="http://blog.chaostangent.com/archives/40">my get_class exploration</a>). For instance, if using an ORM, doing People::getAllById() will now be easier to achieve. Along side this many of the magic methods have been tightened up to make them less ambiguous (__get can only be public and not static, signatures enforced&nbsp;etc.)</p>
<p>Looking through some of the other <a href="http://wiki.php.net/doc/scratchpad/upgrade/53">changes detailed in the PHP Wiki</a> it seems that a selection of new functions surrounding garbage collection are now being exposed including checking whether it is enabled, and selectively enabling or disabling it. Whether this is a mistake (close by get_extension_funcs() is detailed as a new function but <a href="http://uk3.php.net/manual/en/function.get-extension-funcs.php">appears to have been in since PHP4</a>) and these are bleed-throughs from the Zend Engine is unclear, but without some surrounding memory management facilities, it would seem unwise to disable or allow disabling of garbage&nbsp;collection.</p>
<p>On the extension front numerous ones have been standardised and moved into the PECL system which goes some way to neatening things up; the change <a href="http://blog.felho.hu/what-is-new-in-php-53-part-3-mysqlnd.html">some are talking about</a> is the choice between a local MySQL library (mysqlnd) versus the native libmysql library that comes when compiling against a MySQL release. PHP and MySQL have always been bedfellows despite their conflicting release licenses (especially so since Sun gobbled up MySQL) so this seems like a smart move for all concerned with separate code-base, better engine integration and statistical analysis now possible (<a href="http://www.hristov.com/andrey/projects/php_stuff/pres/mysqlnd_vikinger.pdf">PDF&nbsp;details</a>).</p>
<p>What all of this adds up to is a release that&#8217;s solid on paper, but the bum-rush for patches is sure to be as swift as any other PHP release. Especially with the OO enhancements though, it feels like these should have been included from day one, as not only will there now be a disjoint between PHP4 and PHP5 shared servers, but PHP5.2 and PHP5.3 as well. For someone who runs their own server this is not massive worry, especially when the list of backwards compatibility changes are so small, but for service providers (hosts, ISPs etc.) still dragging their feet over 4 &gt; 5 &gt; 5.2, this adds another step of&nbsp;complexity.</p>
<p>The real test will obviously be the frameworks and high profile applications that PHP utilises and with word that the <a href="http://framework.zend.com/">Zend Framework</a> won&#8217;t be <a href="http://www.nabble.com/PHP-5.3-Namespaces-on-ZF-td18836642.html">supporting namespaces until its 2.0</a> release next year the lead time could be immense, especially when you consider phpBB, what was once considered the yardstick of PHP usage, <a href="http://www.phpbb.com/support/documentation/3.0/quickstart/quick_requirements.php">still supports 4.3</a> with its most recent version, the playing field for cutting edge PHP seems less than&nbsp;agile.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chaostangent.com/archives/446/feed</wfw:commentRss>
		</item>
		<item>
		<title>He&#8217;s got blades. On his feet.</title>
		<link>http://blog.chaostangent.com/archives/437</link>
		<comments>http://blog.chaostangent.com/archives/437#comments</comments>
		<pubDate>Wed, 27 Aug 2008 06:10:03 +0000</pubDate>
		<dc:creator>ChaosTangent</dc:creator>
		
		<category><![CDATA[Gaming]]></category>

		<category><![CDATA[blood]]></category>

		<category><![CDATA[carnage]]></category>

		<category><![CDATA[ninja gaiden]]></category>

		<category><![CDATA[ninja gaiden 2]]></category>

		<category><![CDATA[ninjas]]></category>

		<category><![CDATA[swords]]></category>

		<category><![CDATA[video games]]></category>

		<category><![CDATA[xbox360]]></category>

		<guid isPermaLink="false">http://blog.chaostangent.com/?p=437</guid>
		<description><![CDATA[
It&#8217;s taken me a long time to write anything about Ninja Gaiden 2, primarily because (spoiler warning) it is worse than the first Xbox incarnation. Beyond all the visual pomp, crimson splatterings and outright noise that NG2 manages to throw at you, the core fighting system has been tweaked into something nearly unrecognisable. This is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/ninja-gaiden-2-huge3.jpg"><img class="alignnone size-medium wp-image-438" title="HE HAS BLADES. ON HIS FEET." src="http://blog.chaostangent.com/wp-content/uploads/2008/08/ninja-gaiden-2-huge3-512x288.jpg" alt="" width="512" height="288" /></a></p>
<p>It&#8217;s taken me a long time to write anything about Ninja Gaiden 2, primarily because (spoiler warning) it is worse than the first Xbox incarnation. Beyond all the visual pomp, crimson splatterings and outright <em>noise </em>that NG2 manages to throw at you, the core fighting system has been tweaked into something nearly unrecognisable. This is without mentioning the infuriatingly obtuse camera and absurdist difficulty settings.<span id="more-437"></span></p>
<p>I am a great fan of the first Xbox outing of Hayabusa; playing the original when it came out and on both Hard and Very Hard difficulty levels after that, and before 2 came out playing through Black on the Xbox Classics feature for 360. The first game is so much better than the second because the balance it struck between skill and preternatural ability was borderline genius; it fostered that &#8220;one more play&#8221; ethos because any failure was a failure of yourself rather than the game. Two corrupts this and makes the game your enemy by including cheap, and most tellingly, unfair&nbsp;enemies.</p>
<p>The first thing one notices about NG2 after playing NG is the minute timing differences in attacks. These take a minute or so to adjust to as one settles into familiar ebb and flow of crowd control. The second is the much lauded extremity removal. It is at first exhilarating seeing limbs and vermilion being scattered to the wind but within half an hour of play, tactical play and knowledge of which attacks eviscerate are subsumed into normal play. The final major change to the fighting system concerns the obliteration attacks, sudden-death moves in common parlance. These arrive after a foe has been suitably hacked up and a single, well-placed button press later dispatches them with suitable&nbsp;aplomb.</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/ninja-gaiden-ii-04.jpg"><img class="alignnone size-medium wp-image-439" title="Fancy a nice cup of tea?" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/ninja-gaiden-ii-04-512x288.jpg" alt="" width="512" height="288" /></a></p>
<p>If these were all the changes to the core mechanics then this would be a very different diatribe, unfortunately the great detractor, as mentioned before, are the enemies. The maxim religiously adhered to in the first was that any enemy could kill you outright through cunning and viciousness if you didn&#8217;t keep your wits about you; the second doesn&#8217;t discard this but softens up the enemies so that only groups of them pose any particular problem. So groups is what it throws at you. In the bloody fury of the first hours of play, this doesn&#8217;t seem like such a bad thing, but as the game wears on it becomes tiresome and each wave of malefactors becomes a speed bump rather than a&nbsp;challenge.</p>
<p>Ninja Gaiden 2 truly condemns itself however by introducing enemies who consider themselves above the laws of the game. Enemies which fire cluster missiles which can track beyond their forward firing range, ejecting from the side or even the back of their rocket launcher. Enemies which stalwartly continue on their animation cycle despite a brutally heavy scythe impacting their torso. Enemies which repeatedly throw exploding shurikens far quicker and with more accuracy than anything the protagonist can muster. This is without even mentioning the boss fights which range from the invigorating to the&nbsp;lacklustre.</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/ninja-gaiden-2-huge1.jpg"><img class="alignnone size-medium wp-image-440" title="He makes the red rain fall" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/ninja-gaiden-2-huge1-512x288.jpg" alt="" width="512" height="288" /></a></p>
<p>This all contributes to a game that, camera aside, is technically marvellous but destroys the mentality that made the first so engaging. Combat, especially on the harder difficulty levels, is conquered through persistance and luck than skill and planning and as cathartic as the carnage is, there are too many self-imposed barriers to make Ninja Gaiden 2 anything other than a game for the most ardent and self-flagellating of&nbsp;fans.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chaostangent.com/archives/437/feed</wfw:commentRss>
		</item>
		<item>
		<title>Everyone is talking about Braid</title>
		<link>http://blog.chaostangent.com/archives/434</link>
		<comments>http://blog.chaostangent.com/archives/434#comments</comments>
		<pubDate>Tue, 26 Aug 2008 20:12:39 +0000</pubDate>
		<dc:creator>ChaosTangent</dc:creator>
		
		<category><![CDATA[Gaming]]></category>

		<category><![CDATA[braid]]></category>

		<category><![CDATA[games]]></category>

		<category><![CDATA[hype]]></category>

		<category><![CDATA[xbox360]]></category>

		<guid isPermaLink="false">http://blog.chaostangent.com/?p=434</guid>
		<description><![CDATA[
There is little one can really say about Braid that hasn&#8217;t already been said by either the erudite or the overanalytical but one thing is certain, they&#8217;re all going to start with the above screenshot because I&#8217;m quite certain it is due for &#8220;iconic&#8221; status some time soon.
I can&#8217;t say what Braid is, why Braid [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/braid_title.jpg"><img class="alignnone size-medium wp-image-435" title="Braidy bunch" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/braid_title-512x288.jpg" alt="" width="512" height="288" /></a></p>
<p>There is little one can really say about Braid that hasn&#8217;t already been said by either <a href="http://sexyvideogameland.blogspot.com/2008/08/svgls-mailbox-discussing-braid.html">the erudite</a> or the <a href="http://www.brainygamer.com/the_brainy_gamer/2008/08/a-conversation.html">overanalytical</a> but one thing is certain, they&#8217;re all going to start with the above screenshot because I&#8217;m quite certain it is due for &#8220;iconic&#8221; status some time soon.<span id="more-434"></span></p>
<p>I can&#8217;t say <a href="http://braid-game.com/">what Braid is</a>, <a href="http://www.eurogamer.net/article.php?article_id=205102">why Braid is excellent</a> or why it&#8217;s hyperbolic and overblown without retreading a lot of ground already&nbsp;covered.</p>
<p>The main quibble I read levelled at it over and over again is the nature of the puzzles and their &#8220;one way only&#8221; solution; this strikes me as disingenuous and like criticising Crysis for giving you a gun. Decrying the game for its lack of replayability is cheapening the elation of managing to beat the clockwork labyrinths it presents. Beside the quiddities of the game, the other most common complaint revolves around its story, lack thereof or nebulousness of. Cunningly enough the game has bred itself a bullet proof alibi for most narrative criticisms: it was meant to be like that. <a href="http://number-none.com/blow/">Jonathan Blow</a>, now a household name in indie developers and outspoken designers, baked in <em>just</em> enough to make Braid seem like a criticism, a celebration and an advancement of video games all rolled into&nbsp;one.</p>
<p>I am an unabashed fan of the game, having completed it without the aid of GameFAQs and punched in all the necessary times (42:32 and 512th for the full game at last check) to earn me the all of the available Achievements and the elusive stars shall be revealed soon. To me the gameplay struck the right balance between trial and error and brain-burning logic, engrossing enough to ebb a weekend&nbsp;away.</p>
<p>So what more is there to say of Braid? When you can deconstruct the story to include <a href="http://www.rllmukforum.com/index.php?showtopic=190136%C2%A0">alcoholism and nautical flags</a> it&#8217;s self evident that it&#8217;s doing something right. For me, it filled a niché of being small and perfectly formed without cruft or inbuilt pretense. Despite the hype from newly vocal beard-strokers, that it has accumulated such a learned following is testament to the quality of&nbsp;Braid.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chaostangent.com/archives/434/feed</wfw:commentRss>
		</item>
		<item>
		<title>Yuri-fix: Strawberry Panic 02</title>
		<link>http://blog.chaostangent.com/archives/415</link>
		<comments>http://blog.chaostangent.com/archives/415#comments</comments>
		<pubDate>Tue, 26 Aug 2008 06:48:52 +0000</pubDate>
		<dc:creator>ChaosTangent</dc:creator>
		
		<category><![CDATA[Anime]]></category>

		<category><![CDATA[etoile]]></category>

		<category><![CDATA[lesbian]]></category>

		<category><![CDATA[rainbows]]></category>

		<category><![CDATA[school]]></category>

		<category><![CDATA[strawberry panic]]></category>

		<category><![CDATA[yuri]]></category>

		<guid isPermaLink="false">http://blog.chaostangent.com/?p=415</guid>
		<description><![CDATA[You may have been fooled by my previous post into thinking that Strawberry Panic is about the contrived relationships between adolescent school girls. In fact, this series is about rainbows. Specifically: one girl&#8217;s illicit love for&#160;rainbows.

That&#8217;s right, the stalkertron is a filthy, dirty rainbow lover, the depths of her seven colour loving knows no bounds. [...]]]></description>
			<content:encoded><![CDATA[<p>You may have been fooled by my <a href="http://blog.chaostangent.com/archives/391">previous post</a> into thinking that Strawberry Panic is about the contrived relationships between adolescent school girls. In fact, this series is about rainbows. Specifically: one girl&#8217;s illicit love for&nbsp;rainbows.</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-01.jpg"><img class="alignnone size-medium wp-image-416" title="Hold me in your spectrum arms" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-01-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p><span id="more-415"></span>That&#8217;s right, the stalkertron is a filthy, dirty rainbow lover, the depths of her seven colour loving knows no bounds. Evidently unready to reveal her lusty proclivities, she continues the façade of interfering with the protagonist while she&nbsp;sleeps.</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-02.jpg"><img class="alignnone size-medium wp-image-417" title="You have purty hair" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-02-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p>From the dialogue that follows, one would assume that Nagisa has been at the school a few days as her outfit has &#8220;just arrived&#8221;, time moves differently here however so your assumption would be wrong. The ensuing outfit fashion show involves Tamao forcefully undressing Nagisa (left ambiguously unresolved) and some hardcore hair brushing; all of this non-stop excitement causes both to be late for breakfast and run into the Étoile and her entourage who are evidently also late for&nbsp;breakfast.</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-03.jpg"><img class="alignnone size-medium wp-image-418" title="Pistols at ten paces" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-03-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p>After some morning molestation by the Étoile whose <a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-04.jpg">amount of hair</a> is quite extraordinary and a scolding from the class president, none of them end up having breakfast and instead head off to&nbsp;class.</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-05.jpg"><img class="alignnone size-medium wp-image-420" title="No justice like angry mob justice" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-05-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p>Where they are promptly mobbed by a group of fangirls with the warm and fuzzies for the Étoile. Despite the ability to get information from one end of the school to the other before the principal participants get there, they all seem oblivious to the fact that the Étoile tried to do exactly the same thing in the cafeteria in the last episode. Some sort of first episode memory loss, an intriguing condition&#8230; Hopefully it&#8217;s confined to this series&nbsp;alone.</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-06.jpg"><img class="alignnone size-medium wp-image-421" title="Rainbow Girl Love Association" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-06-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p>Ol&#8217; Rainbow Pants decides to come out and admit her lurid fascination of technicolour friends; it seems however that she is in good company when her &#8220;Literature Club&#8221; friends eagerly ask her to repeat her poem about her <em>feelings</em>. Musing on the blue-haired temptress&#8217;s confession, perhaps even being a little jealous of it, Nagisa decides to take a&nbsp;walk.</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-07.jpg"><img class="alignnone size-medium wp-image-422" title="Nom nom nom" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-07-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p>The vixen doesn&#8217;t only woo the protagonist but also passing young girls as well, gotta catch &#8216;em all I suppose. Having escaped the tyranny of a <a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-08.jpg">lunch time meeting</a>, the Étoile prowls the grounds, looking for the stragglers, the sick and the&nbsp;weak.</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-09.jpg"><img class="alignnone size-medium wp-image-424" title="Alcatraz: Library Edition" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-09-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p>Fleeing the scene of the Étoile&#8217;s latest conquest (and before anything saucy happens), Nagisa comes acropper of a library which seems to have been built on a flood plain. Great planning there, or perhaps a heavilly fortified library ala Toshokan Sensou. Regardless, she explores the library and finds a <a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-10.jpg">couples&#8217; makeout section</a>, is <a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-11.jpg">startled by a stained glass window</a> and is then molested by the Étoile.&nbsp;<em>Again</em>.</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-12.jpg"><img class="alignnone size-medium wp-image-428" title="At least try and struggle" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-12-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p>Twice in one day is just careless. At least this time she puts up a cursory fight to build up the tension but ends up going all gooey nonetheless. Lamentably, they are once again interrupted by a dunce with a book on her&nbsp;head.</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-13.jpg"><img class="alignnone size-medium wp-image-429" title="Is there something in my hair?!" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-13-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p>By the end of the series these interruptions are going to be so outlandish as to be surreal: &#8220;Let&#8217;s kiss&#8230;&#8221; &#8220;Come quickly! The prime minister has been attacked with a badger!&#8221; &#8220;Curses! Foiled&nbsp;again!&#8221;.</p>
<p>And so the episode comes to a close with some <a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-14.jpg">cryptic words from the class president</a> to the Étoile and some <a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-02-15.jpg">healthy pillow time</a> between Nagisa and and Tamao, ignoring why you would put on nail polish before going to bed; girls move in mysterious&nbsp;ways.</p>
<p><strong>Thoughts</strong></p>
<p>The Étoile system is obviously being painted as some kind of burden or curse, one which makes an otherwise ordinary grey-haired stick figure go off and abuse young girls rather than attend a lunch meeting. Nagisa&#8217;s place within this system is still to be determined, whether she&#8217;ll be forced into a power-play for Étoile or perhaps try and abolish the system is yet to be seen, I&#8217;m going with neither side as it&#8217;s likely this will be all emotion and no actual motion. Still watchable if not for the rapidly spiralling ridiculousness of it&nbsp;all.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chaostangent.com/archives/415/feed</wfw:commentRss>
		</item>
		<item>
		<title>Yuri-fix: Strawberry Panic 01</title>
		<link>http://blog.chaostangent.com/archives/391</link>
		<comments>http://blog.chaostangent.com/archives/391#comments</comments>
		<pubDate>Mon, 25 Aug 2008 21:17:33 +0000</pubDate>
		<dc:creator>ChaosTangent</dc:creator>
		
		<category><![CDATA[Anime]]></category>

		<category><![CDATA[bonanza]]></category>

		<category><![CDATA[lesbian]]></category>

		<category><![CDATA[school]]></category>

		<category><![CDATA[strawberry panic]]></category>

		<category><![CDATA[yuri]]></category>

		<category><![CDATA[yuri-fix]]></category>

		<category><![CDATA[yurifest]]></category>

		<guid isPermaLink="false">http://blog.chaostangent.com/?p=391</guid>
		<description><![CDATA[I&#8217;m easily manipulated so the promise of an schoolgirl yuri bonanza that is (apparently) Strawberry Panic is hard to pass up. I already know that it&#8217;s not going to contain the top-heavy, titilation of Ikkitousen (all iterations) or the gender-bending bizarreness of Simoun, but agressive lesbians are hard to come by nowadays (ah Shizuru, your [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m easily manipulated so the promise of an schoolgirl yuri bonanza that is (apparently) Strawberry Panic is hard to pass up. I already know that it&#8217;s not going to contain the top-heavy, titilation of Ikkitousen (all iterations) or the gender-bending bizarreness of Simoun, but agressive lesbians are hard to come by nowadays (ah Shizuru, your stalker tendencies are sorely&nbsp;missed).</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-01.jpg"><img class="alignnone size-medium wp-image-392" title="Memory of trees" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-01-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p>It starts rather inauspiciously with a girl talking to trees; apparently her hair-colour is indicative of her vision as she muses on how the trees no longer contain any colour. This does not bode well for her pilot training.<span id="more-391"></span><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-02.jpg"><img class="alignnone size-medium wp-image-393" title="Cherry blossom attack" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-02-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p>Things continue with a suitably spunky lass late for her first day of school, an original and riveting plot development this early in the show is un heard of. He tardiness is of course made better with her clumsiness, creating a wholly new character never before seen. <em>Ever</em>. Falling down a hillock and losing her way brings her to a copse of&nbsp;trees.</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-03.jpg"><img class="alignnone size-medium wp-image-394" title="A fated meeting" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-03-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p>Forsooth, the twain meet! The talkative aborist, tired of wood, goes for the flesh. Alas, the poor protagonist is useless against her Poison Ivy-esque ways and after only a kiss on the forehead lapses into&nbsp;unconsciousness.</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-04.jpg"><img class="alignnone size-medium wp-image-395" title="This does not bode well" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-04-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p>Having been sexually assaulted, she is carried (wheeled? dragged? levitated?) into an infirmary where she is watched over by a blue haired psychopath. No comforting words when Aoi awakes, simply &#8220;Your sleeping face was cute&#8221;; just what you need someone watching you while you sleep. Concerned loved ones doing this: just about okay, strangers doing this: way too creepy. I bet she got a lock of hair as well just for good measure. Apparently they&#8217;re in the same room as well so perhaps Suzumi is easing her in&nbsp;gently.</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-05.jpg"><img class="alignnone size-medium wp-image-396" title="Ankle measurements?" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-05-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p>After molesting her for her sizes and likely scrawling something lewd on the page opposite, Suzumi proceeds to tell Aoi all the rules and regulations of the school, like a 6pm curfew. This couldn&#8217;t be at all relevant in the next few minutes could&nbsp;it?</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-06.jpg"><img class="alignnone size-medium wp-image-397" title="Cue The Great Escape music" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-06-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p>Why yes, yes it could. Having been idly wandering the grounds for an age, it takes her over half an hour to return to the dorms which seems a little unrealistic, even if there are three different all-girls schools on campus. Now trapped outside, it requires someone with a key to let her&nbsp;in&#8230;</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-07.jpg"><img class="alignnone size-medium wp-image-398" title="The face that launched a thousand ships" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-07-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p>Ah yes, a domineering figure, <em>finally</em>. Time to whip some much needed discipline into this girl. Lord knows staying out seconds past curfew on your first day is a pitiless crime, reprehensible&nbsp;even.</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-08.jpg"><img class="alignnone size-medium wp-image-399" title="Blue dye no. 54" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-08-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p>Saved! By someone else with blue hair&#8230; Blue hair dye must be used like cigarrettes in prison here, the shivving numbers must be astronomical. Despite appearances to the contrary, this one seems to have her head in order, doubtless she&#8217;ll have some kind of affection for a superior she is too proper to act upon. Moving into the cafeteria, we get a montage of all the archetypes pilfered from years of anime and manga that we&#8217;re about to be subjected to over the next few&nbsp;episodes.</p>
<ul class="missionlinks">
<li class="l"><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-09.jpg"><img class="alignnone size-thumbnail wp-image-401" title="Probaby like all the rest of you just with different coloured hair" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-09-250x187.jpg" alt="" width="250" height="187" /></a></li>
<li class="r"><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-10.jpg"><img class="alignnone size-thumbnail wp-image-402" title="Maybe you're too optimistic" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-10-250x187.jpg" alt="" width="250" height="187" /></a></li>
<li class="l"><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-11.jpg"><img class="alignnone size-thumbnail wp-image-403" title="Bear whisperer" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-11-250x187.jpg" alt="" width="250" height="187" /></a></li>
<li class="r"><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-12.jpg"><img class="alignnone size-thumbnail wp-image-404" title="Black hair and ribbons? Probably a ninja" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-12-250x187.jpg" alt="" width="250" height="187" /></a></li>
<li class="l"><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-13.jpg"><img class="alignnone size-thumbnail wp-image-405" title="More blue hair" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-13-250x187.jpg" alt="" width="250" height="187" /></a></li>
<li class="r"><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-14.jpg"><img class="alignnone size-thumbnail wp-image-406" title="Pink hair, a foreigner no doubt" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-14-250x187.jpg" alt="" width="250" height="187" /></a></li>
<li class="li"><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-15.jpg"><img class="alignnone size-thumbnail wp-image-400" title="Ebony and ivory" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-15-250x187.jpg" alt="" width="250" height="187" /></a></li>
</ul>
<p><br style="clear:left;" /><br />
Gossiper, intellectual, fruitcake and token loli, dark past, nervous wreck soon to be cleaver wielder, snobby foreigner with blatant insecurities, shy lesbian and overbearing lesbian also known as drama queens. Ah such a delighftul cast, and there are even more blue-hair dye dealers in there; no doubt the black market for the stuff will be a core tenet of the series. After a stupidity leak from Aoi about who is Étoile, a familiar face&nbsp;enters.</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-16.jpg"><img class="alignnone size-medium wp-image-407" title="Why is everyone just looking on?" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-16-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p>Well who&#8217;d have thunk it? The colourblind tree hugger is in fact the Étoile and decides to sexually assault the protagonist. <em>Again</em>. Who goes all soft focus. <em>Again</em>. I&#8217;m all for the direct approach, but it&#8217;s no fun if they don&#8217;t fight back. Ah but what does this school need? Good Christian&nbsp;values.</p>
<p><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-17.jpg"><img class="alignnone size-medium wp-image-408" title="Who do you pray to?" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-17-512x384.jpg" alt="" width="512" height="384" /></a></p>
<p>PRAY ALL YOU WANT LADIES. JESUS DOES NOT APPROVE OF YOUR&nbsp;LIFESTYLE.</p>
<p>Hmm, how best to finish off this cornucopia of&nbsp;yuri?</p>
<ul class="missionlinks">
<li class="l"><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-18.jpg"><img class="alignnone size-thumbnail wp-image-409" title="Don't play on the stairs children" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-18-250x187.jpg" alt="" width="250" height="187" /></a></li>
<li class="r"><a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-19.jpg"><img class="alignnone size-thumbnail wp-image-410" title="Loli attack" src="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-19-250x187.jpg" alt="" width="250" height="187" /></a></li>
</ul>
<p>Goth-loli twincest! One of whom looks and sings like they had a botox treatment that hasn&#8217;t quite settled&nbsp;yet.</p>
<p><strong>Thoughts</strong></p>
<p>For what it was, the first episode wasn&#8217;t too bad. Its main problem is the formulaic nature of the characters whom I hope will be fleshed out in episodes to come. Reviews have said the contrived incidents in the series are what bogs it down, but really, when you have the ridiculous situation of three snooty, hoity-toity private schools on top of a hill (all sharing the same cafeteria&#8230;), what do you expect? It&#8217;s familiar ground but I know this going into the series, I&#8217;m here for the buds of lesbianism ready to bloom, I have no allusions otherwise; that the protagonist is pure and innocent is all the better, it makes corrupting her to their wicked ways all the&nbsp;sweeter.</p>
<p>If I was forced to choose between the three uniforms, so far <a href="http://blog.chaostangent.com/wp-content/uploads/2008/08/strawberrypanic-01-20.jpg">Spica is winning</a> if not simply because it&#8217;s more business casual than traditional sailor or&nbsp;psuedo-maid.</p>
<p>So far, this is watchably&nbsp;mediocre.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chaostangent.com/archives/391/feed</wfw:commentRss>
		</item>
		<item>
		<title>Fantastic 4</title>
		<link>http://blog.chaostangent.com/archives/388</link>
		<comments>http://blog.chaostangent.com/archives/388#comments</comments>
		<pubDate>Wed, 13 Aug 2008 12:35:01 +0000</pubDate>
		<dc:creator>ChaosTangent</dc:creator>
		
		<category><![CDATA[Movies]]></category>

		<guid isPermaLink="false">http://blog.chaostangent.com/?p=388</guid>
		<description><![CDATA[I&#8217;d avoided the Fantastic 4 franchise as if it were patient zero for disappointing superhero films, not helped by it&#8217;s premise and content seeming even more outlandish than usual fare. My expectations were exceeded somewhat which is to the movie&#8217;s credit, however it doesn&#8217;t absolve it&#8217;s shortcomings.Blatantly targeted at children or the terminally bored, the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d avoided the Fantastic 4 franchise as if it were patient zero for disappointing superhero films, not helped by it&#8217;s premise and content seeming even more outlandish than usual fare. My expectations were exceeded somewhat which is to the movie&#8217;s credit, however it doesn&#8217;t absolve it&#8217;s shortcomings.<span id="more-388"></span>Blatantly targeted at children or the terminally bored, the script is unpretentious and the crayola drawing of characters is expected: with a name like &#8220;Von Doom&#8221;, there is little choice for him other than to become the antagonist. The plot barrels along, glossing over insignificant details such as how a shuttle could be prepared in under six weeks, or why a private company would own an orbiting space station which looks like it could rain death down on the earth at any moment. Details are ignored and scenes play out predictably and without undue fuss, the evil doer suitably thwarted, damsel suitably wooed and fuzzy, feel-good factor in&nbsp;place.</p>
<p>The most egregious problem is it&#8217;s lack of novelty; many superhero films have brought more to the table either through emotion or entertainment, Fantastic 4 is flat and uninspiring with ho-hum superpowers, back-story and promise of future exploits. Judging solely by this movie, the source material would be more akin to a pop up rather than a comic book, it shows none of the exploitation of possibilities that have been demonstrated in other films of the&nbsp;genre.</p>
<p>As brainless entertainment goes, there is little to fault this movie, but those looking for something even a little special from their movies should steer&nbsp;clear.</p>
<p><strong>If you&#8217;re a fan&nbsp;of&#8230;</strong></p>
<p>Jessica Alba or public nudity - the film delights in first placing her in a skin-tight, cleavage-producing cat suit and then removing her clothes at regular intervals, much to the guffaws on camera carrying&nbsp;onlookers.</p>
<p>Men made of something other than flesh - the most obvious candidate would be &#8220;The Thing&#8221;, a distinctly orange man who has all the looks and personality of a nice &#8216;n&#8217; spicy Nik Nak. Or perhaps Von Doom and his growing metallic carapace is more to your liking? Or maybe the feel of rubber with Mr Fantastic; this film has it&nbsp;all.</p>
<p>Villains with the menace of a wet tea bag - Von Doom gives an unconvincing performance although when your most evil deed is killing snarky investment bankers, I doubt there is much room for&nbsp;creativity.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chaostangent.com/archives/388/feed</wfw:commentRss>
		</item>
		<item>
		<title>Shut up and explode</title>
		<link>http://blog.chaostangent.com/archives/382</link>
		<comments>http://blog.chaostangent.com/archives/382#comments</comments>
		<pubDate>Fri, 01 Aug 2008 15:23:41 +0000</pubDate>
		<dc:creator>ChaosTangent</dc:creator>
		
		<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://blog.chaostangent.com/?p=382</guid>
		<description><![CDATA[Radio silence for over four months is not unusual for me, I have a tendency to simply drop out of contact with sporadic regularity. I haven&#8217;t updated since so then because I&#8217;ve been getting my creativity fixes from elsewhere; including (but not limited to): a short course from the OU on writing fiction, a bit [...]]]></description>
			<content:encoded><![CDATA[<p>Radio silence for over four months is not unusual for me, I have a tendency to simply drop out of contact with sporadic regularity. I haven&#8217;t updated since so then because I&#8217;ve been getting my creativity fixes from elsewhere; including (but not limited to): a short course from the <a href="http://www.ou.ac.uk">OU</a> on writing fiction, a bit of programming, a bit of design and points in&nbsp;between.</p>
<p>The short, 12 week, course was cumulatively a disappointment; mostly due to the tutor who, ostensibly was considerate and erudite, but failed to reveal exactly what criteria he would be marking our assessments with. With only two marked assignments it meant there wasn&#8217;t enough of a corpus to &#8220;play to the crowd&#8221; so to speak, and not knowing what one was being marked on (technical ability? word usage? poignancy?) it became a crapshoot. My final score was disappointing: a combination of these factors and not being entirely happy with the piece myself. The course was conducted entirely online; doing the work was not a problem, however the other members of the course, who were segregated into arbitrary tutor groups, were skittish and generally unfamiliar with communicating online. This meant that for someone who is used to forums and instant messaging everyone became selfish and posted only when it was necessary. This was to be expected from the audience a course such as this would attract (ageing bibliophiles or wayward scribblers) but altogether it struck far too much of my <a href="http://blog.chaostangent.com/archives/310">previous university&nbsp;experience</a>.</p>
<p>I have (finally) passed the point of no return and plunged into C++ programming which is something that I never thought would happen. After tinkering with <a title="CrystalSpace" href="http://www.crystalspace3d.org/">various</a> <a title="ioQuake3" href="http://ioquake3.org/">3D</a> <a title="Ogre3D" href="http://www.ogre3d.org/">engines</a> with no headway, I settled on tinkering with 2D (remember kids, less D&#8217;s != worse) with the excellent <a title="SDL" href="http://www.libsdl.org/">SDL</a>. So far I&#8217;ve only toyed with ideas that have interested me including: motion blur (based on velocity), raster rotation as well as re-learning a lot of the vector maths which I only had a tertiary knowledge of&nbsp;before.</p>
<p>The design work has all been work related and not worth digging in to, suffice to say that a new design for this blog will be coming sooner or later (more likely later knowing my general demeanour towards this blog). I have been turned towards using exterior services for certain tasks (Google Calendar has been especially well used by me recently) so I&#8217;m looking for ways of integrating that into my endeavours. The Gran Plan<sup>TM</sup> is to blog my forthcoming trip to Japan (on my terminally neglected <a title="Japanographia" href="http://japanographia.com">other domain</a>) with calendar, map and photo integration. This is of course blue sky at the moment but it presents an interesting challenge to be able to be done well, both for the reader and for me whose last desire while on holiday will be to futz with&nbsp;things.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chaostangent.com/archives/382/feed</wfw:commentRss>
		</item>
		<item>
		<title>What day is it?</title>
		<link>http://blog.chaostangent.com/archives/381</link>
		<comments>http://blog.chaostangent.com/archives/381#comments</comments>
		<pubDate>Thu, 13 Mar 2008 09:12:40 +0000</pubDate>
		<dc:creator>ChaosTangent</dc:creator>
		
		<category><![CDATA[Stuff]]></category>

		<category><![CDATA[appendages]]></category>

		<category><![CDATA[feet]]></category>

		<category><![CDATA[friday]]></category>

		<category><![CDATA[gloves]]></category>

		<category><![CDATA[oppressive]]></category>

		<category><![CDATA[regime]]></category>

		<category><![CDATA[socks]]></category>

		<category><![CDATA[thursday]]></category>

		<guid isPermaLink="false">http://blog.chaostangent.com/archives/381</guid>
		<description><![CDATA[Thursday, my calendar definitively says that it&#8217;s&#160;Thursday.
But what&#8217;s this on my socks?

Friday socks? On a&#160;Thursday?
That&#8217;s right feet, I&#8217;m sticking it to your oppressive regime, now you don&#8217;t know what day it is! And let this be a lesson to the rest of you appendages, I may not have gloves with days of the week on [...]]]></description>
			<content:encoded><![CDATA[<p>Thursday, my calendar definitively says that it&#8217;s&nbsp;Thursday.</p>
<p>But what&#8217;s this on my socks?<span id="more-381"></span></p>
<p><img src="http://gallery.chaostangent.com/galleries/random/blog/mefridaysocks.jpg" width="512" height="230" alt="" /></p>
<p>Friday socks? On a&nbsp;Thursday?</p>
<p>That&#8217;s right <em>feet</em>, I&#8217;m sticking it to your oppressive regime, now you don&#8217;t know what day it is! And let this be a lesson to the rest of you appendages, I may not have gloves with days of the week on them, but if I did, I&#8217;d be fighting your restrictive system as&nbsp;well.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chaostangent.com/archives/381/feed</wfw:commentRss>
		</item>
		<item>
		<title>Javascriptery: Tabbed forms</title>
		<link>http://blog.chaostangent.com/archives/380</link>
		<comments>http://blog.chaostangent.com/archives/380#comments</comments>
		<pubDate>Wed, 12 Mar 2008 21:44:34 +0000</pubDate>
		<dc:creator>ChaosTangent</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[accessibility]]></category>

		<category><![CDATA[ala]]></category>

		<category><![CDATA[forms]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[script]]></category>

		<category><![CDATA[snippet]]></category>

		<category><![CDATA[tabbed]]></category>

		<category><![CDATA[tabs]]></category>

		<guid isPermaLink="false">http://blog.chaostangent.com/archives/380</guid>
		<description><![CDATA[
Forms are perhaps the bane of web development for me; you can&#8217;t get them to look good, you can&#8217;t find a foolproof way to make them act well and lets not even start of trying to get them into a pacified state, free from the dangers of user input (surprise ending: form input will never [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://gallery.chaostangent.com/galleries/random/blog/tabbedform.png" width="512" height="100" alt="" /></p>
<p>Forms are perhaps the bane of web development for me; you can&#8217;t get them to look good, you can&#8217;t find a foolproof way to make them act well and lets not even start of trying to get them into a pacified state, free from the dangers of user input (surprise ending: form input will never be completely trustworthy). A lot of sites would appear to have aesthetically pleasing forms, however this is a careful ruse by them as they sidestep the problem of forms by having only one or two of them, and then they usually only have a few fields. The monstrosities I am required to deal with almost daily are things of grotesque beauty, veritable Rube Goldberg machines  of complexity.<span id="more-380"></span></p>
<p>The long and the short of this diversion into why forms are evil (please, end my suffering quickly <a href="http://www.w3.org/MarkUp/Forms/">XForms</a>) is that to get a form looking good, you have to spend a long time fiddling with things. Enough of this banter anyway, my fiddling with JavaScript (like the dirty little bastard child of C and Perl it is) produced a way of creating a tabbed form that defaults to a standard single form if a user prefers to use <a href="http://noscript.net/">NoScript</a> or an antiquated browser of&nbsp;yore.</p>
<p>So the following&nbsp;markup:</p>
<pre><code>&lt;form method="post" id="theForm"&gt;
	&lt;fieldset&gt;
		&lt;legend&gt;First tab&lt;/legend&gt;
		&lt;ol&gt;

			&lt;li&gt;&lt;label for="formone"&gt;One&lt;/label&gt; &lt;input type="text" name="one" id="formone" /&gt;&lt;/li&gt;
			&lt;li&gt;&lt;label for="formtwo"&gt;Two&lt;/label&gt; &lt;input type="text" name="two" id="formtwo" /&gt;&lt;/li&gt;
			&lt;li&gt;&lt;label for="formthree"&gt;Three&lt;/label&gt; &lt;input type="text" name="three" id="formthree" /&gt;&lt;/li&gt;
		&lt;/ol&gt;
	&lt;/fieldset&gt;
	&lt;fieldset&gt;

		&lt;legend&gt;Second tab&lt;/legend&gt;
		&lt;ol&gt;
			&lt;li&gt;&lt;label for="formfour"&gt;Four&lt;/label&gt; &lt;input type="text" name="four" id="formfour" /&gt;&lt;/li&gt;
			&lt;li&gt;&lt;label for="formfive"&gt;Five&lt;/label&gt; &lt;input type="text" name="five" id="formfive" /&gt;&lt;/li&gt;
			&lt;li&gt;&lt;label for="formsix"&gt;Six&lt;/label&gt; &lt;input type="text" name="six" id="formsix" /&gt;&lt;/li&gt;

		&lt;/ol&gt;
	&lt;/fieldset&gt;
	&lt;fieldset&gt;
		&lt;legend&gt;Third tab&lt;/legend&gt;
		&lt;ol&gt;
			&lt;li&gt;&lt;label for="formseven"&gt;Seven&lt;/label&gt; &lt;input type="text" name="seven" id="formseven" /&gt;&lt;/li&gt;
			&lt;li&gt;&lt;label for="formeight"&gt;Eight&lt;/label&gt; &lt;input type="text" name="eight" id="formeight" /&gt;&lt;/li&gt;
			&lt;li&gt;&lt;label for="formnine"&gt;Nine&lt;/label&gt; &lt;input type="text" name="nine" id="formnine" /&gt;&lt;/li&gt;
		&lt;/ol&gt;
	&lt;/fieldset&gt;
&lt;/form&gt;</code></pre>
<p>The default will be to display the first fieldset, with links in a list to display the other two. A trivial form like this certainly doesn&#8217;t require a tabbed layout, but a monstrosity that contains 27 input fields (some multiple choice) could do with a little information management when displayed to the user. The general markup is what I&#8217;ve settled on for the majority of my forms and is based almost entirely on <a href="http://www.alistapart.com/articles/prettyaccessibleforms/">Nick Rigby&#8217;s article on ALA</a> but the styling isn&#8217;t what&#8217;s important&nbsp;here.</p>
<p>For this project, like any I undertake with JavaScript, I&#8217;ll be using the <a href="http://www.prototypejs.org/">Prototype library</a> (version 1.6 specifically for this snippet), this could be done without it with minimum fuss but Prototype is lovely so I usually already have it&nbsp;included.</p>
<p>The functionality of this project is pretty minimal, the building of a list of the available fieldsets lies at the core of it. When the script is invoked it will hide all but the first fieldset, build an unordered list of the fieldsets (taking the names from the &lt;legend&gt; elements) and then set up event listeners for that list to change the visible state of each&nbsp;fieldset.</p>
<p>First things first, set up the Javascript object and hiding of the&nbsp;fieldsets:</p>
<pre><code>var tabbedForm = {
	init: function() {
		var formElem = $('theForm');
		if(formElem)
		{
			$A(formElem.getElementsByTagName('fieldset')).each(function(s, i) {
				var fieldsetId = s.identify();
				// hide all but the first
				if(i != 0)
				{
					s.hide();
				}
			});
		}
	}
};</code></pre>
<p>Nothing spectacular, uses the oft ignored index property of the each() function to scry when it&#8217;s not the first in a list, there are plenty of other ways of achieving this. Next job is to build the list of available fieldsets and plop that into the document at some point, so augmenting the init()&nbsp;function:</p>
<pre><code>init: function() {
	var formElem = $('theForm');
	if(formElem)
	{
		var listElem = document.createElement('ul');
		$A(formElem.getElementsByTagName('fieldset')).each(function(s, i) {
			var fieldsetId = s.identify();
			// hide all but the first
			if(i != 0)
			{
				s.hide();
			}

			var legendElem = s.down('legend');
			if(legendElem)
			{
				var listItemElem = document.createElement('li');
				var linkElem = document.createElement('a');
				linkElem.href = fieldsetId;
				linkElem.innerHTML = legendElem.innerHTML;
				Element.addClassName(linkElem, fieldsetId);
				Event.observe(linkElem, 'click', tabbedForm.tabClicked);

				listItemElem.appendChild(linkElem);
				listElem.appendChild(listItemElem);
			}
		});

		Element.insert(formElem, {before: listElem});
	}
}</code></pre>
<p>An unordered list item is created, the for each fieldset, the &lt;legend&gt; element is nabbed and its value used as the title for each list item. Probably the only questionable part is making the link element point to the ID of the fieldset, this is just how I do things so that when a link is clicked, the ID is available. Other people I know put these sort of items within the Javascript object itself or in a classname or somesuch, whatever works for you; I don&#8217;t have to worry about non-Javascript users clicking the links because the entire structure is generated rather than marked up. I drop the completed unordered list above the form element which fits with the &#8220;tab&#8221; metaphor we&#8217;re aiming&nbsp;for.</p>
<p>The only remaining function is what happens when a link in the generated list is clicked which according to my event listener is called (cunningly enough),&nbsp;&#8220;tabClicked&#8221;:</p>
<pre><code>tabClicked: function(evt) {
	Event.stop(evt);
	var linkElem = Event.findElement(evt, 'a');
	var formElem = $('theForm');
	if(linkElem &amp;&amp; formElem)
	{
		var idToShow = linkElem.href.substr(linkElem.href.lastIndexOf('/')+1);
		$A(formElem.getElementsByTagName('fieldset')).each(function(s) {
			if(s.identify() == idToShow)
			{
				s.show();
			}
			else
			{
				s.hide();
			}
		});
	}
}</code></pre>
<p>After stopping the link click event from bubbling up any further it grabs the clicked link element (I find it best not to take for granted which element has been clicked and just do a &#8220;findElement&#8221; to make sure we&#8217;re on the same page), pulls the ID from href attribute then iterates through the form&#8217;s fieldsets to find the one it refers&nbsp;to.</p>
<p>At this point the scripting is completed and a <a href="http://blog.chaostangent.com/stuff/tabbedform/">barebones proof of concept</a> can be seen. Obviously with no style it&#8217;s not going to look like tabs, but with a little <a href="http://www.alistapart.com/articles/slidingdoors/">sliding-door tomfoolery</a>, you&#8217;ll be tabbed up in no time. At this point you&#8217;ll likely want to expand on the functions above by dropping in some choice CSS classes, setting the active tab to &#8220;on&#8221; for appropriate styling and maybe even adding some other classes to let your stylesheet know things have been modified by a script (I find simply added a &#8220;scripted&#8221; class to the container element works&nbsp;wonders).</p>
<p>The beauty of this is it&#8217;s accessible (the form still works 100% without scripting) and it prevents a user from seeing just what a mammoth form they may be completing (blood of your first born? yes&nbsp;please).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chaostangent.com/archives/380/feed</wfw:commentRss>
		</item>
		<item>
		<title>Blogosphereotronomatic - GO!</title>
		<link>http://blog.chaostangent.com/archives/379</link>
		<comments>http://blog.chaostangent.com/archives/379#comments</comments>
		<pubDate>Tue, 11 Mar 2008 23:12:06 +0000</pubDate>
		<dc:creator>ChaosTangent</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://blog.chaostangent.com/archives/379</guid>
		<description><![CDATA[I have put in a list of links of other websites I frequent in the right hand column (the much maligned right column) but only on the homepage. Many people may be tempted to call it a &#8220;Blogroll&#8221; which is precisely what Wordpress informed me it was called when I put in the links; this [...]]]></description>
			<content:encoded><![CDATA[<p>I have put in a list of links of other websites I frequent in the right hand column (the much maligned right column) but only on the homepage. Many people may be tempted to call it a &#8220;Blogroll&#8221; which is precisely what Wordpress informed me it was called when I put in the links; this however sounds far too close to &#8220;bogroll&#8221; which means toilet paper and I doubt that&#8217;s something that I would like to infer about sites which you are potentially scurrying towards, away from this nexus of madness. As such, and to lampoon the grotesque word &#8220;blogosphere&#8221;, this list of links is now called the Blogosophereotronomatic, bow before your new Scrabble word&nbsp;god.</p>
<p>I plucked these links from my RSS reader (<a href="http://www.rssowl.org/">RSS Owl</a>, how I love thee) however there is one category still left to add, the ubiquitous &#8220;Stuff&#8221; category which more or less defines this site as well as my life so take from that what you will. I&#8217;m hoping to tweak the design at some point and possibly add RSS feed links (as that&#8217;s usually how I read them) but that&#8217;s for another&nbsp;time.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chaostangent.com/archives/379/feed</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.030 seconds -->
