<?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>Aligned Left Blog</title>
	<atom:link href="http://alignedleft.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://alignedleft.com/blog</link>
	<description>Exploring digital culture and dynamic media</description>
	<lastBuildDate>Thu, 15 Jul 2010 23:22:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Using CSS3 border-image Sprites for Flexible Button States</title>
		<link>http://alignedleft.com/blog/2010/07/using-css3-border-image-sprites-for-flexible-button-states/</link>
		<comments>http://alignedleft.com/blog/2010/07/using-css3-border-image-sprites-for-flexible-button-states/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 23:22:46 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://alignedleft.com/blog/?p=643</guid>
		<description><![CDATA[Much has been written about CSS sprites, but less so about CSS3’s border-image. I wanted to use the two together to produce beautiful, scalable buttons that use only one image for both normal and active (e.g. clicked) states.  I couldn’t find anyone else online using this approach yet, so I documented my experiments here.

First, [...]]]></description>
			<content:encoded><![CDATA[<p>Much has been written about <a href="http://www.alistapart.com/articles/sprites">CSS sprites</a>, but less so about CSS3’s <code>border-image</code>. I wanted to use the two together to produce beautiful, scalable buttons that use only one image for both normal and active (e.g. clicked) states.  I couldn’t find anyone else online using this approach yet, so I documented my experiments here.</p>

<p>First, here is the amazing button that we want to create:</p>

<p><img src="http://alignedleft.com/blog/wp-content/uploads/2010/07/Amazing-Button.png" alt="" title="Amazing-Button" width="200" height="50" class="alignnone size-full wp-image-644" /></p>

<p>Its active state will be triggered on either mouseDown or a touch event (for iOS and Android devices, say).  In that case, we want the colors to change as shown:</p>

<p><img src="http://alignedleft.com/blog/wp-content/uploads/2010/07/Amazing-Button-Active.png" alt="" title="Amazing-Button-Active" width="200" height="50" class="alignnone size-full wp-image-645" /></p>

<p>Of course, ideally we could create this button using pure CSS styles, like <code>border-radius</code> and <code>box-shadow</code>, or with SVG vector art.  But let’s say that for whatever reason, this button has visual elements that can’t be created with CSS alone, and we have to use a bitmap image.  (All images on this page are PNGs with alpha transparency.)</p>

<p>CSS3’s new <a href="http://www.css3.info/preview/border-image/">border-image</a> property lets us specify an image to stretch to fit our button, no matter how wide or tall it becomes.  Usually, <code>border-image</code> is used with an image like this:</p>

<p><img src="http://alignedleft.com/blog/wp-content/uploads/2010/07/Amazing-Button-Border.png" alt="" title="Amazing-Button-Border" width="40" height="50" class="alignnone size-full wp-image-646" /></p>

<p>This image is 40 pixels wide by 50 tall.  So we could use this CSS:</p>

<blockquote>
  <p><code>#buttonElement {</code></p>
  
  <p><code>border-image: url(../images/button.png) 0 18 0 18;</code></p>
  
  <p><code>-moz-border-image: url(../images/button.png) 0 18 0 18;</code></p>
  
  <p><code>-webkit-border-image: url(../images/button.png) 0 18 0 18;</code></p>
  
  <p><code>{</code></p>
</blockquote>

<p>This should grab 18 pixels from either side of the image and stretch it to fit.  Of course, we’d then have to overlay the button text on top of this background.  (I always specify both the “official” CSS3 property, plus the Mozilla and Webkit derivations. For clarity, I’ll omit the latter two below.)</p>

<p>The old-fashioned way to create the button’s active state is to generate a second PNG:</p>

<p><img src="http://alignedleft.com/blog/wp-content/uploads/2010/07/Amazing-Button-Active-Border.png" alt="" title="Amazing-Button-Active-Border" width="40" height="50" class="alignnone size-full wp-image-647" /></p>

<p>…and style it with more CSS.  Note that we’ve added the <code>.pressed</code> class, and we’re now referencing a different PNG:</p>

<blockquote>
  <p><code>#buttonElement.pressed {</code></p>
  
  <p><code>border-image: url(../images/button_active.png) 0 18 0 18;</code></p>
  
  <p><code>{</code></p>
</blockquote>

<p>You would then use JavaScript/jQuery/etc. to add the <code>.pressed</code> class to #buttonElement whenever it is clicked or tapped.</p>

<p>But by using the CSS sprites technique, we can include both button states in a single image.  (This one is 40 pixels by 100.)</p>

<p><img src="http://alignedleft.com/blog/wp-content/uploads/2010/07/Amazing-Button-Border-Sprite.png" alt="" title="Amazing-Button-Border-Sprite" width="40" height="100" class="alignnone size-full wp-image-648" /></p>

<p>Then, we modify the <code>border-image</code> parameters to reference different parts of our sprite image, depending on the button state: </p>

<blockquote>
  <p><code>#buttonElement {</code></p>
  
  <p><code>border-image: url(../images/button_sprite.png) 0 18 50 18;</code></p>
  
  <p><code>{</code></p>
  
  <p><code>#buttonElement.pressed {</code></p>
  
  <p><code>border-image: url(../images/button_sprite.png) 50 18 0 18;</code></p>
  
  <p><code>{</code></p>
</blockquote>

<p>See those “50” values?  They are the key to shifting the <code>border-image</code> reference up and down, as needed.</p>

<p>Now isn’t that better?  Just one image means fewer network requests, plus the button’s active state is already preloaded into memory — no need for extra weird JavaScript!</p>
]]></content:encoded>
			<wfw:commentRss>http://alignedleft.com/blog/2010/07/using-css3-border-image-sprites-for-flexible-button-states/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tiny Tiled Displays</title>
		<link>http://alignedleft.com/blog/2010/06/tiny-tiled-displays/</link>
		<comments>http://alignedleft.com/blog/2010/06/tiny-tiled-displays/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 19:15:00 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Thesis]]></category>

		<guid isPermaLink="false">http://alignedleft.com/blog/?p=640</guid>
		<description><![CDATA[I came across this brilliant use of LED matrices while researching how to control these little guys with an Arduino board.  Jump to the middle of the video to see a whole new kind of interactive puzzle.


]]></description>
			<content:encoded><![CDATA[<p>I came across this brilliant use of LED matrices while researching how to control these little guys with an Arduino board.  Jump to the middle of the video to see a whole new kind of interactive puzzle.</p>

<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/GmTBR-BWYj8&#038;rel=0&#038;color1=0xb1b1b1&#038;color2=0xd0d0d0&#038;hl=en_US&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/GmTBR-BWYj8&#038;rel=0&#038;color1=0xb1b1b1&#038;color2=0xd0d0d0&#038;hl=en_US&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="385"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://alignedleft.com/blog/2010/06/tiny-tiled-displays/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic Systems of Engagement</title>
		<link>http://alignedleft.com/blog/2010/06/dynamic-systems-of-engagement/</link>
		<comments>http://alignedleft.com/blog/2010/06/dynamic-systems-of-engagement/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 19:10:06 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Thesis]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[interactive]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://alignedleft.com/blog/?p=631</guid>
		<description><![CDATA[My thesis book is now available on Blurb!  Check out the preview below, and order a copy, either for yourself or that interactive designer/digital artist friend of yours.



Dynamic Systems of Engagement by Scott Murray
]]></description>
			<content:encoded><![CDATA[<p>My thesis book is now available on Blurb!  Check out the preview below, and order a copy, either for yourself or that interactive designer/digital artist friend of yours.</p>

<p><object width="450" height="300"><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.blurb.com/assets/embed.swf?book_id=1303805" type="application/x-shockwave-flash" width="450" height="300" allowfullscreen="true"></embed></object></p>

<p><a href="http://www.blurb.com/bookstore/detail/1303805?ce=blurb_ew&#038;utm_source=widget" target="_blank" style="display:block;">Dynamic Systems of Engagement by Scott Murray</a></p>
]]></content:encoded>
			<wfw:commentRss>http://alignedleft.com/blog/2010/06/dynamic-systems-of-engagement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When Everyone is Free (to Meet)</title>
		<link>http://alignedleft.com/blog/2010/05/when-everyone-is-free-to-meet/</link>
		<comments>http://alignedleft.com/blog/2010/05/when-everyone-is-free-to-meet/#comments</comments>
		<pubDate>Fri, 28 May 2010 19:19:38 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Thesis]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://alignedleft.com/blog/?p=627</guid>
		<description><![CDATA[When is Good is one of my all-time favorite web tools, making it super easy to find a good time to schedule a group meeting. They published a fascinating paper last year, sharing the most interesting findings from the aggregate data of user’s schedules, including:


Event invitations are most likely to be accepted for a Tuesday [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://whenisgood.net/">When is Good</a> is one of my all-time favorite web tools, making it super easy to find a good time to schedule a group meeting. They published <a href="http://whenisgood.net/static/press/WhenIsGood-Whitepaper-Oct09.pdf">a fascinating paper</a> last year, sharing the most interesting findings from the aggregate data of user’s schedules, including:</p>

<ul>
<li>Event invitations are most likely to be accepted for a Tuesday at 3pm.</li>
<li>…on average only three or four people out of ten will be available at any given time.</li>
</ul>

<p>For more, <a href="http://whenisgood.net/static/press/WhenIsGood-Whitepaper-Oct09.pdf">download the full paper</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://alignedleft.com/blog/2010/05/when-everyone-is-free-to-meet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interactive Art in SF on May 1</title>
		<link>http://alignedleft.com/blog/2010/04/interactive-art-in-sf-on-may-1/</link>
		<comments>http://alignedleft.com/blog/2010/04/interactive-art-in-sf-on-may-1/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 20:59:40 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Thesis]]></category>

		<guid isPermaLink="false">http://alignedleft.com/blog/?p=622</guid>
		<description><![CDATA[

My thesis projects, Practice and Cheeky, will both be featured this Saturday at Alchemy, the annual interactive art party.  Hope you can make it!
]]></description>
			<content:encoded><![CDATA[<p><a href="http://false-profit.com/alchemy/"><img src="http://alignedleft.com/blog/wp-content/uploads/2010/04/alchemyposterFront.jpg" alt="" title="alchemyposterFront" width="757" height="505" class="alignnone size-full wp-image-623" /></a></p>

<p>My thesis projects, <em>Practice</em> and <em>Cheeky</em>, will both be featured this Saturday at <a href="http://false-profit.com/alchemy/">Alchemy</a>, the annual interactive art party.  Hope you can make it!</p>
]]></content:encoded>
			<wfw:commentRss>http://alignedleft.com/blog/2010/04/interactive-art-in-sf-on-may-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Copyleft Vegetables</title>
		<link>http://alignedleft.com/blog/2010/04/copyleft-vegetables/</link>
		<comments>http://alignedleft.com/blog/2010/04/copyleft-vegetables/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 16:11:42 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Thesis]]></category>
		<category><![CDATA[comic]]></category>
		<category><![CDATA[humor]]></category>

		<guid isPermaLink="false">http://alignedleft.com/blog/?p=619</guid>
		<description><![CDATA[www.marriedtothesea.com
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.marriedtothesea.com"><img src="http://www.marriedtothesea.com/041910/get-your-turnips-out-of-here.gif" border=0></a><br /><a href="http://www.marriedtothesea.com">www.marriedtothesea.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://alignedleft.com/blog/2010/04/copyleft-vegetables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Food Faces</title>
		<link>http://alignedleft.com/blog/2010/03/food-faces/</link>
		<comments>http://alignedleft.com/blog/2010/03/food-faces/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 01:19:54 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Thesis]]></category>
		<category><![CDATA[food]]></category>

		<guid isPermaLink="false">http://alignedleft.com/blog/?p=609</guid>
		<description><![CDATA[












]]></description>
			<content:encoded><![CDATA[<p><img src="http://alignedleft.com/blog/wp-content/uploads/2010/03/face1.jpg" alt="" title="face1" width="600" height="450" class="alignnone size-full wp-image-610" /></p>

<p><img src="http://alignedleft.com/blog/wp-content/uploads/2010/03/face2.jpg" alt="" title="face2" width="600" height="450" class="alignnone size-full wp-image-611" /></p>

<p><img src="http://alignedleft.com/blog/wp-content/uploads/2010/03/face3.jpg" alt="" title="face3" width="600" height="450" class="alignnone size-full wp-image-612" /></p>

<p><img src="http://alignedleft.com/blog/wp-content/uploads/2010/03/face4.jpg" alt="" title="face4" width="600" height="450" class="alignnone size-full wp-image-613" /></p>

<p><img src="http://alignedleft.com/blog/wp-content/uploads/2010/03/face5.jpg" alt="" title="face5" width="600" height="450" class="alignnone size-full wp-image-614" /></p>

<p><img src="http://alignedleft.com/blog/wp-content/uploads/2010/03/face6.jpg" alt="" title="face6" width="480" height="600" class="alignnone size-full wp-image-615" /></p>

<p><img src="http://alignedleft.com/blog/wp-content/uploads/2010/03/face7.jpg" alt="" title="face7" width="600" height="450" class="alignnone size-full wp-image-616" /></p>
]]></content:encoded>
			<wfw:commentRss>http://alignedleft.com/blog/2010/03/food-faces/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Another Processing Workshop at Gray Area</title>
		<link>http://alignedleft.com/blog/2010/02/another-processing-workshop-at-gray-area/</link>
		<comments>http://alignedleft.com/blog/2010/02/another-processing-workshop-at-gray-area/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 23:08:43 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Thesis]]></category>
		<category><![CDATA[teaching]]></category>
		<category><![CDATA[processing]]></category>

		<guid isPermaLink="false">http://alignedleft.com/blog/?p=603</guid>
		<description><![CDATA[

I’ll be teaching another workshop on creative coding at the end of the month!  Join us, and learn to use Processing to create your own interactive, digital art.  Details at gaffta.org.
]]></description>
			<content:encoded><![CDATA[<p><img src="http://alignedleft.com/blog/wp-content/uploads/2010/02/Prep-for-blog.jpg" alt="" title="ColorMapper Capture" width="600" height="375" class="alignnone size-full wp-image-602" /></p>

<p>I’ll be teaching another workshop on <em>creative coding</em> at the end of the month!  Join us, and learn to use <a href="processing.org">Processing</a> to create your own interactive, digital art.  Details at <a href="http://www.gaffta.org/2010/02/03/creative-coding-an-introduction-to-processing/">gaffta.org</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://alignedleft.com/blog/2010/02/another-processing-workshop-at-gray-area/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interactive Art in the Mission</title>
		<link>http://alignedleft.com/blog/2010/02/interactive-art-in-the-mission/</link>
		<comments>http://alignedleft.com/blog/2010/02/interactive-art-in-the-mission/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 22:27:35 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Thesis]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[interactive]]></category>
		<category><![CDATA[processing]]></category>

		<guid isPermaLink="false">http://alignedleft.com/blog/?p=597</guid>
		<description><![CDATA[

Practice, my MFA thesis project, will be set up for you to explore this Friday in the Mission District of San Francisco.

Practice is both a work of interactive video art and a design research project.

Unlike most other works of this medium, it does not reward bodily motion and exaggerated gestures, but encourages patience and self-reflection. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://alignedleft.com/blog/wp-content/uploads/2010/02/IMG_1293.jpg" alt="" title="Practice" width="600" height="450" class="alignnone size-full wp-image-596" /></p>

<p><em>Practice</em>, my MFA thesis project, will be set up for you to explore this Friday in the Mission District of San Francisco.</p>

<p><em>Practice</em> is both a work of interactive video art and a design research project.</p>

<p>Unlike most other works of this medium, it does not reward bodily motion and exaggerated gestures, but encourages patience and self-reflection.  In so doing, it explores the tension between emotional engagement and the uncomfortable ambiguity of not knowing what will happen next.</p>

<blockquote>
  <p>Friday, February 12</p>
  
  <p>About 9:00 – 11:00pm</p>
  
  <p>16th St. and Guerrero St., NE corner (<a href="http://bit.ly/9Y8jIx">Map</a>)</p>
</blockquote>

<p>In the event of rain, the piece will be installed the next night, Saturday, 2/13.</p>
]]></content:encoded>
			<wfw:commentRss>http://alignedleft.com/blog/2010/02/interactive-art-in-the-mission/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Box Auction</title>
		<link>http://alignedleft.com/blog/2010/01/box-auction/</link>
		<comments>http://alignedleft.com/blog/2010/01/box-auction/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 06:32:36 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Thesis]]></category>

		<guid isPermaLink="false">http://alignedleft.com/blog/?p=593</guid>
		<description><![CDATA[www.marriedtothesea.com
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.marriedtothesea.com"><img src="http://www.marriedtothesea.com/012810/box-auction.gif" border=0></a><br /><a href="http://www.marriedtothesea.com">www.marriedtothesea.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://alignedleft.com/blog/2010/01/box-auction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

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