<?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>20papercups :: Michael Marner&#039;s Website</title>
	<atom:link href="http://www.20papercups.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.20papercups.net</link>
	<description>The (awesome) website of Michael Marner</description>
	<lastBuildDate>Thu, 06 Sep 2012 21:09:32 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>Git Tutorial 05 &#8211; Setting up a git server</title>
		<link>http://www.20papercups.net/linux/git-tutorial-05-setting-up-a-git-server/</link>
		<comments>http://www.20papercups.net/linux/git-tutorial-05-setting-up-a-git-server/#comments</comments>
		<pubDate>Thu, 06 Sep 2012 21:07:13 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Git Video Tutorials]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://www.20papercups.net/?p=496</guid>
		<description><![CDATA[Hey So a couple of weeks ago I received an email asking how to go about setting up a Git server on Linux. This is actually pretty straight forward, provided you are familiar with Linux. I made a quick video describing the process: In this video we end up accessing the repository on the server [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.20papercups.net/wp-content/uploads/2011/03/git-logo.png"><img class="alignleft size-thumbnail wp-image-354" title="git-logo" src="http://www.20papercups.net/wp-content/uploads/2011/03/git-logo-150x150.png" alt="" width="150" height="150" /></a>Hey</p>
<p>So a couple of weeks ago I received an email asking how to go about setting up a Git server on Linux. This is actually pretty straight forward, provided you are familiar with Linux. I made a quick video describing the process:</p>
<p><iframe src="http://www.youtube.com/embed/SyMkLQLC3Kg" frameborder="0" width="560" height="315"></iframe></p>
<p>In this video we end up accessing the repository on the server through SSH. There are alternatives to this, such as WebDav, or the built in Git protocol. However, everything I have ever worked on has used SSH to access the repository. It&#8217;s also how GitHub does it.</p>
<p>The basic steps:</p>
<ol>
<li>Connect to the server</li>
<li>Make sure that all your developers have a user account on the server (adduser)</li>
<li>Create a group on the system for your developers (addgroup)</li>
<li>Add all the developers to that group. I did this by manually editing /etc/group on the server, but the more <em>correct</em> way would be to use the useradd command. That way you are less likely to mess up the group file.</li>
<li>Create a directory in which to put the git repository.</li>
<li>Set the group ownership to the group you just created (chgrp)</li>
<li>Make the directory group read/writable, with the sticky bit set so subdirectories inherit the group permissions (chmod)</li>
<li>Initialise a bare, shared repository</li>
<li>????</li>
<li>Profit!</li>
</ol>
<p>Hope that helps a bit!</p>
<p style="text-align: center;"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.20papercups.net/linux/git-tutorial-05-setting-up-a-git-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bulk Fuzz</title>
		<link>http://www.20papercups.net/music-audio/bulk-fuzz/</link>
		<comments>http://www.20papercups.net/music-audio/bulk-fuzz/#comments</comments>
		<pubDate>Wed, 06 Jun 2012 09:01:08 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Music & Audio]]></category>
		<category><![CDATA[diy]]></category>
		<category><![CDATA[effect]]></category>
		<category><![CDATA[fuzz]]></category>
		<category><![CDATA[guitar]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[pedal]]></category>
		<category><![CDATA[recording]]></category>

		<guid isPermaLink="false">http://www.20papercups.net/?p=466</guid>
		<description><![CDATA[So I&#8217;ve been messing around with DIY guitar effects. In this post I&#8217;m going to talk about my variant of the Bulk Fuzz, a simple but crazy fuzz circuit from Joe Gore at Tonefiend. By the way,  if you are interested in guitar hacking, then Tonefiend is a really awesome website &#8211; whether it be [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.20papercups.net/wp-content/uploads/2012/06/20120606-IMG_7973.jpg"><img class="alignleft size-thumbnail wp-image-483" title="Bulk Fuzz" src="http://www.20papercups.net/wp-content/uploads/2012/06/20120606-IMG_7973-150x150.jpg" alt="" width="150" height="150" /></a>So I&#8217;ve been messing around with DIY guitar effects. In this post I&#8217;m going to talk about my variant of the Bulk Fuzz, a simple but crazy fuzz circuit from Joe Gore at Tonefiend.<span id="more-466"></span></p>
<p>By the way,  if you are interested in guitar hacking, then <a href="http://www.tonefiend.com" target="_blank">Tonefiend</a> is a really awesome website &#8211; whether it be weird pickup configurations and wiring schemes, effect circuits, etc. Joe does a really awesome job. The Bulk Fuzz is part of a series on DIY guitar effects.</p>
<p>So, this is not my first attempt at guitar effect circuits. A little while ago I came across a <a href="http://www.barberelectronics.com/Barber_Electronics_DIY.html" target="_blank">schematic</a> from Barber Electronics. Armed with enough knowledge to read a schematic, but not enough to understand what the circuit was actually doing, I set forth to recreate the pedal. You can have a look at <a href="http://www.recordingproject.com/bbs/viewtopic.php?t=38362" target="_blank">my progress</a>, but long story short I made a mistake in the board layout and sent 9V to the opamps instead of 4.5. Woops! So, after a hiatus I&#8217;ve come back to the Bulk Fuzz. It is a much simpler ciruit, a lot easier to see what&#8217;s going on.</p>
<h3>The Build</h3>
<p>My version is based on Joe&#8217;s, but with some different capacitor values, and with gain and volume controls (more on that later). Here&#8217;s the schematic:</p>
<div id="attachment_467" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.20papercups.net/wp-content/uploads/2012/06/BulkSchematic.png"><img class="size-medium wp-image-467" title="Bulk Fuzz Schematic" src="http://www.20papercups.net/wp-content/uploads/2012/06/BulkSchematic-300x215.png" alt="" width="300" height="215" /></a><p class="wp-caption-text">My variation on the Bulk Fuzz</p></div>
<p>I built the circuit using perfboard. Last time I used perfboard I made a mistake in transferring. So, this time I used the board layout in Eagle to lay the board out as if I was going to etch a PCB, just to use as a guide for populating the board:</p>
<div id="attachment_469" class="wp-caption aligncenter" style="width: 223px"><a href="http://www.20papercups.net/wp-content/uploads/2012/06/BulkBoard.png"><img class="size-medium wp-image-469" title="Bulk Fuzz Board" src="http://www.20papercups.net/wp-content/uploads/2012/06/BulkBoard-213x300.png" alt="The board layout" width="213" height="300" /></a><p class="wp-caption-text">The board layout</p></div>
<p>And with that, started soldering. Here are a few picks of the build:</p>
<div id="attachment_480" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.20papercups.net/wp-content/uploads/2012/06/20120603-IMG_7968.jpg"><img class="size-medium wp-image-480 " title="Bulk Fuzz Circuit Board" src="http://www.20papercups.net/wp-content/uploads/2012/06/20120603-IMG_7968-300x200.jpg" alt="The circuit, transferred to perfboard" width="300" height="200" /></a><p class="wp-caption-text">The circuit, transferred to perfboard</p></div>
<div id="attachment_481" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.20papercups.net/wp-content/uploads/2012/06/20120603-IMG_7969.jpg"><img class="size-medium wp-image-481" title="Bulk Fuzz Underside" src="http://www.20papercups.net/wp-content/uploads/2012/06/20120603-IMG_7969-300x200.jpg" alt="Bulk Fuzz Underside" width="300" height="200" /></a><p class="wp-caption-text">The underside of the perfboard. As clean as I could make it</p></div>
<div id="attachment_482" class="wp-caption aligncenter" style="width: 210px"><a href="http://www.20papercups.net/wp-content/uploads/2012/06/20120603-IMG_7970.jpg"><img class="size-medium wp-image-482" title="Bulk Fuzz in box" src="http://www.20papercups.net/wp-content/uploads/2012/06/20120603-IMG_7970-200x300.jpg" alt="" width="200" height="300" /></a><p class="wp-caption-text">There is not a lot of room in the box!</p></div>
<h3>The Sounds</h3>
<p><iframe src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F48794503&amp;auto_play=false&amp;show_artwork=false&amp;color=ff7700" frameborder="no" scrolling="no" width="100%" height="166"></iframe></p>
<p>This circuit is just a bit ridiculous. Here are some sounds, played on a Les Paul, through a vintage Goldentone Reverbmaster amp, SM57 close mic&#8217;d, into an FMR Audio Really Nice Preamp, and into the computer. (ignore my terrible playing).</p>
<p>I really, really like the crazy grating overdrive. This pedal sounds awesome at doing what it&#8217;s good at. In fact, it&#8217;s probably easier to discuss what it isn&#8217;t good at&#8230;</p>
<p>You&#8217;ll notice that palm muting is loose and muddy. You also hear some pretty extreme gating, which cuts the note sustain right off. Changing the value of the input capacitor seems to affect this gating, but if anyone can clue me in on the specifics that would be awesome.</p>
<p>I mentioned above that I have a gain control on the pedal. I didn&#8217;t really have a reason for this, other than I already had it wired into the box from a previous failed pedal, and couldn&#8217;t be bothered changing it around. However, after trying out the circuit, I only really like it at full gain &#8211; I will never use the gain pot. I think on my next build I will have a tone control that fades between input capacitor values instead.</p>
<h3>Some Lessons</h3>
<p>Here are the things I&#8217;m taking home from this experiment:</p>
<ul>
<li>Don&#8217;t be lazy and put a gain control in if you never intend to use it &#8211; have controls you actually want.</li>
<li>24mm potentiometers are way too big &#8211; I can&#8217;t even fit a battery into this box because the pots take up too much room. This is all I could get from my local Jaycar, but next pedal I&#8217;ll definitely use 16mm or even 9mm pots.</li>
<li>While I&#8217;m complaining about Jaycar, the jacks I got are crap and don&#8217;t do a very good job of holding the guitar leads in. Better jacks are needed in the future.</li>
<li>I only had a 2 pole footswitch to use, so I switched the output and power. The problem is that I don&#8217;t really have true bypass, and the circuit affects the sound even when it is not enganged. There are a couple of things I would like to try with this. One, I need to go on eBay and get some triple pole switches. Another option I was thinking about is using small relays. I took my tuner pedal apart to see what I could see, and I saw it was using a relay to switch the signal. Probably overkill for a simple fuzz, but interesting none the less.</li>
</ul>
<h3>In Conclusion</h3>
<p>I really like the sounds from this circuit. However, since I never plan on using the gain control, it is a bit of a one trick pony. I think I&#8217;ll tweak it and my next version will have a tone control instead of a gain. Still, it&#8217;s good to finally have a DIY guitar effect that works! I might take another swing at the LTD&#8230;</p>
<p style="text-align: center;"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.20papercups.net/music-audio/bulk-fuzz/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>My Website is Broken!</title>
		<link>http://www.20papercups.net/uncategorized/my-website-is-broken/</link>
		<comments>http://www.20papercups.net/uncategorized/my-website-is-broken/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 12:02:00 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.20papercups.net/?p=461</guid>
		<description><![CDATA[Hi all Just a quick note to say that my website is broken! Seems that either a WordPress or Dreamhost problem has caused some script thing to replace all my PHP files with some dodgy eval(base64_decode(&#8230;)) type thing that redirected visitors to some malware site. The malware redirect is gone, but my WordPress install has [...]]]></description>
			<content:encoded><![CDATA[<p>Hi all</p>
<p>Just a quick note to say that my website is broken!</p>
<p>Seems that either a WordPress or Dreamhost problem has caused some script thing to replace all my PHP files with some dodgy eval(base64_decode(&#8230;)) type thing that redirected visitors to some malware site. The malware redirect is gone, but my WordPress install has fallen apart..</p>
<p>I&#8217;m working on getting it fixed as soon as possible, thanks for your patience.</p>
<p>Cheers<br />
Michael</p>
]]></content:encoded>
			<wfw:commentRss>http://www.20papercups.net/uncategorized/my-website-is-broken/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AUIC 2012 Roundup</title>
		<link>http://www.20papercups.net/random-news/auic-2012-roundup/</link>
		<comments>http://www.20papercups.net/random-news/auic-2012-roundup/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 01:08:43 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Augmented Reality]]></category>
		<category><![CDATA[publications]]></category>
		<category><![CDATA[Random News]]></category>
		<category><![CDATA[UniSA]]></category>
		<category><![CDATA[2012]]></category>
		<category><![CDATA[auic]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[publication]]></category>

		<guid isPermaLink="false">http://www.20papercups.net/?p=452</guid>
		<description><![CDATA[So the Australasian User Interface Conference for 2012 has been and gone. The Wearable Computer Lab presented two full papers and two posters, of which I was an author of one The papers we presented are listed below, and the publication page has been updated so you can get the PDFs. Cheers! E. T. A. [...]]]></description>
			<content:encoded><![CDATA[<p>So the Australasian User Interface Conference for 2012 has been and gone. The Wearable Computer Lab presented two full papers and two posters, of which I was an author of one <img src='http://www.20papercups.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The papers we presented are listed below, and the publication page has been updated so you can get the PDFs. Cheers!</p>
<div>
<div>
<p>E. T. A. Maas, M. R. Marner, R. T. Smith, and B. H. Thomas, “Supporting Freeform Modelling in Spatial Augmented Reality Environments with a New Deformable Material,” in <em>Proceedings of the 13th Australasian User Interface Conference</em>, Melbourne, Victoria, Australia, 2012. (<a href="http://www.20papercups.net/wp-content/uploads/2009/09/maas-auic2012.pdf">pdf</a>) (<a href="http://www.youtube.com/watch?v=LqsMzRuDZOs" target="_blank">video</a>)</p>
</div>
<div>
<p>T. M. Simon, R. T. Smith, B. H. Thomas, G. S. Von Itzstein, M. Smith, J. Park, and J. Park, “Merging Tangible Buttons and Spatial Augmented Reality to Support Ubiquitous Prototype Designs,” in <em>Proceedings of the 13th Australasian User Interface Conference</em>, Melbourne, Victoria, Australia, 2012.</p>
<p>S. J. O’Malley, R. T. Smith, and B. H. Thomas, “Poster: Data Mining Office Behavioural Information from Simple Sensors,” in <em>Proceedings of the 13th Australasian User Interface Conference</em>, Melbourne, Victoria, Australia, 2012.</p>
<p>T. M. Simon and R. T. Smith, “Poster: Magnetic Substrate for use with Tangible Spatial Augmented Reality in Rapid Prototyping Workflows,” in <em>Proceedings of the 13th Australasian User Interface Conference</em>, Melbourne, Victoria, Australia, 2012.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.20papercups.net/random-news/auic-2012-roundup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java Arithmetic Suppliment &#8211; Exponents</title>
		<link>http://www.20papercups.net/java-vtm-tutorials/java-arithmetic-suppliment-exponents/</link>
		<comments>http://www.20papercups.net/java-vtm-tutorials/java-arithmetic-suppliment-exponents/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 01:18:01 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Java Video Tutorials]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.20papercups.net/?p=445</guid>
		<description><![CDATA[Hey So over on Youtube someone asked me about doing exponents in Java. I didn&#8217;t talk about this in episode 3 of my Java tutorial, so I have created a short supplementary  video looking at some of the more advanced mathematical functions in Java. Short, and to the point. Here it is:]]></description>
			<content:encoded><![CDATA[<p>Hey</p>
<p>So over on Youtube someone asked me about doing exponents in Java. I didn&#8217;t talk about this in episode 3 of my Java tutorial, so I have created a short supplementary  video looking at some of the more advanced mathematical functions in Java. Short, and to the point. Here it is:</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/ndRep31eC6w" frameborder="0" allowfullscreen></iframe></p>
<p><span id="more-445"></span><br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.20papercups.net/java-vtm-tutorials/java-arithmetic-suppliment-exponents/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How OpenNI Nearly Spoiled The Show</title>
		<link>http://www.20papercups.net/programming/how-openni-nearly-spoiled-the-show/</link>
		<comments>http://www.20papercups.net/programming/how-openni-nearly-spoiled-the-show/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 10:37:01 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Border Project]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[Half Real]]></category>
		<category><![CDATA[kinect]]></category>
		<category><![CDATA[OpenNI]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.20papercups.net/?p=420</guid>
		<description><![CDATA[So, for the last few months I&#8217;ve taken a break from the PhD to do some work for a theatre show for The Border Project, Half Real. There&#8217;s a lot of technology in the show. In particular, most of the set is projected, and we are using a Microsoft Kinect to track the actors on [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.20papercups.net/wp-content/uploads/2011/09/halfreal-1.jpg"><img class="alignleft size-thumbnail wp-image-424" title="Half Real" src="http://www.20papercups.net/wp-content/uploads/2011/09/halfreal-1-150x150.jpg" alt="Half Real" width="150" height="150" /></a>So, for the last few months I&#8217;ve taken a break from the PhD to do some work for a theatre show for <a title="The Border Project" href="http://www.theborderproject.com" target="_blank">The Border Project</a>, <a title="Half Real" href="http://www.theborderproject.com/project-half-real.html" target="_blank">Half Real</a>.</p>
<p>There&#8217;s a lot of technology in the show. In particular, most of the set is projected, and we are using a Microsoft Kinect to track the actors on stage, and modifying the projections based on their location.</p>
<p>I&#8217;m working on Linux, and using <a title="OpenNI" href="http://www.openni.org/" target="_blank">OpenNI</a> for interfacing with the Kinect. Things <em>almost</em> worked perfectly. In this post I will document the trials and tribulations of getting the Kinect to work for Half Real.</p>
<p><span id="more-420"></span>I often fall into <a title="Not Invented Here Syndrome" href="http://en.wikipedia.org/wiki/Not_Invented_Here" target="_blank">Not Invented Here Syndrome</a>, and so slowly I&#8217;m trying to get out of it. Obviously, interfacing with hardware like the Kinect is not something I really wanted to do during a 3 month theatre development. My Spatial Augmented Reality framework is built on Linux, so I basically had the option of <a href="http://openkinect.org/wiki/Main_Page" target="_blank">Libfreenect</a> or <a href="http://www.openni.org/" target="_blank">OpenNI</a>. OpenNI appears to be more mature, and so that&#8217;s what I went with.</p>
<p><iframe src="http://www.youtube.com/embed/4nowWxi75jE" frameborder="0" width="640" height="360"></iframe></p>
<p>As you can see, I&#8217;m only really tracking the position of the actors &#8211; we aren&#8217;t using any of the gesture recognition stuff.</p>
<p>During development everything looked peachy. However, during production week when we started running through the whole show, a <em>major</em> issue popped up. It turns out there is a bug buried deep in OpenNI that eventually rears its ugly head if you have a few people running around at the same time:</p>
<pre>Program received signal SIGSEGV, Segmentation fault.
 0x00007ffff215574d in Segmentation::checkOcclusion(int, int, int, int)</pre>
<p>This is a big problem. See, this is a theatre show, where the entire set is projected. If the system crashes, the stage goes black. The operator has to restart and bring the projections up to the right point in the show. It turned out that in our tech previews, the software was crashing 2-3 times per show. This was simply unacceptable.</p>
<p>Thankfully, I was only interested in the positions of the actors. This meant I could run the tracking in a completely different process and send the data to the projection system without too much overhead. So, on the day before I finished working for the project, I had to completely rewrite how the tracking worked.</p>
<h3>The Data We Need</h3>
<p>As I said, we only need position. I didn&#8217;t have to send through any camera images, gesture information, etc. All I needed was:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">struct</span> KinectMessage
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">uint8_t</span> actor_id<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">float</span>   quality<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">float</span>   x<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">float</span>   y<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">float</span>   z<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p>The process that interfaces with the Kinect simply sent these messages over a TCP connection to the projection system for every actor on stage. TCP worked pretty well. Both processes run on the same system, and the Kinect only updates at 30fps anyway. So you know, there&#8217;s only 510 bytes per second, per actor that needed to be transferred. If I was transferring images, a better <a href="http://en.wikipedia.org/wiki/Inter-process_communication" target="_blank">IPC</a> technique would be required.</p>
<h3>While True</h3>
<p>At this point, the hard work was done. Simply wrap the tracking process in a shell script that loops forever, rerunning the process when the segfault occurs. The projectors never go to black, and the worst case is the tracking lags for a a couple of seconds. Not perfect, but infinitely better.</p>
<p>I guess the moral of this post is to be wary of relying on 3rd party libraries that are not particularly mature. And if you have to (you don&#8217;t have much choice if you want to talk to the Kinect), wrap it up so it can&#8217;t screw you over. TCP worked for me, because I didn&#8217;t need to transfer much data. Even if you were doing the skeleton tracking and gestures, there isn&#8217;t a lot of data to send. If you need the images from the camera, TCP <em>may</em> not be for you. But there are plenty of other IPC techniques that could handle that amount of data (even pipes would do it). I guess the good news is OpenNI is Open Source, so in theory someone can get around to fixing it.</p>
<p>Hope this helps someone.</p>
<p>Michael</p>
]]></content:encoded>
			<wfw:commentRss>http://www.20papercups.net/programming/how-openni-nearly-spoiled-the-show/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kinect on Ubuntu with OpenNI</title>
		<link>http://www.20papercups.net/programming/kinect-on-ubuntu-with-openni/</link>
		<comments>http://www.20papercups.net/programming/kinect-on-ubuntu-with-openni/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 05:06:57 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Augmented Reality]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[kinect]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[NITE]]></category>
		<category><![CDATA[OpenNI]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.20papercups.net/?p=408</guid>
		<description><![CDATA[UPDATED May 1 2012 for the latest versions of everything! I&#8217;ve spent all this morning trying to talk to the Microsoft Kinect using OpenNI. As it turns out, the process is not exceptionally difficult, it&#8217;s just there doesn&#8217;t seem to be any up to date documentation on getting it all working. So, this post should [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.20papercups.net/wp-content/uploads/2011/06/kinect.png"><img class="size-thumbnail wp-image-409 alignleft" title="self portrait" src="http://www.20papercups.net/wp-content/uploads/2011/06/kinect-150x150.png" alt="" width="150" height="150" /></a></p>
<p>UPDATED May 1 2012 for the latest versions of everything!</p>
<p>I&#8217;ve spent all this morning trying to talk to the Microsoft Kinect using <a href="http://openni.org/" target="_blank">OpenNI</a>. As it turns out, the process is not exceptionally difficult, it&#8217;s just there doesn&#8217;t seem to be any up to date documentation on getting it all working. So, this post should fill the void. I describe how to get access to the Kinect working using Ubuntu 11.04, OpenNI, and NITE.<span id="more-408"></span>To talk to the Kinect, there are two basic parts: OpenNI itself, and a Sensor module that is actually responsible for communicating with the hardware. Then, if you need it, there is NITE, which is another module for OpenNI that does skeletal tracking, gestures, and stuff. Depending on how you plan on using the data from the Kinect, you may not need NITE at all.</p>
<p></p>
<h3>Step 1: Prerequisites</h3>
<p>We need to install a bunch of packages for all this to work. Thankfully, the readme file included with OpenNI lists all these. However, to make life easier, this is (as of writing) what you need to install, in addition to all the development packages you (hopefully) already have.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> <span style="color: #c20cb9; font-weight: bold;">git</span> build-essential python libusb-<span style="color: #000000;">1.0</span>-<span style="color: #000000;">0</span>-dev freeglut3-dev</pre></td></tr></table></div>

<p>There are also some optional packages that you can install, depending on whether you want documentation, Mono bindings, etc. Note that on earlier versions the install failed if you didn&#8217;t have doxygen installed, even though it is listed as optional.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> doxygen graphviz mono-complete</pre></td></tr></table></div>

<h3>Step 2: OpenNI</h3>
<p>OpenNI is a framework for working with what they are calling <em>natural interaction</em> devices.Anyway, this is how it is installed:</p>
<p>Check out from Git</p>
<p>OpenNI is hosted on Github, so checking it out is simple:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">git clone</span> https:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>OpenNI<span style="color: #000000; font-weight: bold;">/</span>OpenNI.git</pre></td></tr></table></div>

<p>From there, change into the Platform/Linux-x86/CreateRedist directory, and run the RedistMaker script. Note that even though the directory is named x86, this same directory builds 64 bit versions just fine. So, don&#8217;t fret if you&#8217;re on 64bit Linux.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> OpenNI<span style="color: #000000; font-weight: bold;">/</span>Platform<span style="color: #000000; font-weight: bold;">/</span>Linux<span style="color: #000000; font-weight: bold;">/</span>CreateRedist
<span style="color: #c20cb9; font-weight: bold;">chmod</span> +x RedistMaker
.<span style="color: #000000; font-weight: bold;">/</span>RedistMaker</pre></td></tr></table></div>

<p>The RedistMaker script will compile everything for you. You then need to change into the Redist directory and run the install script to install the software on your system.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ..<span style="color: #000000; font-weight: bold;">/</span>Redist<span style="color: #000000; font-weight: bold;">/</span>OpenNI-Bin-Dev-Linux-<span style="color: #7a0874; font-weight: bold;">&#91;</span>xxx<span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #7a0874; font-weight: bold;">&#40;</span>where <span style="color: #7a0874; font-weight: bold;">&#91;</span>xxx<span style="color: #7a0874; font-weight: bold;">&#93;</span> is your architecture and this particular OpenNI release<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> .<span style="color: #000000; font-weight: bold;">/</span>install.sh</pre></td></tr></table></div>

<h3>Step 3: Kinect Sensor Module</h3>
<p>OpenNI doesn&#8217;t actually provide anything for talking to the hardware, it is more just a framework for working with different sensors and devices. You need to install a Sensor module for actually doing the hardware interfacing. Think of an OpenNI sensor module as a device driver for the hardware. You&#8217;ll also note on the OpenNI website that they have a Sensor module that you can download. Don&#8217;t do this though, because that sensor module doesn&#8217;t talk to the Kinect. I love how well documented all this is, don&#8217;t you?</p>
<p>The sensor module you want is also on GitHub, but from a different user. So, we can check out the code. We also need to get the kinect branch, not master.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">git clone</span> https:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>avin2<span style="color: #000000; font-weight: bold;">/</span>SensorKinect
<span style="color: #7a0874; font-weight: bold;">cd</span> SensorKinect</pre></td></tr></table></div>

<p>The install process for the sensor is pretty much the same as for OpenNI itself:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> Platform<span style="color: #000000; font-weight: bold;">/</span>Linux<span style="color: #000000; font-weight: bold;">/</span>CreateRedist
<span style="color: #c20cb9; font-weight: bold;">chmod</span> +x RedistMaker
<span style="color: #c20cb9; font-weight: bold;">sudo</span> .<span style="color: #000000; font-weight: bold;">/</span>RedistMaker
<span style="color: #7a0874; font-weight: bold;">cd</span> ..<span style="color: #000000; font-weight: bold;">/</span>Redist<span style="color: #000000; font-weight: bold;">/</span>Sensor-Bin-Linux-<span style="color: #7a0874; font-weight: bold;">&#91;</span>xxx<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>where <span style="color: #7a0874; font-weight: bold;">&#91;</span>xxx<span style="color: #7a0874; font-weight: bold;">&#93;</span> is your architecture and this particular OpenNI release<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">chmod</span> +x install.sh
<span style="color: #c20cb9; font-weight: bold;">sudo</span> .<span style="color: #000000; font-weight: bold;">/</span>install.sh</pre></td></tr></table></div>

<p>On Ubuntu, regular users are only given read permission to unknown USB devices. The install script puts in some udev rules to fix this, but if you find that none of the samples work unless you run them as root, try unplugging and plugging the Kinect back in again, to make the new rules apply.</p>
<h3>Step 4: Test the OpenNI Samples</h3>
<p>At this point, you have enough installed to get data from the Kinect. The easiest way to verify this is to run one of the OpenNI samples.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> OpenNI<span style="color: #000000; font-weight: bold;">/</span>Platform<span style="color: #000000; font-weight: bold;">/</span>Linux-x86<span style="color: #000000; font-weight: bold;">/</span>Bin<span style="color: #000000; font-weight: bold;">/</span>Release
.<span style="color: #000000; font-weight: bold;">/</span>Sample-NiSimpleViewer</pre></td></tr></table></div>

<p>You should see a yellow-black depth image. At this point, you&#8217;re left with (optionally) installing the higher level NITE module.</p>
<h3>Step 5: Install NITE (optional)</h3>
<p>Firstly, you need to obtain NITE. Go to the following link, select OpenNI compliant Middleware Binaries.</p>
<p><a href="http://www.openni.org/Downloads/OpenNIModules.aspx" target="_blank">http://www.openni.org/Downloads/OpenNIModules.aspx</a></p>
<p>Download either the 32 or 64 bit version, depending on your platform. As of writing they only have versions for Ubuntu 10.10, but these seem to work fine with 11.04 as well.</p>
<p>Extract the archive, and run the installer:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> .<span style="color: #000000; font-weight: bold;">/</span>install.sh</pre></td></tr></table></div>

<p>At some point, you may be asked for a license key. A working license key can be found <a href="http://www.google.com/search?q=NITE+license+key" target="_blank">just about anywhere on the Internet</a>. I don&#8217;t think PrimeSense care, or maybe this is a non-commercial license or something. But whatever, just copy that license into the console, including the equals sign at the end, and NITE will install just fine.</p>
<h3>Conclusion</h3>
<p>After following these steps, you will be able to write programs that use the Microsoft Kinect through OpenNI and NITE middleware. I hope this helps someone, because I spent a lot of time screwing around this morning trying to get it all to work. Like I said, the process is pretty straight forward, it just hasn&#8217;t been written down in one place (or I suck at google).</p>
<p style="text-align: center;"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.20papercups.net/programming/kinect-on-ubuntu-with-openni/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Latex, Texlipse, and EPS Figures</title>
		<link>http://www.20papercups.net/latex/latex-texclipse-and-eps-figures/</link>
		<comments>http://www.20papercups.net/latex/latex-texclipse-and-eps-figures/#comments</comments>
		<pubDate>Wed, 15 Jun 2011 01:00:20 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[LaTeX]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[eps]]></category>
		<category><![CDATA[epstopdf]]></category>
		<category><![CDATA[figure]]></category>
		<category><![CDATA[latex]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[texlipse]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.20papercups.net/?p=383</guid>
		<description><![CDATA[I&#8217;m currently in the early stages of writing my PhD thesis. I&#8217;m writing it using LaTeX, and I&#8217;m trying to get the perfect build system and editing environment going. Yesterday I had a look at Texlipse, a plugin for Eclipse. There was one problem: EPS figures didn&#8217;t work. In newish versions of Latex, if you [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.20papercups.net/wp-content/uploads/2011/06/800px-LaTeX_logo.svg_-e1308095178677.png"><img class="size-full wp-image-384 alignleft" title="800px-LaTeX_logo.svg" src="http://www.20papercups.net/wp-content/uploads/2011/06/800px-LaTeX_logo.svg_-e1308095178677.png" alt="" width="150" height="62" /></a> I&#8217;m currently in the early stages of writing my PhD thesis. I&#8217;m writing it using LaTeX, and I&#8217;m trying to get the <em>perfect</em> build system and editing environment going. Yesterday I had a look at Texlipse, a plugin for Eclipse. There was one problem: EPS figures didn&#8217;t work.</p>
<p>In newish versions of Latex, if you use the epstopdf package, your images are converted on the fly, but this wasn&#8217;t  working in Texlipse. Luckily the fix is easy, and the rest of this post explains what to do.<br />
<span id="more-383"></span></p>
<p style="text-align: center;"></p>
<p>Lets start with a minimum working example to demonstrate the problem:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="latex" style="font-family:monospace;"><span style="color: #E02020; ">\</span><span style="color: #800000;">documentclass</span><span style="color: #E02020; ">{</span><span style="color: #2020C0; font-weight: normal;">minimal<span style="color: #E02020; ">}</span>
<span style="color: #E02020; ">\</span><span style="color: #800000;">usepackage</span><span style="color: #E02020; ">{</span>epsfig<span style="color: #E02020; ">}</span>
<span style="color: #E02020; ">\</span><span style="color: #800000;">usepackage</span><span style="color: #E02020; ">{</span>epstopdf<span style="color: #E02020; ">}</span>
<span style="color: #E02020; ">\</span><span style="color: #800000;">usepackage</span><span style="color: #E02020; ">{</span>graphicx<span style="color: #E02020; ">}</span>
&nbsp;
<span style="color: #C00000; font-weight: normal;">\begin</span><span style="color: #E02020; ">{</span><span style="color: #0000D0; font-weight: normal;">document</span><span style="color: #E02020; ">}</span>
&nbsp;
Here's an EPS Figure:
&nbsp;
<span style="color: #E02020; ">\</span><span style="color: #800000;">includegraphics</span><span style="color: #E02020; ">[</span><span style="color: #C08020; font-weight: normal;">height=5cm</span><span style="color: #E02020; ">]{</span>unisa<span style="color: #E02020; ">}</span>
&nbsp;
<span style="color: #C00000; font-weight: normal;">\end</span><span style="color: #E02020; ">{</span><span style="color: #0000D0; font-weight: normal;">document</span></span><span style="color: #E02020; ">}</span></pre></td></tr></table></div>

<p>Download <a title="Unisa EPS Logo" href="20papercups.net/wp-content/uploads/2011/06/unisa.eps">unisa.eps</a>, and try this yourself. On Ubuntu, I get output that looks like this:</p>
<div id="attachment_391" class="wp-caption aligncenter" style="width: 254px"><a href="http://www.20papercups.net/wp-content/uploads/2011/06/eps-broken.png"><img class="size-full wp-image-391" title="eps-broken" src="http://www.20papercups.net/wp-content/uploads/2011/06/eps-broken.png" alt="" width="244" height="193" /></a><p class="wp-caption-text">Broken PDFLatex output on Ubuntu</p></div>
<p style="text-align: center;">&nbsp;</p>
<p>If you look at the console output generated by TexLipse, you will see one of two problems, described below.</p>
<h3>Problem 1: Shell escape feature is not enabled</h3>
<p>I encountered this problem on Ubuntu. If you see the following output:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;">pdflatex<span style="color: #000000; font-weight: bold;">&gt;</span> Package epstopdf Warning: Shell escape feature is not enabled.</pre></td></tr></table></div>

<p>Then you have encountered this. The fix is quite easy.</p>
<ol>
<li>Open up Eclipse Preferences</li>
<li>Click on Texlipse Builder Settings</li>
<li>Click on PdfLatex program, and press the edit button</li>
<li>Add &#8211;shell-escape to the argument list as the first argument.</li>
<li>You&#8217;re done! Rebuild your project and it should work fine.</li>
</ol>
<h3>Problem 2: Cannot Open Ghostscript</h3>
<p>I encountered this problem on OSX. Weird how the two systems have the same symptoms with different causes, but whatever. If you see the output:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;">pdflatex<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">!!!</span> Error: Cannot open Ghostscript <span style="color: #000000; font-weight: bold;">for</span> piped input</pre></td></tr></table></div>

<p>Then you are suffering from problem 2. This problem is caused by the PATH environment variable not being set correctly when Texclipse runs pdflatex. Essentially, the Ghostcript program, gs, cannot be found by pdflatex. The fix is to add an environment variable to Texlipse&#8217;s builder settings so the path is corrected.</p>
<h4>Step 1: Locate Ghostscript, Repstopdf, and Perl</h4>
<p>Open up a terminal, and type:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">which</span> <span style="color: #c20cb9; font-weight: bold;">gs</span></pre></td></tr></table></div>

<p>This should show you the directory where Ghostscript lives on your system. On my laptop it is:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin</pre></td></tr></table></div>

<p>Repeat the process with repstopdf:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">which</span> repstopdf</pre></td></tr></table></div>

<p>Which on my system gives:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>texbin</pre></td></tr></table></div>

<p>And with perl:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">which</span> <span style="color: #c20cb9; font-weight: bold;">perl</span></pre></td></tr></table></div>

<p>gives me:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin</pre></td></tr></table></div>

<p>The exact paths will depend on how you have installed these things. For example, Perl lives in /opt on my system because I installed it using macports. It doesn&#8217;t really matter. However, if you don&#8217;t have any of these packages installed, you will need to do so.</p>
<h4>Step 2: Create the Environment Variable</h4>
<p>Now that we know where the programs are installed, we need to create a PATH environment variable for Texlipse to use.</p>
<ol>
<li>Open up Eclipse Preferences</li>
<li>Go down to Environment, which is under Texlipse Builder Settings</li>
<li>Click new to create a new environment variable</li>
<li>the key should be set to PATH. The value should be the three directories, separated by colons (:). For example, on my system:<br />
<a href="http://www.20papercups.net/wp-content/uploads/2011/06/add-environment-variable.png"><img class="aligncenter size-full wp-image-402" title="add-environment-variable" src="http://www.20papercups.net/wp-content/uploads/2011/06/add-environment-variable.png" alt="" width="453" height="210" /></a></li>
<li>You&#8217;re done! Save the settings and everything should work.</li>
</ol>
<h3>Conclusions</h3>
<p>If you complete the steps above, depending on what problem you had  (you may have even had both), then you should see the correct output,  which looks like this:</p>
<div id="attachment_403" class="wp-caption aligncenter" style="width: 254px"><a href="http://www.20papercups.net/wp-content/uploads/2011/06/eps-fixed.png"><img class="size-full wp-image-403" title="eps-fixed" src="http://www.20papercups.net/wp-content/uploads/2011/06/eps-fixed.png" alt="" width="244" height="193" /></a><p class="wp-caption-text">EPS Figure working!</p></div>
<p>Well, I hope that helps someone. Its surprising that this error came up on both of my computers. Searching the internet finds others with the same problem, but as yet no solutions. This post should fix that.</p>
<p style="text-align: center;"></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.20papercups.net/latex/latex-texclipse-and-eps-figures/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Graphics Applications and Libraries Month at Packt Publishing</title>
		<link>http://www.20papercups.net/random-news/graphics-applications-and-libraries-month-at-packt-publishing/</link>
		<comments>http://www.20papercups.net/random-news/graphics-applications-and-libraries-month-at-packt-publishing/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 23:13:40 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Random News]]></category>
		<category><![CDATA[Augmented Reality]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[openscenegraph]]></category>

		<guid isPermaLink="false">http://www.20papercups.net/?p=371</guid>
		<description><![CDATA[Hey guys So a little while ago I said that I was going to review the new Open Scene Graph 3: Beginners Guide book from Packt Publishing. Unfortunately, I still haven&#8217;t had time to do the review. However, I thought I would mention that all through April Packt Publishing are running discounts on all of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.20papercups.net/wp-content/uploads/2011/04/packt_logo.png"><img class="alignleft size-full wp-image-372" title="packt_logo" src="http://www.20papercups.net/wp-content/uploads/2011/04/packt_logo.png" alt="" width="104" height="45" /></a>Hey guys</p>
<p>So a little while ago I said that I was going to review the new <a href="http://link.packtpub.com/NwneHs">Open Scene Graph 3: Beginners Guide</a> book from Packt Publishing. Unfortunately, I <em>still</em> haven&#8217;t had time to do the review. However, I thought I would mention that all through April Packt Publishing are running discounts on all of their Graphics books!</p>
<blockquote><p><span style="color: #000000;"><span style="font-family: Calibri;"><span style="font-size: small;">During April, Packt will be running a series of discounts and promotions on a selection of its Open Source Graphic books wherein readers can avail exclusive discounts of 20% and 30% off the cover price of Graphic print books and eBooks.</span></span></span></p></blockquote>
<p><span style="color: #000000;"><span style="font-family: Calibri;"><span style="font-size: small;">So, I suggest you go check out what they have to offer:</span></span></span></p>
<p><a href="http://www.packtpub.com/article/graphic-open-source" target="_blank">http://www.packtpub.com/article/graphic-open-source</a></p>
<p>Cheers<br />
Michael</p>
<p><small><em>Full Disclosure: I have nothing to do with Packt Publishing. However, they did give me a free e-book version of the OSG3 Beginners Guide for me to review. I feel a little bit guilty that I haven&#8217;t done the review yet. Other than that, I have no affiliation with Packt Publishing, and I didn&#8217;t get anything for posting this. So I haven&#8217;t sold out. In my opinion, someone going out of their way to produce documentation and reference books for Open Source Software is a good thing!</em></small></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.20papercups.net/random-news/graphics-applications-and-libraries-month-at-packt-publishing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java Videos Now On Youtube</title>
		<link>http://www.20papercups.net/random-news/java-videos-now-on-youtube/</link>
		<comments>http://www.20papercups.net/random-news/java-videos-now-on-youtube/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 06:24:08 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Java Video Tutorials]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Random News]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[vtm]]></category>

		<guid isPermaLink="false">http://www.20papercups.net/?p=366</guid>
		<description><![CDATA[Hi Everyone Just a quick note to say that I&#8217;ve put all the Java video tutorials up on Youtube. Things have changed since I started making the videos &#8211; Youtube has finally allowed videos longer than 15 minutes, which means I can upload them without having to slice them all up. Youtube Playlist Cheers Michael]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.20papercups.net/wp-content/uploads/2008/12/fonzie.jpeg"><img class="alignleft size-full wp-image-12" title="fonzie" src="http://www.20papercups.net/wp-content/uploads/2008/12/fonzie.jpeg" alt="" width="120" height="120" /></a>Hi Everyone</p>
<p>Just a quick note to say that I&#8217;ve put all the Java video tutorials up on Youtube. Things have changed since I started making the videos &#8211; Youtube has finally allowed videos longer than 15 minutes, which means I can upload them without having to slice them all up.</p>
<p><a href="http://www.youtube.com/view_play_list?p=A7C651F65A0C41F7" target="_blank">Youtube Playlist</a></p>
<p>Cheers<br />
Michael</p>
]]></content:encoded>
			<wfw:commentRss>http://www.20papercups.net/random-news/java-videos-now-on-youtube/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
