<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Slightly Remarkable</title>
	
	<link>http://slightlyremarkable.com/blog</link>
	<description>Jonathan Fenocchi's personal weblog</description>
	<lastBuildDate>Tue, 01 Nov 2011 00:00:00 PDT</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/SlightlyRemarkable" /><feedburner:info uri="slightlyremarkable" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item><title>Links for 2011-10-31 [del.icio.us]</title><link>http://del.icio.us/Jona#2011-10-31</link><pubDate>Tue, 01 Nov 2011 00:00:00 PDT</pubDate><guid isPermaLink="true">http://del.icio.us/Jona#2011-10-31</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.compareninja.com/index.php"&gt;Compare Ninja | HTML &amp;amp; CSS Comparison tables&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/SlightlyRemarkable/~4/8CmLne6Cg8s" height="1" width="1"/&gt;</description></item><item><title>Links for 2011-09-21 [del.icio.us]</title><link>http://del.icio.us/Jona#2011-09-21</link><pubDate>Thu, 22 Sep 2011 00:00:00 PDT</pubDate><guid isPermaLink="true">http://del.icio.us/Jona#2011-09-21</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://ifttt.com/"&gt;ifttt / Put the internet to work for you.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/SlightlyRemarkable/~4/IpMf5Qd3VGM" height="1" width="1"/&gt;</description></item><item><title>Links for 2011-09-19 [del.icio.us]</title><link>http://del.icio.us/Jona#2011-09-19</link><pubDate>Tue, 20 Sep 2011 00:00:00 PDT</pubDate><guid isPermaLink="true">http://del.icio.us/Jona#2011-09-19</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://ifttt.com/"&gt;ifttt / Put the internet to work for you.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/SlightlyRemarkable/~4/uIg3drQ13mc" height="1" width="1"/&gt;</description></item><item><title>Links for 2011-09-08 [del.icio.us]</title><link>http://del.icio.us/Jona#2011-09-08</link><pubDate>Fri, 09 Sep 2011 00:00:00 PDT</pubDate><guid isPermaLink="true">http://del.icio.us/Jona#2011-09-08</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://tmont.com/blargh/2010/07/php-is-dead/"&gt;tommy montgomery // blargh&lt;/a&gt;&lt;br/&gt;
