<?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>Dan Polant :: Web Interaction Designer</title>
	<atom:link href="http://danpolant.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://danpolant.com</link>
	<description></description>
	<lastBuildDate>Sun, 25 Jul 2010 19:34:42 +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>Scrapwalls.com Launch!</title>
		<link>http://danpolant.com/scrapwalls-com-launch/</link>
		<comments>http://danpolant.com/scrapwalls-com-launch/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 19:33:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://danpolant.com/?p=462</guid>
		<description><![CDATA[We are excited to present <a href="http://scrapwalls.com">Scrapwalls</a>, a web application that lets you make shape collages out of your photos!]]></description>
			<content:encoded><![CDATA[<p>I have been working on <a href="http://scrapwalls.com">scrapwalls.com</a> for a few years now with my friends Kevin and Joey, and we just launched a complete redesign of the site.</p>
<p>Scrapwalls is a web application that lets you make a shape collage out of your pictures. It is written in PHP using the Smarty templating engine, and uses VIPS C++ library to manipulate the images. Scrapwalls has been around for a few years, but only in the latest release can you purchase high-resolution posters of your collages. The test orders have gone through correctly, and we&#8217;ve started promoting the site on Google and Facebook.</p>
<p>Please give us feedback if you end up using the site, by emailing me or commenting on this post.</p>
<p>Anyway, we are excited to present <a href="http://scrapwalls.com">scrapwalls.com</a> to the world!</p>
]]></content:encoded>
			<wfw:commentRss>http://danpolant.com/scrapwalls-com-launch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone 4 impressions</title>
		<link>http://danpolant.com/iphone-4-impressions/</link>
		<comments>http://danpolant.com/iphone-4-impressions/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 20:56:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Information Industry]]></category>

		<guid isPermaLink="false">http://danpolant.com/?p=434</guid>
		<description><![CDATA[I have spent the last five years not texting.  My friends thought it was funny that I was  even though I was sophisticated enough to program but not sophisticated enough to text. It&#8217;s true &#8211; I was really bad at T9, the &#8220;smart&#8221; auto-completion engine available on phones without keyboards. It took me at least [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_435" class="wp-caption aligncenter" style="width: 510px"><a rel="attachment wp-att-435" href="http://danpolant.com/iphone-4-impressions/apple-iphone-4/"><img class="size-full wp-image-435" src="http://danpolant.com/wp-content/uploads/2010/07/apple-iphone-4.jpg" alt="" width="500" height="500" /></a><p class="wp-caption-text">More pixels = better</p></div>
<p>I have spent the last five years not texting.  My friends thought it was funny that I was  even though I was sophisticated enough to program but not sophisticated enough to text. It&#8217;s true &#8211; I was really bad at T9, the &#8220;smart&#8221; auto-completion engine available on phones without keyboards. It took me at least twice as long to initiate a conversation using T9 than it took to call some one and either have the conversation, or leave them a voicemail. I&#8217;ve seen people that can mash out messages in T9 faster than I can type, so I know it&#8217;s possible, but I could never go more than a word without having it change what I wanted to say into something completely silly.</p>
<p>So I guess I should have gotten a phone with a keyboard. But honestly, until the iPhone came out, I felt that doing anything on a phone except talking was kind of a joke. I like to think my aversion to T9, and early &#8220;smart phones&#8221; in general was less a matter of ineptitude and more a matter of disgust with the user experience. It all just looked/worked so badly that I wanted nothing to do with it.</p>
<p>I recall the potential for handheld devices dawning on me the first time I saw a webpage display on an iPod touch. The screen was twice as large and had more resolution than anything I had ever seen. There was meaningful and visible detail so small that it would have fit inside of one pixel on a normal phone. The zoom and scroll interactions were completely novel and did not seem like poorly scaled computer screen conventions.</p>
<p>On the iPhone 4, the screen resolution is the single greatest improvement over its predecessors. The pixels are so small you can&#8217;t see them, just like &#8230; real life I suppose. Some would pick the Facetime functionality as the best feature, but since I don&#8217;t use it much I&#8217;m going to focus on the various technological and design-related triumphs that give the iPhone 4 a powerful aesthetic.</p>
<p>The incredible screen resolution provides a startling level of realism to the interface. Anti-aliasing on the curves is imperceptible and perfectly smooth, while surfaces and edges convincingly express reflection and depth. The iPhone proves that subtly is a partner to good design. The gradients used for shine do not span a large color range and are defined and terminated by clean lines that signify a convincing separation of surface in the least amount of pixels possible.</p>
<p>But why do these things matter? Consider this: an interface is a layer of abstraction between an intention and an outcome. People must spend mental resources in order to traverse and decode this metaphor into the action that they want to execute. Giving a digital interface physical properties like reflection, depth and texture lets the human mind skip much of this decoding process, replacing the part of the story that rationalizes interaction with an incredibly complex digital device with the relatively more simple idea that pushing a button makes something happen.</p>
]]></content:encoded>
			<wfw:commentRss>http://danpolant.com/iphone-4-impressions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML playground for drupal</title>
		<link>http://danpolant.com/html-playground-for-drupal/</link>
		<comments>http://danpolant.com/html-playground-for-drupal/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 19:52:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[drupal]]></category>

		<guid isPermaLink="false">http://danpolant.com/?p=430</guid>
		<description><![CDATA[Recently I had to build this. It&#8217;s a simple little app that uses the forms API. Think w3schools.com &#8220;try it yourself.&#8221;



function sg_games_menu&#40;&#41;&#123;


&#160;


&#160; &#160; &#160; &#160; $items&#91;&#8216;html-sandbox&#8217;&#93; = array&#40;


&#160; &#160; &#160; &#160; &#160; &#160; &#160;&#8216;title&#8217; =&#62; t&#40;&#8216;HTML sandbox&#8217;&#41;,


&#160; &#160; &#160; &#160; &#160; &#160; &#160;&#8216;page callback&#8217; =&#62; &#8216;sg_games_html&#8217;,


&#160; &#160; &#160; &#160; &#160; &#160; &#160;&#8216;access arguments&#8217; =&#62; array&#40;&#8216;access [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I had to build this. It&#8217;s a simple little app that uses the forms API. Think <a href="w3schools.com">w3schools.com</a> &#8220;try it yourself.&#8221;</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">function</span> sg_games_menu<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$items</span><span class="br0">&#91;</span><span class="st0">&#8216;html-sandbox&#8217;</span><span class="br0">&#93;</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&#8216;title&#8217;</span> =&gt; t<span class="br0">&#40;</span><span class="st0">&#8216;HTML sandbox&#8217;</span><span class="br0">&#41;</span>,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&#8216;page callback&#8217;</span> =&gt; <span class="st0">&#8216;sg_games_html&#8217;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&#8216;access arguments&#8217;</span> =&gt; <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&#8216;access content&#8217;</span><span class="br0">&#41;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&#8216;type&#8217;</span> =&gt; PAGE_CALLBACK,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$items</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> sg_games_html<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$output</span> = drupal_get_form<span class="br0">&#40;</span><span class="st0">&#8216;sg_games_html_form&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$output</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> sg_games_html_form<span class="br0">&#40;</span> <span class="re0">$form_state</span> <span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span> !<span class="re0">$output</span> = <span class="re0">$form_state</span><span class="br0">&#91;</span><span class="st0">&#8216;storage&#8217;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;values&#8217;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;editor&#8217;</span><span class="br0">&#93;</span> <span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$output</span> = <span class="st0">&#8216;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&lt;h1&gt;Try entering some html!&lt;/h1&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&#8216;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$form</span><span class="br0">&#91;</span><span class="st0">&#8216;editor&#8217;</span><span class="br0">&#93;</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#8216;#type&#8217;</span> =&gt; <span class="st0">&#8216;textarea&#8217;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#8216;#title&#8217;</span> =&gt; t<span class="br0">&#40;</span><span class="st0">&#8216;Enter your HTML code here&#8217;</span><span class="br0">&#41;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#8216;#default_value&#8217;</span> =&gt; <span class="re0">$output</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$form</span><span class="br0">&#91;</span><span class="st0">&#8216;submit&#8217;</span><span class="br0">&#93;</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#8216;#type&#8217;</span> =&gt; <span class="st0">&#8216;submit&#8217;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#8216;#value&#8217;</span> =&gt; <span class="st0">&#8216;Try it!&#8217;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$form</span><span class="br0">&#91;</span><span class="st0">&#8216;output&#8217;</span><span class="br0">&#93;</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#8216;#value&#8217;</span> =&gt; <span class="re0">$output</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#8216;#prefix&#8217;</span> =&gt; <span class="st0">&#8216;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&lt;div id=&quot;sg-games-output&quot;&gt;&#8217;</span>,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#8216;#suffix&#8217;</span> =&gt; <span class="st0">&#8216;&lt;/div&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&#8216;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$form</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> sg_games_html_form_submit<span class="br0">&#40;</span><span class="re0">$form</span>, &amp;amp;<span class="re0">$form_state</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$form_state</span><span class="br0">&#91;</span><span class="st0">&#8216;storage&#8217;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;values&#8217;</span><span class="br0">&#93;</span> = <span class="re0">$form_state</span><span class="br0">&#91;</span><span class="st0">&#8216;values&#8217;</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$form_state</span><span class="br0">&#91;</span><span class="st0">&#8216;rebuild&#8217;</span><span class="br0">&#93;</span> = <span class="kw2">TRUE</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>All it really needs to do is hand off the form_state back into storage, rebuild the same form, and use part of the storage array as the default value of the editor field. </p>
<p>This one is really going to send shockwaves through the Drupal community <img src='http://danpolant.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://danpolant.com/html-playground-for-drupal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Discussion of Eyes in Science Fiction</title>
		<link>http://danpolant.com/through-the-eyes/</link>
		<comments>http://danpolant.com/through-the-eyes/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 01:15:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Critical Writing]]></category>

		<guid isPermaLink="false">http://danpolant.com/?p=398</guid>
		<description><![CDATA[Watching Chronicles of riddick again made me think about the strangely prominent role that artificial eyes play in the sci-fi genre.]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-408" href="http://danpolant.com/through-the-eyes/vin-diesel-riddick/"><img class="aligncenter size-full wp-image-408" title="Riddick" src="http://danpolant.com/wp-content/uploads/2010/06/Vin-Diesel-Riddick.jpg" alt="" width="500" height="265" /></a></p>
<p>Watching <em>Chronicles of riddick </em>again made me think about the unusually prominent role that artificial eyes play in the sci-fi genre. Quite often we encounter eyes that shine with a non-human or super-human light, technologically augmented and enjoyed at cost.</p>
<p>Why this preoccupation with augmented vision? Profoundly, technology is a partner in the modern sensory experience. We see farther and more because of the channels we build to conduct information and transmit our experiences and knowledge. &#8221;If only you knew what I&#8217;ve seen with your eyes,&#8221; says Roy Batty in <em>Blade Runner</em>, to his human creator Tyrell. Who is the owner of Roy&#8217;s eyes, or our own eyes and sensory experience? Science fiction offers an alternative to the gestalt notion of the human body, proposing that the vessels of our experience may not belong to a monolithic &#8220;us.&#8221; In <em>Blade Runner</em>, eyes appear luminous with reflected images that overlay the features of eye along with metaphorically, the experience of seeing. Think of the opening sequence as an example of this; the close shot of an eye, lit by the industrial fires. Roy sees just as we do: partly by the glow of Promethean fire and partly by the  natural processes responsible for sight.</p>
<div id="attachment_405" class="wp-caption aligncenter" style="width: 499px"><a rel="attachment wp-att-405" href="http://danpolant.com/through-the-eyes/blade-runner-eye/"><img class="size-full wp-image-405" title="Roy's Eye in Blade Runner" src="http://danpolant.com/wp-content/uploads/2010/06/blade-runner-eye.png" alt="" width="489" height="206" /></a><p class="wp-caption-text">Promethean Sight</p></div>
<p>Sparks of technological creation define the dark region of the eye, a sensory void awaiting fulfillment. The brilliant eyes of the artificial owl in Tyrell&#8217;s conference room provide a related juxtaposition, between the seemingly real and the saliently artificial.</p>
<div id="attachment_422" class="wp-caption aligncenter" style="width: 510px"><a rel="attachment wp-att-422" href="http://danpolant.com/through-the-eyes/blade-runner-owl/"><img class="size-full wp-image-422" title="blade-runner-owl" src="http://danpolant.com/wp-content/uploads/2010/06/blade-runner-owl.jpg" alt="" width="500" height="306" /></a><p class="wp-caption-text">Something is out of place</p></div>
<p>Ridley Schott invokes this realistic image of an owl to communicate artificiality in the scene. The eye pictured here appears highly schematized, recalling HAL&#8217;s watchful eye in <em>2001: A Space Oddessy</em>.</p>
<div id="attachment_451" class="wp-caption aligncenter" style="width: 499px"><a rel="attachment wp-att-451" href="http://danpolant.com/through-the-eyes/hal/"><img class="size-medium wp-image-451" title="Hal 9000" src="http://danpolant.com/wp-content/uploads/2010/06/hal-700x525.jpg" alt="" width="489" height="366" /></a><p class="wp-caption-text">Hal 9000</p></div>
<p>Stripped down to a set of features minimally required to signal that it is in fact an eye, Hal&#8217;s sensory interface represents aesthetic efficiency. Technology has created an aesthetic cult of usability that praises a high signal-to-noise ratio over naturalism and richness. Will such an aesthetic promote sanity or madness? Hal embodies both &#8211; his logic underlies his will to murder. Hal is becoming human, experiencing the struggle between reason and personality, the ineffable abstraction of reason.</p>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://danpolant.com/through-the-eyes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to: Force download of links in Magento</title>
		<link>http://danpolant.com/how-to-force-download-of-links-in-magento/</link>
		<comments>http://danpolant.com/how-to-force-download-of-links-in-magento/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 19:02:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[Magento]]></category>

		<guid isPermaLink="false">http://danpolant.com/?p=413</guid>
		<description><![CDATA[It's an easy fix. I'll tell you about the hack way to do it, if you like doing it the right way have fun creating 7-8 files.]]></description>
			<content:encoded><![CDATA[<p>Real quick: find DownloadController.php and look at lines 78 &#8211; 81:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"> &nbsp; &nbsp; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$contentDisposition</span> = <span class="re0">$helper</span>-&gt;<span class="me1">getContentDisposition</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="re0">$this</span>-&gt;<span class="me1">getResponse</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-&gt;<span class="me1">setHeader</span><span class="br0">&#40;</span><span class="st0">&#8216;Content-Disposition&#8217;</span>, <span class="re0">$contentDisposition</span> . <span class="st0">&#8216;; filename=&#8217;</span>.<span class="re0">$fileName</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Change line 80 (line 3 in this excerpt) to:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">-&gt;<span class="me1">setHeader</span><span class="br0">&#40;</span><span class="st0">&#8216;Content-Disposition&#8217;</span>, <span class="st0">&#8216;attachment&#8217;</span> . <span class="st0">&#8216;; filename=&#8217;</span>.<span class="re0">$fileName</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>That should make it work. As far as I know, the .htaccess solutions to this problem don&#8217;t work in Magento, because Magento encrypts the filename and extension, and the path does not represent a real location. </p>
<p>Note: I usually don&#8217;t go around hacking the core files of a CMS, but sometimes I make an exception with deep extensions within Magento because it just takes so darn long to follow the variables through to their various sources in the code. Not that I don&#8217;t know how to do it &#8230;</p>
<p>By the way, if you&#8217;re not using Magento and just have regular paths to your files, put this in your .htaccess:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">AddType application/octet-stream .mov .mp3 .zip</div>
</li>
</ol>
</div>
<p><a href="http://www.askapache.com/htaccess/htaccess.html">This</a> is one of the best .htaccess resources I&#8217;ve seen and it explains by example.</p>
<p>You can of course change the list of extension if you want. Hope this helps.</p>
]]></content:encoded>
			<wfw:commentRss>http://danpolant.com/how-to-force-download-of-links-in-magento/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BP Group Control hosted on WordPress.org</title>
		<link>http://danpolant.com/bp-group-control-hosted-on-wordpress-org/</link>
		<comments>http://danpolant.com/bp-group-control-hosted-on-wordpress-org/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 02:36:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bp group control]]></category>
		<category><![CDATA[buddypress]]></category>

		<guid isPermaLink="false">http://danpolant.com/?p=386</guid>
		<description><![CDATA[Wordpress.org link: <a href="http://wordpress.org/extend/plugins/bp-group-control/">http://wordpress.org/extend/plugins/bp-group-control/</a>]]></description>
			<content:encoded><![CDATA[<p>WordPress.org link: <a href="WordPress.org link: http://wordpress.org/extend/plugins/bp-group-control/">http://wordpress.org/extend/plugins/bp-group-control/</a><br/></p>
<p>Buddypress.org link: <a href="WordPress.org link: http://wordpress.org/extend/plugins/bp-group-control/">http://buddypress.org/community/groups/bp-group-control/</a></p>
<p>If you have comments and/or suggestions, I regularly check these channels as well as comments on this site.</p>
<p>Note to anyone who downloaded the plugin before a few days ago &#8211; I had named the plugin root folder wrong. You can re-download the plugin, or simply change the name of the plugin root directory from &#8220;BP-Group-Control&#8221; to &#8220;bp-group-control.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://danpolant.com/bp-group-control-hosted-on-wordpress-org/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BP Group Control Usability Test</title>
		<link>http://danpolant.com/bp-group-control-usability-test/</link>
		<comments>http://danpolant.com/bp-group-control-usability-test/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 01:43:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[usability]]></category>
		<category><![CDATA[bp group control]]></category>
		<category><![CDATA[buddypress]]></category>
		<category><![CDATA[group admin]]></category>

		<guid isPermaLink="false">http://danpolant.com/?p=379</guid>
		<description><![CDATA[I did a usability test on my new BP Group Control Plugin. Find out how it went!]]></description>
			<content:encoded><![CDATA[<p>BP Group Control is a Buddypress plugin that I built for a2im.org. Only recently was I able to update it and get it running in BP 1.2. I did this usability test pre-beta release.</p>

<p>I learn a few interesting things from this test. First, the tester got very annoyed with the lack of instant validation on the form. Turns out there is a lot you can mess up, and it tells you what you got wrong only one at a time. This will be a priority to fix in the next version.</p>
<p>This user seemed to understand what &#8220;make identifying&#8221; meant in the context, which was something that I was a bit unsure about.</p>
<p>For the most part, the tester figured out how to do what needed to be done, creating new users, adding existing users, and setting their group identifier.</p>
<p>As usual, the test exposed a few bugs that had gotten through. They&#8217;re fixed now!</p>
]]></content:encoded>
			<wfw:commentRss>http://danpolant.com/bp-group-control-usability-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pseudo Random Algorithm</title>
		<link>http://danpolant.com/pseudo-random-algorithm/</link>
		<comments>http://danpolant.com/pseudo-random-algorithm/#comments</comments>
		<pubDate>Thu, 27 May 2010 18:29:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://danpolant.com/?p=367</guid>
		<description><![CDATA[Ever wanted to program something that looks like a random outcome, but comes out the same way every time based on some kind of input? Here is one way. The modulus (%) operator is the key because it produces an output that seems to vary randomly. I had to implement something like this in Javascript.



function [...]]]></description>
			<content:encoded><![CDATA[<p>Ever wanted to program something that looks like a random outcome, but comes out the same way every time based on some kind of input? Here is one way. The modulus (%) operator is the key because it produces an output that seems to vary randomly. I had to implement something like this in Javascript.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">function</span> pseudoRandom<span class="br0">&#40;</span> seed, maximum <span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; n = <span class="br0">&#40;</span><span class="nu0">314159265</span> * seed + <span class="nu0">2718281</span><span class="br0">&#41;</span> % <span class="nu0">65536</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; c = Math.<span class="me1">round</span><span class="br0">&#40;</span> <span class="br0">&#40;</span><span class="br0">&#40;</span>n / <span class="nu0">65536</span><span class="br0">&#41;</span> * <span class="nu0">100</span><span class="br0">&#41;</span> % <span class="nu0">100</span> <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; output = Math.<span class="me1">floor</span><span class="br0">&#40;</span> c/<span class="nu0">100</span> * maximum <span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> output;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Simply provide a seed argument that is an integer that varies based on user input, or some state of your application. This function will output a number between 0 and the &#8216;maximum&#8217; argument. </p>
<p>I used this to create a simple Javascript game. It could be applied to any situation where you want to present  the user with outcomes that feel random but are consistent based on what they do. Of course there are limits to how random these outcomes actually are. But in general it works well enough to give the experience of randomness.</p>
]]></content:encoded>
			<wfw:commentRss>http://danpolant.com/pseudo-random-algorithm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mylawnlandcare.com</title>
		<link>http://danpolant.com/mylawnlandcare-com/</link>
		<comments>http://danpolant.com/mylawnlandcare-com/#comments</comments>
		<pubDate>Tue, 18 May 2010 01:16:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://danpolant.com/?p=354</guid>
		<description><![CDATA[This was my first web design project. The client wanted a simple site through which visitors could request an estimate and learn about his services.]]></description>
			<content:encoded><![CDATA[
<div class="ngg-galleryoverview" id="ngg-gallery-4-354">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-7" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://danpolant.com/wp-content/gallery/mylawn-screenshots/mylawn-page-1.PNG" title=" " class="thickbox" rel="set_4" >
								<img title="mylawn-page-1" alt="mylawn-page-1" src="http://danpolant.com/wp-content/gallery/mylawn-screenshots/thumbs/thumbs_mylawn-page-1.PNG" width="220" height="220" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-8" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://danpolant.com/wp-content/gallery/mylawn-screenshots/mylawn-page-2.PNG" title=" " class="thickbox" rel="set_4" >
								<img title="mylawn-page-2" alt="mylawn-page-2" src="http://danpolant.com/wp-content/gallery/mylawn-screenshots/thumbs/thumbs_mylawn-page-2.PNG" width="220" height="220" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


<p>The site is completely hand-built and relies on no CMS framework. (I rarely do this anymore, Drupal and WordPress make a site so much more extensible). My goal with the site was to make it very easy to request an estimate. I figured that people who arrived at the site wanted to contact a lawn care service, find out their prices and get on with their lives. Thus the contact form is the central feature of the homepage.</p>
<p>I found a <a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery validation</a> plugin that I like very much and now use whenever I have to do my own validation on a site. Its super-easy to use, and has a surprising array of options.</p>
<p>This is one of the few projects that I worked on completely by myself. I met with the client to discuss the site&#8217;s language, but I drafted a good portion of this as well.</p>
<p>The owner of MyLawn Landcare informed me that he regularly picks up customers through this site.</p>
]]></content:encoded>
			<wfw:commentRss>http://danpolant.com/mylawnlandcare-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPad as home computer, for some</title>
		<link>http://danpolant.com/ipad-as-home-computer-for-some/</link>
		<comments>http://danpolant.com/ipad-as-home-computer-for-some/#comments</comments>
		<pubDate>Mon, 17 May 2010 20:43:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Information Industry]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://danpolant.com/?p=337</guid>
		<description><![CDATA[What kinds of tasks do you accomplish with your laptop or desktop?
This question of course depends drastically on your profession. If you are a programmer or a designer, you manipulate large graphic layouts, multiple text files, command lines, and tons of browser tabs. If you are a writer, you type for hours in a word [...]]]></description>
			<content:encoded><![CDATA[<p>What kinds of tasks do you accomplish with your laptop or desktop?</p>
<p>This question of course depends drastically on your profession. If you are a programmer or a designer, you manipulate large graphic layouts, multiple text files, command lines, and tons of browser tabs. If you are a writer, you type for hours in a word processing application. If you are an accountant, you practice MS Excel zen, maximizing automation.</p>
<p>What I&#8217;ve described above is a small sample of professional computing scenarios. In the future, new products will change these markets. The iPad will not.</p>
<p>I predict that the iPad will gain a serious foothold in a market that I will call &#8220;home computing.&#8221; I do not mean professional computing done at home. I am instead referring to activities like emailing, watching videos and tv shows, reading the news, using social networking software. You could call this &#8220;couch computing&#8221; as well. I believe this activity set represents a huge percentage of use scenarios for laptops and desktops today.</p>
<p>The iPad is perfectly equipped as a couch computer. Lets talk about its biggest problem though: typing. Undeniably, the iPad keyboard is still nowhere near as good as even the smallest laptop (netbook) keyboards. Sure, you can plug in a bluetooth keyboard to your iPad. I think it is unrealistic though to expect users to do this in order to make their iPad into a typing machine. There are just to many steps required to make serious typing possible (set up your keyboard, prop up the screen, find a table) such that almost everyone would rather just pull out a laptop and open it. I predict that the blue tooth keyboard will almost never be used in conjunction with an iPad.</p>
<div id="attachment_344" class="wp-caption aligncenter" style="width: 316px"><a rel="attachment wp-att-344" href="http://danpolant.com/ipad-as-home-computer-for-some/ipad-keyboard/"><img class="size-full wp-image-344 " title="ipad-keyboard" src="http://danpolant.com/wp-content/uploads/2010/05/ipad-keyboard.jpg" alt="" width="306" height="295" /></a><p class="wp-caption-text">iPad and keyboard: needs a table, why not just use a laptop?</p></div>
<p>The answer: the iPad isn&#8217;t for typing, at least not with its current keyboard arrangement. But it&#8217;s ok. How much do people really type in an average session of non-professional use of their computer? I have absolutely no idea for sure. But from what I&#8217;ve seen, people really don&#8217;t need to type that much. Short messages are the norm, as in Twitter and Facebook. And with the embedded social linking that many apps now provide (digg, facebook, mixx, and a billion more), users can shoot content to one another without having to type or even copy and paste a link.</p>
<p>So maybe, the iPad isn&#8217;t worse than a laptop for home computing. But how is it better?</p>
<p>First, apps are better than applications. Installing an application is a traumatic experience for the average user. It could have a virus. It could be hard to set up. It could be sitting in a downloads folder that the user can&#8217;t find.</p>
<p>Installing an app is super-easy. Touch the screen, and there it is, ready to work for you.</p>
<p>Starting from the moment of the first touch, the experience of using an iPad is better than that of a laptop. The iPad doesn&#8217;t turn on like a computer. One slide, and its functionality is there for you, unlike a laptop, fans whirling, screen creaking open, load bar creeping to completion.</p>
<p>An iPad can be taken up and set aside with less effort than a laptop.</p>
<p>Touch is better than mouse selection for all but the most precise text/graphics manipulations. Touch beats a mouse for traversing graphical/textual space, creating object associations (drag and drop) and pressing buttons (as long as they&#8217;re large enough).</p>
<p>All of the aspects above contribute to making people happier while they are using an iPad. This happiness may be tempered by the occasional frustration, mostly in the typing department. But I feel the iPad will be taken up enthusiastically by a large population of users who type very little, and may even change the typing habits of other adopters. In the long term, I predict that the iPad will lower the amount that we type, especially as designers invent new interactions that transmit information without a keyboard.</p>
]]></content:encoded>
			<wfw:commentRss>http://danpolant.com/ipad-as-home-computer-for-some/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
