<?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>Nick Hardeman</title>
	<atom:link href="http://nickhardeman.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://nickhardeman.com/blog</link>
	<description>Blog about design and technology in various forms</description>
	<lastBuildDate>Thu, 26 Aug 2010 03:17:11 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Repulsion &#8211; Live Wallpaper for Android</title>
		<link>http://nickhardeman.com/blog/?p=366</link>
		<comments>http://nickhardeman.com/blog/?p=366#comments</comments>
		<pubDate>Tue, 24 Aug 2010 19:01:54 +0000</pubDate>
		<dc:creator>NickHardeman</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Live Wallpaper]]></category>
		<category><![CDATA[Wallpaper]]></category>

		<guid isPermaLink="false">http://nickhardeman.com/blog/?p=366</guid>
		<description><![CDATA[My first Android application is a Live Wallpaper with varying amounts of circles bouncing and repelling from each other. The circles respond to the accelerometer of the phone and the touch of the user. The settings allow the user to change the color scheme, the size of the circles, the number of circles and the [...]]]></description>
			<content:encoded><![CDATA[<p>My first Android application is a Live Wallpaper with varying amounts of circles bouncing and repelling from each other. The circles respond to the accelerometer of the phone and the touch of the user. The settings allow the user to change the color scheme, the size of the circles, the number of circles and the trail amount. The user may also add a clockwise force, counter-clockwise force or force to the center of the screen.</p>
<p><a href="http://nickhardeman.com/blog/?p=366"><em>Click here to view the embedded video.</em></a></p>
<p>Read more about how to get the app and view the color options.</p>
<p><span id="more-366"></span></p>
<p>How do I get it? Access the Android market on your phone and search for <em>Repulsion</em> as the key phrase.</p>
<p>Or use this QR code (clickable if you are on an Android phone).</p>
<p><a href="market://details?id=com.nickhardeman.oceanwallpaper"><img title="QRCode for Repulsion Wallpaper" src="http://nickhardeman.com/blog/wp-content/uploads/2010/08/qrcode.png" alt="" width="234" height="234" /></a></p>
<p>Color schemes available:</p>
<div id="attachment_369" class="wp-caption alignnone" style="width: 369px"><a href="http://nickhardeman.com/blog/wp-content/uploads/2010/08/Screen-shot-2010-08-24-at-2.26.31-PM1.png"><img class="size-full wp-image-369 " title="Android Repulsion Color Scheme" src="http://nickhardeman.com/blog/wp-content/uploads/2010/08/Screen-shot-2010-08-24-at-2.26.31-PM1.png" alt="Android Repulsion Color Scheme" width="359" height="62" /></a><p class="wp-caption-text">Android</p></div>
<div id="attachment_370" class="wp-caption alignnone" style="width: 369px"><a href="http://nickhardeman.com/blog/wp-content/uploads/2010/08/Screen-shot-2010-08-24-at-2.26.59-PM.png"><img class="size-full wp-image-370 " title="Day at the Beach Repulsion Color Scheme" src="http://nickhardeman.com/blog/wp-content/uploads/2010/08/Screen-shot-2010-08-24-at-2.26.59-PM.png" alt="Day at the Beach" width="359" height="62" /></a><p class="wp-caption-text">Day at the Beach</p></div>
<div id="attachment_371" class="wp-caption alignnone" style="width: 369px"><a href="http://nickhardeman.com/blog/wp-content/uploads/2010/08/Screen-shot-2010-08-24-at-2.27.23-PM.png"><img class="size-full wp-image-371 " title="Candy Man Repulsion Color Scheme" src="http://nickhardeman.com/blog/wp-content/uploads/2010/08/Screen-shot-2010-08-24-at-2.27.23-PM.png" alt="Candy Man" width="359" height="62" /></a><p class="wp-caption-text">Candy Man</p></div>
<div id="attachment_372" class="wp-caption alignnone" style="width: 369px"><a href="http://nickhardeman.com/blog/wp-content/uploads/2010/08/Screen-shot-2010-08-24-at-2.27.41-PM.png"><img class="size-full wp-image-372 " title="Easy Peasy Repulsion Color Scheme" src="http://nickhardeman.com/blog/wp-content/uploads/2010/08/Screen-shot-2010-08-24-at-2.27.41-PM.png" alt="Easy Peasy" width="359" height="62" /></a><p class="wp-caption-text">Easy Peasy</p></div>
<div id="attachment_373" class="wp-caption alignnone" style="width: 369px"><a href="http://nickhardeman.com/blog/wp-content/uploads/2010/08/Screen-shot-2010-08-24-at-2.28.03-PM.png"><img class="size-full wp-image-373 " title="Pea Body Repulsion Color Scheme" src="http://nickhardeman.com/blog/wp-content/uploads/2010/08/Screen-shot-2010-08-24-at-2.28.03-PM.png" alt="Pea Body" width="359" height="62" /></a><p class="wp-caption-text">Pea Body</p></div>
<div id="attachment_374" class="wp-caption alignnone" style="width: 369px"><a href="http://nickhardeman.com/blog/wp-content/uploads/2010/08/Screen-shot-2010-08-24-at-2.28.24-PM.png"><img class="size-full wp-image-374 " title="Brunch Anyone Repulsion Color Scheme" src="http://nickhardeman.com/blog/wp-content/uploads/2010/08/Screen-shot-2010-08-24-at-2.28.24-PM.png" alt="Brunch Anyone?" width="359" height="62" /></a><p class="wp-caption-text">Brunch Anyone?</p></div>
<div id="attachment_375" class="wp-caption alignnone" style="width: 369px"><a href="http://nickhardeman.com/blog/wp-content/uploads/2010/08/Screen-shot-2010-08-24-at-2.28.41-PM.png"><img class="size-full wp-image-375 " title="Stanky Leg Repulsion Color Scheme" src="http://nickhardeman.com/blog/wp-content/uploads/2010/08/Screen-shot-2010-08-24-at-2.28.41-PM.png" alt="Stanky Leg" width="359" height="62" /></a><p class="wp-caption-text">Stanky Leg</p></div>
<p><strong>Video Coming soon.</strong></p>
<p>Please feel free to leave any questions or comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://nickhardeman.com/blog/?feed=rss2&amp;p=366</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>social sqncr</title>
		<link>http://nickhardeman.com/blog/?p=359</link>
		<comments>http://nickhardeman.com/blog/?p=359#comments</comments>
		<pubDate>Wed, 19 May 2010 22:41:14 +0000</pubDate>
		<dc:creator>NickHardeman</dc:creator>
				<category><![CDATA[Open Frameworks]]></category>
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://nickhardeman.com/blog/?p=359</guid>
		<description><![CDATA[
I have not posted in a while, but that is because my partner, Bruce Drummond, and I have been working on our MFA Design + Technology thesis called social sqncr. It is an audio visual installation that allows users to create virtual musical creatures through body movement that act as sequencers. More information, including photos, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sqncr.com/social/"><img class="alignnone size-full wp-image-361" title="social sqncr" src="http://nickhardeman.com/blog/wp-content/uploads/2010/05/Picture-1.png" alt="" width="508" height="381" /></a></p>
<p>I have not posted in a while, but that is because my partner, <a href="http://bruzed.com/" target="_blank">Bruce Drummond</a>, and I have been working on our MFA Design + Technology thesis called <a href="http://sqncr.com/social/" target="_blank">social sqncr</a>. It is an audio visual installation that allows users to create virtual musical creatures through body movement that act as sequencers. More information, including photos, videos and a more thorough description can be found on the site, <a href="http://sqncr.com/social/" target="_blank">sqncr.com/social</a>. I coded all of the visuals in <a href="http://www.openframeworks.cc" target="_blank">OpenFrameworks</a> and Bruce coded all of the audio in <a href="http://www.audiosynth.com/" target="_blank">SuperCollider</a> and we talked to each other via <a href="http://opensoundcontrol.org/" target="_blank">OSC</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nickhardeman.com/blog/?feed=rss2&amp;p=359</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parsons Exploratory Navigation</title>
		<link>http://nickhardeman.com/blog/?p=350</link>
		<comments>http://nickhardeman.com/blog/?p=350#comments</comments>
		<pubDate>Wed, 24 Feb 2010 00:34:45 +0000</pubDate>
		<dc:creator>NickHardeman</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Project]]></category>
		<category><![CDATA[Navigation]]></category>

		<guid isPermaLink="false">http://nickhardeman.com/blog/?p=350</guid>
		<description><![CDATA[Recently Parsons has launched a much needed improved site. I worked on a Flash application of the site which serves as an exploratory navigation for potential students to discover programs they may be interested in based on floating keywords. The design was done by Dexter Miranda and supervised by Isa Gouverneur, both part of the [...]]]></description>
			<content:encoded><![CDATA[<p>Recently Parsons has launched a much needed improved site. I worked on a Flash application of the site which serves as an exploratory navigation for potential students to discover programs they may be interested in based on floating keywords. The design was done by Dexter Miranda and supervised by Isa Gouverneur, both part of the Parsons creative team. The navigation also visually makes connections between programs or schools that share keywords. This is slightly confusing to explain, so take a look at the <a href="http://www.newschool.edu/parsons/" target="_blank">navigation</a> itself.</p>
<p><a href="http://www.newschool.edu/parsons/" target="_blank"><img class="alignnone size-full wp-image-352" title="Parsons Navigation Open Keyword" src="http://nickhardeman.com/blog/wp-content/uploads/2010/02/picture-41.png" alt="" width="500" height="288" /></a></p>
<p><span id="more-350"></span></p>
<p>Can&#8217;t find the navigation?</p>
<p><img class="alignnone size-full wp-image-351" title="Parsons Wavey Navigation" src="http://nickhardeman.com/blog/wp-content/uploads/2010/02/picture-11.png" alt="" width="500" height="55" /></p>
<p>It is hidden until you move your mouse over the bottom portion of the red bar in the header. I am very glad they chose this navigation coded by <a href="http://www.eduardomenendez.net/index.php" target="_blank">Eduardo Menendez</a> to trigger the exploratory navigation.</p>
<p>Some more screen shots.</p>
<p>Floating keywords.</p>
<p><a href="http://www.newschool.edu/parsons/" target="_blank"><img class="alignnone size-full wp-image-353" title="Parsons Navigation Floating Keywords" src="http://nickhardeman.com/blog/wp-content/uploads/2010/02/picture-2.png" alt="" width="500" height="288" /></a></p>
<p>Pop-up visuals on program or school click.</p>
<p><a href="http://www.newschool.edu/parsons/" target="_blank"><img class="alignnone size-full wp-image-354" title="Parsons Navigation Pop-up" src="http://nickhardeman.com/blog/wp-content/uploads/2010/02/picture-7.png" alt="" width="500" height="288" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://nickhardeman.com/blog/?feed=rss2&amp;p=350</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TweetCatcha</title>
		<link>http://nickhardeman.com/blog/?p=319</link>
		<comments>http://nickhardeman.com/blog/?p=319#comments</comments>
		<pubDate>Fri, 05 Feb 2010 14:32:02 +0000</pubDate>
		<dc:creator>NickHardeman</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Data Visualization]]></category>
		<category><![CDATA[New York Times]]></category>
		<category><![CDATA[Timeswire]]></category>
		<category><![CDATA[TweetCatcha]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://nickhardeman.com/blog/?p=319</guid>
		<description><![CDATA[
Tweetcatcha uses the New York Times Timeswire API to load the latest news for the last 24 hours. We use the title and the url of the articles on nytimes.com to search through Twitter. There is a lot of data, so please be patient with the load time. Searching through Twitter for url was made [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://a.parsons.edu/~drumb588/tweetcatcha/" target="_blank"><img class="alignnone size-full wp-image-320" title="Tweetcatcha Title Page" src="http://nickhardeman.com/blog/wp-content/uploads/2010/02/picture-3.png" alt="" width="500" height="250" /></a></p>
<p><a href="http://a.parsons.edu/~drumb588/tweetcatcha/TweetCatcha.swf" target="_blank">Tweetcatcha</a> uses the <a href="http://developer.nytimes.com/docs/times_newswire_api" target="_blank">New York Times Timeswire API</a> to load the latest news for the last 24 hours. We use the title and the url of the articles on <a href="http://www.nytimes.com/" target="_blank">nytimes.com</a> to search through <a href="http://twitter.com/" target="_blank">Twitter</a>. There is a lot of data, so please be patient with the load time. Searching through Twitter for url was made much easier by using <a href="http://backtweets.com/" target="_blank">BackTweets</a>, a service of <a href="http://www.backtype.com/" target="_blank">BackType</a>. I wrote a AS3 class to wrap the <a href="http://backtweets.com/api" target="_blank">BackTweets API</a>, more information in this <a href="http://nickhardeman.com/blog/?p=276" target="_self">blog post</a>. The tweets are arranged around in the center based on the time difference from the article posting to the time the tweet was created. So, if a tweet was posted less than an hour after the article, then it would be very close to the inner most ring, and if it was posted 20 or more hours later, then it would be closer to the last ring, (there are 24 rings, one for each hour in the day). <a href="http://bruzed.com/" target="_blank">Bruce Drummond</a> and I collaborated on this project.</p>
<p><span id="more-319"></span></p>
<p>We began collecting data on November 13, 2009 and continued until February 9, 2010. We set up a cron job on one of our computers to pull and store the data locally. Over this time period, the database grew to 107 MB, with 15,327 NYTimes articles and 311,885 tweets related to those articles. That is a lot of data, so please be patient if it takes a while to load!</p>
<p><a href="http://a.parsons.edu/~drumb588/tweetcatcha/" target="_blank"><img class="alignnone size-full wp-image-321" title="TweetCatcha Zoom In" src="http://nickhardeman.com/blog/wp-content/uploads/2010/02/picture-4.png" alt="" width="500" height="294" /></a></p>
<p><a href="http://www.backtype.com/" target="_blank"><img class="alignleft size-full wp-image-322" title="Back Type Logo" src="http://nickhardeman.com/blog/wp-content/uploads/2010/02/picture-5.png" alt="" width="140" height="16" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://nickhardeman.com/blog/?feed=rss2&amp;p=319</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Export / Import Large Database from MAMP using Terminal</title>
		<link>http://nickhardeman.com/blog/?p=308</link>
		<comments>http://nickhardeman.com/blog/?p=308#comments</comments>
		<pubDate>Fri, 29 Jan 2010 22:04:26 +0000</pubDate>
		<dc:creator>NickHardeman</dc:creator>
				<category><![CDATA[Utilities]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[MAMP]]></category>
		<category><![CDATA[Terminal]]></category>

		<guid isPermaLink="false">http://nickhardeman.com/blog/?p=308</guid>
		<description><![CDATA[MAMP is a great tool for running servers locally, however, when you must export that site you have been developing locally and your database is huge, then you could have some problems with PHPMyAdmin.
One solution is to use terminal. The reason that I am writing this post is so that I can reference it in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mamp.info/en/index.html" target="_blank">MAMP</a> is a great tool for running servers locally, however, when you must export that site you have been developing locally and your database is huge, then you could have some problems with PHPMyAdmin.<br />
One solution is to use terminal. The reason that I am writing this post is so that I can reference it in the future. It always takes me more that 10 minutes to figure this out since I never use terminal, so I thought someone else may find this of some use.</p>
<p>I understand there are probably many ways to do this, but this works for me, so&#8230; try out the code below.</p>
<p><span id="more-308"></span></p>
<h2>EXPORT DATABASE FROM MAMP</h2>
<p><strong>Step One:</strong></p>
<ul>
<li>Open a new terminal window</li>
</ul>
<p><strong>Step Two:</strong></p>
<ul>
<li>Navigate to the MAMP install by entering the following line in terminal</li>
<li><code>cd /applications/MAMP/library/bin</code></li>
<li>Hit the enter key</li>
</ul>
<p><strong>Step Three:</strong></p>
<ul>
<li>Write the dump command</li>
<li><code>./mysqldump -u [USERNAME] -p [DATA_BASENAME] &gt; [PATH_TO_FILE]</code></li>
<li>Hit the enter key</li>
<li>Example:</li>
<li><code>./mysqldump -u root -p wp_database &gt; /Applications/MAMP/htdocs/symposium10_wp/wp_db_onezero.sql</code></li>
<li><em>Quick tip: to navigate to a folder quickly you can drag the folder into the terminal window and it will write the location of the folder. It was a great day when someone showed me this.</em></li>
</ul>
<p><strong>Step Four:</strong></p>
<ul>
<li>This line of text should appear after you hit enter</li>
<li><code>Enter password:</code></li>
<li>So guess what, type your password, keep in mind that the letters will not appear, but they are there</li>
<li>Hit the enter key</li>
</ul>
<p><strong>Step Five:</strong></p>
<ul>
<li>Check the location of where you stored your file, if it is there, SUCCESS</li>
<li>Now you can import the database, which will be outlined next.</li>
</ul>
<h2>IMPORT DATABASE INTO MAMP</h2>
<p><strong>Step One:</strong></p>
<ul>
<li>Open a new terminal window</li>
<li><strong><span style="color: #ff0000;">CAREFUL: </span>This will replace all tables in the database you specify!</strong></li>
</ul>
<p><strong>Step Two:</strong></p>
<ul>
<li><code>/applications/MAMP/library/bin/mysql -u [USERNAME] -p [DATABASE_NAME] &lt; [PATH_TO_SQL_FILE]</code></li>
<li>Hit the Enter Key</li>
<li>Example:</li>
<li><code>/applications/MAMP/library/bin/mysql -u root -p wordpress_db &lt; /Applications/MAMP/htdocs/backupDB.sql</code></li>
<li><em>Quick Tip: Don&#8217;t forget that you can simply drag the file into the terminal window and it will enter the location of the file for you.</em></li>
</ul>
<p><strong>Step Three:</strong></p>
<ul>
<li>You should be prompted with the following line:</li>
<li><code>Enter password:</code></li>
<li>Type your password, keep in mind that the letters will not appear, but they are there</li>
<li>Hit the enter key</li>
</ul>
<p><strong>Step Four:</strong></p>
<ul>
<li>Check if you database was successfully imported</li>
<li>Navigate to phpMyAdmin in a browser</li>
<li><code>http://localhost:8888/MAMP/</code></li>
</ul>
<p>I hope this helps, please let me know if anyone has any errors, questions or comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://nickhardeman.com/blog/?feed=rss2&amp;p=308</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Boids and Tentacles in OpenFrameworks</title>
		<link>http://nickhardeman.com/blog/?p=303</link>
		<comments>http://nickhardeman.com/blog/?p=303#comments</comments>
		<pubDate>Tue, 26 Jan 2010 22:04:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Open Frameworks]]></category>
		<category><![CDATA[Algorithmic Animation]]></category>
		<category><![CDATA[Blob Tracking]]></category>
		<category><![CDATA[FFT Analysis]]></category>
		<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[OpenFrameworks]]></category>

		<guid isPermaLink="false">http://nickhardeman.com/blog/?p=303</guid>
		<description><![CDATA[It has been a while since I have posted something, but I have a few projects that I never posted from last semester. Here are two to start off with.
Boids in 3D

Boids in 3D from Nick Hardeman on Vimeo.
This project utilizes flocking and Craig Reynold&#8217;s boids to move about a 3D environment. The boids circle [...]]]></description>
			<content:encoded><![CDATA[<p>It has been a while since I have posted something, but I have a few projects that I never posted from last semester. Here are two to start off with.</p>
<p><strong>Boids in 3D</strong></p>
<p><object width="480" height="360"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8997570&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=8997570&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="480" height="360"></embed></object>
<p><a href="http://vimeo.com/8997570">Boids in 3D</a> from <a href="http://vimeo.com/user950255">Nick Hardeman</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>This project utilizes flocking and Craig Reynold&#8217;s boids to move about a 3D environment. The boids circle around sphere and a repulsion force from inside of the sphere is applied to the Boids using the space bar. There is some perlin noise that is applied to them as well. The tails are generated based on <a href="http://www.flight404.com/blog/?cat=4" target="_blank">some code</a> by Robert Hodgin. The camera movement is handled by a nicely bundled class called Camera by Tobias Jewson.</p>
<p><strong>Techno Tentacles</strong><br />
<object width="480" height="360"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8998874&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=8998874&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="480" height="360"></embed></object>
<p><a href="http://vimeo.com/8998874">Techno Tentacles</a> from <a href="http://vimeo.com/user950255">Nick Hardeman</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>This project responds to audio, as well as, video. I am not very good with audio or the terms used, so excuse me if this doesn&#8217;t make any sense. But I do know that the audio analysis code by Zach Lieberman uses FFT Analysis. Each tentacle is assigned a certain range of audio, if there are more tentacles, the ranges are shorter. The loudness in each range corresponds to the outward force from the center that each tentacle feels. If all of the channels are really loud, then the tentacles form an image that looks similar to a star fish.</p>
<p>The tentacles attempt to attach themselves to people who enter the frame, it can be either live or recorded video, in this case it is recorded. The sorting of the points on the contour was a tad tricky since they are not returned in order of x, y values, so the a point in one frame might have a completely different index on the next, not to mention that the number of points changes from frame to frame. The tentacles follow the user around and react to audio, look out Dr. Octopus.</p>
]]></content:encoded>
			<wfw:commentRss>http://nickhardeman.com/blog/?feed=rss2&amp;p=303</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>BackTweets API AS3 Class</title>
		<link>http://nickhardeman.com/blog/?p=276</link>
		<comments>http://nickhardeman.com/blog/?p=276#comments</comments>
		<pubDate>Sun, 22 Nov 2009 01:48:12 +0000</pubDate>
		<dc:creator>NickHardeman</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[BackTweet API]]></category>
		<category><![CDATA[BackTweets]]></category>
		<category><![CDATA[Twitter Search]]></category>

		<guid isPermaLink="false">http://nickhardeman.com/blog/?p=276</guid>
		<description><![CDATA[For a current project collaborator Bruce Drummond and I needed to search Twitter for urls. We attempted to parse the bit.ly truncated urls by expanding them, but that proved inefficient. Since each user truncates urls differently, we could not simply truncate the url and then search for that bit.ly. We also contacted bit.ly to determine [...]]]></description>
			<content:encoded><![CDATA[<p>For a current project collaborator <a href="http://bruzed.com/" target="_blank">Bruce Drummond</a> and I needed to search <a href="http://twitter.com/" target="_blank">Twitter</a> for urls. We attempted to parse the bit.ly truncated urls by expanding them, but that proved inefficient. Since each user truncates urls differently, we could not simply truncate the url and then search for that bit.ly. We also contacted bit.ly to determine if a list of short urls could be returned for a long url, but after a condescending response, we decided to look elsewhere.</p>
<p>After some searching on the web, we found <a href="http://backtweets.com/" target="_blank">BackTweets</a>. This is an extension of <a href="http://www.backtype.com/developers" target="_blank">BackType</a> that stores data for various social media. BackTweets proved most effective at handling url searches. We could pass in the url that we were searching for and BackTweets would return a list of tweets. It is also possible to pass in something shorter, like nytimes.com and it will return tweets that have that inside the url. For example, <a href="http://www.nytimes.com/2009/11/13/world/asia/13eikenberry.html?_r=1&amp;hp" target="_blank">http://www.nytimes.com/2009/11/13/world/asia/13eikenberry.html?_r=1&amp;hp</a>, could be returned when providing <a href="http://www.nytimes.com/" target="_blank">nytimes.com</a> as a query term.</p>
<p>Earlier in this project we wrote a class in AS3 for Flash, and thought that someone may benefit from it.</p>
<div class="flashSwf"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="265" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="wp-content/uploads/2009/11/backtweettest.swf" /><param name="allowscriptaccess" value="always" /><embed type="application/x-shockwave-flash" width="500" height="265" src="wp-content/uploads/2009/11/backtweettest.swf" allowscriptaccess="always"></embed></object></div>
<p><a href="http://nickhardeman.com/blog/wp-content/uploads/2009/11/backtweetexample.zip">Download Source</a><br />
<span id="more-276"></span><br />
It is a simple wrapper that you can pass in arguments and get an array of tweet objects returned.<br />
The constructor takes one argument, your BackTweetAPI Key</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #6699cc; font-weight: bold;">var</span> _bt<span style="color: #000000; font-weight: bold;">:</span>BackTweet = <span style="color: #0033ff; font-weight: bold;">new</span> BackTweet<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Your-BackTweet-API_Key&quot;</span><span style="color: #000000;">&#41;</span>;</pre></div></div>

<p>Now that we have a BackTweet ready, we can use the search function to search for something. Don&#8217;t forget to add a listener so that we know when it is finished loading;</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;">_bt.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">COMPLETE</span>, _onBtLoaded, <span style="color: #0033ff; font-weight: bold;">false</span>, <span style="color: #000000; font-weight:bold;">0</span>, <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000000;">&#41;</span>;
_bt.<span style="color: #004993;">search</span><span style="color: #000000;">&#40;</span> <span style="color: #990000;">&quot;Your-Search-Term&quot;</span> <span style="color: #000000;">&#41;</span>;</pre></div></div>

<p>The search function is defined as</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #004993;">search</span><span style="color: #000000;">&#40;</span>$q<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">String</span>, $itemsPerPage<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">uint</span> = <span style="color: #000000; font-weight:bold;">20</span>, $page<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">uint</span> = <span style="color: #000000; font-weight:bold;">0</span>, $since_id<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">uint</span> = <span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span>;</pre></div></div>

<p>The $itemsPerPage, $page, and $since_id optional arguments do the following<br />
$itemsPerPage defines the number of tweets returned (from 10 &#8211; 100);<br />
The $page argument determines the offset of the tweets returned.<br />
The $since_id can be specified to search tweets after a certain id.</p>
<p>For example:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #6699cc; font-weight: bold;">var</span> _bt<span style="color: #000000; font-weight: bold;">:</span>BackTweet;
_bt = <span style="color: #0033ff; font-weight: bold;">new</span> BackTweet<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Your-BackTweet-API_Key&quot;</span><span style="color: #000000;">&#41;</span>;
_bt.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">COMPLETE</span>, _onBtLoaded, <span style="color: #0033ff; font-weight: bold;">false</span>, <span style="color: #000000; font-weight:bold;">0</span>, <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000000;">&#41;</span>;
_bt.<span style="color: #004993;">search</span><span style="color: #000000;">&#40;</span> <span style="color: #990000;">&quot;Your-Search-Term&quot;</span> <span style="color: #000000;">&#41;</span>;</pre></div></div>

<p>Now we must define the function that is called when the tweets are loaded</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> _onBtLoaded<span style="color: #000000;">&#40;</span>$e<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>bt.<span style="color: #004993;">toString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">+</span><span style="color: #990000;">'<span style="">\n</span>'</span><span style="color: #000000;">&#41;</span>;
	<span style="color: #6699cc; font-weight: bold;">var</span> tweets<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Array</span> = bt.tweets;
	bt.traceTweets<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>The BackTweet class overrides the toString function to print the BackTweet information.<br />
The traceTweets function inside the BackTweet class is a convenience function that traces out all of the tweets to the output panel.<br />
And calling bt.tweets returns an array of Tweet objects that contains the following</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #6699cc; font-weight: bold;">var</span> tweetId<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Number</span>;
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #6699cc; font-weight: bold;">var</span> userId<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Number</span>;
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #6699cc; font-weight: bold;">var</span> user<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">String</span>;
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #6699cc; font-weight: bold;">var</span> profileImage<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">String</span>;
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #6699cc; font-weight: bold;">var</span> createdTime<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">String</span>;
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #6699cc; font-weight: bold;">var</span> tweetText<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">String</span>;</pre></div></div>

<p>All of these vars are public, so once the tweets are loaded, you can access the vars in the tweets array,<br />
for example, to access the user who created each tweet:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> i<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">int</span> = <span style="color: #000000; font-weight:bold;">0</span>; i <span style="color: #000000; font-weight: bold;">&amp;</span>lt; tweets.<span style="color: #004993;">length</span>; i<span style="color: #000000; font-weight: bold;">++</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>tweets<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.user<span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>So here is all the code so far:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #6699cc; font-weight: bold;">var</span> _bt<span style="color: #000000; font-weight: bold;">:</span>BackTweet = <span style="color: #0033ff; font-weight: bold;">new</span> BackTweet<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Your-BackTweet-API_Key&quot;</span><span style="color: #000000;">&#41;</span>;
_bt.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">COMPLETE</span>, _onBtLoaded, <span style="color: #0033ff; font-weight: bold;">false</span>, <span style="color: #000000; font-weight:bold;">0</span>, <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000000;">&#41;</span>;
_bt.<span style="color: #004993;">search</span><span style="color: #000000;">&#40;</span> <span style="color: #990000;">&quot;Your-Search-Term&quot;</span> <span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> _onBtLoaded<span style="color: #000000;">&#40;</span>$e<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>_bt.<span style="color: #004993;">toString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">+</span><span style="color: #990000;">'<span style="">\n</span>'</span><span style="color: #000000;">&#41;</span>;
	<span style="color: #6699cc; font-weight: bold;">var</span> tweets<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Array</span> = _bt.tweets;
	_bt.traceTweets<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
	<span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> i<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">int</span> = <span style="color: #000000; font-weight:bold;">0</span>; i <span style="color: #000000; font-weight: bold;">&amp;</span>lt; tweets.<span style="color: #004993;">length</span>; i<span style="color: #000000; font-weight: bold;">++</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
		<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>tweets<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.user<span style="color: #000000;">&#41;</span>;
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>However, loading xml files from other domains can cause problems. So, we have to use a php file that loads the xml for us. Check this <a href="http://nickhardeman.com/blog/?p=146" target="_blank">blog post</a> for more information on loading external xml files. The example contains this php file.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;">_bt.setXMLLoadFile<span style="color: #000000;">&#40;</span> <span style="color: #990000;">&quot;loadXML.php&quot;</span> <span style="color: #000000;">&#41;</span>;</pre></div></div>

<p><a href="http://nickhardeman.com/blog/wp-content/uploads/2009/11/backtweetexample.zip"><strong>Download Source</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://nickhardeman.com/blog/?feed=rss2&amp;p=276</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>ofxTweenzor for OpenFrameworks</title>
		<link>http://nickhardeman.com/blog/?p=261</link>
		<comments>http://nickhardeman.com/blog/?p=261#comments</comments>
		<pubDate>Wed, 18 Nov 2009 07:53:15 +0000</pubDate>
		<dc:creator>NickHardeman</dc:creator>
				<category><![CDATA[Open Frameworks]]></category>
		<category><![CDATA[addon]]></category>
		<category><![CDATA[OF]]></category>
		<category><![CDATA[tween]]></category>
		<category><![CDATA[tween engine]]></category>

		<guid isPermaLink="false">http://nickhardeman.com/blog/?p=261</guid>
		<description><![CDATA[ofxTweenzor is a addon for OpenFrameworks that allows for tweening values over time. I began developing the addon because I started using OF on the iPhone and I wanted a little transition here and there. I started programming and someone mentioned ofxTween. I checked it out and turns out that it runs on poco events [...]]]></description>
			<content:encoded><![CDATA[<p>ofxTweenzor is a addon for <strong><a href="http://www.openframeworks.cc/" target="_blank">OpenFrameworks</a></strong> that allows for tweening values over time. I began developing the addon because I started using OF on the iPhone and I wanted a little transition here and there. I started programming and someone mentioned ofxTween. I checked it out and turns out that it runs on poco events and right now poco is not included in the iPhone build. Being a Flash developer, I wanted some tweens and I wanted to get familiar with events in C++ and how they could be handled, which took a little getting used to. I learned a great deal about pointers and events in C++, and I still have a way to go.</p>
<p>Hopefully someone will find this useful, and any questions or comments are welcome.</p>
<p>The easing equations are from both <strong><a href="http://www.robertpenner.com/easing/" target="_blank">Robert Penner</a></strong> and the <strong><a href="http://code.google.com/p/tweener/" target="_blank">Tweener class</a></strong> by Zeh Fernando, Nate Chatellier and Arthur Debert.</p>
<p><a href="http://nickhardeman.com/blog/wp-content/uploads/2009/11/picture-7.png"><img class="alignnone size-full wp-image-267" title="ofxTweens Example Photo" src="http://nickhardeman.com/blog/wp-content/uploads/2009/11/picture-7.png" alt="" width="500" height="484" /></a></p>
<p><a href="http://nickhardeman.com/blog/wp-content/uploads/2009/11/ofxtweenzor.zip" target="_blank"><strong>Download ofxTweenzor</strong></a></p>
<p>The source includes a basic example file, and most of the following is included in there.</p>
<p><span id="more-261"></span></p>
<p><strong>Don&#8217;t forget to initialize the class.</strong></p>
<p><code>void testApp::setup() {</code></p>
<p style="padding-left: 30px;"><code>Tweenzor::init();</code></p>
<p><code> }</code></p>
<p><strong>Remember to update the class in one place only, since it is a singleton</strong></p>
<p><code>void testApp::update() {</code></p>
<p style="padding-left: 30px;"><code>Tweenzor::update();</code></p>
<p><code>}</code></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p><strong>Adding a tween</strong></p>
<p><code>// add a tween that uses frames as time, by passing in an int for $delay and $duration<br />
Tweenzor::add(float* $property, float $begin, float $end, int $delay, int $duration, int $easeType);</code></p>
<p><code>// to add a tween measured in seconds, pass in a float for delay and duration //<br />
Tweenzor::add(float* $property, float $begin, float $end, float $delay, float $duration, int $easeType);</code></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p><strong>I</strong><strong>f you would like to call a function when a tween is done, you can add a listener to the tween for when it is complete. We can get the tween by using the getTween function of Tweenzor. Tweenzor indexes the tweens based on the property you initially use to create the tween.</strong></p>
<p><code>Tweenzor::getTween( property )-&gt;addListener(  Tween::COMPLETE, this, &amp;testApp::onCompleteFunction );</code></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p><strong>OnUpdate calls are also available, to add a Listener, do the following</strong></p>
<p><code>Tweenzor::getTween( property )-&gt;addListener(  Tween::UPDATE, this, &amp;testApp::onUpdateFunction );</code></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p><strong>The setTimePct function available on tweens is useful for getting values at certain times</strong></p>
<p><strong>This function is best used with frames.</strong></p>
<p><code>float property = 0.f;<br />
Tweenzor::getTween( &amp;property )-&gt;setTimePct( .5f );<br />
// we must update the property to make sure, in case the update function is not called on the function //<br />
Tweenzor::getTween( &amp;property )-&gt;updateProperty();</code></p>
<p><code>float value = Tweenzor::getTween( &amp;property )-&gt;getPropertyValue();<br />
float pct = Tweenzor::getTween( &amp;</code><code>property</code><code> )-&gt;getPropertyPct();</code></p>
]]></content:encoded>
			<wfw:commentRss>http://nickhardeman.com/blog/?feed=rss2&amp;p=261</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>New York Times Newswire API Quick Demo</title>
		<link>http://nickhardeman.com/blog/?p=252</link>
		<comments>http://nickhardeman.com/blog/?p=252#comments</comments>
		<pubDate>Tue, 06 Oct 2009 00:53:01 +0000</pubDate>
		<dc:creator>NickHardeman</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Data Viz]]></category>
		<category><![CDATA[New York Times]]></category>
		<category><![CDATA[Papervision]]></category>

		<guid isPermaLink="false">http://nickhardeman.com/blog/?p=252</guid>
		<description><![CDATA[For my data visualization class, we were asked to visualize the New York Times Newswire API. This is a quick demo mapping the hour of the day to the number of ny times posts for each category. You can select single categories by clicking on the buttons and you can click and drag horizontally to [...]]]></description>
			<content:encoded><![CDATA[<p>For my data visualization class, we were asked to visualize the <a href="http://developer.nytimes.com/docs/times_newswire_api" target="_blank">New York Times Newswire API</a>. This is a quick demo mapping the hour of the day to the number of ny times posts for each category. You can select single categories by clicking on the buttons and you can click and drag horizontally to rotate the center graphic. One of my first attempts at using <a href="http://blog.papervision3d.org/" target="_blank">papervision</a> and it went pretty smooth, but the coordinate system is the opposite to that of the native 3D engine in Flash, <a href="http://www.openframeworks.cc/" target="_blank">OpenFrameworks</a> and <a href="http://processing.org/" target="_blank">Processing</a>. Not that I didn&#8217;t understand it, just not used to it.</p>
<p><a href="http://nickhardeman.com/labs/DataViz/Newswire.swf"><img class="alignnone size-full wp-image-253" title="Data Viz Newswire API" src="http://nickhardeman.com/blog/wp-content/uploads/2009/10/picture-1.png" alt="" width="500" height="313" /></a></p>
<p>Check out the quick <a href="http://nickhardeman.com/labs/DataViz/Newswire.swf" target="_blank">demo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nickhardeman.com/blog/?feed=rss2&amp;p=252</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mo Money Mo Problems</title>
		<link>http://nickhardeman.com/blog/?p=244</link>
		<comments>http://nickhardeman.com/blog/?p=244#comments</comments>
		<pubDate>Mon, 05 Oct 2009 06:48:51 +0000</pubDate>
		<dc:creator>NickHardeman</dc:creator>
				<category><![CDATA[Open Frameworks]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[Mo Money Mo Problems]]></category>
		<category><![CDATA[Visualization]]></category>
		<category><![CDATA[Visualizer]]></category>

		<guid isPermaLink="false">http://nickhardeman.com/blog/?p=244</guid>
		<description><![CDATA[These images are generated by evaluating and interpreting the 1997 music video &#8220;Mo Money Mo Problems&#8221; from the first disc of the Notorious B.I.G. album, Life After Death. The algorithm detects edges in the image and attempts to trace motion from frame to frame, using the initial frame as their starting point. The output is [...]]]></description>
			<content:encoded><![CDATA[<p>These images are generated by evaluating and interpreting the 1997 music video &#8220;<a href="http://www.mtv.com/videos/notorious-big/9520/mo-money-mo-problems.jhtml" target="_blank">Mo Money Mo Problems</a>&#8221; from the first disc of the Notorious B.I.G. album, Life After Death. The algorithm detects edges in the image and attempts to trace motion from frame to frame, using the initial frame as their starting point. The output is rendered as a vector image, the curves represent the motion. The points represent the pixels detected in the edge, their size determined by the distance from their previous location, the further, the larger the circle. The color and location of the points are determined by the corresponding pixel in that  frame. The bright colored track suits worn by Puff Daddy and Mase in the dark backgrounds make for good tracking and nice color combinations. The only imagery added manually is the background color. You can check out some more renders in the <a href="http://www.flickr.com/photos/95943853@N00/sets/72157622518692218/" target="_blank">Mo Money Mo Problems photoset</a> on flickr.</p>
<div id="attachment_245" class="wp-caption alignnone" style="width: 510px"><a href="http://nickhardeman.com/blog/wp-content/uploads/2009/10/diddyshake.png"><img class="size-full wp-image-245 " title="Render 00" src="http://nickhardeman.com/blog/wp-content/uploads/2009/10/diddyshake.png" alt="Puff Daddy Dancing with Mase in the black tunnel." width="500" height="336" /></a><p class="wp-caption-text">Puff Daddy Dancing with Mase in the black tunnel.</p></div>
<p>Much of the detail in the above image is lost. So here is a detail.</p>
<p><a href="http://nickhardeman.com/blog/wp-content/uploads/2009/10/diddyshakedetail.png"><img class="alignnone size-full wp-image-246" title="Render 00 Mo Money Mo Problems Detail" src="http://nickhardeman.com/blog/wp-content/uploads/2009/10/diddyshakedetail.png" alt="" width="500" height="375" /></a></p>
<p>I was also able to print this render out at 24&#8243; x 36&#8243; on photo paper on a large format printer. I am intrigued by the zoomed in close up and may get that printed as well.</p>
<p><a href="http://nickhardeman.com/blog/wp-content/uploads/2009/10/print.png"><img class="alignnone size-full wp-image-249" title="print" src="http://nickhardeman.com/blog/wp-content/uploads/2009/10/print.png" alt="" width="500" height="333" /></a></p>
<p><span id="more-244"></span></p>
<p>Some other renders.</p>
<p><a href="http://nickhardeman.com/blog/wp-content/uploads/2009/10/curvesoutlines.png"><img class="alignnone size-full wp-image-247" title="Render 26" src="http://nickhardeman.com/blog/wp-content/uploads/2009/10/curvesoutlines.png" alt="" width="500" height="375" /></a></p>
<p><a href="http://nickhardeman.com/blog/wp-content/uploads/2009/10/curvesoutlinesdetail.png"><img class="alignnone size-full wp-image-248" title="curvesoutlinesdetail" src="http://nickhardeman.com/blog/wp-content/uploads/2009/10/curvesoutlinesdetail.png" alt="" width="500" height="375" /></a></p>
<p><a href="http://nickhardeman.com/blog/wp-content/uploads/2009/10/curvesdetail.jpg"><img class="alignnone size-full wp-image-257" title="curvesdetail" src="http://nickhardeman.com/blog/wp-content/uploads/2009/10/curvesdetail.jpg" alt="" width="500" height="210" /></a></p>
<p><a href="http://nickhardeman.com/blog/wp-content/uploads/2009/10/curvesfillsoutlinesdetail02.jpg"><img class="alignnone size-full wp-image-258" title="curvesfillsoutlinesdetail02" src="http://nickhardeman.com/blog/wp-content/uploads/2009/10/curvesfillsoutlinesdetail02.jpg" alt="" width="500" height="374" /></a></p>
<p><a href="http://nickhardeman.com/blog/wp-content/uploads/2009/10/curvesfillsoutlinesdetail04.jpg"><img class="alignnone size-full wp-image-259" title="curvesfillsoutlinesdetail04" src="http://nickhardeman.com/blog/wp-content/uploads/2009/10/curvesfillsoutlinesdetail04.jpg" alt="" width="500" height="177" /></a></p>
<p>You can check out some more renders in the <a href="http://www.flickr.com/photos/95943853@N00/sets/72157622518692218/" target="_blank">Mo Money Mo Problems photoset</a> on flickr. Made with the amazing open source C++ library <a href="http://www.openframeworks.cc/" target="_blank">OpenFrameworks</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nickhardeman.com/blog/?feed=rss2&amp;p=244</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
	</channel>
</rss>
