<?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>blog@tomauger.com</title>
	<atom:link href="http://www.tomauger.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.tomauger.com</link>
	<description>Development news, browser quirks, design factoids. Good stuff.</description>
	<lastBuildDate>Fri, 02 Jul 2010 19:37:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Early Preview: New Symphonic Work</title>
		<link>http://www.tomauger.com/?p=48</link>
		<comments>http://www.tomauger.com/?p=48#comments</comments>
		<pubDate>Mon, 28 Jun 2010 16:37:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Orchestral / Soundtrack]]></category>
		<category><![CDATA[Original Music]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.tomauger.com/blog/?p=48</guid>
		<description><![CDATA[New Symphonic Work by Tom Auger (draft preview)]]></description>
			<content:encoded><![CDATA[<p>Amongst the 3 dozen or so musical sketches I&#8217;m working on, this one has bubbled to the surface, mostly because my Mom asked me for a copy, which has encouraged me to take this one closer to completion than anything I&#8217;ve done in the last little while.</p>
<p><a title="Download Audio" href="http://www.tomauger.com/audio/HumbleBeginnings-unmastered-stereo.mp3" target="_blank">DOWNLOAD: New Symphonic Movement I</a> (free download for PERSONAL USE ONLY)</p>
<p>It remains unnamed at the moment, though its working title is &#8220;Humble Beginnings&#8221; simply because it arose from a single, late-night improvisation of a very unique and texture-rich instrument from the German company Native Instruments called &#8216;<a title="NI:Massive" href="http://www.native-instruments.com/#/en/products/producer/massive/" target="_blank">Massive</a>&#8216;. Add a little Orchestral percussion and you have something interesting.</p>
<p>Once I started to get into it, I decided to highlight some of the hidden textures and emergent melodies within the texture using standard orchestral instrumentation &#8211; cellos, violins, oboe and clarinet, a little french horn. All of this courtesy of <a title="Edirol Orchestral VST" href="http://www.roland.com/products/en/HQ-OR/" target="_blank">Edirol&#8217;s Orchestral plug-in</a>. Finally, the Steinberg Grand Piano (de rigueur, and frankly a little overdone in this version &#8211; I will be cutting it back with great prejudice: it&#8217;s sounding a lot like my old stuff and the &#8216;Auger Sound&#8217; is getting on my nerves), and a really cool violin sample using my wife&#8217;s cheapo Chinese-made violin for an oriental violin solo melody near the end. I call this instrument the &#8220;Shing Jea&#8221; violin, after Jeremy Soule&#8217;s Guild Wars Factions soundtrack (click <a title="GW:Factions Soundtrack sample" href="http://www.youtube.com/watch?v=2vgfaUkLK6Y" target="_blank">here </a>for a little sample on YouTube).</p>
<p>Anyway, here&#8217;s the first, unmastered cut. Because of the intense dynamics, you have to be careful of your speakers &#8211; I will be running it through a compresser and equalizer and other things to get a better loudness ratio before it&#8217;s finalized.</p>
<p>Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomauger.com/?feed=rss2&amp;p=48</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.tomauger.com/audio/HumbleBeginnings-unmastered-stereo.mp3" length="14168868" type="audio/mpeg" />
		</item>
		<item>
		<title>Forge</title>
		<link>http://www.tomauger.com/?p=45</link>
		<comments>http://www.tomauger.com/?p=45#comments</comments>
		<pubDate>Fri, 30 Apr 2010 14:20:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Font Sheet]]></category>

		<guid isPermaLink="false">http://www.tomauger.com/blog/?p=45</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div id="attachment_46" class="wp-caption alignnone" style="width: 481px"><a href="http://www.tomauger.com/blog/wp-content/uploads/2010/04/forgeBros-copy.jpg"><img class="size-full wp-image-46" title="forgeBros copy" src="http://www.tomauger.com/blog/wp-content/uploads/2010/04/forgeBros-copy.jpg" alt="" width="471" height="555" /></a><p class="wp-caption-text">DF Forge</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.tomauger.com/?feed=rss2&amp;p=45</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reclaiming the  tag: Fixing broken input values for Explorer</title>
		<link>http://www.tomauger.com/?p=41</link>
		<comments>http://www.tomauger.com/?p=41#comments</comments>
		<pubDate>Fri, 09 Apr 2010 15:58:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Browser Bugs and Fixes]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.tomauger.com/blog/?p=41</guid>
		<description><![CDATA[Have you discovered the &#60;button&#62; tag yet? It&#8217;s actually pretty cool, making it easy(er) to style submit buttons and the like to do things like, say, put pretty icons in front of the button text and so forth. The button tag looks like this: &#60;button type=&#8221;submit&#8221; name=&#8221;action&#8221; value=&#8221;delete_123&#8243;&#62;Delete This Item&#60;/button&#62; You can even put other [...]]]></description>
			<content:encoded><![CDATA[<p>Have you discovered the &lt;button&gt; tag yet? It&#8217;s actually pretty cool, making it easy(er) to style submit buttons and the like to do things like, say, put pretty icons in front of the button text and so forth.</p>
<p>The button tag looks like this:</p>
<p>&lt;button type=&#8221;submit&#8221; name=&#8221;action&#8221; value=&#8221;delete_123&#8243;&gt;Delete This Item&lt;/button&gt;</p>
<p>You can even put other cool HTML inside the button:</p>
<p>&lt;button type=&#8221;submit&#8221; name=&#8221;submit&#8221; value=&#8221;resetPwd&#8221;&gt;&lt;span class=&#8221;resetIcon&#8221;&gt;Reset Your Password&lt;/span&gt;&lt;/button&gt;</p>
<p>This gives you a lot of control, which otherwise might need to be done with one or more (non-semantic) wrappers outside of an &lt;input type=&#8221;submit&#8221; /&gt; tag.</p>
<p>The real beauty (for me) of the &lt;button&gt; tag, is that the value that is send to your server-side (PHP, Perl whatever) can be different from the message that is displayed to the user. In the first example shown, you could imagine a list of products, each of which has a &#8220;Delete This Item&#8221; button. The User sees &#8220;Delete This Item&#8221;, but the server gets &#8220;delete_123&#8243; and, with some very simple string splitting, can figure out what action you want it to do (delete) and what item to delete (123).</p>
<p>Cool.</p>
<p>Well, well, well, this is probably the first time I&#8217;ve seen IE break the server-side of things, but they&#8217;ve managed to cock that up too. Note that this has supposedly been addressed in IE8, but we&#8217;re not just targeting IE8 when we write RIAs are we?</p>
<p>The issue is that IE 6, 7 contravene the HTML 4.0 standard, and send the &lt;button&gt; tag&#8217;s innerHTML rather than the value!</p>
<p>Can you imagine that?</p>
<p>So what the server gets (when submitted from IE only) is:</p>
<p>&lt;SPAN class=resetIcon&gt;Reset Your Password&lt;/SPAN&gt;</p>
<p>(do note that IE converts to upper case AND removes quotes from attributes as well. Awesomeness.)</p>
<p>All other browsers submit:</p>
<p>resetPwd.</p>
<h3><span id="more-41"></span>One Solution: Hidden &lt;span&gt;</h3>
<p>The first thing that comes to mind is: use JavaScript to intercept any form submissions coming from &lt;button&gt; tags and make sure we&#8217;re using the &#8220;value&#8221; attribute. But all my RIAs are use unobtrusive JavaScript &#8211; the first (and most important) principle of which is: &#8220;must degrade nicely&#8221;, which translates as: &#8220;must works without JavaScript&#8221;. JavaScript is decoration and icing, not the food. So we still need a server-side solution that does not rely on some sneaky last-minute JS bait-and-switch.</p>
<p>A solution that I have found helpful (and since discovered similar minds thinking as well) is to add some additional info to be sent in the innerHTML for IE only. On the server-side, if we receive this additional info, we parse it and use that value.</p>
<p>&lt;button type=&#8221;submit&#8221; name=&#8221;ac&#8221; value=&#8221;showMail&#8221;&gt;Cancel&lt;span class=&#8221;ievalue&#8221;&gt;showMail&lt;/span&gt;&lt;/button&gt;</p>
<p>In this example, I want the user to see &#8220;Cancel&#8221;, but the action actually sent to the server is &#8220;showMail&#8221;. Most browsers handle this properly by just sending the value parameter. IE 7 sends the innerHTML.</p>
<p>On the server side I do the following:</p>
<p>1) did we get a &lt;span class=&#8221;ievalue&#8221;&gt;? (well actually, did we get a &lt;SPAN class=ievalue&gt;?)</p>
<p>2) grab the inner content of that &lt;span&gt;, ignoring anything else</p>
<p>To make this solution a little more workable, I&#8217;ve decided to make this &lt;span class=&#8221;ievalue&#8221;&gt; optional, in the case where your button text is the same (more or less) as the value text. For example:</p>
<p>&lt;button type=&#8221;submit&#8221; name=&#8221;ac&#8221; value=&#8221;sendMail&#8221;&gt;Send Mail&lt;/button&gt;</p>
<p>Here we just need to concatenate the innerHTML, and convert to camelCase.</p>
<p>Putting it all together (the language in this example is Perl):</p>
<pre># assume that the user input is read in using CGI and put into a hash called %params
# (so $params{ac} would contain the value/innerHTML of the button named "ac")

# if the &lt;button&gt; input parameter is used to transmit the "ac" parameter,
# IN INTERNET EXPLORER, it sends the innerHTML of the button,
# which could contain HTML and all sorts of other garbage.
# in direct violation of HTML 4.0 standards. So what we do is
# for all other browsers we use the proper "value" attribute on the button;
# for IE &lt; 8 we add a &lt;span&gt; that will contain an exact duplicate
# of the "value" attribute.

 my ($ie_ac) = $params{ac} =~ /&lt;span\s+class\s*=\s*"?ievalue"?\s*&gt;([^&lt;]+)/i;
 if ($ie_ac){
 $params{ac} = $ie_ac;
 } else {
 # just in case we're still coming in from IE, but have decided
 # not to include an "ievalue" span (because the text is the same as the value)...
 # strip out HTML and convert to camel-case
 $params{ac} =~ s/&lt;[^&gt;]+&gt;//g; # strip out HTML
 $params{ac} =~ s/[^a-zA-Z_ ]+//g; # strip out any non-words
 $params{ac} = lc $params{ac}; # set everything to lowercase
 $params{ac} =~ s/\s+(\w)/\U\1/g; # strip out whitespace and set the next letter to Upper Case
 }</pre>
<p>This solution seems to work fairly well. The CSS to hide any &lt;span class=&#8221;ievalue&#8221;&gt; is trivial.</p>
<p>I hope this approach helps you in the server-side language of your choice.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomauger.com/?feed=rss2&amp;p=41</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
