<?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>SethSandler &#187; Software</title>
	<atom:link href="http://sethsandler.com/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://sethsandler.com</link>
	<description>Just another abstract, thought, art, code, and multitouch weblog</description>
	<lastBuildDate>Sat, 17 Jul 2010 01:30:08 +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>Wall Pong (WONG) &#8211; Interactive Multiplayer Multitouch Pong Game &#8211; Now with source code!!!</title>
		<link>http://sethsandler.com/audiotouch/wall-pong-wong-interactive-multiplayer-multitouch-pong-game-source-code/</link>
		<comments>http://sethsandler.com/audiotouch/wall-pong-wong-interactive-multiplayer-multitouch-pong-game-source-code/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 21:20:21 +0000</pubDate>
		<dc:creator>SethSandler</dc:creator>
				<category><![CDATA[AudioTouch]]></category>
		<category><![CDATA[Headline]]></category>
		<category><![CDATA[Multitouch and NUI]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[actionscrhip]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[multitouch]]></category>
		<category><![CDATA[pong]]></category>
		<category><![CDATA[touch]]></category>
		<category><![CDATA[wall pong]]></category>
		<category><![CDATA[wong]]></category>

		<guid isPermaLink="false">http://sethsandler.com/?p=1167</guid>
		<description><![CDATA[
			
				
			
		

Wall Pong is an interactive multi-player multitouch pong type game I wrote in AS3 a couple years ago. The aim is to get the ball into the opposing goal. You can see Wong within my Audiotouch OS software. I&#8217;ve been meaning to release the source code and game for quite some time and finally I had the chance to clean up the code (it still could use WAY more cleaning and probably re-factoring), but it&#8217;s in good enough shape for others to use.

I&#8217;m hoping to convert this version to use ...]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Faudiotouch%2Fwall-pong-wong-interactive-multiplayer-multitouch-pong-game-source-code%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Faudiotouch%2Fwall-pong-wong-interactive-multiplayer-multitouch-pong-game-source-code%2F&amp;style=normal" height="61" width="50" title="Wall Pong (WONG)   Interactive Multiplayer Multitouch Pong Game   Now with source code!!! " alt=" Wall Pong (WONG)   Interactive Multiplayer Multitouch Pong Game   Now with source code!!! " /><br />
			</a>
		</div>
<p style="text-align: center;"><a href="http://techsparked.com/application/wall-pong"><img class="size-medium  wp-image-1175    aligncenter" title="screenshot_wong2" src="http://sethsandler.com/wp-content/uploads/2010/06/screenshot_wong2-300x225.png" alt="screenshot wong2 300x225 Wall Pong (WONG)   Interactive Multiplayer Multitouch Pong Game   Now with source code!!! " width="300" height="225" /><br />
</a>Wall Pong is an interactive multi-player multitouch pong type game I wrote in AS3 a couple years ago. The aim is to get the ball into the opposing goal. You can see Wong within my Audiotouch OS software. I&#8217;ve been meaning to release the source code and game for quite some time and finally I had the chance to clean up the code (it still could use WAY more cleaning and probably re-factoring), but it&#8217;s in good enough shape for others to use.</p>
<p style="text-align: center;"></p>
<p style="text-align: center;">I&#8217;m hoping to convert this version to use the new native touch api in flash CS5.</p>
<h3 style="text-align: center;"><a href="http://techsparked.com/application/wall-pong" target="_blank">You can download the application on techsparked here!!</a></h3>
<p style="text-align: left;">
<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Faudiotouch%2Fwall-pong-wong-interactive-multiplayer-multitouch-pong-game-source-code%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Faudiotouch%2Fwall-pong-wong-interactive-multiplayer-multitouch-pong-game-source-code%2F&amp;style=normal" height="61" width="50" title="Wall Pong (WONG)   Interactive Multiplayer Multitouch Pong Game   Now with source code!!! " alt=" Wall Pong (WONG)   Interactive Multiplayer Multitouch Pong Game   Now with source code!!! " /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://sethsandler.com/audiotouch/wall-pong-wong-interactive-multiplayer-multitouch-pong-game-source-code/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Drupal 6 &#8211; Creating Activity Stream with Views Custom SQL Query: Merging multiple views &#8211; Part 1</title>
		<link>http://sethsandler.com/software/drupal-6-creating-activity-stream-views-custom-sql-query-merging-multiple-views-part-1/</link>
		<comments>http://sethsandler.com/software/drupal-6-creating-activity-stream-views-custom-sql-query-merging-multiple-views-part-1/#comments</comments>
		<pubDate>Fri, 21 May 2010 05:26:47 +0000</pubDate>
		<dc:creator>SethSandler</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Headline]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[activity feed]]></category>
		<category><![CDATA[activity stream]]></category>
		<category><![CDATA[custom query]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[views]]></category>

		<guid isPermaLink="false">http://sethsandler.com/?p=1047</guid>
		<description><![CDATA[
			
				
			
		
If you&#8217;re using Drupal, you&#8217;re probably using views. If you&#8217;re using views, than you&#8217;ve probably wanted to build a view that involved combining content and found out it was hard or almost impossible through the views UI.
For example, if you&#8217;ve ever tried to build a single view of all content (posts, comments, flags, relationships, etc) into a single list, you&#8217;ve probably found that you can&#8217;t. However, you can easily build independent post views, comment views, flag views, and relationship views.  Since that&#8217;s the case, why can&#8217;t we merge all these ...]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Fsoftware%2Fdrupal-6-creating-activity-stream-views-custom-sql-query-merging-multiple-views-part-1%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Fsoftware%2Fdrupal-6-creating-activity-stream-views-custom-sql-query-merging-multiple-views-part-1%2F&amp;style=normal" height="61" width="50" title="Drupal 6   Creating Activity Stream with Views Custom SQL Query: Merging multiple views   Part 1" alt=" Drupal 6   Creating Activity Stream with Views Custom SQL Query: Merging multiple views   Part 1" /><br />
			</a>
		</div>
<p>If you&#8217;re using <a href="http://drupal.org">Drupal</a>, you&#8217;re probably using <a href="http://drupal.org/project/views">views</a>. If you&#8217;re using views, than you&#8217;ve probably wanted to build a view that involved combining content and found out it was hard or almost impossible through the views UI.</p>
<p>For example, if you&#8217;ve ever tried to build a single view of all content (posts, comments, flags, relationships, etc) into a single list, you&#8217;ve probably found that you can&#8217;t. However, you can easily build independent post views, comment views, flag views, and relationship views.  Since that&#8217;s the case, why can&#8217;t we merge all these views into a single view through the views UI? Well you can, and this article hopefully will give the basic information needed to start merging your views into more complex results.</p>
<p>In this article, we&#8217;ll be building a basic activity stream to demonstrate the ability to</p>
<ol>
<li>create custom queries for views,</li>
<li>merge our results,</li>
<li>create our custom query module, and</li>
<li>finally output through the views UI.</li>
</ol>
<p>After some themeing, our results will look something like the following which is a combination of comments, flags (sparks), and posts (various content types):</p>
<p style="text-align: center;"><strong><a href="http://sethsandler.com/wp-content/uploads/2010/05/activity_done.png"><img class="size-full wp-image-1050  aligncenter" title="activity_done" src="http://sethsandler.com/wp-content/uploads/2010/05/activity_done.png" alt="activity done Drupal 6   Creating Activity Stream with Views Custom SQL Query: Merging multiple views   Part 1" width="401" height="461" /></a></strong></p>
<h2>Live DEMO: <strong> </strong></h2>
<p><strong>You can see a live example on the bottom of <a href="http://techsparked.com/" target="_blank">http://techsparked.com/</a></strong></p>
<h2>DOWNLOAD EXAMPLE MODULE:</h2>
<p><div class="wpfilebase-attachment">
 <div class="wpfilebase-fileicon"><a href="http://sethsandler.com/download/custom_views.zip" onclick="wpfilebase_dlclick(10, 'download/custom_views.zip')" title="Download custom_views module"><img align="middle" src="http://sethsandler.com/wp-includes/images/crystal/archive.png" title="Drupal 6   Creating Activity Stream with Views Custom SQL Query: Merging multiple views   Part 1" alt="archive Drupal 6   Creating Activity Stream with Views Custom SQL Query: Merging multiple views   Part 1" /></a></div>
 <div class="wpfilebase-rightcol">
  <div class="wpfilebase-filetitle">
   <a href="http://sethsandler.com/download/custom_views.zip" onclick="wpfilebase_dlclick(10, 'download/custom_views.zip')" title="Download custom_views module">custom_views module</a>
   custom_views.zip
   
  </div>
  <div class="wpfilebase-filedetails" id="wpfilebase-filedetails3" style="display: none;">
  
  <table border="0" width="220">
   
   
   
   
   
   
   <tr><th>Date:</th><td>January 1, 1970</td></tr>
   <tr><th>MD5 Hash:</th><td><small>580adbe74f69b884e3b6eda6c547db83</small></td></tr>
  </table>
  </div>
 </div>
 <div class="wpfilebase-fileinfo">
  1.5 KiB
  24 Downloads
  <a href="#" onclick="return wpfilebase_filedetails(3);">Details...</a>
 </div>
 <div style="clear: both;"></div>
</div></p>
<h2 style="text-align: left;">Introduction:</h2>
<p>Before we begin, we have to know what we&#8217;re making. We&#8217;re going to be creating a list view (you can choose another type if you please) of posts and comments from our site ordered by date. Later, you can choose to add more activity into your view like flags (likes), relationships (who&#8217;s following whom), etc. but for now we&#8217;ll keep it simple since the same principle for 2 types of information also applies to 5 types.</p>
<h2>Step 1: Making the query</h2>
<p>To create our activity stream view, we&#8217;re essentially going to combine two individual views into a single query. We&#8217;re going to take advantage of the views UI preview in order to get our query (in case we don&#8217;t know too much about SQL queries).</p>
<ol>
<li>Create a new temporary view (we&#8217;re not actually going to save it) called <strong>recent_posts</strong> (or similar).</li>
<li>Add fields for: user name, user picture, node title, node post date, and node type.</li>
<li>Add a sort criteria for Node: poste date.</li>
<li>Add a filter for Node: published.</li>
<p style="text-align: center;"><a href="http://sethsandler.com/wp-content/uploads/2010/05/recent_posts.png"><img class="aligncenter size-full wp-image-1071" title="recent_posts" src="http://sethsandler.com/wp-content/uploads/2010/05/recent_posts.png" alt="recent posts Drupal 6   Creating Activity Stream with Views Custom SQL Query: Merging multiple views   Part 1" width="542" height="348" /></a></p>
<p style="text-align: center;">Your view should look like the above</p>
<li>In the views &#8216;live preview&#8217;, click the preview button.</li>
<li>Scroll down to where the &#8216;query&#8217; is shown and <strong>copy and paste this to a temporary text file on your desktop</strong>. We&#8217;re going to need this query code in a bit.</li>
<p style="text-align: center;"><a href="http://sethsandler.com/wp-content/uploads/2010/05/query.png"><img class="aligncenter size-full wp-image-1076" title="query" src="http://sethsandler.com/wp-content/uploads/2010/05/query.png" alt="query Drupal 6   Creating Activity Stream with Views Custom SQL Query: Merging multiple views   Part 1" width="507" height="230" /></a></p>
<li>Create a new temporary view (we&#8217;re not actually going to save it) called  <strong>recent_comments</strong> (or similar).</li>
<li>Add relationship for: Comment: node and Comment: User.</li>
<li>Add fields for: user name, user picture, node title,  comment title,  and comment post date (all fields related to their relationships).</li>
<li>Add a sort criteria for Comment: poste date.</li>
<li>Add a filter for Node: published.</li>
<p style="text-align: center;"><a href="http://sethsandler.com/wp-content/uploads/2010/05/comments.png"><img class="aligncenter size-full wp-image-1081" title="comments" src="http://sethsandler.com/wp-content/uploads/2010/05/comments.png" alt="comments Drupal 6   Creating Activity Stream with Views Custom SQL Query: Merging multiple views   Part 1" width="512" height="330" /></a></p>
<li>Scroll down to where the &#8216;query&#8217; is shown and <strong>copy and paste </strong>this to the same file you created in <strong>step 6</strong>. We&#8217;re going to need this query code in a bit.</li>
</ol>
<h2>Step 2: Combine and merge the queries using UNION</h2>
<p>We should now have 2 views queries copied to a text file that look something like:</p>
<blockquote><p>//posts view<br />
SELECT node.nid AS nid,<br />
users.picture AS users_picture,<br />
users.uid AS users_uid,<br />
users.name AS users_name,<br />
<strong> users.mail AS users_mail,</strong><br />
node.type AS node_type,<br />
node.title AS node_title,<br />
node.created AS node_created,<br />
<strong> history_user.timestamp AS history_user_timestamp,</strong><br />
<strong> node.changed AS node_changed,</strong><br />
<strong> node_comment_statistics.last_comment_timestamp AS node_comment_statistics_last_comment_timestamp</strong><br />
FROM node node<br />
INNER JOIN users users ON node.uid = users.uid<br />
<strong> LEFT JOIN history history_user ON node.nid = history_user.nid AND history_user.uid = ***CURRENT_USER***</strong><br />
<strong> INNER JOIN node_comment_statistics node_comment_statistics ON node.nid = node_comment_statistics.nid</strong><br />
WHERE (node.status &lt;&gt; 0)<br />
ORDER BY node_created DESC</p>
<p>//comments view<br />
SELECT comments.cid AS cid,<br />
users_comments.picture AS users_comments_picture,<br />
users_comments.uid AS users_comments_uid,<br />
users_comments.name AS users_comments_name,<br />
<strong> users_comments.mail AS users_comments_mail,</strong><br />
comments.subject AS comments_subject,<br />
<strong> comments.nid AS comments_nid,</strong><br />
node_comments.title AS node_comments_title,<br />
<strong> node_comments.nid AS node_comments_nid,</strong><br />
comments.timestamp AS comments_timestamp<br />
FROM comments comments<br />
LEFT JOIN node node_comments ON comments.nid = node_comments.nid<br />
LEFT JOIN users users_comments ON comments.uid = users_comments.uid<br />
WHERE (node_comments.status &lt;&gt; 0)<br />
ORDER BY comments_timestamp DESC</p></blockquote>
<ol>
<li>Views adds a few things that we really won&#8217;t need. So we can remove all the bold parts above to clean up our queries. The results should look like:</li>
<blockquote><p>//posts view<br />
SELECT node.nid AS nid, <strong>//node id</strong><br />
users.picture AS users_picture, <strong>//picture</strong><br />
users.uid AS users_uid, <strong>//user id</strong><br />
users.name AS users_name, <strong>//user name</strong><br />
node.type AS node_type, <strong>// node type</strong><br />
node.title AS node_title, <strong>// node title</strong><br />
node.created AS node_created <strong>//post date</strong><br />
FROM node node<br />
INNER JOIN users users ON node.uid = users.uid<br />
<strong> </strong>WHERE (node.status &lt;&gt; 0)<br />
ORDER BY node_created DESC</p>
<p>//comments view<br />
SELECT comments.cid AS cid, <strong>//comment id</strong><br />
users_comments.picture AS users_comments_picture, <strong>// picture</strong><br />
users_comments.uid AS users_comments_uid, <strong>//user id</strong><br />
users_comments.name AS users_comments_name, <strong>//user name</strong><br />
node_comments.type AS node_type, <strong>//node type</strong><br />
comments.subject AS comments_subject, <strong>// comment title</strong><br />
comments.timestamp AS comments_timestamp <strong>//post date</strong><br />
FROM comments comments<br />
LEFT JOIN node node_comments ON comments.nid = node_comments.nid<br />
LEFT JOIN users users_comments ON comments.uid = users_comments.uid<br />
WHERE (node_comments.status &lt;&gt; 0)<br />
ORDER BY comments_timestamp DESC</p></blockquote>
<li>The result above are much cleaner. We&#8217;re going to merge these two queries by using UNION. UNION combines the results of multiple SELECTs. If you&#8217;re not familiar with UNION, i&#8217;d recommend reading <a href="http://www.mysqltutorial.org/sql-union-mysql.aspx">this</a>. In order to to create a union you have to have the same amount of SELECT fields. Luckily, when we cleaned up our view we were left with 7 SELECT fields (id, picture, user name, node type, title, post date). If you don&#8217;t have the same amount of fields in each query, you&#8217;ll need to create the same amount by modifying your queries or adding a &#8216;NULL&#8217; select in the query that has less fields. To make a UNION query of the above is simple. <strong>Copy and cut</strong> the <strong>ORDER BY node_created DESC</strong> from the end of the first query and replace the <strong>ORDER BY comments_timestamp DESC </strong>from the end of the second query with it.  Then, <strong>add </strong>&#8216;<strong>UNION</strong>&#8216; bewteen the two queries and you&#8217;re done! Results below:</li>
<blockquote><p>//posts view<br />
SELECT node.nid AS nid, <strong>//node id</strong><br />
users.picture AS users_picture, <strong>//picture</strong><br />
users.uid AS users_uid, <strong>//user id</strong><br />
users.name AS users_name, <strong>//user name</strong><br />
node.type AS node_type, <strong>// node type</strong><br />
node.title AS node_title, <strong>// node title</strong><br />
node.created AS node_created <strong>//post date</strong><br />
FROM node node<br />
INNER JOIN users users ON node.uid = users.uid<br />
<strong> </strong>WHERE (node.status &lt;&gt; 0)</p>
<p><strong>UNION</strong></p>
<p>//comments view<br />
SELECT comments.cid AS cid, <strong>//comment id</strong><br />
users_comments.picture AS users_comments_picture, <strong>// picture</strong><br />
users_comments.uid AS users_comments_uid, <strong>//user id</strong><br />
users_comments.name AS users_comments_name, <strong>//user name</strong><br />
node_comments.type AS node_type, <strong>//node type</strong><br />
comments.subject AS comments_subject, <strong>// comment title</strong><br />
comments.timestamp  AS comments_timestamp <strong>//post date</strong><br />
FROM comments comments<br />
LEFT JOIN node node_comments ON comments.nid = node_comments.nid<br />
LEFT JOIN users users_comments ON comments.uid = users_comments.uid<br />
WHERE (node_comments.status &lt;&gt; 0)<br />
<strong> ORDER BY node_created</strong><strong> DESC</strong></p></blockquote>
<li>This is going to merge our two views (posts and comments) and sort them by post date. Meaning, intstead of having 2 seperate views (one after the other), we now have a single view query that sorts both views (together) by node_created/comments_timestamp.  We just created our custom query! Now it&#8217;s time to prepare it to be fed into views <img src='http://sethsandler.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' title="Drupal 6   Creating Activity Stream with Views Custom SQL Query: Merging multiple views   Part 1" /> </li>
</ol>
<h2>Step 3: Creating the custom query module</h2>
<p>Now that we have our custom query ready to feed into views, we have to create a module to feed it into the views UI.  Sound scary? It&#8217;s not &#8211;  I&#8217;ll be giving you all the pieces below.</p>
<ol>
<li>Create a folder on your desktop called<strong> custom_views</strong></li>
<li>Create a text file on your desktop called <strong>custom_views.info</strong></li>
<li>Inside the file, paste:</li>
<blockquote><p>; $Id$<br />
name = Custom Views<br />
description = Custom views query for this site.<br />
core = 6.x</p></blockquote>
<li>Save this file.</li>
<li>Create a text file on your desktop called <strong>custom_views.install</strong></li>
<li>Inside this file, paste:</li>
<blockquote><p>&lt;?php // $Id: custom_views.install</p>
<p>/**<br />
* Implementation of hook_install()<br />
*/<br />
function custom_views_install() {<br />
// Set the module weight so it can override other modules.<br />
db_query(&#8220;UPDATE {system} SET weight = 99 WHERE name = &#8216;custom_views&#8217;&#8221;);<br />
}</p>
<p>/**<br />
* Implementation of hook_uninstall()<br />
*/<br />
function custom_views_uninstall() {<br />
// Remove the module from the system table<br />
db_query(&#8220;DELETE FROM {system} WHERE name = &#8216;custom_views&#8217;&#8221;);<br />
}</p></blockquote>
<li>Save this file.</li>
<li>Create a text file on your desktop called <strong>custom_views.module</strong></li>
<li>Inside this file, paste:</li>
<blockquote><p>&lt;?php // $Id: custom_views.module,v 1.272.2.1  20010/05/07 12:25:24 goba Exp $</p>
<p>function custom_views_views_pre_execute(&amp;$view) {</p>
<p>if($view-&gt;name==&#8221;SiteActivity&#8221;) {//<strong>if we don&#8217;t do this it&#8217;ll alter ALL our view queries with this one!</strong></p>
<p>$view-&gt;build_info['query']=&#8221;<strong>//custom query goes here</strong>&#8220;;</p>
<p>$view-&gt;build_info['count_query']=$view-&gt;build_info['query'];  <strong>// count_query determines the pager.  Do this so the right item count is returned.</strong></p>
<p>}</p>
<p>}</p>
<p>/**<br />
* This module is Views 2.0 enabled.<br />
* Implementation of hook_views_api().<br />
*/<br />
function custom_views_views_api() {<br />
return array(&#8216;api&#8217; =&gt; 2.0);<br />
}</p></blockquote>
<li>Inside the <strong>custom_views_views_pre_execute</strong> function where it says &#8216;<em>custom query goes here</em>&#8216;, paste the custom query we made in <strong>step 2 </strong>. Result below:</li>
<blockquote><p>&lt;?php // $Id: custom_views.module,v 1.272.2.1   20010/05/07 12:25:24 goba Exp $</p>
<p>function  custom_views_views_pre_execute(&amp;$view) {</p>
<p>if($view-&gt;name==&#8221;SiteActivity&#8221;) //<strong>if we don&#8217;t do this it&#8217;ll alter  ALL our site&#8217;s view queries with this one!</strong><br />
{<br />
$view-&gt;build_info['query']=<br />
&#8221;<br />
SELECT node.nid AS nid, <strong>//node id</strong><br />
users.picture AS users_picture, <strong>//picture</strong><br />
users.uid AS users_uid, <strong>//user id</strong><br />
users.name AS users_name, <strong>//user name</strong><br />
node.type AS node_type, <strong>// node type</strong><br />
node.title AS node_title, <strong>// node title</strong><br />
node.created AS node_created <strong>//post date</strong><br />
FROM node node<br />
INNER JOIN users users ON node.uid = users.uid<br />
<strong> </strong>WHERE (node.status &lt;&gt; 0)<strong> </strong></p>
<p><strong>UNION</strong></p>
<p>SELECT comments.cid AS cid, <strong>//comment id</strong><br />
users_comments.picture AS users_comments_picture, <strong>// picture</strong><br />
users_comments.uid AS users_comments_uid, <strong>//user id</strong><br />
users_comments.name AS users_comments_name, <strong>//user name</strong><br />
node_comments.type AS node_type, <strong>//node type</strong><br />
comments.subject AS comments_subject, <strong>// comment title</strong><br />
comments.timestamp  AS comments_timestamp <strong>//post date</strong><br />
FROM comments comments<br />
LEFT JOIN node node_comments ON comments.nid = node_comments.nid<br />
LEFT JOIN users users_comments ON comments.uid = users_comments.uid<br />
WHERE (node_comments.status &lt;&gt; 0)<br />
ORDER BY node_created DESC&#8221;;</p>
<p>$view-&gt;build_info['count_query']=$view-&gt;build_info['query'];  <strong>//  count_query determines the pager.  Do this so the right item count is  returned.</strong>}<br />
}</p>
<p>/**<br />
* This module is Views  2.0 enabled.<br />
* Implementation of hook_views_api().<br />
*/<br />
function custom_views_views_api() {<br />
return array(&#8216;api&#8217; =&gt; 2.0);<br />
}</p></blockquote>
<li>Save this file. We just created our custom views module. <img src='http://sethsandler.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' title="Drupal 6   Creating Activity Stream with Views Custom SQL Query: Merging multiple views   Part 1" /> </li>
<li>Now upload your custom_views module to your website and enable it like normal.</li>
</ol>
<h2>Step 4: Output our activity stream through the views UI</h2>
<p>Now that we have our new module, with our custom query added to our site, it&#8217;s time to create our final view.</p>
<ol>
<li>Create a new node view and call it &#8216;<strong>SiteActivity</strong>&#8216;. We&#8217;re picking this name because that&#8217;s what we put in our module &#8220;if($view-&gt;name==&#8221;<strong>SiteActivity</strong>&#8220;)&#8221;. If you want to call it something else, you&#8217;ll need to change the name in the custom_views module too.</li>
<li>Since the query we made had user picture, user name, node type, title, and post date, we&#8217;ll add fields for all of those.</li>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-1133" title="nalview" src="http://sethsandler.com/wp-content/uploads/2010/05/nalview.png" alt="nalview Drupal 6   Creating Activity Stream with Views Custom SQL Query: Merging multiple views   Part 1" width="581" height="447" /></p>
<li>You can arrange these how you want. Preview your new view and see what it looks like! Hopefully it should be a combination of other views you created before, but now they&#8217;re combined into a single list!</li>
<li>The original example in the beginning of this post goes a bit further (probably covered later in a part 2 of this tutorial). It uses <a href="http://drupal.org/project/views_customfield" target="_blank">views custom fields</a> in order to take all the results and images based upon the content type and activity type (project, flag, comment). With a little creativity you can do the same.</li>
</ol>
<h2>Final Thoughts:</h2>
<p>Most of the themeing parts of this tutorial will be saved for another time (part 2) since they deserve a separate part. In this example we covered how to combine multiple views queries and sorting based on a common part (post date). The method of creating a custom query and module to input in views should work with any custom query and not just UNIONs. So there is a lot of room for creativity. I hope you enjoyed this tutorial. I don&#8217;t claim to be an expert by any means and so please let me know if there are problems or insights that could improve upon this process. If there are any steps missing or clarification needed &#8211; let me know so I can make the necessary changes/additions.</p>
<h2>DOWNLOAD EXAMPLE MODULE:</h2>
<p><div class="wpfilebase-attachment">
 <div class="wpfilebase-fileicon"><a href="http://sethsandler.com/download/custom_views.zip" onclick="wpfilebase_dlclick(10, 'download/custom_views.zip')" title="Download custom_views module"><img align="middle" src="http://sethsandler.com/wp-includes/images/crystal/archive.png" title="Drupal 6   Creating Activity Stream with Views Custom SQL Query: Merging multiple views   Part 1" alt="archive Drupal 6   Creating Activity Stream with Views Custom SQL Query: Merging multiple views   Part 1" /></a></div>
 <div class="wpfilebase-rightcol">
  <div class="wpfilebase-filetitle">
   <a href="http://sethsandler.com/download/custom_views.zip" onclick="wpfilebase_dlclick(10, 'download/custom_views.zip')" title="Download custom_views module">custom_views module</a>
   custom_views.zip
   
  </div>
  <div class="wpfilebase-filedetails" id="wpfilebase-filedetails4" style="display: none;">
  
  <table border="0" width="220">
   
   
   
   
   
   
   <tr><th>Date:</th><td>January 1, 1970</td></tr>
   <tr><th>MD5 Hash:</th><td><small>580adbe74f69b884e3b6eda6c547db83</small></td></tr>
  </table>
  </div>
 </div>
 <div class="wpfilebase-fileinfo">
  1.5 KiB
  24 Downloads
  <a href="#" onclick="return wpfilebase_filedetails(4);">Details...</a>
 </div>
 <div style="clear: both;"></div>
</div>
<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Fsoftware%2Fdrupal-6-creating-activity-stream-views-custom-sql-query-merging-multiple-views-part-1%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Fsoftware%2Fdrupal-6-creating-activity-stream-views-custom-sql-query-merging-multiple-views-part-1%2F&amp;style=normal" height="61" width="50" title="Drupal 6   Creating Activity Stream with Views Custom SQL Query: Merging multiple views   Part 1" alt=" Drupal 6   Creating Activity Stream with Views Custom SQL Query: Merging multiple views   Part 1" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://sethsandler.com/software/drupal-6-creating-activity-stream-views-custom-sql-query-merging-multiple-views-part-1/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Who Doesn&#8217;t Like Lava Lamps?</title>
		<link>http://sethsandler.com/software/lava-lamps/</link>
		<comments>http://sethsandler.com/software/lava-lamps/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 05:48:02 +0000</pubDate>
		<dc:creator>SethSandler</dc:creator>
				<category><![CDATA[Art and design]]></category>
		<category><![CDATA[Headline]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[laval lamp]]></category>
		<category><![CDATA[multitouch]]></category>

		<guid isPermaLink="false">http://sethsandler.com/?p=895</guid>
		<description><![CDATA[
			
				
			
		




 If you&#8217;re familiar with multitouch, you&#8217;re probably familiar with Jeff Han&#8217;s TED demo. In it, there&#8217;s an example of a lava application that shows an interesting use of multitouch.
A few months ago, I was trying to work on something similar.
The following is what I came up with. I never had the chance to finish and was only able to add mouse support at the time. So, here&#8217;s a preview of what might come to a multitouch screen near you at some point in the future.
It&#8217;s pretty slow since it ...]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Fsoftware%2Flava-lamps%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Fsoftware%2Flava-lamps%2F&amp;style=normal" height="61" width="50" title="Who Doesnt Like Lava Lamps?" alt=" Who Doesnt Like Lava Lamps?" /><br />
			</a>
		</div>
<p style="float: right; padding: 10px"><script type="text/javascript"><!--
google_ad_client = "pub-9343590855255860";
/* in posts - 300x250, created 12/1/09 */
google_ad_slot = "1775795679";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p> If you&#8217;re familiar with multitouch, you&#8217;re probably familiar with Jeff Han&#8217;s <a href="http://www.ted.com/index.php/talks/jeff_han_demos_his_breakthrough_touchscreen.html" target="_blank">TED demo</a>. In it, there&#8217;s an example of a lava application that shows an interesting use of multitouch.</p>
<p>A few months ago, I was trying to work on something similar.</p>
<p>The following is what I came up with. I never had the chance to finish and was only able to add mouse support at the time. So, here&#8217;s a preview of what might come to a multitouch screen near you at some point in the future.</p>
<p>It&#8217;s pretty slow since it uses bitmapdata and filters and the code is a bit of a Frankenstein of information I found online about &#8216;metaballs&#8217;. If I get a chance, i&#8217;ll see if I can get the code out.</p>
<p>Meanwhile, have some fun! Click around and push/move the lava!</p>
<p style="text-align: center;"><a rel="attachment wp-att-897" href="http://sethsandler.com/software/lava-lamps/attachment/lava-2/"></a>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_lava_614877757"
			class="flashmovie"
			width="510"
			height="768">
	<param name="movie" value="http://sethsandler.com/wp-content/uploads/2009/12/lava.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://sethsandler.com/wp-content/uploads/2009/12/lava.swf"
			name="fm_lava_614877757"
			width="510"
			height="768">
	<!--<![endif]-->
		<a href="http://adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" title="Who Doesnt Like Lava Lamps?" /></a></p>

	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<p>What do you think? Lava enough for you?
<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Fsoftware%2Flava-lamps%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Fsoftware%2Flava-lamps%2F&amp;style=normal" height="61" width="50" title="Who Doesnt Like Lava Lamps?" alt=" Who Doesnt Like Lava Lamps?" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://sethsandler.com/software/lava-lamps/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Introducing AS3 Multitouch Gesture Demo Application/Utility</title>
		<link>http://sethsandler.com/technology-multitouch/introducing-as3-multitouch-gesture-demo-applicationutility/</link>
		<comments>http://sethsandler.com/technology-multitouch/introducing-as3-multitouch-gesture-demo-applicationutility/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 19:26:19 +0000</pubDate>
		<dc:creator>SethSandler</dc:creator>
				<category><![CDATA[Headline]]></category>
		<category><![CDATA[Multitouch and NUI]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[gesture]]></category>
		<category><![CDATA[multitouch]]></category>
		<category><![CDATA[TouchGesture]]></category>

		<guid isPermaLink="false">http://sethsandler.com/?p=656</guid>
		<description><![CDATA[
			
				
			
		
On my last project I had to use a gesture to initiate an event. Due to this, I recently started experimenting in creating a simple multitouch version of some gesture engines that are available. I&#8217;ve come across three that are already available in AS3 and chose to start with the $1 gesture algorithm http://depts.washington.edu/aimgroup/proj/dollar/. It only seems fitting to start with this one since Andy Wilson of microsoft research (and many multitouch devices) had a hand in it&#8217;s development.
Like most algorithms, this one matches points drawn with a template that&#8217;s ...]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Ftechnology-multitouch%2Fintroducing-as3-multitouch-gesture-demo-applicationutility%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Ftechnology-multitouch%2Fintroducing-as3-multitouch-gesture-demo-applicationutility%2F&amp;style=normal" height="61" width="50" title="Introducing AS3 Multitouch Gesture Demo Application/Utility" alt=" Introducing AS3 Multitouch Gesture Demo Application/Utility" /><br />
			</a>
		</div>
<p><a rel="attachment wp-att-657" href="http://sethsandler.com/technology-multitouch/introducing-as3-multitouch-gesture-demo-applicationutility/attachment/gesturedemo/"><img class="alignleft size-medium wp-image-657" title="gestureDemo" src="http://sethsandler.com/wp-content/uploads/2009/10/gestureDemo-300x221.jpg" alt="gestureDemo 300x221 Introducing AS3 Multitouch Gesture Demo Application/Utility" width="300" height="221" /></a>On my last project I had to use a gesture to initiate an event. Due to this, I recently started experimenting in creating a simple multitouch version of some gesture engines that are available. I&#8217;ve come across three that are already available in AS3 and chose to start with the $1 gesture algorithm <a href="http://depts.washington.edu/aimgroup/proj/dollar/" target="_blank">http://depts.washington.edu/aimgroup/proj/dollar/</a>. It only seems fitting to start with this one since Andy Wilson of microsoft research (and many multitouch devices) had a hand in it&#8217;s development.</p>
<p>Like most algorithms, this one matches points drawn with a template that&#8217;s already stored. After the gesture is finished, it is matched up against templates in the database and given a percentage of how much it matched it&#8217;s closest template (from 0-1). One of the coolest things about this engine is that it&#8217;s orientation-less. This means, no matter how you&#8217;re orientated on the surface it&#8217;ll still recognize the gesture.</p>
<p>The main thing I contributed to the already created $1 gesture port was the ability to have multiple simultaneous gestures occurring at once. This means a single user can perform more than one gesture at a time or multiple users can perform their own gestures while someone else is using the device. However, there are flaws with this algorithm that I&#8217;m not fond of  that are performance (speed) related. I&#8217;ve only tested with up to 4 touches though so if someone can test with more, please let me know how it runs.</p>
<p style="float: right; padding: 10px"><script type="text/javascript"><!--
google_ad_client = "pub-9343590855255860";
/* in posts - 300x250, created 12/1/09 */
google_ad_slot = "1775795679";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>Currently, the demo isn&#8217;t fully segregated form the core gesture classes and therefore there&#8217;s still some work to be done so that the gesture classes can be used without the demo itself. In the meantime, go ahead and test this out and make sure to give some feedback; it also works with the mouse. The demo allows you to draw a gesture and if it matches on in the database, that gesture will &#8216;light up.&#8217;</p>
<p>The tolerance is set at 80% and therefore if a gesture doesn&#8217;t match 80% of a template, it&#8217;s not recognized. Both the source and swf file are included. To test the demo, just load up the TouchGestureDemo.swf in flashplayer or a web browser.</p>
<p>Stay tuned for more on this as i&#8217;ll show the basics for using this in your own projects in case you need help.</p>
<p>Thanks to Tito (<a href="http://" target="_blank">Mathieu Vibrel</a>) and the pyMT crew for pointing me in the right direction.</p>
<p><div class="wpfilebase-attachment">
 <div class="wpfilebase-fileicon"><a href="http://sethsandler.com/download/gesture.zip" onclick="wpfilebase_dlclick(1, 'download/gesture.zip')" title="Download Gesture Demo"><img align="middle" src="http://sethsandler.com/wp-includes/images/crystal/archive.png" title="Introducing AS3 Multitouch Gesture Demo Application/Utility" alt="archive Introducing AS3 Multitouch Gesture Demo Application/Utility" /></a></div>
 <div class="wpfilebase-rightcol">
  <div class="wpfilebase-filetitle">
   <a href="http://sethsandler.com/download/gesture.zip" onclick="wpfilebase_dlclick(1, 'download/gesture.zip')" title="Download Gesture Demo">Gesture Demo</a>
   gesture.zip
   Version: 1.0
   
  </div>
  <div class="wpfilebase-filedetails" id="wpfilebase-filedetails6" style="display: none;">
  Multitouch Gesture Engine Demo
  <table border="0" width="220">
   
   <tr><th>Author:</th><td>Seth Sandler</td></tr>
   
   
   
   
   <tr><th>Date:</th><td>October 13, 2009</td></tr>
   <tr><th>MD5 Hash:</th><td><small>f59b34d4779b6959bfd2a62d0dcf00df</small></td></tr>
  </table>
  </div>
 </div>
 <div class="wpfilebase-fileinfo">
  102.8 KiB
  4950 Downloads
  <a href="#" onclick="return wpfilebase_filedetails(6);">Details...</a>
 </div>
 <div style="clear: both;"></div>
</div>
<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Ftechnology-multitouch%2Fintroducing-as3-multitouch-gesture-demo-applicationutility%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Ftechnology-multitouch%2Fintroducing-as3-multitouch-gesture-demo-applicationutility%2F&amp;style=normal" height="61" width="50" title="Introducing AS3 Multitouch Gesture Demo Application/Utility" alt=" Introducing AS3 Multitouch Gesture Demo Application/Utility" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://sethsandler.com/technology-multitouch/introducing-as3-multitouch-gesture-demo-applicationutility/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Flocking around with AS3 and Multitouch</title>
		<link>http://sethsandler.com/technology-multitouch/flocking-as3/</link>
		<comments>http://sethsandler.com/technology-multitouch/flocking-as3/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 20:31:53 +0000</pubDate>
		<dc:creator>SethSandler</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Headline]]></category>
		<category><![CDATA[Multitouch and NUI]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://sethsandler.com/?p=548</guid>
		<description><![CDATA[
			
				
			
		




For a while I&#8217;ve been interested in emergent behavior where simple rules can create complex behavior. One of the most known examples of such behavior is Craig Reynolds &#8216;boids&#8217; where a few simple rules can recreate the flocking behavior of birds.
I recently came across a great and clean example of some boids code by soulwire (make sure to check out his whole site; it&#8217;s great). Since we&#8217;ve seen various examples of this behavior on multitouch tables (like on the iBar), I decided to add some basic touch support to soulwire&#8217;s ...]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Ftechnology-multitouch%2Fflocking-as3%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Ftechnology-multitouch%2Fflocking-as3%2F&amp;style=normal" height="61" width="50" title="Flocking around with AS3 and Multitouch" alt=" Flocking around with AS3 and Multitouch" /><br />
			</a>
		</div>
<p style="float: right; padding: 10px"><script type="text/javascript"><!--
google_ad_client = "pub-9343590855255860";
/* in posts - 300x250, created 12/1/09 */
google_ad_slot = "1775795679";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p style="text-align: left;">For a while I&#8217;ve been interested in <a href="http://en.wikipedia.org/wiki/Emergence" target="_blank">emergent behavior</a> where simple rules can create complex behavior. One of the most known examples of such behavior is <a href="http://www.red3d.com/cwr/index.html">Craig Reynolds</a> &#8216;boids&#8217; where a few simple rules can recreate the flocking behavior of birds.</p>
<p style="text-align: left;">I recently came across a great and clean example of some boids code by <a href="http://blog.soulwire.co.uk/flash/actionscript-3/as3-flocking-steering-behaviors/">soulwire</a> (make sure to check out his whole site; it&#8217;s great). Since we&#8217;ve seen various examples of this behavior on multitouch tables (like on the iBar), I decided to add some basic touch support to soulwire&#8217;s example. So, now we have it&#8230;multitouchable boids!</p>
<p style="text-align: center;"><a rel="shadowbox height=640;width=800" href="http://sethsandler.com/wp-content/uploads/2009/07/Boids.swf"> <img class="alignnone" title="boids" src="http://sethsandler.com/wp-content/uploads/2009/07/boids.jpg" alt="boids Flocking around with AS3 and Multitouch" width="512" /></a></p>
<p style="text-align: left;">Right now, the demo only supports multitouch (TUIO), but mouse interaction can be easily added back in. I&#8217;ve purposely left this demo application fairly open and non-spectacular so that others can looks at the code and easily make simple changes that&#8217;ll drastically affect the results and interaction. I only spent about an hour adding in multitouch support and playing with various values, so there&#8217;s plenty more to experiment and add.</p>
<p style="text-align: left;">Currently there&#8217;s 3 buttons to change the behavior.</p>
<ol>
<li>The boids chasce eachother and move towards objects (fingers) close to them</li>
<li>The boids wonder around randomly and move towards objects (fingers) close to them</li>
<li>The boids chase eachother and flee objects (fingers) close to them</li>
</ol>
<p>Documentation is included and provided by soulwire. Make sure to check out the original website by <a href="http://blog.soulwire.co.uk/flash/actionscript-3/as3-flocking-steering-behaviors/">soulwire</a> so you know the possibilities and can see a few more examples.</p>
<p>Please let me know what you think, any questions you have, and ideas that could help expand this example.</p>
<p><strong>Download:</strong> <div class="wpfilebase-attachment">
 <div class="wpfilebase-fileicon"><a href="http://sethsandler.com/download/boids_src.zip" onclick="wpfilebase_dlclick(8, 'download/boids_src.zip')" title="Download Flocking Demo"><img align="middle" src="http://sethsandler.com/wp-includes/images/crystal/archive.png" title="Flocking around with AS3 and Multitouch" alt="archive Flocking around with AS3 and Multitouch" /></a></div>
 <div class="wpfilebase-rightcol">
  <div class="wpfilebase-filetitle">
   <a href="http://sethsandler.com/download/boids_src.zip" onclick="wpfilebase_dlclick(8, 'download/boids_src.zip')" title="Download Flocking Demo">Flocking Demo</a>
   boids_src.zip
   Version: 1
   
  </div>
  <div class="wpfilebase-filedetails" id="wpfilebase-filedetails8" style="display: none;">
  
  <table border="0" width="220">
   
   <tr><th>Author:</th><td>Seth Sandler, soulwire</td></tr>
   
   
   
   
   <tr><th>Date:</th><td>November 18, 2009</td></tr>
   <tr><th>MD5 Hash:</th><td><small>4b9a5dfea4413f460d4ab4b0a4048a9b</small></td></tr>
  </table>
  </div>
 </div>
 <div class="wpfilebase-fileinfo">
  124.0 KiB
  436 Downloads
  <a href="#" onclick="return wpfilebase_filedetails(8);">Details...</a>
 </div>
 <div style="clear: both;"></div>
</div><br />
Source code is included. The swf is inside the src folder.
<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Ftechnology-multitouch%2Fflocking-as3%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Ftechnology-multitouch%2Fflocking-as3%2F&amp;style=normal" height="61" width="50" title="Flocking around with AS3 and Multitouch" alt=" Flocking around with AS3 and Multitouch" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://sethsandler.com/technology-multitouch/flocking-as3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>NUI Group announces Multitouch Technologies book release!</title>
		<link>http://sethsandler.com/technology-multitouch/hardware/book-release/</link>
		<comments>http://sethsandler.com/technology-multitouch/hardware/book-release/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 19:16:45 +0000</pubDate>
		<dc:creator>SethSandler</dc:creator>
				<category><![CDATA[Camera]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Headline]]></category>
		<category><![CDATA[LEDs]]></category>
		<category><![CDATA[Multitouch and NUI]]></category>
		<category><![CDATA[Projector]]></category>
		<category><![CDATA[Silicone Rubber]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Table]]></category>

		<guid isPermaLink="false">http://sethsandler.com/?p=449</guid>
		<description><![CDATA[
			
				
			
		

The long awaited Multitouch Technologies book authored by members of NUI Group (http://www.nuigroup.com) has officially found it&#8217;s first release! As one of the co-authors of the book, I am proud to see a final initial version come to fruition. The book, which consolidates articles from the NUI Group Wiki, includes sections on how to build Multi-touch devices, multitouch software resources, a glossary of terms and more. I  believe, as the book develops further, this will be the best resource for multitouch information on both the web and in print.
If you&#8217;re ...]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Ftechnology-multitouch%2Fhardware%2Fbook-release%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Ftechnology-multitouch%2Fhardware%2Fbook-release%2F&amp;style=normal" height="61" width="50" title="NUI Group announces Multitouch Technologies book release!" alt=" NUI Group announces Multitouch Technologies book release!" /><br />
			</a>
		</div>
<p><a href="http://nuicode.com/attachments/download/112/First_Edition_Community_Release.pdf" target="_blank"><img class="alignleft size-full wp-image-450" title="bookcover" src="http://sethsandler.com/wp-content/uploads/2009/06/bookcover.jpg" alt="bookcover NUI Group announces Multitouch Technologies book release!" width="215" height="319" /></a></p>
<p>The long awaited Multitouch Technologies book authored by members of NUI Group (<a href="http://www.nuigroup.com" target="_blank">http://www.nuigroup.com</a>) has officially found it&#8217;s first release! As one of the co-authors of the book, I am proud to see a final initial version come to fruition. The book, which consolidates articles from the NUI Group <a href="http://wiki.nuigroup.com/" target="_blank">Wiki</a>, includes sections on how to build Multi-touch devices, multitouch software resources, a glossary of terms and more. I  believe, as the book develops further, this will be the best resource for multitouch information on both the web and in print.</p>
<p>If you&#8217;re unfamiliar with NUI Group, I suggest reading the about page <a href="http://nuigroup.com/log/about/" target="_blank">http://nuigroup.com/log/about/</a>. NUI Group is currently the single best resource for multitouch technology and hopefully will become the largest database for Natural User Interfaces and emerging technology. If you&#8217;re interested in do-it-yourself hardware/software, HCI, or multitouch interaction, NUI Group is the place to be.</p>
<p>If you like the book, leave some feedback below! If you&#8217;d like to contribute to future sections of the book, you can get involved here: <a href="http://nuicode.com/projects/wiki-book" target="_blank">http://nuicode.com/projects/wiki-book</a></p>
<p style="text-align: center;"><strong><a href="http://nuicode.com/attachments/download/112/First_Edition_Community_Release.pdf">Download the Book</a> |  <a href="http://nuicode.com/projects/wiki-book/issues/new">Submit Feedback </a> |  <a href="http://nuigroup.com/forums/viewthread/5871/">Join the Discussion</a></strong></p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Ftechnology-multitouch%2Fhardware%2Fbook-release%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Ftechnology-multitouch%2Fhardware%2Fbook-release%2F&amp;style=normal" height="61" width="50" title="NUI Group announces Multitouch Technologies book release!" alt=" NUI Group announces Multitouch Technologies book release!" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://sethsandler.com/technology-multitouch/hardware/book-release/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Super Cool Multitouch Actionscript Fluid Solver</title>
		<link>http://sethsandler.com/technology-multitouch/super-cool-multitouch-actionscript-fluid-solver/</link>
		<comments>http://sethsandler.com/technology-multitouch/super-cool-multitouch-actionscript-fluid-solver/#comments</comments>
		<pubDate>Thu, 14 May 2009 18:31:57 +0000</pubDate>
		<dc:creator>SethSandler</dc:creator>
				<category><![CDATA[Art and design]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Multitouch and NUI]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[fluid solver]]></category>
		<category><![CDATA[multitoutch]]></category>

		<guid isPermaLink="false">http://sethsandler.com/?p=299</guid>
		<description><![CDATA[
			
				
			
		




Eugene has just ported Memo’s fluid solver work to AS3 http://blog.inspirit.ru/?p=248.  With the source now out, I was able to quickly add multitouch support and it works great! Thanks to cyandesign and simpleex for keeping me on my toes.
A couple notes, the touchlib AS3 classes had to be corrected since they currently don&#8217;t send dX and dY values which the fluid solver needs to calculate directional velocity. Other than that, things went fairly smoothly and took little time to make touch sensitive.
 
Click the above image to play
Download:

 
 ...]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Ftechnology-multitouch%2Fsuper-cool-multitouch-actionscript-fluid-solver%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Ftechnology-multitouch%2Fsuper-cool-multitouch-actionscript-fluid-solver%2F&amp;style=normal" height="61" width="50" title="Super Cool Multitouch Actionscript Fluid Solver" alt=" Super Cool Multitouch Actionscript Fluid Solver" /><br />
			</a>
		</div>
<p style="float: right; padding: 10px"><script type="text/javascript"><!--
google_ad_client = "pub-9343590855255860";
/* in posts - 300x250, created 12/1/09 */
google_ad_slot = "1775795679";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>Eugene has just ported <a href="http://nuigroup.com/forums/viewthread/5074/">Memo’s fluid solver</a> work to AS3 <a href="http://blog.inspirit.ru/?p=248">http://blog.inspirit.ru/?p=248</a>.  With the source now out, I was able to quickly add multitouch support and it works great! Thanks to <a href="http://www.cyancdesign.com/" target="_blank">cyandesign </a>and <a href="http://www.simpleexcite.net/" target="_blank">simpleex </a>for keeping me on my toes.</p>
<p>A couple notes, the touchlib AS3 classes had to be corrected since they currently don&#8217;t send dX and dY values which the fluid solver needs to calculate directional velocity. Other than that, things went fairly smoothly and took little time to make touch sensitive.<br />
<a rel="shadowbox height=640;width=800" href="http://sethsandler.com/wp-content/uploads/2009/05/fluidsolver.swf"> <img class="aligncenter" title="fluidsolver" src="http://nuigroup.com/?ACT=28&amp;fid=33&amp;aid=3355_T7aA8BW1RuxJu8IpMXs1" alt=" Super Cool Multitouch Actionscript Fluid Solver" width="512" /></a></p>
<p style="text-align: center;">Click the above image to play</p>
<p><strong>Download:</strong></p>
<p><a href="http://nuigroup.com/?ACT=28&amp;fid=33&amp;aid=3354_BJKDL3TYSftbAXEyjUeT"></a><div class="wpfilebase-attachment">
 <div class="wpfilebase-fileicon"><a href="http://sethsandler.com/download/FluidSolver.zip" onclick="wpfilebase_dlclick(5, 'download/FluidSolver.zip')" title="Download Multitouch Fluid Solver"><img align="middle" src="http://sethsandler.com/wp-includes/images/crystal/archive.png" title="Super Cool Multitouch Actionscript Fluid Solver" alt="archive Super Cool Multitouch Actionscript Fluid Solver" /></a></div>
 <div class="wpfilebase-rightcol">
  <div class="wpfilebase-filetitle">
   <a href="http://sethsandler.com/download/FluidSolver.zip" onclick="wpfilebase_dlclick(5, 'download/FluidSolver.zip')" title="Download Multitouch Fluid Solver">Multitouch Fluid Solver</a>
   FluidSolver.zip
   Version: 1
   
  </div>
  <div class="wpfilebase-filedetails" id="wpfilebase-filedetails10" style="display: none;">
  Multitouch Fluid Solver
  <table border="0" width="220">
   
   <tr><th>Author:</th><td>Seth Sandler, Mehmet Atken, Eugene </td></tr>
   
   
   
   
   <tr><th>Date:</th><td>November 18, 2009</td></tr>
   <tr><th>MD5 Hash:</th><td><small>1c6974ecb841b09e6fdfbbe3539ca52e</small></td></tr>
  </table>
  </div>
 </div>
 <div class="wpfilebase-fileinfo">
  260.9 KiB
  3274 Downloads
  <a href="#" onclick="return wpfilebase_filedetails(10);">Details...</a>
 </div>
 <div style="clear: both;"></div>
</div><br />
Both source code and application are included. The swf is inside the bin folder.</p>
<p>If you try this out, leave a comment here and let me know how things go. Video responses are welcome also!
<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Ftechnology-multitouch%2Fsuper-cool-multitouch-actionscript-fluid-solver%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Ftechnology-multitouch%2Fsuper-cool-multitouch-actionscript-fluid-solver%2F&amp;style=normal" height="61" width="50" title="Super Cool Multitouch Actionscript Fluid Solver" alt=" Super Cool Multitouch Actionscript Fluid Solver" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://sethsandler.com/technology-multitouch/super-cool-multitouch-actionscript-fluid-solver/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Bloom &#8211; Multitouch Music Application</title>
		<link>http://sethsandler.com/audiotouch/bloom-generative-music-application/</link>
		<comments>http://sethsandler.com/audiotouch/bloom-generative-music-application/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 23:59:51 +0000</pubDate>
		<dc:creator>SethSandler</dc:creator>
				<category><![CDATA[AudioTouch]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Headline]]></category>
		<category><![CDATA[MultiKey]]></category>
		<category><![CDATA[Musical Squares]]></category>
		<category><![CDATA[My Progress]]></category>
		<category><![CDATA[My Videos]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Table]]></category>
		<category><![CDATA[bloom]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[multitouch]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[music application]]></category>
		<category><![CDATA[natural user interface]]></category>
		<category><![CDATA[nuigroup]]></category>

		<guid isPermaLink="false">http://ssandler.wordpress.com/?p=118</guid>
		<description><![CDATA[
			
				
			
		
Well, it’s about time I released another application right? If anyone has ever played Bloom on the iphone, I’m sure you’ll recognize my port from iphone to table.
If you’re not familiar with bloom, it’s a very simple music creation application. Press anywhere on the screen to create circles that grow and ‘bloom.’ As they fade out and re-appear, they play a note. The note is based on the x-axis. As you move right, the notes go higher.


Click the above image to play
How to use:
-Press on screen (mouse, touch, multi-touch)
-Rollover/touch/click already ...]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Faudiotouch%2Fbloom-generative-music-application%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Faudiotouch%2Fbloom-generative-music-application%2F&amp;style=normal" height="61" width="50" title="Bloom   Multitouch Music Application" alt=" Bloom   Multitouch Music Application" /><br />
			</a>
		</div>
<p>Well, it’s about time I released another application right? If anyone has ever played <a href="http://www.google.com/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;url=http://gizmodo.com/5061004/brian-enos-bloom-raises-the-bar-for-musical-iphone-apps&amp;ei=dQJISafhMITcNLe9vQQ&amp;usg=AFQjCNGWieTmhh1V0-V6swzg6gsY3_O3ZQ&amp;sig2=KpIpYLJ2-u78fOdXcWS3zQ">Bloom</a> on the iphone, I’m sure you’ll recognize my port from iphone to table.</p>
<p>If you’re not familiar with bloom, it’s a very simple music creation application. Press anywhere on the screen to create circles that grow and ‘bloom.’ As they fade out and re-appear, they play a note. The note is based on the x-axis. As you move right, the notes go higher.</p>
<p><a rel="shadowbox height=600;width=600" href="http://sethsandler.com/wp-content/uploads/2009/05/bloom.swf"><br />
<img class="aligncenter" title="bloom" src="http://nuigroup.com/?ACT=28&amp;fid=24&amp;aid=2154_1yFwKn6zrIxSElZk6VSU" alt=" Bloom   Multitouch Music Application" width="512" height="402" /></a></p>
<p style="text-align: center;">Click the above image to play</p>
<p><strong>How to use:</strong></p>
<p>-Press on screen (mouse, touch, multi-touch)<br />
-Rollover/touch/click already created circles to remove them and their sound<br />
-Press the upper left ‘clear’ button to clear all circles and sounds on screen.</p>
<p><strong>Downloads:</strong></p>
<p style="text-align:left;">Source Code:  <a href="http://nuigroup.com/?ACT=28&amp;fid=33&amp;aid=2155_a8EATbuFhUoTM5ZGV704"></a><div class="wpfilebase-attachment">
 <div class="wpfilebase-fileicon"><a href="http://sethsandler.com/download/bloom_src.zip" onclick="wpfilebase_dlclick(7, 'download/bloom_src.zip')" title="Download Bloom Source Code"><img align="middle" src="http://sethsandler.com/wp-includes/images/crystal/archive.png" title="Bloom   Multitouch Music Application" alt="archive Bloom   Multitouch Music Application" /></a></div>
 <div class="wpfilebase-rightcol">
  <div class="wpfilebase-filetitle">
   <a href="http://sethsandler.com/download/bloom_src.zip" onclick="wpfilebase_dlclick(7, 'download/bloom_src.zip')" title="Download Bloom Source Code">Bloom Source Code</a>
   bloom_src.zip
   Version: 1
   
  </div>
  <div class="wpfilebase-filedetails" id="wpfilebase-filedetails13" style="display: none;">
  
  <table border="0" width="220">
   
   <tr><th>Author:</th><td>Seth Sandler</td></tr>
   
   
   
   
   <tr><th>Date:</th><td>November 18, 2009</td></tr>
   <tr><th>MD5 Hash:</th><td><small>37030ba99feb9663b98f0c755061bcca</small></td></tr>
  </table>
  </div>
 </div>
 <div class="wpfilebase-fileinfo">
  1.2 MiB
  21861 Downloads
  <a href="#" onclick="return wpfilebase_filedetails(13);">Details...</a>
 </div>
 <div style="clear: both;"></div>
</div></p>
<p style="text-align:left;">Binary Application: <a href="http://nuigroup.com/?ACT=28&amp;fid=33&amp;aid=2153_ZOoNPO2FqOXcMOgmbqTx"></a><div class="wpfilebase-attachment">
 <div class="wpfilebase-fileicon"><a href="http://sethsandler.com/download/bloom.zip" onclick="wpfilebase_dlclick(6, 'download/bloom.zip')" title="Download Bloom Application"><img align="middle" src="http://sethsandler.com/wp-includes/images/crystal/archive.png" title="Bloom   Multitouch Music Application" alt="archive Bloom   Multitouch Music Application" /></a></div>
 <div class="wpfilebase-rightcol">
  <div class="wpfilebase-filetitle">
   <a href="http://sethsandler.com/download/bloom.zip" onclick="wpfilebase_dlclick(6, 'download/bloom.zip')" title="Download Bloom Application">Bloom Application</a>
   bloom.zip
   Version: 1
   
  </div>
  <div class="wpfilebase-filedetails" id="wpfilebase-filedetails14" style="display: none;">
  
  <table border="0" width="220">
   
   <tr><th>Author:</th><td>Seth Sandler</td></tr>
   
   
   
   
   <tr><th>Date:</th><td>November 18, 2009</td></tr>
   <tr><th>MD5 Hash:</th><td><small>d4302be06f674dd3f68b7d38c52256d6</small></td></tr>
  </table>
  </div>
 </div>
 <div class="wpfilebase-fileinfo">
  1.9 MiB
  21021 Downloads
  <a href="#" onclick="return wpfilebase_filedetails(14);">Details...</a>
 </div>
 <div style="clear: both;"></div>
</div></p>
<p>The source folder should include everything you need to run the application. You don’t need to copy anything into your current AS3 directory. I’ve commented the Main.as file very well and it should give a good look into making simple applications with the AS3 Touch API.</p>
<p>Thanks to Christian for the background color tweening effect.</p>
<p>Check out my Bloom thread I started here: <a href="http://nuigroup.com/forums/viewthread/3867/">http://nuigroup.com/forums/viewthread/3867/</a></p>
<p>Check out olo:idea video below that shows the Bloom running on a large multitouch display.</p>

<p>Check out bassmang5 video below that shows the Bloom and my other applications running on his MTmini! You can see his post on NUIGroup here: <a href="http://nuigroup.com/forums/viewthread/3911/">http://nuigroup.com/forums/viewthread/3911/</a></p>
<p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Faudiotouch%2Fbloom-generative-music-application%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Faudiotouch%2Fbloom-generative-music-application%2F&amp;style=normal" height="61" width="50" title="Bloom   Multitouch Music Application" alt=" Bloom   Multitouch Music Application" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://sethsandler.com/audiotouch/bloom-generative-music-application/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>AudioTouch &#8211; Event 2</title>
		<link>http://sethsandler.com/audiotouch/event2/</link>
		<comments>http://sethsandler.com/audiotouch/event2/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 18:30:03 +0000</pubDate>
		<dc:creator>SethSandler</dc:creator>
				<category><![CDATA[AudioTouch]]></category>
		<category><![CDATA[Audioshape Sequencer]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Headline]]></category>
		<category><![CDATA[Multitouch Videos]]></category>
		<category><![CDATA[Multitouch and NUI]]></category>
		<category><![CDATA[My Progress]]></category>
		<category><![CDATA[multitouch]]></category>
		<category><![CDATA[natural user interface]]></category>
		<category><![CDATA[nui]]></category>
		<category><![CDATA[nuigroup]]></category>

		<guid isPermaLink="false">http://ssandler.wordpress.com/?p=114</guid>
		<description><![CDATA[
			
				
			
		
Here&#8217;s some pictures from the second event where AudioTouch was on display.
















			
				
			
		
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Faudiotouch%2Fevent2%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Faudiotouch%2Fevent2%2F&amp;style=normal" height="61" width="50" title="AudioTouch   Event 2" alt=" AudioTouch   Event 2" /><br />
			</a>
		</div>
<p>Here&#8217;s some pictures from the second event where AudioTouch was on display.<br />
<img class="alignnone" src="http://img47.imageshack.us/img47/2664/mg9496gj7.jpg" alt="mg9496gj7 AudioTouch   Event 2" width="576" height="384" title="AudioTouch   Event 2" /><br />
<img class="alignnone" title="n" src="http://img141.imageshack.us/img141/7611/mg9494nh2.jpg" alt="mg9494nh2 AudioTouch   Event 2" width="576" height="384" /><br />
<img class="alignnone" title="n" src="http://img92.imageshack.us/img92/7146/mg9466va8.jpg" alt="mg9466va8 AudioTouch   Event 2" width="576" height="384" /><br />
<img class="alignnone" title="n" src="http://img92.imageshack.us/img92/2605/mg9467pb9.jpg" alt="mg9467pb9 AudioTouch   Event 2" width="576" height="384" /><br />
<img class="alignnone" title="n" src="http://img57.imageshack.us/img57/761/mg9479iy9.jpg" alt="mg9479iy9 AudioTouch   Event 2" width="576" height="384" /><br />
<img class="alignnone" title="n" src="http://img296.imageshack.us/img296/6114/mg9480bd0.jpg" alt="mg9480bd0 AudioTouch   Event 2" width="576" height="384" /><br />
<img class="alignnone" title="n" src="http://img57.imageshack.us/img57/6848/mg9481sw3.jpg" alt="mg9481sw3 AudioTouch   Event 2" width="576" height="384" /><br />
<img class="alignnone" title="n" src="http://img141.imageshack.us/img141/5551/mg9468bl5.jpg" alt="mg9468bl5 AudioTouch   Event 2" width="576" height="384" /><br />
<img class="alignnone" title="n" src="http://img141.imageshack.us/img141/579/mg9470yu7.jpg" alt="mg9470yu7 AudioTouch   Event 2" width="576" height="384" /><br />
<img class="alignnone" title="n" src="http://img73.imageshack.us/img73/7506/mg9471wd8.jpg" alt="mg9471wd8 AudioTouch   Event 2" width="576" height="384" /><br />
<img class="alignnone" title="n" src="http://img410.imageshack.us/img410/2832/mg9472cf6.jpg" alt="mg9472cf6 AudioTouch   Event 2" width="576" height="384" /><br />
<img class="alignnone" title="n" src="http://img165.imageshack.us/img165/9941/mg9473nq9.jpg" alt="mg9473nq9 AudioTouch   Event 2" width="576" height="384" /><br />
<img class="alignnone" title="n" src="http://img391.imageshack.us/img391/5619/mg9475nb4.jpg" alt="mg9475nb4 AudioTouch   Event 2" width="576" height="384" /><br />
<img class="alignnone" title="n" src="http://img154.imageshack.us/img154/3761/mg9478jd6.jpg" alt="mg9478jd6 AudioTouch   Event 2" width="576" height="384" /><br />
<img class="alignnone" title="n" src="http://img154.imageshack.us/img154/2513/mg9477bp7.jpg" alt="mg9477bp7 AudioTouch   Event 2" width="576" height="384" />
<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Faudiotouch%2Fevent2%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Faudiotouch%2Fevent2%2F&amp;style=normal" height="61" width="50" title="AudioTouch   Event 2" alt=" AudioTouch   Event 2" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://sethsandler.com/audiotouch/event2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AudioTouch OS Video</title>
		<link>http://sethsandler.com/audiotouch/audiotouch-os-video/</link>
		<comments>http://sethsandler.com/audiotouch/audiotouch-os-video/#comments</comments>
		<pubDate>Wed, 05 Mar 2008 18:50:42 +0000</pubDate>
		<dc:creator>SethSandler</dc:creator>
				<category><![CDATA[AudioTouch]]></category>
		<category><![CDATA[Audioshape Sequencer]]></category>
		<category><![CDATA[MultiKey]]></category>
		<category><![CDATA[Multitouch Videos]]></category>
		<category><![CDATA[Musical Squares]]></category>
		<category><![CDATA[My Progress]]></category>
		<category><![CDATA[My Videos]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Table]]></category>

		<guid isPermaLink="false">http://ssandler.wordpress.com/?p=51</guid>
		<description><![CDATA[
			
				
			
		
New video of the new system that loads and unloads applications. Also, the desktop is now sending out OSC message to PureData to create some sounds based on finger number and position on screen.
 

			
				
			
		
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Faudiotouch%2Faudiotouch-os-video%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Faudiotouch%2Faudiotouch-os-video%2F&amp;style=normal" height="61" width="50" title="AudioTouch OS Video" alt=" AudioTouch OS Video" /><br />
			</a>
		</div>
<p>New video of the new system that loads and unloads applications. Also, the desktop is now sending out OSC message to PureData to create some sounds based on finger number and position on screen.</p>
<p align="center"><!-- start insertion by YouTube Brackets, robertbuzink.nl --><span class="youtube"><object width="425" height="350" type="application/x-shockwave-flash" data="http://www.youtube.com/v/vHvH-nWH3QM"> <param name="movie" value="http://www.youtube.com/v/vHvH-nWH3QM" /><param name="wmode" value="transparent" /></object></span><!-- end Youtube Brackets insertion --></p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px; margin-bottom: 10px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsethsandler.com%2Faudiotouch%2Faudiotouch-os-video%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsethsandler.com%2Faudiotouch%2Faudiotouch-os-video%2F&amp;style=normal" height="61" width="50" title="AudioTouch OS Video" alt=" AudioTouch OS Video" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://sethsandler.com/audiotouch/audiotouch-os-video/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
