<?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>alexrose.net &#187; Tech</title>
	<atom:link href="http://www.alexrose.net/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.alexrose.net</link>
	<description></description>
	<lastBuildDate>Mon, 03 Aug 2009 22:50:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>My First Scala Program</title>
		<link>http://www.alexrose.net/2009/08/03/my-first-scala-program/</link>
		<comments>http://www.alexrose.net/2009/08/03/my-first-scala-program/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 22:41:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.alexrose.net/2009/08/03/my-first-scala-program/</guid>
		<description><![CDATA[A while back for my birthday, I got the Odersky Programming in Scala book and today I finally got a chance to crack it and play around. I had been interested in trying to pick up one of the new wave of dynamic JVM langagues like Groovy, JRuby, or Jython and had settled on Scala. [...]]]></description>
			<content:encoded><![CDATA[<p>A while back for my birthday, I got the Odersky <a href="http://www.amazon.com/Programming-Scala-Comprehensive-Step-step/dp/0981531601/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1249338643&amp;sr=8-1">Programming in Scala</a> book and today I finally got a chance to crack it and play around. I had been interested in trying to pick up one of the new wave of dynamic <a href="http://en.wikipedia.org/wiki/List_of_JVM_languages">JVM langagues</a> like <a href="http://groovy.codehaus.org/">Groovy</a>, <a href="http://jruby.codehaus.org/">JRuby</a>, or <a href="http://www.jython.org/">Jython</a> and had settled on <a href="http://www.scala-lang.org/">Scala</a>. I had read a suggestion that <a href="http://projecteuler.net/">Project Euler</a> would make for a fertile playground of test problems to learn on, and having already done the first several in Java that rang true for me. So, here is my overly complicated solution to the simple first problem..</p>
<blockquote>
<p style="font: 11.0px Monaco; color: #ff5e5e">//If we list all the natural numbers below 10 that are multiples of 3</p>
<p style="font: 11.0px Monaco; color: #ff5e5e"><span style="text-decoration: underline;">/</span>/or 5, <span style="text-decoration: underline;">we</span> get 3, <span style="text-decoration: underline;">5</span>, <span style="text-decoration: underline;">6</span> and 9. The sum of these multiples is 23.</p>
<p style="font: 11.0px Monaco; color: #ff5e5e">//Find the sum of all the multiples of 3 or 5 below 1000.</p>
<p style="font: 11.0px Monaco; color: #8e3e00"><span style="color: #4c4c4c">import</span> scala<span style="color: #000000">.</span>actors<span style="color: #000000">._</span></p>
<p style="font: 11.0px Monaco; min-height: 15.0px">
<p style="font: 11.0px Monaco; color: #4c4c4c">object <span style="color: #8e3e00">Adder</span> extends <span style="color: #8e3e00">Actor</span> <span style="color: #000000">{</span></p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 30px;"><span style="color: #4c4c4c">var</span> <span style="color: #2300fb">sum</span> = 0</p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 30px;"><span style="color: #4c4c4c">def</span> <span style="color: #003e85">act</span>() = {</p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 60px;"><span style="color: #003e85">react</span> {</p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 90px;"><span style="color: #4c4c4c">case</span> (<span style="color: #2300fb">num</span>: <span style="color: #8e3e00">Int</span>) =&gt;</p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 120px;"><span style="color: #2300fb">sum</span> <span style="color: #003e85">+=</span> <span style="color: #2300fb">num</span></p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 120px;"><span style="color: #003e85">act</span>()</p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 90px;"><span style="color: #4c4c4c">case</span> <span style="color: #ff5e5e">&#8220;REPORT&#8221;</span> =&gt;</p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 120px;"><span style="color: #8e3e00">Console</span>.<span style="color: #003e85">println</span>(<span style="color: #ff5e5e">&#8220;Total = &#8220;</span> <span style="color: #003e85">+</span> <span style="color: #2300fb">sum</span>);</p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 60px;">}</p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 30px;">}</p>
<p style="font: 11.0px Monaco">}</p>
<p style="font: 11.0px Monaco; min-height: 15.0px">
<p style="font: 11.0px Monaco; color: #8e3e00"><span style="color: #4c4c4c">object</span> <span style="text-decoration: underline;">ProblemOneRunner</span> <span style="color: #000000">{</span></p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 30px;"><span style="color: #4c4c4c">def</span> <span style="color: #003e85">main</span>(<span style="color: #2300fb">args</span>: <span style="color: #8e3e00">Array</span>[<span style="color: #8e3e00">String</span>]): <span style="color: #8e3e00">Unit</span> = {</p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 60px;"><span style="color: #8e3e00">Adder</span>.<span style="color: #003e85; text-decoration: underline;">star</span><span style="color: #003e85">t</span></p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 60px;"><span style="color: #4c4c4c">for</span>(<span style="color: #2300fb">i</span> &lt;- 1 <span style="color: #003e85">to</span> 999) {</p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 90px;"><span style="color: #4c4c4c">if</span>(<span style="color: #2300fb">i</span> <span style="color: #003e85">%</span> 3 <span style="color: #003e85">==</span> 0 <span style="color: #003e85">||</span> <span style="color: #2300fb">i</span> <span style="color: #003e85">%</span> 5 <span style="color: #003e85">==</span> 0 ) {</p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 120px;"><span style="color: #8e3e00">Adder</span> <span style="color: #003e85">!</span> <span style="color: #2300fb">i</span></p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 90px;">}</p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 60px;">}</p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 60px;"><span style="color: #8e3e00">Adder</span> <span style="color: #003e85">!</span> <span style="color: #ff5e5e">&#8220;REPORT&#8221;</span></p>
<p style="font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; padding-left: 30px;">}</p>
<p style="font: 11.0px Monaco">}</p>
<p style="font: 11.0px Monaco">
</blockquote>
<p>It starts out looking something like a Java program with an import statement, although Scala uses the _ notation to import everything instead of * since * is an identifier. Scala supports a lot of flexibility in its import statements, they can show up anywhere and you can use them to remap names or set up exclusion filters &#8211; but lets not get to far astray.</p>
<p>Next, you&#8217;ll notice that my program has two objects and no classes. Its not that Scala doesn&#8217;t have classes, its just that Scala classes don&#8217;t have the Java concept of static &#8211; if you want a singleton object, you use the <em>object</em> keyword. The solution I have above uses one singleton as the main program entry point and another Adder singleton that extends Actor. This is just so I could play with Scala&#8217;s built in multithreading and message passing support &#8211; obviously this problem doesn&#8217;t really require it but I thought I&#8217;d try it out anyway for fun.</p>
<p>The Adder has its own sum variable it uses to keep track of the numbers it will add up &#8211; Scala uses the <em>var</em> keyword for variables that can be reset and <em>val</em> for ones that can&#8217;t. You&#8217;ll notice the lack of any type declaration here, its not that Scala variables are not typed, its just that it uses type inference to figure out what they are. Also, Java users will notice the lack of semicolons &#8211; semicolons are optional in Scala in most cases. The Adder overrides the <em>act</em> method, the entry point for threads, and then calls <em>react</em> which will look for a message in the actor&#8217;s inbox and if it doesn&#8217;t find one, put the actor to sleep. Unlike some of the other constructs Scala provides for Actors like <em>receive</em>, the thread will die at the end of <em>react</em> instead of looping so we have to put a call to <em>act</em>() at the end of the int message we send it to keep it alive.</p>
<p>In the main method, we start up our Actor thread, then loop through 1 through 999 looking for numbers divisible by 3 or 5 to send to our Adder, then once we are done we send a message to the thread to report and finish its loop. Again, Java users will notice the easy condensed for loop and the ! message passing syntax.</p>
<p>I&#8217;ve barely scratched the surface of Scala here, I&#8217;ll try to get a couple more problems done and posted that likewise abuse language features as I get time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexrose.net/2009/08/03/my-first-scala-program/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What a Jaunty Macbook you have there&#8230;</title>
		<link>http://www.alexrose.net/2009/04/28/what-a-jaunty-macbook-you-have-there/</link>
		<comments>http://www.alexrose.net/2009/04/28/what-a-jaunty-macbook-you-have-there/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 20:49:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://alexrose.net/?p=139</guid>
		<description><![CDATA[I&#8217;ve been taking another stab at dualbooting my Macbook1,1 with the release of Ubuntu 9.04. As a mostly-happy Macophile, why dualboot you might ask? A couple of things &#8211; a weakness for playing around with Unix operating systems (a bad habit I picked up in college) and freakin Java 1.6. The problem is Apple decided [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been taking another stab at dualbooting my Macbook1,1 with the release of <a href="http://www.ubuntu.com/products/whatisubuntu/904features/">Ubuntu 9.04</a>. As a mostly-happy Macophile, why dualboot you might ask? A couple of things &#8211; a weakness for playing around with Unix operating systems (a bad habit I picked up in college) and freakin Java 1.6. The problem is Apple decided not to release a 32bit version for 1.6 and my Macbook is the older Core Duo version and thus not supported. Now, normal people might sigh and stick to 1.5 or take this as an opportunity to buy a new laptop. The slightly more practical (or cheap) who refuse to give up probably turn to <a title="SoyLatte" href="http://landonf.bikemonkey.org/static/soylatte/">soylatte</a>, the port of BSD to OS X (Metal L&amp;F only &#8211; no pretty Mac L&amp;F). I, however, with more disk space than sense, turned to <a href="http://refit.sourceforge.net/">rEFIt</a> to set up a dual OS X/Linux setup.</p>
<p>I won&#8217;t detail how to setup a dualboot system, there are enough tutorials out there if one searches for them. When I first setup my laptop I installed ubuntu  8.10 and quickly ran into  two annoyances  &#8211; an error message about my keyboard layout and the fact that by default the machine is very hard to use since the touchpad causes the cursor to jump around randomly while typing. Not in a mood to research them at the time, I got distracted and sadly it wasn&#8217;t until 9.04 that I tried again. Both these problems persist with Jaunty so if you want to <a href="https://help.ubuntu.com/community/MacBook1-1/Jaunty">run it on your it on your macbook</a>, you are going to run into them.</p>
<p>The first issue manifests itself as an error message stating &#8220;Error activating XKB configuration&#8221; everytime you log into X. This is related to xorg not apparently knowing what to do with the macbook keyboard variant &#8211; there is an umbrella bug ubuntu uses to capture all these types of errors you can find <a href="https://bugs.launchpad.net/ubuntu/+source/xkeyboard-config/+bug/67188">here</a>. The solution is to modify your xorg.conf file to give X more information however I haven&#8217;t dinked around with this yet since its just a minor annoyance.</p>
<p>The issue with the trackpad just about renders the machine unusable for anything but the most simplist tasks however its luckily easy to fix (or at least mitigate). In Jaunty, just add a startup application that looks like this:</p>
<blockquote><p>syndaemon -d</p></blockquote>
<p>This will start up a program in the background every time you login that will disable the trackpad while you type, preventing it from causing the cursor to jump all over the screen. Syndaemon has a couple more options you can play with such as how long to disable the trackpad for but so far I&#8217;m finding the default settings to work ok.</p>
<p>A couple more random hints:</p>
<ul>
<li>If you upgraded Jaunty and are now having problems with flash sites like Hulu telling you need flash 9 when you _know_ you had flash installed, try using synaptic to complete remove and then reinstall the flash-installer package &#8211; thats what it took for me  to get it working again on my living room media box.</li>
</ul>
<ul>
<li>If you are a <a href="http://docs.blacktree.com/quicksilver/what_is_quicksilver">quicksilver</a> addict, check out <a href="http://do.davebsd.com/">Gnome Do</a> &#8211; very slick and the keyboard shortcuts are even the same by default.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.alexrose.net/2009/04/28/what-a-jaunty-macbook-you-have-there/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaBat</title>
		<link>http://www.alexrose.net/2009/03/27/javabat/</link>
		<comments>http://www.alexrose.net/2009/03/27/javabat/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 19:22:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://alexrose.net/?p=108</guid>
		<description><![CDATA[Stumbled over another Java practice problem site for those poor bored individuals who just like writing code. This one is unique in that you are basically asked to implement a function which matches some specification you then write in a web form. On submit the site compiles the code and runs some unit tests against [...]]]></description>
			<content:encoded><![CDATA[<p>Stumbled over another Java practice problem site for those poor bored individuals who just like writing code. This one is unique in that you are basically asked to implement a function which matches some specification you then write in a web form. On submit the site compiles the code and runs some unit tests against it to verify you have solved the particular challenge. You can create an account to track your progress if you like but its not mandatory. Pretty cool.</p>
<p><a href="http://www.javabat.com">JavaBat</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexrose.net/2009/03/27/javabat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Euler</title>
		<link>http://www.alexrose.net/2008/12/01/project-euler/</link>
		<comments>http://www.alexrose.net/2008/12/01/project-euler/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 20:17:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://alexrose.net/?p=72</guid>
		<description><![CDATA[I stumbled across Project Euler the other day and keep on finding myself going back for more. What is Project Euler you might ask? In their own words&#8230; Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at [...]]]></description>
			<content:encoded><![CDATA[<p>I stumbled across <a href="http://projecteuler.net/">Project Euler</a> the other day and keep on finding myself going back for more. What is Project Euler you might ask? In their own words&#8230;</p>
<blockquote>
<p>Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.</p>
<p>The motivation for starting Project Euler, and its continuation, is to provide a platform for the inquiring mind to delve into unfamiliar areas and learn new concepts in a fun and recreational context.</p>
</blockquote>
<p>I&#8217;ve only done the first 4 problems so far so I haven&#8217;t even reached &#8220;level 1&#8243; according to their scoring yet. Nothing has been all that challenging up to this point, the problems have been taking me around 30-60 minutes to solve. It&#8217;s just nice to have a pool of simple programming problems that one can go back to when one is in the mood, sort of like having a book of logic problems laying around.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexrose.net/2008/12/01/project-euler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MythTV woes</title>
		<link>http://www.alexrose.net/2006/07/01/mythtv-woes/</link>
		<comments>http://www.alexrose.net/2006/07/01/mythtv-woes/#comments</comments>
		<pubDate>Sat, 01 Jul 2006 06:06:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://alexrose.net/?p=27</guid>
		<description><![CDATA[I used to run Knoppmyth on my home theater PC since it made the setting up and installation of MythTV a breeze, especially on my old VIA EPIA box. I recently retired that box and decided get everything set up on a AMD64 based shuttle pc. I wanted to go back to using a full [...]]]></description>
			<content:encoded><![CDATA[<p>I used to run <a href="http://www.mysettopbox.tv/knoppmyth.html">Knoppmyth</a> on my home theater PC since it made the setting up and installation of <a href="http://www.mythtv.org/">MythTV</a> a breeze, especially on my old <a href="http://www.epiacenter.com/modules.php?name=Content&amp;pa=showpage&amp;pid=21">VIA EPIA</a> box. I recently retired that box and decided get everything set up on a AMD64 based shuttle pc.<br />
I wanted to go back to using a full blown distro since I use the box for a lot more than MythTV. I had good experience with <a href="http://www.ubuntu.com/">Ubuntu</a> in the past so grabbed the latest Dapper install iso and proceeded to get everything set up. I quickly ran into a complication &#8211; I wanted to reuse the mysql database from my previous installation so that my new box knew about what shows I had seen already and what I had recorded but had yet to watch. The version of KnoppMyth I was using was based on MythTV 19.0 but the only version in the Ubuntu repositories was 18.1 and the database schemas are not compatible. &lt;sigh&gt;<br />
Looking over the Ubuntu forums I was able to find someone who had packaged up 19 and proceed to get everything installed just fine. Or at least it appeared, turns out the version I&#8217;m using has a problem where MythTV occasionally forgets about upcoming recordings. Restarting the backend solves the problem but I don&#8217;t want to force restart the backend every 30 minutes since it would create annoying gaps if I restarted the backend while I was recording something. I thought about jumping through all the hoops required to rebuild MythTV from scratch myself but I didn&#8217;t feel like going through the trouble right now so I came up with a short term hack.<br />
I grabbed the latest version of mythweb and copied it into my apache2 root directory. Getting it working was as simple as creating a symlink to enable mod_rewrite and uncommenting a line in my PHP config to enable the mysql library. Once that was in place I wrote a simple script to wget the upcoming recordings, test to see if there was anything upcoming, and kick the backend if there wasn&#8217;t. I then hooked it into a cron job to run at 5 minutes before every half hour. Its a band aid that should hold me until they get 19 into the tree.<br />
<span style="font-family:monospace;font-size:10pt;">#!/bin/bash<br />
wget -q -O- http://192.168.1.5/mythweb/tv/upcoming | grep -q list_separator<br />
if [ $? -ne 0 ]; then<br />
/etc/init.d/mythtv-backend restart<br />
fi</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexrose.net/2006/07/01/mythtv-woes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Homebrew Xbox-USB connector</title>
		<link>http://www.alexrose.net/2006/06/26/homebrew-xbox-usb-connector/</link>
		<comments>http://www.alexrose.net/2006/06/26/homebrew-xbox-usb-connector/#comments</comments>
		<pubDate>Mon, 26 Jun 2006 06:05:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://alexrose.net/?p=25</guid>
		<description><![CDATA[I&#8217;ve been wanting a gamepad I can use on my Mac and my Linux box. I almost picked up a Xbox 360 wired controller since its has a standard USB interface and there is driver support on both platforms however, thanks partly to EB games being out I decided instead on plan B &#8211; reuse [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been wanting a gamepad I can use on my Mac and my Linux box. I almost picked up a Xbox 360 wired controller since its has a standard USB interface and there is <a href="http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/OsxDriver">driver support</a> on <a href="http://gentoo-wiki.com/HOWTO_Xbox_360_controller_on_Linux">both platforms</a> however, thanks partly to EB games being out I decided instead on plan B &#8211; reuse something I already owned.</p>
<p style="text-align:center;"><a href="http://www.flickr.com/photos/72831683@N00/174127952/"><img title="My Cable" src="http://farm1.static.flickr.com/77/174127952_fe6b63ce26_m.jpg" border="1" alt="My Cable" hspace="4" vspace="4" width="133" height="100" /></a></p>
<p>I had a couple of Xbox S controllers lying around that I haven&#8217;t been using. I like the S controllers, they fit my hands nicely and have a good feel to them. I also have a ton of extra USB cables laying around. While browsing around the net I found some instructions on how to <a href="http://www.ocmodshop.com/default.aspx?a=223">splice a USB cable</a> together with the controller cable. In concept, its quite easy since the original Xbox cable is basically a USB cable with a funky connector. Its just a matter of stripping each cable and matching up like color to like color. I practice, the wires in my USB cable that I spliced in were so thin that it was a bit difficult (for me) to cleanly strip them at first without slicing into the wire itself.</p>
<p>A little solder and electrical table later I had a working cable. I had to download <a href="http://homepage.mac.com/walisser/xboxhiddriver/">drivers for OS X</a> to get it to work on my Mac but <a href="http://www.ubuntu.com/">Dapper Drake</a> recognized it without me having to do anything.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexrose.net/2006/06/26/homebrew-xbox-usb-connector/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retro Fun</title>
		<link>http://www.alexrose.net/2006/03/20/retro-fun/</link>
		<comments>http://www.alexrose.net/2006/03/20/retro-fun/#comments</comments>
		<pubDate>Mon, 20 Mar 2006 06:07:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://alexrose.net/?p=39</guid>
		<description><![CDATA[Stumbled across an very fun japanese freeware game for both the Mac and PC called Doukutsu Monogatari (aka Cave Story). It reminds me of some old NES game, but done super super good for being freeware. Make sure and apply the english language pack unless you read Japanese. Oh, and here are the keyboard controls [...]]]></description>
			<content:encoded><![CDATA[<p>Stumbled across an very fun japanese freeware game for both the Mac and PC called <a href="http://www.gameflaws.com/cavestory/guides.php">Doukutsu Monogatari</a> (aka Cave Story). It reminds me of some old NES game, but done super super good for being freeware. Make sure and apply the english language pack unless you read Japanese. Oh, and here are the keyboard controls since they aren&#8217;t listed<br />
&lt;- -&gt; move left, right<br />
up arrow point gun up<br />
down arrow point gun down, perform action (talk, open, etc)<br />
z jump<br />
x fire weapon<br />
a,s switch weapon<br />
q inventory<br />
w map</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexrose.net/2006/03/20/retro-fun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Back from the Dead</title>
		<link>http://www.alexrose.net/2006/02/06/back-from-the-dead/</link>
		<comments>http://www.alexrose.net/2006/02/06/back-from-the-dead/#comments</comments>
		<pubDate>Mon, 06 Feb 2006 06:08:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://alexrose.net/?p=40</guid>
		<description><![CDATA[Its been over a year, but I&#8217;m working on Cerebral Imprint again. My first goal &#8211; make it so it doesn&#8217;t look like, well, ass (pardon my french). When I first started working on Cerebral Imprint I was a fresh switcher from a windows world and the only user interface work I had done in [...]]]></description>
			<content:encoded><![CDATA[<p>Its been over a year, but I&#8217;m working on Cerebral Imprint again.<br />
My first goal &#8211; make it so it doesn&#8217;t look like, well, ass (pardon my french). When I first started working on Cerebral Imprint I was a fresh switcher from a windows world and the only user interface work I had done in a while was <a href="http://java.sun.com/docs/books/tutorial/uiswing/">swing based</a>. Now that I&#8217;ve been a Mac convert for quite some time I find the user interface to be somewhat of an embarrassment. So, <a href="mailto:cerebral.imprint@alexrose.net">what do you think</a> about this layout?<br />
<a onclick="window.open('http://www.alexrose.net/media/img/CerebralImprint-test1.gif','popup','width=1155,height=633,scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=yes,left=0,top=0');return false" href="http://www.alexrose.net/media/img/CerebralImprint-test1.gif"><img title="Prototype Cerebral Imprint" src="http://www.alexrose.net/media/img/CerebralImprint-test1.gif" border="1" alt="Prototype Cerebral Imprint" hspace="4" vspace="4" width="182" height="100" /></a><br />
Its going to be a little bit before I have a new test version ready but stay tuned. My goal is to actually stabilize the code base, release a 2.0 release, then actually start to add new features again.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexrose.net/2006/02/06/back-from-the-dead/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Source Mac Software</title>
		<link>http://www.alexrose.net/2006/01/30/open-source-mac-software/</link>
		<comments>http://www.alexrose.net/2006/01/30/open-source-mac-software/#comments</comments>
		<pubDate>Mon, 30 Jan 2006 06:08:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://alexrose.net/?p=41</guid>
		<description><![CDATA[Hey, looking for a nice list of some of the more popular open source apps out there for the mac? Why not check this site out&#8230; PS &#8211; Saturday rocked. I just had to tell someone, but shhh, don&#8217;t tell anyone. Its between just you and me, promise?]]></description>
			<content:encoded><![CDATA[<p>Hey, looking for a nice list of some of the more popular open source apps out there for the mac? Why not check <a href="http://www.opensourcemac.org/">this site</a> out&#8230;<br />
PS &#8211; Saturday rocked. I just had to tell someone, but shhh, don&#8217;t tell anyone. Its between just you and me, promise?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexrose.net/2006/01/30/open-source-mac-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Earth</title>
		<link>http://www.alexrose.net/2006/01/16/google-earth/</link>
		<comments>http://www.alexrose.net/2006/01/16/google-earth/#comments</comments>
		<pubDate>Mon, 16 Jan 2006 06:08:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://alexrose.net/?p=42</guid>
		<description><![CDATA[When I heard that Google Earth had been released for OS X the other day I had to give a spin. At first glance it looks sorta like a standalone client for their online maps service, albeit with many more layers you can overlay over the map and more UI special effects. Dig around a [...]]]></description>
			<content:encoded><![CDATA[<p>When I heard that <a href="http://earth.google.com/">Google Earth</a> had been <a href="http://googleblog.blogspot.com/2006/01/google-earth-in-mac-world-pc-too.html">released for OS X</a> the other day I had to give a spin. At first glance it looks sorta like a standalone client for their <a href="http://maps.google.com/">online maps service</a>, albeit with many more layers you can overlay over the map and more UI special effects.<br />
Dig around a bit more and you find there is a whole <a href="http://bbs.keyhole.com/ubb/categories.php/Cat/0">user community</a> around finding and labeling places on the map. You enable these optional layers and you find a treasure trove of little details people have spent time entering in. For instance in my area I find <a href="http://bbs.keyhole.com/ubb/showthreaded.php/Number/169233">free WI-FI access points</a> labeled, <a href="http://bbs.keyhole.com/ubb/showthreaded.php/Number/26428">traffic cam information</a>, <a href="http://bbs.keyhole.com/ubb/showthreaded.php/Number/7936">Bruce Lee&#8217;s Grave</a>, <a href="http://bbs.keyhole.com/ubb/showthreaded.php/Number/62620">Bill&#8217;s house</a>, or where <a href="http://bbs.keyhole.com/ubb/showthreaded.php/Number/53614">Kurt shot himself</a>.<br />
I was let down a little bit that it wouldn&#8217;t handle the address for my friend in Japan, but then again none of the map sites seem to do so&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexrose.net/2006/01/16/google-earth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