Humorous article I stumbled upon about the demise of PHP.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/SlightlyRemarkable/~4/18UR0dWB5Ys" height="1" width="1"/&gt;</description></item><item><title>Links for 2011-08-30 [del.icio.us]</title><link>http://del.icio.us/Jona#2011-08-30</link><pubDate>Wed, 31 Aug 2011 00:00:00 PDT</pubDate><guid isPermaLink="true">http://del.icio.us/Jona#2011-08-30</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://startuplawyer.com/startup-issues/if-i-launched-a-startup"&gt;If I Launched a Startup | Startup Lawyer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/SlightlyRemarkable/~4/qMGWO5y-HcI" height="1" width="1"/&gt;</description></item><item><title>Links for 2011-08-29 [del.icio.us]</title><link>http://del.icio.us/Jona#2011-08-29</link><pubDate>Tue, 30 Aug 2011 00:00:00 PDT</pubDate><guid isPermaLink="true">http://del.icio.us/Jona#2011-08-29</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fgnass.github.com/spin.js/"&gt;spin.js&lt;/a&gt;&lt;br/&gt;
This is pretty cool, especially since it&amp;#039;s practical (VML fallback).&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/SlightlyRemarkable/~4/ropmfCrIiT0" height="1" width="1"/&gt;</description></item><item><title>Links for 2011-01-18 [del.icio.us]</title><link>http://del.icio.us/Jona#2011-01-18</link><pubDate>Wed, 19 Jan 2011 00:00:00 PST</pubDate><guid isPermaLink="true">http://del.icio.us/Jona#2011-01-18</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.debeterevormgever.nl/html5-ie-without-javascript/"&gt;HTML5 elements in Internet Explorer without Javascript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.w3.org/html/logo/#the-gallery"&gt;W3C HTML5 Logo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/SlightlyRemarkable/~4/P1wRRrLf0tI" height="1" width="1"/&gt;</description></item><item>
		<title>Wordpress v. Thesis</title>
		<link>http://slightlyremarkable.com/blog/2010/07/15/wordpress-v-thesis/</link>
		<comments>http://slightlyremarkable.com/blog/2010/07/15/wordpress-v-thesis/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 12:33:01 +0000</pubDate>
		<dc:creator>Jona</dc:creator>
				<category><![CDATA[Site News]]></category>

		<guid isPermaLink="false">http://slightlyremarkable.com/blog/?p=338</guid>
		<description><![CDATA[<p>So, there&#8217;s <a href="http://mixergy.com/chris-pearson-matt-mullenweg/">this dispute</a> over licensing. I won&#8217;t go over the points or the conversation or what the dispute is &#8212; see the link for info. However, I felt like making a couple  statements about the debate.</p>
<p>First, let me say I&#8217;m in agreement with Chris Pearson&#8217;s ideology here. He feels he has the right to make decisions that suit his business, and I believe that all Americans have that right. So, I think Chris&#8217;s position is correct. <strong>However</strong>, by using Wordpress, Chris has&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>So, there&#8217;s <a href="http://mixergy.com/chris-pearson-matt-mullenweg/">this dispute</a> over licensing. I won&#8217;t go over the points or the conversation or what the dispute is &#8212; see the link for info. However, I felt like making a couple  statements about the debate.</p>
<p>First, let me say I&#8217;m in agreement with Chris Pearson&#8217;s ideology here. He feels he has the right to make decisions that suit his business, and I believe that all Americans have that right. So, I think Chris&#8217;s position is correct. <strong>However</strong>, by using Wordpress, Chris has already accepted and agreed to abide by the GPL. He, therefore, has agreed to be bound to the terms of the GPL, which means he has willingly foregone his rights (those rights, in particular, which the GPL has denoted).</p>
<p>Think of the GPL as an indentured servitude agreement &#8212; forgive the crude analogy, please. Years ago, Europeans (particularly the English, as I recall) signed contracts that essentially sold years of their lives and labor into servitude in exchange for transport and, eventually, property (of some kind) in the so-called New World. Chris Pearson might be thought of as one of these indentured servants, who has consented to the terms in order to reach the New World. Unfortunately for Chris, once he got to the New World he realized that he&#8217;d rather be free, but when he tries to go off on his own, he finds there are legal ramifications &#8212; namely, his breaching of the contract. Even though I would heartily disagree with indentured servitude, which is now illegal in the U.S., and strongly empathize with the indentured servants (Chris being the example) and their right to freedom, I would say that Chris has a responsibility by contract to abide by the terms of the agreement, whether or not I fundamentally empathize with his plight or agree with his means. There are only a few ways in which Chris could achieve his freedom without fulfilling the requirements originally agreed upon, and they include the following:</p>
<ul>
<li>Contractual amendment &#8212; Chris and Matt could agree to amend the contract on different terms, i.e. Chris is indentured for a lesser amount of time in exchange for something else</li>
<li>Servitude abolition &#8212; the government could step in, assert that indentured servitude is illegal, and therefore free Chris of the contract to which he has subjected himself</li>
</ul>
<p>Of course, option #1 has one major problem: the scenario is more complicated. Unlike the analogy where there is a contractual dispute between two parties, Wordpress is not owned by one person &#8212; the product is a culmination of thousands of contributors, who all own some unknown share of the product. This would be like the CEO of a company making a contractual amendment with an important client or vendor without the consent of the Board of Directors &#8212; but, even more significantly, this Board of Directors would literally be in the thousands. Thus, option #1 isn&#8217;t viable given the circumstances.</p>
<p>This leaves option #2. Unless free software is outlawed (and dear heavens, I hope not!), Chris would probably lose this case in the court.</p>
<p>To summarize, once again I agree with Chris&#8217;s position on the subject, but he has expressly agreed to the terms of the GPL but chosen to break the rules which he, effectively, imposed upon himself. Matt is ultimately correct here because there aren&#8217;t any reasonable ways to allow Chris to continue ignoring the terms of the GPL; furthermore, Matt is in a position where action must be taken in some form or another, because if action is not taken, it sets a precedent for similar situations in the future, which could effectively render all software licensing unenforceable. For this reason, if taken to court, ruling in favor of Chris would have extremely far-reaching ramifications.</p>
<p><em>Disclaimer: I&#8217;m not a lawyer and don&#8217;t claim to be. This is simply my opinion of the matter. I wish both Wordpress and Thesis the best of luck in resolving the dispute, and I respect both of their positions on the matter.</em></p>

<p><a href="http://feedads.g.doubleclick.net/~a/ylwT6RSSY_V5yTV2JbtpPN_4Mr0/0/da"><img src="http://feedads.g.doubleclick.net/~a/ylwT6RSSY_V5yTV2JbtpPN_4Mr0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ylwT6RSSY_V5yTV2JbtpPN_4Mr0/1/da"><img src="http://feedads.g.doubleclick.net/~a/ylwT6RSSY_V5yTV2JbtpPN_4Mr0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=M4g7_N0QGNA:mNgZtHkPOk4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=M4g7_N0QGNA:mNgZtHkPOk4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=M4g7_N0QGNA:mNgZtHkPOk4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=M4g7_N0QGNA:mNgZtHkPOk4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?i=M4g7_N0QGNA:mNgZtHkPOk4:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SlightlyRemarkable/~4/M4g7_N0QGNA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://slightlyremarkable.com/blog/2010/07/15/wordpress-v-thesis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>jQuery and IE… Again</title>
		<link>http://slightlyremarkable.com/blog/2010/06/14/jquery-and-ie-again/</link>
		<comments>http://slightlyremarkable.com/blog/2010/06/14/jquery-and-ie-again/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 16:50:43 +0000</pubDate>
		<dc:creator>Jona</dc:creator>
				<category><![CDATA[Site News]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://slightlyremarkable.com/blog/2010/06/14/jquery-and-ie-again/</guid>
		<description><![CDATA[<p>So, at work today, I discovered another interesting facet of jQuery and IE.</p>
<p>This is in specific regards to jQuery 1.4.2 and IE7. I haven&#8217;t tested this in other versions of IE, but it&#8217;s probably as applicable. For jQuery, this will only be a problem in 1.4.2+, as earlier versions of jQuery don&#8217;t support this feature.</p>
<p>Let&#8217;s get to it.</p>
<h3>The situation</h3>
<p>I&#8217;m generating some HTML forms on-the-fly by passing some JSON objects to a function that returns a jQuery object, which I then append&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>So, at work today, I discovered another interesting facet of jQuery and IE.</p>
<p>This is in specific regards to jQuery 1.4.2 and IE7. I haven&#8217;t tested this in other versions of IE, but it&#8217;s probably as applicable. For jQuery, this will only be a problem in 1.4.2+, as earlier versions of jQuery don&#8217;t support this feature.</p>
<p>Let&#8217;s get to it.</p>
<h3>The situation</h3>
<p>I&#8217;m generating some HTML forms on-the-fly by passing some JSON objects to a function that returns a jQuery object, which I then append to a modal dialog. It&#8217;s pretty elegant, and I may release it as an open-source jQuery plugin at some point. Anyway, part of this function uses jQuery 1.4.2&#8217;s ability to generate jQuery DOM objects when HTML strings are passed to the function. Example:</p>
<p><code>$('&lt;div class="myclass" /&gt;');</code></p>
<p>This is great because it allows me to create a string of HTML and pass it to jQuery, effectively increasing the speed of the program by avoiding function calls (can you imagine calling the <code>attr()</code> method for every attribute, and then the <code>append()</code> method for every element, including child elements??).</p>
<h3>The problem</h3>
<p>So what&#8217;s the problem? Well, this works in IE, so you&#8217;d think there isn&#8217;t a problem. In fact, I was also convinced (read: tricked) that IE handled this fine, as initial testing returned the expected results. However, because sending an empty string to the jQuery function returns an empty jQuery object, debugging this type of code can be <em>very</em> dangerous, as instead of generating errors, the script will die or stop functioning silently. No errors makes debugging very difficult!</p>
<p>I was using the following code to generate a form tag, append it to an object, and then return it. It looked something like this:</p>
<pre><code>var newForm = $('&lt;form method="post" action=""&gt;');</code></pre>
<p>This works in other browsers, but IE chokes. Silently. I discovered this when I started doing some testing on generating the object, independent of my script (which I&#8217;d been attempting to debug for well over an hour at this point).</p>
<p>Alerting the <code>length</code> property of the jQuery object has been helpful here. I first tried <code>$('&lt;div /&gt;').length</code> and got the result <code>1</code>. That makes sense. Then I tried <code>$('&lt;div&gt;').length</code>. This also, correctly, returns <code>1</code>.</p>
<p>Then I tried something else. Since all this hypothetical testing was driving me bananas, I tried the actual form HTML I was using. <code>$('&lt;form method="post" action=""&gt;').length</code> returned&#8230; <code>0</code>!! How frustrating! Taking the attributes out and simply using <code>$('&lt;form&gt;').length</code> returns <code>1</code> as well, however. To get the correct result, I had to use the self-enclosing <code>form</code> tag: <code>$('&lt;form method="post" action="" /&gt;').length</code>. This returned the correct result (<code>1</code>). Finally. That <em>one character</em> fixed my entire program in IE. Wow!</p>
<h3>In Summary</h3>
<p><abbr title="Too long; didn't read">TL;DR</abbr> version: IE chokes and returns an empty jQuery object when you pass an HTML string that has attributes without a self-closure. I hope this saves some folks valuable time debugging this ridiculous phantom. I&#8217;m curious if this should be filed as a jQuery bug or not.</p>
<p>Happy coding!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/JA2esofI3DEsn_sqXJfs474nHpY/0/da"><img src="http://feedads.g.doubleclick.net/~a/JA2esofI3DEsn_sqXJfs474nHpY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/JA2esofI3DEsn_sqXJfs474nHpY/1/da"><img src="http://feedads.g.doubleclick.net/~a/JA2esofI3DEsn_sqXJfs474nHpY/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=WIZZDMxezB0:ggjghkIHnTE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=WIZZDMxezB0:ggjghkIHnTE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=WIZZDMxezB0:ggjghkIHnTE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=WIZZDMxezB0:ggjghkIHnTE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?i=WIZZDMxezB0:ggjghkIHnTE:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SlightlyRemarkable/~4/WIZZDMxezB0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://slightlyremarkable.com/blog/2010/06/14/jquery-and-ie-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>New Design</title>
		<link>http://slightlyremarkable.com/blog/2010/06/03/new-design/</link>
		<comments>http://slightlyremarkable.com/blog/2010/06/03/new-design/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 18:31:42 +0000</pubDate>
		<dc:creator>Jona</dc:creator>
				<category><![CDATA[Site News]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://slightlyremarkable.com/blog/2010/06/03/new-design/</guid>
		<description><![CDATA[<p>Yep, I&#8217;ve yet again redesigned. If you&#8217;re using Firefox or Chrome, the site will be beautiful, and if you&#8217;re using Safari, it&#8217;ll be almost as beautiful (Safari 4 still doesn&#8217;t support inset box shadows in CSS3 *sigh*).</p>
<p>So a few details about the design.</p>
<ul>
<li>Grayscale. The color one chooses when he does not know which color to choose.</li>
<li>Heavy CSS3. If you look at it in IE, it&#8217;ll probably puke. Sorry. Upgrade your browser. =) </li>
<li>Design took place amidst other activities, including a</li></ul><p>&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Yep, I&#8217;ve yet again redesigned. If you&#8217;re using Firefox or Chrome, the site will be beautiful, and if you&#8217;re using Safari, it&#8217;ll be almost as beautiful (Safari 4 still doesn&#8217;t support inset box shadows in CSS3 *sigh*).</p>
<p>So a few details about the design.</p>
<ul>
<li>Grayscale. The color one chooses when he does not know which color to choose.</li>
<li>Heavy CSS3. If you look at it in IE, it&#8217;ll probably puke. Sorry. Upgrade your browser. =) </li>
<li>Design took place amidst other activities, including a very lonely <a href="http://www.nbc.com/The_Office/">The Office</a> marathon.</li>
<li>The comment form uses an ordered list. The comment form button is pretty CSS3 stuff.</li>
<li>The web site makes heavy use of alpha transparency, both in PNG graphics and background colors/gradients. This means that the design can be completely transformed, in full color, simply by applying another background image (yes: another).</li>
<li>Expect to see the background change from time to time as I get bored with the grayscale.</li>
<li>The home page 3-column layout is some cool CSS3 trickery.</li>
<li>All of the designing was done in the browser, not in Photoshop. I think this approach dramatically changed my attention to detail, particularly the fonts and colors (well, shades, if you will).</li>
<li>I took a minimalist approach with the design and stripped out almost all of the plugins I was using for Wordpress. I&#8217;m much happier with my content and a few pages, and I think the refocus on &#8220;less is more&#8221; allows me to write more, fix less, and by extension allows folks to read more and be confused less.</li>
</ul>
<p>If you&#8217;re a graphic designer and would like to see your work on my site, drop me a line. ;-)</p>
<p>Well, that&#8217;s all for now. =)</p>
<p><strong>Update:</strong> Okay, here&#8217;s more. Pick a color to see how the design changes.</p>
<ul>
<li><a href="#" onclick="document.body.style.backgroundColor='#900'; return false;">Red</a></li>
<li><a href="#" onclick="document.body.style.backgroundColor='#090'; return false;">Green</a></li>
<li><a href="#" onclick="document.body.style.backgroundColor='#009'; return false;">Blue</a></li>
<li><a href="#" onclick="document.body.style.backgroundColor=prompt('Input a valid CSS color code'); return false;">Pick your own</a></li>
</ul>

<p><a href="http://feedads.g.doubleclick.net/~a/GrDL9J6Ky9CXh1jjI7s-lUNfSZk/0/da"><img src="http://feedads.g.doubleclick.net/~a/GrDL9J6Ky9CXh1jjI7s-lUNfSZk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/GrDL9J6Ky9CXh1jjI7s-lUNfSZk/1/da"><img src="http://feedads.g.doubleclick.net/~a/GrDL9J6Ky9CXh1jjI7s-lUNfSZk/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=LqWU8RVSP98:VKCGriArUUc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=LqWU8RVSP98:VKCGriArUUc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=LqWU8RVSP98:VKCGriArUUc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=LqWU8RVSP98:VKCGriArUUc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?i=LqWU8RVSP98:VKCGriArUUc:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SlightlyRemarkable/~4/LqWU8RVSP98" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://slightlyremarkable.com/blog/2010/06/03/new-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>I Signed up for Orkut and I Don’t Know What It Is</title>
		<link>http://slightlyremarkable.com/blog/2010/04/08/i-signed-up-for-orkut-and-i-dont-know-what-it-is/</link>
		<comments>http://slightlyremarkable.com/blog/2010/04/08/i-signed-up-for-orkut-and-i-dont-know-what-it-is/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 01:04:39 +0000</pubDate>
		<dc:creator>Jona</dc:creator>
				<category><![CDATA[Site News]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[products]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://slightlyremarkable.com/blog/2010/04/08/i-signed-up-for-orkut-and-i-dont-know-what-it-is/</guid>
		<description><![CDATA[<p>Yea, long title, bite me.</p>
<p>So I signed up for <a href="http://orkut.com/">orkut</a> today, without knowing what it was. You might say &#8220;What? I thought you were all web 2.0-savvy&#8221; and such, but the truth is, a lot of stuff flies by the radar. The web moves too fast for me to consume all of the new stuff on a daily basis <em>and</em> keep my job.</p>
<p>Anyway, I read a Google blog entry from several days ago where they mentioned orkut. I have a tendency to&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Yea, long title, bite me.</p>
<p>So I signed up for <a href="http://orkut.com/">orkut</a> today, without knowing what it was. You might say &#8220;What? I thought you were all web 2.0-savvy&#8221; and such, but the truth is, a lot of stuff flies by the radar. The web moves too fast for me to consume all of the new stuff on a daily basis <em>and</em> keep my job.</p>
<p>Anyway, I read a Google blog entry from several days ago where they mentioned orkut. I have a tendency to Cmd+Click every link in a blog entry, and orkut was no exception. But when I swapped over to the orkut tab, I wasn&#8217;t on a &#8220;Welcome to orkut! Please sign up!&#8221; page. I was taken directly to the &#8220;Complete your registration!&#8221; page.</p>
<p>It got me thinking. At first, I was like &#8220;Oh, this is a Google thing,&#8221; so there was acknowledgment of credibility (but not brand &#8212; interesting, yes?). The site had the audacity to start asking me questions like my date of birth, and this wasn&#8217;t like an acquaintance asking you such a question &#8212; it was more like a stranger asking the question. I&#8217;d never, ever met orkut before to my knowledge. Why would I tell it my date of birth?</p>
<p>Well, as it turns out, I did sign up. I didn&#8217;t know what the service was, or what it did, but it wasn&#8217;t asking me if I wanted to sign up. It was telling me to. It didn&#8217;t say &#8220;Would you please,&#8221; it said &#8220;Come on!&#8221; I was captivated.</p>
<p>I wonder if this more direct, no-BS method of getting people involved is over-the-top or not. I don&#8217;t think it was intentional, because orkut automatically detected my Google cookies and knew my name/email address already, but if I had been taken to a &#8220;Hi, stranger! Sign up for this thing, please?&#8221; page, I wouldn&#8217;t have signed up.</p>
<p>So, recap. The most immediate approach to getting someone to sign up: tell them to sign up, immediately. I didn&#8217;t even know what the service was until after I registered. Of course, this comes with one caveat: if people don&#8217;t recognize you, your brand, or your affiliate(s), they will be disoriented, confused, or suspicious, so be advised that this may be the reason your introduction is important. I guess the balance is to make a landing page that says &#8220;Hi, we do this. Sign up,&#8221; although that still requires a person to be interested in what the product or service does.</p>
<p>Interestingly, I find that I&#8217;m drawn to sign up for Google services or products that I probably will never use, simply because I want to see what they&#8217;ve done. I think this is very similar to what Apple has done (sans the sleek cool factor, unless, of course, you&#8217;re a geek such as myself) with their products. Apple&#8217;s iPad sold twice the units they anticipated. I&#8217;m not even sure that the iPad is such a great product (although, after having played with my boss&#8217;s iPad, I have gotta say, it&#8217;s pretty cool!!) compared to other products, but I think that Apple sold the iPad over the years by making so many people uncontrollably curious about what the next Apple product can do, or what can be done with it, as the case may be.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/_EJJgBOZl6IwTzYx8MVuiTvSjxY/0/da"><img src="http://feedads.g.doubleclick.net/~a/_EJJgBOZl6IwTzYx8MVuiTvSjxY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/_EJJgBOZl6IwTzYx8MVuiTvSjxY/1/da"><img src="http://feedads.g.doubleclick.net/~a/_EJJgBOZl6IwTzYx8MVuiTvSjxY/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=YTn2v55HiYM:yzYC3PP4bIw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=YTn2v55HiYM:yzYC3PP4bIw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=YTn2v55HiYM:yzYC3PP4bIw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=YTn2v55HiYM:yzYC3PP4bIw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?i=YTn2v55HiYM:yzYC3PP4bIw:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SlightlyRemarkable/~4/YTn2v55HiYM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://slightlyremarkable.com/blog/2010/04/08/i-signed-up-for-orkut-and-i-dont-know-what-it-is/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>jQuery, IE6 and the Display Property</title>
		<link>http://slightlyremarkable.com/blog/2010/04/07/jquery-ie6-and-the-display-property/</link>
		<comments>http://slightlyremarkable.com/blog/2010/04/07/jquery-ie6-and-the-display-property/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 19:52:12 +0000</pubDate>
		<dc:creator>Jona</dc:creator>
				<category><![CDATA[Site News]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://slightlyremarkable.com/blog/?p=322</guid>
		<description><![CDATA[<p>This is a note to myself and anyone else encountering the following JavaScript error in IE6.</p>
<pre>
Could not get display property. Invalid argument.
</pre>
<p>This error applies specifically to jQuery when using the <code>animate</code> method. The <code>animate</code> method works only in steps, so you can&#8217;t toss in CSS commands sloppily (although other browsers will treat this okay). Instead, you have to specify the CSS separately.</p>
<p>In other words, your original function may look like this:</p>
<pre>
$("#myObject").animate({
      display : 'block',
      top: '+=10px'
});
</pre><p>&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>This is a note to myself and anyone else encountering the following JavaScript error in IE6.</p>
<pre>
Could not get display property. Invalid argument.
</pre>
<p>This error applies specifically to jQuery when using the <code>animate</code> method. The <code>animate</code> method works only in steps, so you can&#8217;t toss in CSS commands sloppily (although other browsers will treat this okay). Instead, you have to specify the CSS separately.</p>
<p>In other words, your original function may look like this:</p>
<pre>
$("#myObject").animate({
      display : 'block',
      top: '+=10px'
});
</pre>
<p>But for it to work in IE6, you&#8217;ll need to revise it to the more verbose:</p>
<pre>
$("#myObject").css({
      display: 'block'
}).animate({
      top: '+=10px'
});
</pre>
<p>In some cases, you may get the old JavaScript error that IE throws whenever it gets confused:</p>
<pre>
Object doesn't support this property or method.
</pre>
<p>Always be careful not to use the <code>animate</code> method as short-hand for the <code>css</code> method, as doing so may cause IE6 to simply destroy all of your associated/caller functions and report that they don&#8217;t exist. There&#8217;s not really any simple way to debug this error, either, so just check for it whenever you can&#8217;t figure out what&#8217;s wrong.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/uRwIhGSRHkRleIg5oP6L9IzHLAw/0/da"><img src="http://feedads.g.doubleclick.net/~a/uRwIhGSRHkRleIg5oP6L9IzHLAw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/uRwIhGSRHkRleIg5oP6L9IzHLAw/1/da"><img src="http://feedads.g.doubleclick.net/~a/uRwIhGSRHkRleIg5oP6L9IzHLAw/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=30y7fnHy364:SVt8rjeF9Nw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=30y7fnHy364:SVt8rjeF9Nw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=30y7fnHy364:SVt8rjeF9Nw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=30y7fnHy364:SVt8rjeF9Nw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?i=30y7fnHy364:SVt8rjeF9Nw:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SlightlyRemarkable/~4/30y7fnHy364" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://slightlyremarkable.com/blog/2010/04/07/jquery-ie6-and-the-display-property/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>Design Sandboxing</title>
		<link>http://slightlyremarkable.com/blog/2010/04/03/design-sandboxing/</link>
		<comments>http://slightlyremarkable.com/blog/2010/04/03/design-sandboxing/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 23:30:13 +0000</pubDate>
		<dc:creator>Jona</dc:creator>
				<category><![CDATA[Site News]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://slightlyremarkable.com/blog/?p=319</guid>
		<description><![CDATA[<p>Today, I upgraded to <a href="http://wordpress.org/">Wordpress</a> 2.9.2, and in the process I decided to play with some CSS3. If you&#8217;re browsing with Firefox, you may notice a completely new look here. Expect it to change frequently. I&#8217;m not serving the CSS3 goodness to other browsers that support it (notably WebKit-based browsers and Opera) because of the sheer magnitude of non-standard CSS3 properties (I can&#8217;t just duplicate and copy vendor prefixes &#8212; the actual order of the properties changes).</p>
<p>So, if you <em>are</em> using Firefox, you&#8217;re&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Today, I upgraded to <a href="http://wordpress.org/">Wordpress</a> 2.9.2, and in the process I decided to play with some CSS3. If you&#8217;re browsing with Firefox, you may notice a completely new look here. Expect it to change frequently. I&#8217;m not serving the CSS3 goodness to other browsers that support it (notably WebKit-based browsers and Opera) because of the sheer magnitude of non-standard CSS3 properties (I can&#8217;t just duplicate and copy vendor prefixes &#8212; the actual order of the properties changes).</p>
<p>So, if you <em>are</em> using Firefox, you&#8217;re going to see a new gray/brown/green theme that&#8217;s going on. Complete with shadows, rounded corners, and some interesting gradient combinations. I managed to procure some fairly complex gradients, but you may be surprised when you learn that the new look has absolutely <strong>no graphics</strong> whatsoever. All the gradients (even those ones that look like images) are CSS3. It&#8217;s beautiful, no?</p>
<p>I&#8217;m looking forward to the day when I can serve these kinds of styles to all browsers and have them behave as expected.</p>
<p>Oh, and for the record, the only thing that Firefox users get is the stylesheet &#8212; I&#8217;m not serving any different HTML or anything, despite how reorganized the content actually is presented.</p>
<p>So, enjoy! =)</p>

<p><a href="http://feedads.g.doubleclick.net/~a/mddMUugjSfaQ2VzVrhmPTLYrGFc/0/da"><img src="http://feedads.g.doubleclick.net/~a/mddMUugjSfaQ2VzVrhmPTLYrGFc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/mddMUugjSfaQ2VzVrhmPTLYrGFc/1/da"><img src="http://feedads.g.doubleclick.net/~a/mddMUugjSfaQ2VzVrhmPTLYrGFc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=rlcg3KGKofc:yCrWb3huajA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=rlcg3KGKofc:yCrWb3huajA:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=rlcg3KGKofc:yCrWb3huajA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=rlcg3KGKofc:yCrWb3huajA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?i=rlcg3KGKofc:yCrWb3huajA:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SlightlyRemarkable/~4/rlcg3KGKofc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://slightlyremarkable.com/blog/2010/04/03/design-sandboxing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>GrayBitten</title>
		<link>http://slightlyremarkable.com/blog/2010/04/02/graybitten/</link>
		<comments>http://slightlyremarkable.com/blog/2010/04/02/graybitten/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 04:13:07 +0000</pubDate>
		<dc:creator>Jona</dc:creator>
				<category><![CDATA[Site News]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[buzz]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://slightlyremarkable.com/blog/2010/04/02/graybitten/</guid>
		<description><![CDATA[<p>Uh-oh, don&#8217;t look now, but a new <a href="http://alistapart.com/">A List Apart</a> article on contrast on the Web, entitled &#8220;<a href="http://www.alistapart.com/articles/contrast-is-king/">Contrast Is King</a>&#8221; makes note of the <a href="http://graybit.com/">GrayBit</a> tool and its use. Developed by <a href="http://beast-blog.com/">Mike Cherim</a> and I several years ago, this tool has been up for awhile, but it seems like it&#8217;s finally catching on as a useful tool to add to the Web developer&#8217;s arsenal. I&#8217;m excited to have been part of something that contributed to the future of the Web, in&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Uh-oh, don&#8217;t look now, but a new <a href="http://alistapart.com/">A List Apart</a> article on contrast on the Web, entitled &#8220;<a href="http://www.alistapart.com/articles/contrast-is-king/">Contrast Is King</a>&#8221; makes note of the <a href="http://graybit.com/">GrayBit</a> tool and its use. Developed by <a href="http://beast-blog.com/">Mike Cherim</a> and I several years ago, this tool has been up for awhile, but it seems like it&#8217;s finally catching on as a useful tool to add to the Web developer&#8217;s arsenal. I&#8217;m excited to have been part of something that contributed to the future of the Web, in its quality and accessibility.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/h0IOelZ7RZYGe7tnAv6Gsqq3qmM/0/da"><img src="http://feedads.g.doubleclick.net/~a/h0IOelZ7RZYGe7tnAv6Gsqq3qmM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/h0IOelZ7RZYGe7tnAv6Gsqq3qmM/1/da"><img src="http://feedads.g.doubleclick.net/~a/h0IOelZ7RZYGe7tnAv6Gsqq3qmM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=9yqNTCdAyJo:TIxpF8Jg0vQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=9yqNTCdAyJo:TIxpF8Jg0vQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=9yqNTCdAyJo:TIxpF8Jg0vQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=9yqNTCdAyJo:TIxpF8Jg0vQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?i=9yqNTCdAyJo:TIxpF8Jg0vQ:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SlightlyRemarkable/~4/9yqNTCdAyJo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://slightlyremarkable.com/blog/2010/04/02/graybitten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>A Common Purpose</title>
		<link>http://slightlyremarkable.com/blog/2010/03/27/a-common-purpose/</link>
		<comments>http://slightlyremarkable.com/blog/2010/03/27/a-common-purpose/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 20:00:54 +0000</pubDate>
		<dc:creator>Jona</dc:creator>
				<category><![CDATA[Site News]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Thought]]></category>

		<guid isPermaLink="false">http://slightlyremarkable.com/blog/?p=309</guid>
		<description><![CDATA[<p>Several weeks ago, my employer sent my coworkers, boss, her boss, and myself to a one-day seminar downtown to learn about development (a term that has a specific meaning in the context of my employer&#8217;s line of business; if you don&#8217;t know what it means, don&#8217;t worry about it). During the course of this educational session, we were provided a series of 20 questions that we answered about ourselves, and 20 additional questions about how we believed others perceived us. It was a personality quiz,&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Several weeks ago, my employer sent my coworkers, boss, her boss, and myself to a one-day seminar downtown to learn about development (a term that has a specific meaning in the context of my employer&#8217;s line of business; if you don&#8217;t know what it means, don&#8217;t worry about it). During the course of this educational session, we were provided a series of 20 questions that we answered about ourselves, and 20 additional questions about how we believed others perceived us. It was a personality quiz, of sorts.</p>
<p>Now, I&#8217;m awfully skeptical of personality quizzes, because I believe they are self-fulfilling prophecies. At least, for a person such as myself, the results are always skewed to nearly <em>exactly</em> what I expected, and that isn&#8217;t because I know myself very well, but rather because I anticipate how the answers I choose will affect my results. In other words, I have an introverted personality because I answer questions that I <em>know</em> will classify me as an introvert. Savvy?</p>
<p>Nevertheless, I was asked to participate, and so I did. I&#8217;m not sure that I fully grasped the results, and I&#8217;m not sure that I ever will, but I am still, to this day, learning more and more about myself as a result of this personality quiz. If nothing else, the personality quiz was my key takeaway from the seminar.</p>
<p>So, let&#8217;s talk about this quiz. It&#8217;s set up in a very interesting way, classifying you primarily as one of four personality types (although everyone has <em>some measure</em> of each!). They are:</p>
<dl>
<dt>Dominance</dt>
<dd>The &#8220;take charge&#8221; trait</dd>
<dt>Extroversion</dt>
<dd>The &#8220;people&#8221; trait</dd>
<dt>Pace</dt>
<dd>The &#8220;patience&#8221; trait</dd>
<dt>Conformity</dt>
<dd>The &#8220;systems&#8221; trait</dd>
</dl>
<p>Now, from first to last, these traits follow a trend. The most dominant personality is strong and cares nothing of what other people think; the extroverted personality is very people-oriented and seeks happiness in relationships (and these aren&#8217;t only people-based; one could conceivably have a relationship that relates the sun to happiness itself). Pace personalities are introverted in nature and focus largely on the way they are seen by others, rather than how they feel or wish to behave of themselves. And, lastly, conformity personalities are heavily systematic, supportive, and find comfort in routines and predictable, planned patterns.</p>
<p>I&#8217;m not going to go through and describe what the quiz is or how it works. I am, however, going to talk about some of my own personal results of this quiz and what I believe they actually mean to me.</p>
<p>The most interesting thing that I find is that, while I believe this quiz nailed me <strong>perfectly</strong>, there are a few items that I strongly disagree with. Or did, when I first read them. Yet, over time, having seen myself and the way I behave, I have discovered that <em>the aspects of my personality identified by the quiz which I most disagreed with are, in fact, the most true.</em> My own personal denial of some of these aspects of my personality would make it evident that they wouldn&#8217;t appear in the results, since I answered the questions for the quiz, and yet <em>the quiz results disagreed with my answers.</em></p>
<p>I won&#8217;t go through the results and analyze them in their entirety &#8212; at least not in this entry &#8212; but what I do want to focus on is one such segment of the quiz results which I believed was inaccurate at first glance. Today, it occurred to me that this aspect of my personality was accurate: <em>&#8220;seeks a common purpose.&#8221;</em></p>
<p>Everyone has more or less of the four qualities that this survey calculates. My level of conformity, for example, indicates that I am &#8220;careful, thorough, dependable, conservative and systems oriented.&#8221; That&#8217;s pretty accurate. My dominance level? Agreeable as well: &#8220;You are supportive, collaborative and modest. You may place importance on security and prefer to work with leadership that has a strong sense of direction and purpose.&#8221;</p>
<p>Whoa, wait. That last part has some interesting implications. Okay, yeah, I&#8217;m supportive, collaborative and modest, I suppose. I can live with that. But what&#8217;s this &#8220;prefer to work with leadership that has a strong sense of direction and purpose&#8221;?</p>
<p>Most clearly, that last sentence means I naturally seek a support role, being the reliable platform upon which someone else &#8212; with a strong sense of leadership &#8212; may ride to pursue a goal that we share in common. Now, I never saw that as &#8220;seeks a common purpose&#8221; until today.</p>
<p>The quiz analyzes several other aspects of one&#8217;s personality, in addition to their primary traits. That is, their decision-making process or, more precisely, their sense of logic. Furthermore, the quiz analyzes &#8220;energy styles,&#8221; which dictate one&#8217;s velocity and endurance for approaching and accomplishing tasks. Of these energy results, the quiz states that primarily, my energy style is &#8220;allegiance.&#8221; And what does that mean? It means I have &#8220;a follow-through, supportive style. Dedicated to completing a predetermined project,&#8221; and, get this, a &#8220;sense of connection to a common purpose.&#8221;</p>
<p>Whoa, there it is again. I&#8217;ve always believed myself to be a leader of sorts, but that&#8217;s really an aspect of my dominance overtaking my extroversion; in other words, on a scale, my personality is more dominant than extroverted, but far more pace and conformity than the other two. Thus, if I am put in an authoritative role or in a position where it is I that must make decisions for myself or a group, then I <em>step up to the role and take charge.</em> However, I&#8217;m not typically given that opportunity, and I don&#8217;t frequently put myself into that position intentionally because of my stronger pace/conformity tendencies.</p>
<p>So, back to this whole &#8220;common purpose&#8221; thing. For some time, I disagreed with the notion that I was remotely interested in a common purpose, and this I believe stems from another aspect of my personality, which says that I &#8220;choose to work alone, and will prefer to interact with close friends and associates.&#8221; Yet, I really <em>do</em> find gratification in supporting a common purpose.</p>
<p>This morning, as I was returning home from a quick coffee trip, I found myself at a red light in front of a beige Chevy truck. When the light turned green, the person in front of me was driving slowly, and the person in the lane to my left was driving even more slowly. Naturally, I made my way in front of the person in the left lane to achieve the legal speed limit. This Chevy truck, seemingly reluctant at first, eventually became dissatisfied with his position behind the other vehicle and eventually changed lanes to get behind me once again.</p>
<p>As we continued down the road, we managed to find ourselves at another red light. Round 2. This time, there were no vehicles in front of me, but there was a person in the right lane, which I needed to compete for, as my turn was just a short distance from the light. The Chevy truck was behind me, and when the light turned green, I sped up quickly to get in front of the person in the right lane. This is where I felt a connection to the driver in the Chevy truck. After I sped up quickly and moved into the other lane, the truck also sped up and actually passed me rather quickly (despite my reaching the speed limit already).</p>
<p>How did I feel at that moment? I felt empowered! More accurately, I felt like I had empowered someone else, which makes clear my desire to seek a supportive role. I felt like I had started something, built the foundation upon which this fellow motorist sailed his ship. I felt connected to this person, whom I, through my own behavior, empowered to reach his potential, to achieve the goal that he or she <em>really wanted.</em> Sometimes, I think people on the road are careful about what will happen &#8212; the risks involved with doing what they want to do, either by law enforcement or disapproval from other motorists. Yet, this person on the road today was able to do what he really wanted because I showed him that he can. And that connection brought me gratification.</p>
<p>To recap, it seems that one&#8217;s connection to a common purpose is derived from naturally finding satisfaction in playing a supportive role. That role points a person of my personality type to follow someone whose purpose is the same or similar to my own, and because following that person and supporting them provides gratification, so does connecting with anyone who follows the same mindset or shares the same or similar goals.</p>
<p>It&#8217;s funny that, zooming out a little bit, as much of an introvert as I am, it seems that <em>even introverts seek connection with people</em> in some, often invisible capacity. Introverts and extroverts aren&#8217;t so different; we&#8217;re people, we just interact differently at a different pace, but ultimately we seek the same results. Friendships, relationships that matter, happiness, and a connection with others through some medium &#8212; common purpose, most notably for a supportive introvert such as myself.</p>
<p>More details, I think, can be extrapolated from this information. I believe I&#8217;ve merely scraped the tip of the iceberg from what this information really means about who I am and how I behave. I&#8217;m quite amazed at the accuracy of this quiz, though, and how I can continue learning more about myself every day by continuously evaluating and analyzing myself, and comparing those infrequent and oft impromptu epiphanies with the answers that have not yet been revealed to the my mind as true understanding (although they already exist on paper in these quiz results, I just can&#8217;t see them!).</p>

<p><a href="http://feedads.g.doubleclick.net/~a/ZANTC3vLGD7YV-om5o_v7Gb83S8/0/da"><img src="http://feedads.g.doubleclick.net/~a/ZANTC3vLGD7YV-om5o_v7Gb83S8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ZANTC3vLGD7YV-om5o_v7Gb83S8/1/da"><img src="http://feedads.g.doubleclick.net/~a/ZANTC3vLGD7YV-om5o_v7Gb83S8/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=tHKI26X_tr8:K4CpjoXABkI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=tHKI26X_tr8:K4CpjoXABkI:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=tHKI26X_tr8:K4CpjoXABkI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=tHKI26X_tr8:K4CpjoXABkI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?i=tHKI26X_tr8:K4CpjoXABkI:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SlightlyRemarkable/~4/tHKI26X_tr8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://slightlyremarkable.com/blog/2010/03/27/a-common-purpose/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>XPath Magic</title>
		<link>http://slightlyremarkable.com/blog/2010/03/05/xpath-magic/</link>
		<comments>http://slightlyremarkable.com/blog/2010/03/05/xpath-magic/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 04:23:56 +0000</pubDate>
		<dc:creator>Jona</dc:creator>
				<category><![CDATA[Site News]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[xpath]]></category>
		<category><![CDATA[xslt]]></category>

		<guid isPermaLink="false">http://slightlyremarkable.com/blog/?p=295</guid>
		<description><![CDATA[<p>Recently, I was dealing with an XSLT stylesheet at work where our CMS (<a href="http://www.hannonhill.com/">Cascade Server</a>) runs mostly off of XML and XSLT for its theme/content development functionality. My project was to create an RSS feed for a list of files (for a gallery template). Most of it was pretty simple, but I got hung up on a somewhat unique problem. Allow me to describe it in detail.</p>
<p>The CMS utilizes a built-in &#8220;index block&#8221; function that outputs XML data based on several options. This&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Recently, I was dealing with an XSLT stylesheet at work where our CMS (<a href="http://www.hannonhill.com/">Cascade Server</a>) runs mostly off of XML and XSLT for its theme/content development functionality. My project was to create an RSS feed for a list of files (for a gallery template). Most of it was pretty simple, but I got hung up on a somewhat unique problem. Allow me to describe it in detail.</p>
<p>The CMS utilizes a built-in &#8220;index block&#8221; function that outputs XML data based on several options. This XML is structured according to the CMS&#8217;s specification, so there&#8217;s no way to modify the XML to the degree that I want &#8212; I just have to run the XSLT to pull out the data I want. This works fine <em>except</em> for when you&#8217;re trying to use <code>&lt;xsl:sort /&gt;</code> tag inside a for-each loop and access un-nested XML within that sort directive. Is that a little unclear? It&#8217;s worse than you think it is.</p>
<p>Here&#8217;s an example of the XML I was dealing with.</p>
<pre>
&lt;data&gt;
  &lt;system-index-block current-time="1267845784864" name="galleries" type="folder"&gt;
    &lt;system-page current="true" id="d2015499ac100f91009f8ac15ab8a50c"&gt;
      &lt;name&gt;gallery.rss&lt;/name&gt;
      &lt;is-published&gt;true&lt;/is-published&gt;
      &lt;last-published-on&gt;1267825368024&lt;/last-published-on&gt;
      &lt;last-published-by&gt;jrfenocc&lt;/last-published-by&gt;
      &lt;title&gt;Gallery&lt;/title&gt;
      &lt;author&gt;Jona&lt;/author&gt;
      &lt;description&gt;Gallery of images.&lt;/description&gt;
      &lt;display-name&gt;Gallery&lt;/display-name&gt;
      &lt;path&gt;/Web Site/galleries/gallery.rss&lt;/path&gt;
      &lt;created-by&gt;jrfenocc&lt;/created-by&gt;
      &lt;created-on&gt;1266243687406&lt;/created-on&gt;
      &lt;last-modified-by&gt;jrfenocc&lt;/last-modified-by&gt;
      &lt;last-modified&gt;1267825336186&lt;/last-modified&gt;
      &lt;system-data-structure definition-path="Gallery Bank-new"&gt;
        &lt;GalleryBank&gt;
          &lt;pagesize&gt;2&lt;/pagesize&gt;
          &lt;sort&gt;Randomize&lt;/sort&gt;
          &lt;Gallery&gt;
            &lt;title&gt;B - Photo 2&lt;/title&gt;
            &lt;image&gt;
              &lt;content /&gt;
              &lt;path&gt;/Web Site/galleries/gallery/081107_2 INvesiture
              Ceramony_689.jpg&lt;/path&gt;
              &lt;name&gt;081107_2 INvesiture Ceramony_689.jpg&lt;/name&gt;
            &lt;/image&gt;
            &lt;description&gt;photo 2&lt;/description&gt;
            &lt;category&gt;My Category&lt;/category&gt;
          &lt;/Gallery&gt;
          &lt;Gallery&gt;
            &lt;title&gt;A - Photo One&lt;/title&gt;
            &lt;image&gt;
              &lt;content /&gt;
              &lt;path&gt;/Web Site/galleries/gallery/081107_2 INvesiture
              Ceramony_505.jpg&lt;/path&gt;
              &lt;name&gt;081107_2 INvesiture Ceramony_505.jpg&lt;/name&gt;
              &lt;title&gt;Investitute Ceremony&lt;/title&gt;
            &lt;/image&gt;
            &lt;description&gt;photo 1&lt;/description&gt;
            &lt;category&gt;Some Category&lt;/category&gt;
          &lt;/Gallery&gt;
          &lt;Gallery&gt;
            &lt;title&gt;C - Photo 3&lt;/title&gt;
            &lt;image&gt;
              &lt;content /&gt;
              &lt;path&gt;/Web
              Site/galleries/gallery/09122_9163_Community_Leaders_Breakfast_060.jpg&lt;/path&gt;
              &lt;name&gt;09122_9163_Community_Leaders_Breakfast_060.jpg&lt;/name&gt;
            &lt;/image&gt;
            &lt;description&gt;photo 3&lt;/description&gt;
            &lt;category&gt;My Category&lt;/category&gt;
          &lt;/Gallery&gt;
          &lt;Gallery&gt;
            &lt;title&gt;D - Photo 4&lt;/title&gt;
            &lt;image&gt;
              &lt;content /&gt;
              &lt;path&gt;/Web
              Site/galleries/gallery/09122_9163_Community_Leaders_Breakfast_080.jpg&lt;/path&gt;
              &lt;name&gt;09122_9163_Community_Leaders_Breakfast_080.jpg&lt;/name&gt;
            &lt;/image&gt;
            &lt;description&gt;photo 4&lt;/description&gt;
            &lt;category&gt;Some Category&lt;/category&gt;
          &lt;/Gallery&gt;
        &lt;/GalleryBank&gt;
      &lt;/system-data-structure&gt;
    &lt;/system-page&gt;
    &lt;system-folder id="24dd22e3ac100f91009f8ac1daa42427"&gt;
      &lt;name&gt;gallery&lt;/name&gt;
      &lt;is-published&gt;true&lt;/is-published&gt;
      &lt;title&gt;none&lt;/title&gt;
      &lt;path&gt;/Web Site/galleries/gallery&lt;/path&gt;
      &lt;created-by&gt;jrfenocc&lt;/created-by&gt;
      &lt;created-on&gt;1267633823300&lt;/created-on&gt;
      &lt;last-modified-by&gt;jrfenocc&lt;/last-modified-by&gt;
      &lt;last-modified&gt;1267633823300&lt;/last-modified&gt;
      &lt;dynamic-metadata&gt;
        &lt;name&gt;displayInMenu&lt;/name&gt;
        &lt;value&gt;Yes&lt;/value&gt;
      &lt;/dynamic-metadata&gt;
      &lt;system-file id="24dd2c8bac100f91009f8ac152626d31"&gt;
        &lt;name&gt;081107_2 INvesiture Ceramony_505.jpg&lt;/name&gt;
        &lt;is-published&gt;true&lt;/is-published&gt;
        &lt;title&gt;Investitute Ceremony&lt;/title&gt;
        &lt;path&gt;/Web Site/galleries/gallery/081107_2 INvesiture
        Ceramony_505.jpg&lt;/path&gt;
        &lt;created-by&gt;jrfenocc&lt;/created-by&gt;
        &lt;created-on&gt;1267633826933&lt;/created-on&gt;
        &lt;last-modified-by&gt;jrfenocc&lt;/last-modified-by&gt;
        &lt;last-modified&gt;1267646736784&lt;/last-modified&gt;
        &lt;file-size&gt;217550&lt;/file-size&gt;
      &lt;/system-file&gt;
      &lt;system-file id="24dd2d81ac100f91009f8ac11f8a1660"&gt;
        &lt;name&gt;081107_2 INvesiture Ceramony_689.jpg&lt;/name&gt;
        &lt;is-published&gt;true&lt;/is-published&gt;
        &lt;path&gt;/Web Site/galleries/gallery/081107_2 INvesiture
        Ceramony_689.jpg&lt;/path&gt;
        &lt;created-by&gt;jrfenocc&lt;/created-by&gt;
        &lt;created-on&gt;1267633827183&lt;/created-on&gt;
        &lt;last-modified-by&gt;jrfenocc&lt;/last-modified-by&gt;
        &lt;last-modified&gt;1267633827183&lt;/last-modified&gt;
        &lt;file-size&gt;116833&lt;/file-size&gt;
      &lt;/system-file&gt;
      &lt;system-file id="24dd2e4eac100f91009f8ac19426e04c"&gt;
        &lt;name&gt;09122_9163_Community_Leaders_Breakfast_060.jpg&lt;/name&gt;
        &lt;is-published&gt;true&lt;/is-published&gt;
        &lt;path&gt;/Web
        Site/galleries/gallery/09122_9163_Community_Leaders_Breakfast_060.jpg&lt;/path&gt;
        &lt;created-by&gt;jrfenocc&lt;/created-by&gt;
        &lt;created-on&gt;1267633827386&lt;/created-on&gt;
        &lt;last-modified-by&gt;jrfenocc&lt;/last-modified-by&gt;
        &lt;last-modified&gt;1267633827386&lt;/last-modified&gt;
        &lt;file-size&gt;172528&lt;/file-size&gt;
      &lt;/system-file&gt;
      &lt;system-file id="24dd2f1eac100f91009f8ac1b515dbaf"&gt;
        &lt;name&gt;09122_9163_Community_Leaders_Breakfast_080.jpg&lt;/name&gt;
        &lt;is-published&gt;true&lt;/is-published&gt;
        &lt;path&gt;/Web
        Site/galleries/gallery/09122_9163_Community_Leaders_Breakfast_080.jpg&lt;/path&gt;
        &lt;created-by&gt;jrfenocc&lt;/created-by&gt;
        &lt;created-on&gt;1267633827591&lt;/created-on&gt;
        &lt;last-modified-by&gt;jrfenocc&lt;/last-modified-by&gt;
        &lt;last-modified&gt;1267633827591&lt;/last-modified&gt;
        &lt;file-size&gt;172425&lt;/file-size&gt;
      &lt;/system-file&gt;
      &lt;system-folder id="24dd7ae8ac100f91009f8ac1d3c45b3f"&gt;
        &lt;name&gt;thumbs&lt;/name&gt;
        &lt;is-published&gt;true&lt;/is-published&gt;
        &lt;title&gt;thumbs&lt;/title&gt;
        &lt;path&gt;/Web Site/galleries/gallery/thumbs&lt;/path&gt;
        &lt;created-by&gt;jrfenocc&lt;/created-by&gt;
        &lt;created-on&gt;1267633845813&lt;/created-on&gt;
        &lt;last-modified-by&gt;jrfenocc&lt;/last-modified-by&gt;
        &lt;last-modified&gt;1267633845813&lt;/last-modified&gt;
        &lt;dynamic-metadata&gt;
          &lt;name&gt;displayInMenu&lt;/name&gt;
          &lt;value&gt;Yes&lt;/value&gt;
        &lt;/dynamic-metadata&gt;
      &lt;/system-folder&gt;
    &lt;/system-folder&gt;
    &lt;calling-page&gt;
      &lt;system-page current="true" id="d2015499ac100f91009f8ac15ab8a50c"&gt;
        &lt;name&gt;gallery.rss&lt;/name&gt;
        &lt;is-published&gt;true&lt;/is-published&gt;
        &lt;last-published-on&gt;1267825368024&lt;/last-published-on&gt;
        &lt;last-published-by&gt;jrfenocc&lt;/last-published-by&gt;
        &lt;title&gt; Gallery&lt;/title&gt;
        &lt;author&gt;Jona&lt;/author&gt;
        &lt;description&gt;Gallery images for the  site.&lt;/description&gt;
        &lt;display-name&gt; Gallery&lt;/display-name&gt;
        &lt;path&gt;/Web Site/galleries/gallery.rss&lt;/path&gt;
        &lt;created-by&gt;jrfenocc&lt;/created-by&gt;
        &lt;created-on&gt;1266243687406&lt;/created-on&gt;
        &lt;last-modified-by&gt;jrfenocc&lt;/last-modified-by&gt;
        &lt;last-modified&gt;1267825336186&lt;/last-modified&gt;
        &lt;system-data-structure definition-path="Gallery Bank-new"&gt;
          &lt;GalleryBank&gt;
            &lt;pagesize&gt;2&lt;/pagesize&gt;
            &lt;sort&gt;Randomize&lt;/sort&gt;
            &lt;Gallery&gt;
              &lt;title&gt;B - Photo 2&lt;/title&gt;
              &lt;image&gt;
                &lt;content /&gt;
                &lt;path&gt;/Web Site/galleries/gallery/081107_2 INvesiture
                Ceramony_689.jpg&lt;/path&gt;
                &lt;name&gt;081107_2 INvesiture Ceramony_689.jpg&lt;/name&gt;
              &lt;/image&gt;
              &lt;description&gt;photo 2&lt;/description&gt;
              &lt;category&gt;My Category&lt;/category&gt;
            &lt;/Gallery&gt;
            &lt;Gallery&gt;
              &lt;title&gt;A - Photo One&lt;/title&gt;
              &lt;image&gt;
                &lt;content /&gt;
                &lt;path&gt;/Web Site/galleries/gallery/081107_2 INvesiture
                Ceramony_505.jpg&lt;/path&gt;
                &lt;name&gt;081107_2 INvesiture Ceramony_505.jpg&lt;/name&gt;
                &lt;title&gt;Investitute Ceremony&lt;/title&gt;
              &lt;/image&gt;
              &lt;description&gt;photo 1&lt;/description&gt;
              &lt;category&gt;Some Category&lt;/category&gt;
            &lt;/Gallery&gt;
            &lt;Gallery&gt;
              &lt;title&gt;C - Photo 3&lt;/title&gt;
              &lt;image&gt;
                &lt;content /&gt;
                &lt;path&gt;/Web
                Site/galleries/gallery/09122_9163_Community_Leaders_Breakfast_060.jpg&lt;/path&gt;
                &lt;name&gt;09122_9163_Community_Leaders_Breakfast_060.jpg&lt;/name&gt;
              &lt;/image&gt;
              &lt;description&gt;photo 3&lt;/description&gt;
              &lt;category&gt;My Category&lt;/category&gt;
            &lt;/Gallery&gt;
            &lt;Gallery&gt;
              &lt;title&gt;D - Photo 4&lt;/title&gt;
              &lt;image&gt;
                &lt;content /&gt;
                &lt;path&gt;/Web
                Site/galleries/gallery/09122_9163_Community_Leaders_Breakfast_080.jpg&lt;/path&gt;
                &lt;name&gt;09122_9163_Community_Leaders_Breakfast_080.jpg&lt;/name&gt;
              &lt;/image&gt;
              &lt;description&gt;photo 4&lt;/description&gt;
              &lt;category&gt;Some Category&lt;/category&gt;
            &lt;/Gallery&gt;
          &lt;/GalleryBank&gt;
        &lt;/system-data-structure&gt;
      &lt;/system-page&gt;
    &lt;/calling-page&gt;
  &lt;/system-index-block&gt;
&lt;/data&gt;
</pre>
<p>As you may notice, the way this XML is organized, all of the data we need is stored in a <code>&lt;GalleryBank&gt;</code> tag, and each image in the gallery is wrapped in a <code>&lt;Gallery&gt;</code> tag. Now, to create the RSS feed, these Gallery tags are sifted through using a <code>&lt;xsl:for-each /&gt;</code> loop.</p>
<p>However, notice that when we get to the <code>&lt;image&gt;</code> tag, we are only given 3 child elements with essentially only one piece of data: the file name and path to the image. For this reason, <strong>it is impossible to sort by date</strong> since the date created or last modified information &#8212; although it exists &#8212; is not output in the XML by the index block from the CMS! This makes retrieving that data impossible by ordinary means.</p>
<p>The solution to this problem is two-fold. First, the data must be obtained. The only way to get the index block to provide this information is to place all of the necessary images into a sub-directory of the RSS feed page object. So, the structure looks something like this:</p>
<p>The RSS file:</p>
<pre>
/Web Site Target (root)/galleries/gallery.rss
</pre>
<p>The images folder:</p>
<pre>
/Web Site Target (root)/galleries/gallery/
</pre>
<p>With this structure, we can set the index block in the CMS to step into subdirectories of the RSS feed, which provides all of the information that we couldn&#8217;t obtain through the XML of the RSS feed itself (because it only provides the file name and path of the images in question, but no further information).</p>
<p>Of course, the problem is that our XSLT looks like this:</p>
<pre>
&lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&gt;
&lt;xsl:stylesheet version="1.0" xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:date-converter="http://www.hannonhill.com/dateConverter/1.0/"
	xmlns:fn="http://www.w3.org/2005/xpath-functions"
	xmlns:randomizer="http://www.xyz.com/rss/x-randomizer-ns.html"
	xmlns:x_gallery="http://www.xyz.com/rss/x-gallery-ns.html"
	xmlns:xalan="http://xml.apache.org/xalan"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
	&lt;xsl:output indent="yes" method="xml"/&gt;
	&lt;xsl:variable name="baseUri"&gt;http://www.xyz.com/&lt;/xsl:variable&gt;
	&lt;xsl:template match="//system-index-block/system-page[@current='true']"&gt;
		&lt;xsl:variable name="pgsize"&gt;&lt;xsl:value-of select="./system-data-structure/GalleryBank/pagesize"/&gt;&lt;/xsl:variable&gt;
		&lt;xsl:variable name="sortopt"&gt;&lt;xsl:value-of select="./system-data-structure/GalleryBank/sort"/&gt;&lt;/xsl:variable&gt;
		&lt;atom:link href="{$baseUri}[system-asset:page]{./path}[/system-asset:page]" rel="self" type="application/rss+xml"/&gt;
		&lt;x_gallery:pagination&gt;&lt;xsl:value-of select="$pgsize"/&gt;&lt;/x_gallery:pagination&gt;
		&lt;x_gallery:sort&gt;&lt;xsl:value-of select="$sortopt"/&gt;&lt;/x_gallery:sort&gt;
		&lt;xsl:if test="$sortopt = 'Title (alphabetical ascending)'"&gt;
			&lt;xsl:for-each select="./system-data-structure/GalleryBank/Gallery"&gt;
				&lt;xsl:sort data-type="text" order="ascending" select="./title"/&gt;
				&lt;xsl:call-template name="galleryItem"/&gt;
			&lt;/xsl:for-each&gt;
		&lt;/xsl:if&gt;
		&lt;xsl:if test="$sortopt = 'Title (alphabetical descending)'"&gt;
			&lt;xsl:for-each select="./system-data-structure/GalleryBank/Gallery"&gt;
				&lt;xsl:sort data-type="text" order="descending" select="./title"/&gt;
				&lt;xsl:call-template name="galleryItem"/&gt;
			&lt;/xsl:for-each&gt;
		&lt;/xsl:if&gt;
		&lt;xsl:if test="$sortopt = '(no sorting)'"&gt;
			&lt;xsl:for-each select="./system-data-structure/GalleryBank/Gallery"&gt;
				&lt;xsl:call-template name="galleryItem"/&gt;
			&lt;/xsl:for-each&gt;
		&lt;/xsl:if&gt;
	&lt;/xsl:template&gt;
	&lt;xsl:template name="galleryItem"&gt;
		&lt;xsl:variable name="itemPath"&gt;&lt;xsl:value-of select="./image/path"/&gt;&lt;/xsl:variable&gt;
		&lt;item&gt;
			&lt;title&gt;&lt;xsl:value-of select="./title"/&gt;&lt;/title&gt;
			&lt;x_gallery:filename&gt;&lt;xsl:value-of select="./image/name"/&gt;&lt;/x_gallery:filename&gt;
			&lt;description&gt;&lt;xsl:value-of select="./description"/&gt;&lt;/description&gt;
			&lt;content&gt;
				&lt;img alt="{./description}" src="{$baseUri}{substring-after($itemPath,'/Web Site/')}"/&gt;
			&lt;/content&gt;
			&lt;category&gt;&lt;xsl:value-of select="./category"/&gt;&lt;/category&gt;
			&lt;link&gt;
				&lt;xsl:value-of select="$baseUri"/&gt;&lt;xsl:value-of select="substring-after($itemPath,'/Web Site/')"/&gt;
			&lt;/link&gt;
			&lt;guid&gt;
				&lt;xsl:value-of select="$baseUri"/&gt;&lt;xsl:value-of select="substring-after($itemPath,'/Web Site/')"/&gt;
			&lt;/guid&gt;
			&lt;xsl:for-each select="//system-file"&gt;
				&lt;xsl:if test="./path = $itemPath"&gt;
					&lt;x_gallery:date-time&gt;
						&lt;xsl:value-of select="date-converter:convertDate(number(./last-modified),1)"/&gt;
					&lt;/x_gallery:date-time&gt;
					&lt;pubDate&gt;
						&lt;xsl:value-of select="date-converter:convertDate(number(./last-modified))"/&gt;
					&lt;/pubDate&gt;
				&lt;/xsl:if&gt;
			&lt;/xsl:for-each&gt;
		&lt;/item&gt;
	&lt;/xsl:template&gt;
	&lt;xalan:component functions="convertDate" prefix="date-converter"&gt;
		&lt;xalan:script lang="javascript"&gt;
               function convertDate(date,p,cp,ig)
               {    <i>... boring XALAN JS here ...</i>   }
         &lt;/xalan:script&gt;
	&lt;/xalan:component&gt;
	&lt;xalan:component functions="randomize" prefix="randomizer"&gt;
		&lt;xalan:script lang="javascript"&gt;
			function randomize (items) {
				<i>... randomized sorting in XSL? Another day, perhaps. ;-) ... </i>
			}
		&lt;/xalan:script&gt;
	&lt;/xalan:component&gt;
	&lt;xsl:template match="//system-file|//calling-page/system-page|//system-folder"&gt;
	&lt;/xsl:template&gt;
&lt;/xsl:stylesheet&gt;
</pre>
<p>Notice the lines near the beginning which test for the <code>&lt;sort /&gt;</code> element inside the <code>&lt;GalleryBank /&gt;</code> element. This element is an enumeration that can be one of several values (I&#8217;ve only shown 3 of them in the above code). This is fully functional because the data we need to sort by the listed means is available &#8212; we have titles for these images (applied by the Data Definition XML) and it&#8217;s rather easy to sort by nothing.</p>
<p>In XSL, you cannot use the <code>&lt;xsl: sort /&gt;</code> command unless it <strong>immediately</strong> follows either &lt;xsl:for-each /&gt; or &lt;xsl:apply-templates /&gt;. Furthermore, due to context, you can&#8217;t sort an outer for-each loop from inside an inner one. If we are looping through //GalleryBank/Gallery items, we can&#8217;t access the &#8220;matching&#8221; //system-file/last-modified elements because they are not nested within the //GalleryBank/Gallery elements.</p>
<p>In other words, the following won&#8217;t sort the way we want:</p>
<pre>
&lt;xsl:for-each select="./system-data-structure/GalleryBank/Gallery"&gt;
	&lt;xsl:for-each select="//system-file"&gt;
		&lt;xsl:sort data-type="text" order="ascending" select="./last-modified"/&gt;
		&lt;xsl:call-template name="galleryItem"/&gt;
	&lt;/xsl:for-each&gt;
&lt;/xsl:for-each&gt;
</pre>
<p>It would sort based on the current last-modified date, which would sort the //system-file XML, but since it isn&#8217;t nested as part of //GalleryBank/Gallery, it wouldn&#8217;t have any effect on the result &#8212; the output would be the same.</p>
<p>So we need another solution, one with only one for-each loop. My first idea was to use the following:</p>
<pre>
&lt;xsl:for-each select="./system-data-structure/GalleryBank/Gallery"&gt;
	&lt;xsl:sort data-type="text" order="ascending" select="//system-file/last-modified"/&gt;
	&lt;xsl:call-template name="galleryItem"/&gt;
&lt;/xsl:for-each&gt;
</pre>
<p>Of course, this doesn&#8217;t work, either. What&#8217;s happening above is that the XSL is sorting the //GalleryBank/Gallery items based on the value of //system-file/last-modified. The problem with this is that the returned result of //system-file/last-modified is all of the last-modified values in all of the system-file elements, and when XPath references multiple elements, only the first one is returned (unless you&#8217;re using a for-each loop or providing conditions on which XPath can identify a specific element). In other words, the result of the above code is to sort everything by the same exact date!</p>
<p>How, then, can we access and sort by an un-nested element? The trick lies in the syntax of XPath itself. (Yes, the magical solution is coming soon &#8212; you&#8217;ve waited this long!)</p>
<p>I ended up using a reference to the last-modified field by using the following sort command.</p>
<pre>
&lt;xsl:sort data-type="number" order="ascending" select="//system-file/last-modified[parent::*/path = current()/image/path]"/&gt;
</pre>
<p>What does this mean? Well, when we loop through each Gallery item, we need a way to tie the current Gallery item to the system-file element that is un-nested in the XML data. The only data we have that coincides between one Gallery element and one system-file element is the file&#8217;s path element, so we need to compare the current Gallery element&#8217;s path to <em>all</em> of the system-file elements&#8217; paths and return the <em>one</em> system-file element&#8217;s last-modified element if there is a match. Make sense?</p>
<p>Let&#8217;s break down the XPath:</p>
<pre>
//system-file/last-modified[parent::*/path = current()/image/path]
</pre>
<p>In English, you would say, select all last-modified elements that are children of system-file elements and whose system-file parent elements&#8217; child path element is equal to the current for-each loop element&#8217;s image element&#8217;s path element&#8217;s value.</p>
<p>Phew, what a mouthful. The key to this function is the use of <code>current()</code> which allows us to identify where we are in our for-each loop of the <code>GalleryBank</code>. We can thus compare the current <code>GalleryBank/Gallery/image/path</code> value of the for-each loop to all of the <code>//system-file/path</code> elements in the XML <em>in one line</em> and then return the <code>last-modified</code> element, which is a sibling of that specified <code>//system-file/path</code> element. Magical, right?</p>
<p>It gets better, since the actual XSLT I ended up with was even more complicated (using substring functions and XALAN JavaScript to process that funky <code>last-modified</code> number into an actual date that can be sorted). But perhaps I&#8217;ll explain that a little bit more in the future. ;-)</p>
<p>I won&#8217;t go into details regarding what version of XSLT you need and XPath functions namespaces and what have you, but for anyone out there trying to reference un-nested data and use it to sort a different set of XML data, this is your answer! I couldn&#8217;t find this anywhere else on the Internet, so hopefully it&#8217;ll be useful to someone &#8212; and if you DO find it useful or have something to add/optimize, post it in the comments and spread the knowledge! Enjoy!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/yYSuKEKN2ZOoNu-_obyiwzzgKtg/0/da"><img src="http://feedads.g.doubleclick.net/~a/yYSuKEKN2ZOoNu-_obyiwzzgKtg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/yYSuKEKN2ZOoNu-_obyiwzzgKtg/1/da"><img src="http://feedads.g.doubleclick.net/~a/yYSuKEKN2ZOoNu-_obyiwzzgKtg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=HmpVlgKn8qQ:Ez2fyiEYit8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=HmpVlgKn8qQ:Ez2fyiEYit8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=HmpVlgKn8qQ:Ez2fyiEYit8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=HmpVlgKn8qQ:Ez2fyiEYit8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?i=HmpVlgKn8qQ:Ez2fyiEYit8:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SlightlyRemarkable/~4/HmpVlgKn8qQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://slightlyremarkable.com/blog/2010/03/05/xpath-magic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>Come on, Gamefly</title>
		<link>http://slightlyremarkable.com/blog/2010/02/23/come-on-gamefly/</link>
		<comments>http://slightlyremarkable.com/blog/2010/02/23/come-on-gamefly/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 23:55:23 +0000</pubDate>
		<dc:creator>Jona</dc:creator>
				<category><![CDATA[Site News]]></category>
		<category><![CDATA[Entertainment]]></category>
		<category><![CDATA[gamefly]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[Video Games]]></category>

		<guid isPermaLink="false">http://slightlyremarkable.com/blog/2010/02/23/come-on-gamefly/</guid>
		<description><![CDATA[<p>How about you send me one of the games in the top 10 in my game queue, instead of the 15th one, for three consecutive weeks?? It&#8217;s bad enough that I mail the game out Saturday and get the next one Friday. Sure, I&#8217;m paying $10 a month, but $10 a month to play 3 or 4 games for 2 days seems pretty lame to me. I&#8217;m going to go back to Blockbuster if I can&#8217;t ever get the games I want.</p>
<p>I&#8217;ve been using&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>How about you send me one of the games in the top 10 in my game queue, instead of the 15th one, for three consecutive weeks?? It&#8217;s bad enough that I mail the game out Saturday and get the next one Friday. Sure, I&#8217;m paying $10 a month, but $10 a month to play 3 or 4 games for 2 days seems pretty lame to me. I&#8217;m going to go back to Blockbuster if I can&#8217;t ever get the games I want.</p>
<p>I&#8217;ve been using Gamefly for over a year now, and the service has been great so far. Don&#8217;t let down your loyal customers! I&#8217;m not asking for the game at the top of my queue every single time, but at LEAST the top 10 so I don&#8217;t get those semi-crappy filler games that I play when I&#8217;m waiting for new, good games to come out. I understand I can&#8217;t get complete control over what I do get, but why don&#8217;t you let me have more control over what I <strong>DON&#8217;T</strong> get?</p>

<p><a href="http://feedads.g.doubleclick.net/~a/R08_Vn-jYtawhiqhI6lS4_hcCu8/0/da"><img src="http://feedads.g.doubleclick.net/~a/R08_Vn-jYtawhiqhI6lS4_hcCu8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/R08_Vn-jYtawhiqhI6lS4_hcCu8/1/da"><img src="http://feedads.g.doubleclick.net/~a/R08_Vn-jYtawhiqhI6lS4_hcCu8/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=9IUklaofC5M:k4xI_1r0cRk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=9IUklaofC5M:k4xI_1r0cRk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=9IUklaofC5M:k4xI_1r0cRk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SlightlyRemarkable?a=9IUklaofC5M:k4xI_1r0cRk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/SlightlyRemarkable?i=9IUklaofC5M:k4xI_1r0cRk:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SlightlyRemarkable/~4/9IUklaofC5M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://slightlyremarkable.com/blog/2010/02/23/come-on-gamefly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.0/</creativeCommons:license></item>
	</channel>
</rss>

