<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Francis Shanahan[.com]</title><link>http://francisshanahan.com/www</link><description></description><language>en</language><generator>http://wordpress.org/?v=2.7.1</generator><sy:updatePeriod xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">hourly</sy:updatePeriod><sy:updateFrequency xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">1</sy:updateFrequency><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/FrancisShanahancom" type="application/rss+xml" /><item><title>Cloud Convergence; A Vision of the Perfect Cell Phone/Mobile Device</title><link>http://feedproxy.google.com/~r/FrancisShanahancom/~3/ZzSf7Wu7Wmg/</link><category>Cool &amp; Future Tech</category><category>Electronics</category><category>Featured</category><category>Headline</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Francis</dc:creator><pubDate>Mon, 29 Jun 2009 07:38:17 PDT</pubDate><guid isPermaLink="false">http://francisshanahan.com/www/?p=2273</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>We&#8217;ve reached a point now where smartphones are ubiquitous. I myself have a Blackberry Curve, the iPhone 3Gs is out, the Palm Pre is there and by summer&#8217;s end a number of Google Android powered phones are expected.</p>
<p>So far the trend has been to build more and more computing power into the devices so they can run plenty of applications.  That&#8217;s not where things are headed though.</p>
<p>Switching gears for a second back to traditional Desktop computing: Pano Logic [<a href="http://www.panologic.com/" target="_blank">LINK</a>] make a tiny little box that completely virtualizes the computer. Huh? what&#8217;s that? It means your operating system doesn&#8217;t run on this box, it runs elsewhere, usually in a data center someplace, accessible through the Internet. The tiny little Pano box just communicates back and forth with this instance of your computer, sending keyboard clicks, mouse movements and clicks to it, and getting back a screen image to display.</p>
<p>This technology is not new. I&#8217;ve used VMWare and Virtual PC to run various operating systems for years now. When you need to &#8220;upgrade&#8221; you just change the configuration of the virtual machine. Need more memory? Just change a setting in the config.</p>
<p>Folks like Amazon have been building out a very robust &#8220;cloud&#8221; based computing platform over the last 5 years (the Elastic Computing Cloud) which is targeted at web-site hosting. It&#8217;s pay-as-you-go with very rapid scalability available on demand.  This means that web startup I worked on in 1999 that paid $4,000,000 for spanking new managed hosting with EMC and the whole nine-yards could&#8217;ve saved that and grown organically. It&#8217;s a great system.</p>
<p>Back to Cell Phones, here&#8217;s where I see things going: There&#8217;s a certain critical mass in terms of device-technology  you need to attain and I believe we&#8217;re there. Devices have touch-screens, crystal clear displays, small form factors with built in video cameras and support for WiFi aswell as multiple cellular networks. We&#8217;re good to go.</p>
<p>The next step is to virtualize the phone operating system. Separate the software that normally runs on the phone from the thing that is the phone device. Have the phone run in the cloud and the <em><strong>device </strong></em>be just a proxy to that operating system.  This will enable a number of things.</p>
<ol>
<li>Your phone will no longer be tethered to your device. Huh? Yeah, you&#8217;ll be able to leave your phone &#8220;thing&#8221; at home, yet still access your phone from any internet access point.</li>
<li>Your phone will now have infinite storage.</li>
<li>Your phone can now run infinite applications, simultaneously.</li>
<li>Your data is now accessible from anywhere. You can synch your phone&#8217;s data to your home PC or Media Center or xBox and so on.</li>
<li>Upgrades will no longer mean waiting for a new phone device.</li>
<li>The focus will rapidly switch to the operating system and so Google Android will have  a huge advantage whereas the iPhone will lose its hardware-specific advantages.</li>
<li>Voice over IP will replace the phone network. Phones will maintain GSM, CDMA, Edge etc. connectivity and likely still use these for some time to come but ultimately the Internet connectivity will be what matters. Things like Skype will merge into the cell-phone business.</li>
<li>Battery life will either be extended or stay the same. I don&#8217;t know about you but my phone gets HOT when I use it. This is due to the phone&#8217;s CPU cranking away. If the bulk of the processing were running remote, I&#8217;d imagine the battery&#8217;d be cooler and spend less energy powering the local CPU. I&#8217;m not sure about this one though since connectivity itself might increase and eat up power.</li>
<li>The phone can run&#8230;even when it&#8217;s OFF. Yes, of course, the device is no longer the thing that controls when the phone operating system is running. You could have the remote operating system actually wake up the phone device when a call comes in. Pretty cool.</li>
<li>No more downloads. Your device never needs to receive anything from anyone, it&#8217;s all sent to the remote operating system. The device communicates exclusively with it.</li>
<li>Let&#8217;s face it, your desktop&#8217;s headed this direction. Ultimately your Phone and your Desktop will be able to share common storage, like a network-attached disc. Same thing with your DVR. You&#8217;ll be accessing TV shows you recorded at home from your cloud based phone. Everything&#8217;s backed up. The world will slowly accumulate thousands of copies of digital junk&#8230;</li>
<li>Because data and storage are now unlimited, a new trend will emerge which is to capture and log everything you do all day. This is more tied to battery life but I could envisage a cell phone that records its GPS position, and takes a picture every five minutes, shoots these up to the cloud. I&#8217;m going to call this &#8220;Life-logging&#8221; or &#8220;Flogging&#8221;. The world of the &#8220;Blogger&#8221; will be obsolete. (ok I&#8217;m going out on a limb here a bit).</li>
</ol>
<p>The road is clear for this to happen. The technology is there, the market is certainly there and so of course the opportunity is there.  The question now is who&#8217;s going to be first?</p>
<p>If I had to put money on it my guess would be a combo of HTC + Google.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/F_ZUqLR8S7_DtgnXHvDnFaYlKFU/0/da"><img src="http://feedads.g.doubleclick.net/~a/F_ZUqLR8S7_DtgnXHvDnFaYlKFU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/F_ZUqLR8S7_DtgnXHvDnFaYlKFU/1/da"><img src="http://feedads.g.doubleclick.net/~a/F_ZUqLR8S7_DtgnXHvDnFaYlKFU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=ZzSf7Wu7Wmg:e4jwd6xl4JU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=ZzSf7Wu7Wmg:e4jwd6xl4JU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=ZzSf7Wu7Wmg:e4jwd6xl4JU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=ZzSf7Wu7Wmg:e4jwd6xl4JU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=ZzSf7Wu7Wmg:e4jwd6xl4JU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=ZzSf7Wu7Wmg:e4jwd6xl4JU:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FrancisShanahancom/~4/ZzSf7Wu7Wmg" height="1" width="1"/>]]></content:encoded><description>We&amp;#8217;ve reached a point now where smartphones are ubiquitous. I myself have a Blackberry Curve, the iPhone 3Gs is out, the Palm Pre is there and by summer&amp;#8217;s end a number of Google Android powered phones are expected.
So far the trend has been to build more and more computing power into the devices so they can run plenty of applications.  That&amp;#8217;s not where things are headed though.
Switching gears for a second back to traditional Desktop computing: Pano Logic [LINK] make a tiny little box that completely virtualizes the computer. ...</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://francisshanahan.com/www/index.php/2009/cloud-convergence-a-vision-of-the-perfect-cell-phonemobile-device/feed/</wfw:commentRss><feedburner:origLink>http://francisshanahan.com/www/index.php/2009/cloud-convergence-a-vision-of-the-perfect-cell-phonemobile-device/</feedburner:origLink></item><item><title>What Can The Big Mess o’ Wires Teach Us About Software?</title><link>http://feedproxy.google.com/~r/FrancisShanahancom/~3/cZOrf84mEho/</link><category>Electronics</category><category>General Computing</category><category>Headline</category><category>Weird Wide World</category><category>homebrew</category><category>software development</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Francis</dc:creator><pubDate>Fri, 29 May 2009 14:52:22 PDT</pubDate><guid isPermaLink="false">http://francisshanahan.com/www/?p=2261</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Steve Chamberlain [<a href="http://www.stevechamberlin.com/cpu/" target="_blank">LINK</a>] has achieved the ultimate in home-brew electronics: Creating his own CPU from basic logic chips. Absolutely amazing. The photos alone are a thing of beauty but to know this thing actually works is incredible.</p>
<p>From Steve&#8217;s site:</p>
<p>&#8220;Big Mess o’ Wires 1 is an original CPU design. It does not use any commercial CPU, but instead has a custom CPU constructed from dozens of simple logic chips. Around this foundation is built a full computer with support for a keyboard, sound, video, and external peripherals.</p>
<p>My original goals were:</p>
<ul>
<li>Build the CPU from scratch, primarily using basic 7400-series logic. No 6502, Z-80, etc.</li>
<li>Keep the hardware complexity to a minimum. I’m not an electrical engineer.</li>
<li>Be capable of running “real” programs, not a 4-bit CPU or toy machine.</li>
<li>Provide a way to interface with a PC.</li>
<li>Be fast enough to run interesting programs interactively&#8221;</li>
</ul>
<p>Interestingly I also used the 74HC595 shift registers on <a href="http://francisshanahan.com/www/index.php/2009/how-to-build-a-8x8x3-led-matrix-with-pwm-using-an-arduino/">my LED matrix</a> project.</p>
<p>Steve&#8217;s project doesn&#8217;t use soldering but rather each wire connecting the chips is wound by hand around a special gold leg on the proto board. This is an &#8220;old school&#8221; technique which takes a lot longer than soldering but if you make a mistake it&#8217;s much easier to recover from.</p>
<p>Things like this always fascinate me when I contrast to software development in the &#8220;real world&#8221;. Here&#8217;s a guy that had a direction, knew what he wanted to achieve and set about doing it. It&#8217;s just one person so it took a long time but he got there.</p>
<p>If you wanted to get 2 people to build the same thing, working as a team, my guess is the likelihood of success goes drastically down. In fact on a project like this with the addition of that one extra person you&#8217;re probably going to fail the first time.</p>
<p>So why is that?</p>
<p>Contrast this with the process of industrial ship building or air-liner development. Those projects involve literally thousands of people, each doing a small job. In the case of the air force or Department of Defense you now have thousands of vendors. And it seems from the Discovery Channel that those projects generally finish on time.</p>
<p>Why is that?</p>
<p>The common thread is hard to pin down but to me it&#8217;s people who know what they&#8217;re doing.</p>
<p>The ship building scenario is a very long process but infinitely broken down into minute detail. Each component, each step is itself extremely well defined and well understood. So in spite of its size, the ship building process has</p>
<ul>
<li>a LOW number of unknowns</li>
<li>very RIGID  requirements</li>
<li>and a LARGE number of people and moving parts.</li>
</ul>
<p>Now in the case of how to build a CPU from scratch, starting out I&#8217;d say Steve knew very little. I would venture (and it&#8217;s no reflection on Steve) that almost the entire process was an unknown.  So how was he successful?</p>
<p>In contrast to the ship example he had</p>
<ul>
<li>a HIGH degree of unknowns</li>
<li>very FLUID requirements</li>
<li>a LOW number of people</li>
</ul>
<p>Of course things are never this clear cut which is why software development is so tricky. You need to constantly manage these three variables of Unknowns vs Constraints (requirements) vs Headcount and keep them in balance if you&#8217;re gonna be successful.</p>
<p>And so I draw my conclusion; Any time you have a HIGH degree of unknowns with RIGID requirements and a LARGE number of people you are destined for FAILURE.</p>
<p>The corollary is any time you have a LOW number of unknowns with FLUID requirements and a LOW number of people, you are destined for SUCCESS.</p>
<p>I know which team I&#8217;d like to be on.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/Ug4guT1YYKWPn2NcTAqSgqyzEX8/0/da"><img src="http://feedads.g.doubleclick.net/~a/Ug4guT1YYKWPn2NcTAqSgqyzEX8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Ug4guT1YYKWPn2NcTAqSgqyzEX8/1/da"><img src="http://feedads.g.doubleclick.net/~a/Ug4guT1YYKWPn2NcTAqSgqyzEX8/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=cZOrf84mEho:ATCcItOBns8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=cZOrf84mEho:ATCcItOBns8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=cZOrf84mEho:ATCcItOBns8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=cZOrf84mEho:ATCcItOBns8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=cZOrf84mEho:ATCcItOBns8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=cZOrf84mEho:ATCcItOBns8:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FrancisShanahancom/~4/cZOrf84mEho" height="1" width="1"/>]]></content:encoded><description>Steve Chamberlain [LINK] has achieved the ultimate in home-brew electronics: Creating his own CPU from basic logic chips. Absolutely amazing. The photos alone are a thing of beauty but to know this thing actually works is incredible.
From Steve&amp;#8217;s site:
&amp;#8220;Big Mess o’ Wires 1 is an original CPU design. It does not use any commercial CPU, but instead has a custom CPU constructed from dozens of simple logic chips. Around this foundation is built a full computer with support for a keyboard, sound, video, and external peripherals.
My original goals were:

Build the ...</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://francisshanahan.com/www/index.php/2009/what-can-the-big-mess-o-wires-teach-us-about-software/feed/</wfw:commentRss><feedburner:origLink>http://francisshanahan.com/www/index.php/2009/what-can-the-big-mess-o-wires-teach-us-about-software/</feedburner:origLink></item><item><title>Live Love Laugh</title><link>http://feedproxy.google.com/~r/FrancisShanahancom/~3/FIVWqzW5FDc/</link><category>Featured</category><category>laugh</category><category>live</category><category>love</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Francis</dc:creator><pubDate>Fri, 29 May 2009 14:01:25 PDT</pubDate><guid isPermaLink="false">http://francisshanahan.com/www/?p=2263</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Lena Antaramian is a good friend of mine and has launched her own Photography business: <a href="http://livelovelaughphotos.com/">http://livelovelaughphotos.com/</a>.</p>
<p>From her site &#8220;For as long as I can remember, I&#8217;ve had a passion for photography. On my world travels and adventures I have taken thousands of pictures of landscapes and citiscapes - covering 36 countries on all six continents. But always, my favorite subjects were people. From Buddhist monks in Bhutan, to native Himba of Namibia, to a smiling groom closer to home. After my twin daughters were born, I turned my passion into a career and now I do what I love to do - capture moments of life, love and laughter!&#8221;</p>
<p>Lena and Victor have been friends of mine a long time and in 2005 they took a couple of days off, 102 to be exact and circumvented the globe. Phileas Fogg did it in 80 so poor planning on their part I guess. You can checkout their odyssey on their blog:<br />
<a href="http://victorandlena.typepad.com">http://victorandlena.typepad.com</a>. </p>
<p>If you have needs for photography in the tri-state area, I highly recommend Lena&#8217;s Live Love and Laugh service. </p>

<p><a href="http://feedads.g.doubleclick.net/~a/XL22wJCf_3nyR0gM_LME9uCe3_E/0/da"><img src="http://feedads.g.doubleclick.net/~a/XL22wJCf_3nyR0gM_LME9uCe3_E/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/XL22wJCf_3nyR0gM_LME9uCe3_E/1/da"><img src="http://feedads.g.doubleclick.net/~a/XL22wJCf_3nyR0gM_LME9uCe3_E/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=FIVWqzW5FDc:MPSZbA68YCk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=FIVWqzW5FDc:MPSZbA68YCk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=FIVWqzW5FDc:MPSZbA68YCk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=FIVWqzW5FDc:MPSZbA68YCk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=FIVWqzW5FDc:MPSZbA68YCk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=FIVWqzW5FDc:MPSZbA68YCk:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FrancisShanahancom/~4/FIVWqzW5FDc" height="1" width="1"/>]]></content:encoded><description>Lena Antaramian is a good friend of mine and has launched her own Photography business: http://livelovelaughphotos.com/.
From her site &amp;#8220;For as long as I can remember, I&amp;#8217;ve had a passion for photography. On my world travels and adventures I have taken thousands of pictures of landscapes and citiscapes - covering 36 countries on all six continents. But always, my favorite subjects were people. From Buddhist monks in Bhutan, to native Himba of Namibia, to a smiling groom closer to home. After my twin daughters were born, I turned my passion into ...</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://francisshanahan.com/www/index.php/2009/live-love-laugh/feed/</wfw:commentRss><feedburner:origLink>http://francisshanahan.com/www/index.php/2009/live-love-laugh/</feedburner:origLink></item><item><title>How to Build a 8×8 RGB LED Matrix with PWM using an Arduino</title><link>http://feedproxy.google.com/~r/FrancisShanahancom/~3/rghk_6HBHdg/</link><category>Electronics</category><category>Featured</category><category>Headline</category><category>Things I've Made</category><category>arduino</category><category>LED matrix</category><category>PWM</category><category>RGB</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Francis</dc:creator><pubDate>Thu, 14 May 2009 04:30:22 PDT</pubDate><guid isPermaLink="false">http://francisshanahan.com/www/?p=2248</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>A while ago I designed a circuit that would power an 8&#215;8 RGB LED Matrix (192 LEDs in all) using only 3 pins from an Arduino Diecimila and supporting Pulse Width Modulation. I&#8217;ve uploaded some videos of this project on Youtube and folks have been emailing me with questions on how it works. In this post I&#8217;ll try to answer all those questions so you can build your own.</p>
<p>I started with the LED Matrix component itself. I used an RGB 8&#215;8 common anode matrix from LedSee (only $10 on ebay). The matrix takes 32 pins: 8 anodes, 8 cathodes for Red, 8 for Green and 8 for Blue.  Then I had an arduino Diecimila which was about $25 I think but you can use any ATMega based board.</p>
<p>A little googling revealed that a thing called a Shift Register could help me drive all those 32 pins using just a couple from the arduino. Shift Registers are cheap and easy to source. I used the 74HC595 IC.</p>
<p>The arduino website has a tutorial on Shift Registers which can be found here: <a href="http://www.arduino.cc/en/Tutorial/ShiftOut">http://www.arduino.cc/en/Tutorial/ShiftOut</a>. This explains what they are, how they work, the clock, latch and data pins as well as how to chain them together.</p>
<p>After a few evenings of experimentation I knew I could drive 8 pins per 74HC595 chip. If I chained enough together I could drive all 32 pins. So I was set.</p>
<p><img class="alignleft" title="Breadboard prototype" src="http://lh5.ggpht.com/_45WOFW8ZSb4/SV8CMUwQHmI/AAAAAAAAFIk/dtM0myXcaZI/s800/050.JPG" alt="breadboard prototype" width="280" />Next I drew up the schematic on paper. I played with a few prototypes using Breadboard until I had confidence that the circuit would work. This was a smart move as it turned out there was a problem. I found through experimentation that the Red LEDs were overpowering the Green and the Blue. I couldn&#8217;t figure it out since the code treated them all as equals. I went back to the reference manual for the LED matrix and found that the operating voltage of the RED LEDs in the matrix is actually lower than the Blue or Green.</p>
<p>I was able to even them out by introducing a higher resistor (330) into the RED cathodes than is in line with the blue and green (220 ohms). That was a true moment of enlightenment.</p>
<p>There&#8217;s a lot of wires so I put it into Visio. Here&#8217;s the result:<br />
<a href="http://picasaweb.google.com/lh/photo/4m0f5w6KA1bAIHIswXBFcg?feat=embedwebsite"><img src="http://lh4.ggpht.com/_45WOFW8ZSb4/SV66O0j6HlI/AAAAAAAAFGg/WcVBQAnX1Vs/s400/LEDMatrixSchematic.png" align="center" /></a></p>
<p>The blue, green and yellow lines go to the Arduino.</p>
<p>Next up I worked on the code. Besides turning the LEDs on and off I wanted to actually get different colors. I had no idea how to do this but it turned out Robert aka &#8220;MadWorm&#8221; had already figured it out: [<a href="http://blog.spitzenpfeil.org/wordpress/wp-content/uploads/2008/10/matrix_code.pde" target="_blank">LINK</a>]. My code is essentially based entirely off of Robert&#8217;s so I won&#8217;t complicate or confuse you with my own extensions. </p>
<p>To better understand the ISR business, I&#8217;ll refer you this time to ucHobby [<a href="http://www.uchobby.com/index.php/2007/11/24/arduino-interrupts/">LINK</a>]</p>
<p>The arduino supports an interrupt which is essentially a routine that runs in the the background, almost like a separate thread, from your code. This interrupt is what updates the Matrix pins and it happens very very fast. Even better is that it frees up the main loop of your Arduino sketch to do the interesting stuff like update the actual matrix data.</p>
<p>Pulse Width Modulation or PWM is essentially a way of simulating an analog output from a binary source. Huh? Wha? </p>
<p>If I turn on a Red LED I get red, if I turn on a Blue LED I get blue. If I turn them on both at the same time I get purple. What if I want to get some color in between? with this type of system you can&#8217;t get anything but 7 colors (R, G, B, RG, RB, GB, RGB). The only way is to turn on the LEDs partially. But an LED can only be fully on or fully off, how can you get a &#8220;partial&#8221; LED? The answer is PWM. </p>
<p>Pulse Width Modulation varies the time for which an LED is active. It&#8217;s still either fully on or fully off during that time, but if you think of that time as a wave, the &#8220;width&#8221; of the &#8220;pulse&#8221; during which the LED is active varies. Here&#8217;s a good visual: </p>
<p><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/8/8e/PWM%2C_3-level.svg/350px-PWM%2C_3-level.svg.png" alt="PWM" /></p>
<p>The result is an ability to &#8220;mix&#8221; colors by different degrees and get a far wider range than the 7 possible combinations of RGB. The good news is this is all implemented within Robert&#8217;s ISR code above. </p>
<p>So I soldered away busily for three nights and in the end I had a nice little circuit board. Definitely not as small as it could be but good enough for a RevA. </p>
<p>At this point I had everything working nicely so I built simple case of Cherry/Lexan and four hex-head bolts to finish up. </p>
<p>That&#8217;s basically it! You can checkout the pictures below or find the video on Youtube. I had a lot of fun making this thing. It sits proudly on my desk today and although many have tried, no one can resist asking &#8220;what is that thing&#8221;. </p>
<p><embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="600" height="400" flashvars="host=picasaweb.google.com&#038;captions=1&#038;hl=en_US&#038;feat=flashalbum&#038;RGB=0x000000&#038;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Ffrancisshanahan%2Falbumid%2F5287314028583882001%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>The PWM is very tough to videotape but take a peek at the pics. Here&#8217;s my daughter playing with the prototype: </p>
<p><object width="425" height="344"><param value="http://www.youtube.com/v/QMKiN_5nrUI&amp;hl=en&amp;fs=1" name="movie" /><param value="true" name="allowFullScreen" /><param value="always" name="allowscriptaccess" /><embed width="425" height="344" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash" src="http://www.youtube.com/v/QMKiN_5nrUI&amp;hl=en&amp;fs=1"></embed></object> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/EhB_VbiwdUzf1WjzXPJHNb07iEk/0/da"><img src="http://feedads.g.doubleclick.net/~a/EhB_VbiwdUzf1WjzXPJHNb07iEk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/EhB_VbiwdUzf1WjzXPJHNb07iEk/1/da"><img src="http://feedads.g.doubleclick.net/~a/EhB_VbiwdUzf1WjzXPJHNb07iEk/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=rghk_6HBHdg:Cdt5wXEmLKo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=rghk_6HBHdg:Cdt5wXEmLKo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=rghk_6HBHdg:Cdt5wXEmLKo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=rghk_6HBHdg:Cdt5wXEmLKo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=rghk_6HBHdg:Cdt5wXEmLKo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=rghk_6HBHdg:Cdt5wXEmLKo:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FrancisShanahancom/~4/rghk_6HBHdg" height="1" width="1"/>]]></content:encoded><description>A while ago I designed a circuit that would power an 8&amp;#215;8 RGB LED Matrix (192 LEDs in all) using only 3 pins from an Arduino Diecimila and supporting Pulse Width Modulation. I&amp;#8217;ve uploaded some videos of this project on Youtube and folks have been emailing me with questions on how it works. In this post I&amp;#8217;ll try to answer all those questions so you can build your own.
I started with the LED Matrix component itself. I used an RGB 8&amp;#215;8 common anode matrix from LedSee (only $10 on ebay). ...</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://francisshanahan.com/www/index.php/2009/how-to-build-a-8x8x3-led-matrix-with-pwm-using-an-arduino/feed/</wfw:commentRss><feedburner:origLink>http://francisshanahan.com/www/index.php/2009/how-to-build-a-8x8x3-led-matrix-with-pwm-using-an-arduino/</feedburner:origLink></item><item><title>How to Add JCarousel Lite to Wordpress</title><link>http://feedproxy.google.com/~r/FrancisShanahancom/~3/lPSZYeBRDrI/</link><category>Cool &amp; Future Tech</category><category>Featured</category><category>Headline</category><category>Web Development</category><category>jcarousel</category><category>jquery</category><category>wordpress</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Francis</dc:creator><pubDate>Sun, 10 May 2009 23:20:54 PDT</pubDate><guid isPermaLink="false">http://francisshanahan.com/www/?p=2234</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>A number of folks have asked for detailed step-by-step instructions so here&#8217;s how I added a nice Carousel to the Arthemia theme running under Wordpress. I use the free version of the Arthemia theme which doesn&#8217;t have a carousel out of the box. It&#8217;s easy to add one though and of course these instructions apply regardless of the theme you&#8217;re using so here goes. </p>
<p>I&#8217;ll assume you have Wordpress installed, doesn&#8217;t matter which version.</p>
<p>Depending on the theme you use, the pages you&#8217;ll need to edit are located in a folder under wp-content/themes/</p>
<p>It&#8217;s confusing but there are actually two JCarousel libraries, each different, one being JCarousel and the other being JCarousel Lite. JCarousel is a fully featured robust carousel library for the ultimate in carousel satisfaction. It&#8217;s very complicated and I didn&#8217;t need its features. I went with JCarousel Lite and I suggest you do too.</p>
<p>Step 1)<br />
Put this code into your theme&#8217;s footer.php file:</p>
<p>&lt;script src=&#8221;http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt; &lt;script src=&#8221;http://www.gmarwaha.com/jquery/jcarousellite/js/jcarousellite_1.0.1.pack.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;<br />
The first is a link to JQuery, the 2nd is a link to JCarousel Lite. You need both and in that order.  You can specify these in the header too but the page will appear to load a little quicker in the browser if JS files are moved to the footer.</p>
<p>2) While you have Footer.php open, add this after the above two lines:</p>
<p>&lt;script type=&#8221;text/javascript&#8221;&gt;&lt;!&#8211;<br />
$(function() {</p>
<p>$(&#8221;#MyCarousel&#8221;).jCarouselLite({<br />
btnNext: &#8220;.next&#8221;,<br />
btnPrev: &#8220;.prev&#8221;,<br />
vertical: true,<br />
visible: 3,<br />
auto:2000,<br />
speed:1000<br />
});<br />
});<br />
// &#8211;&gt;&lt;/script&gt;<br />
The above is just a simple declaration to initialize a carousel. It names 3 divs, MyCarousel, Next and Prev which we&#8217;ll create next&#8230;</p>
<p>Step 3) Generate the carousel elements. You can make your elements static but where&#8217;s the fun in that? I used PHP for this and in my case I scroll between 5 or so &#8220;Featured&#8221; items. Here&#8217;s the PHP for that and this should go in your theme&#8217;s index.php file, wherever you want the carousel to show up.</p>
<p>&lt;div id=&#8221;MyCarousel&#8221;&gt;<br />
&lt;ul&gt;</p>
<p>&lt;?php query_posts(&#8221;showposts=5&amp;category_name=Featured&#8221;); $i = 1; ?&gt;</p>
<p>&lt;?php while (have_posts()) : the_post(); ?&gt;</p>
<p>&lt;li&gt; &lt;a class=&#8221;title&#8221; rel=&#8221;bookmark&#8221; href=&#8221;&lt;?php the_permalink() ?&gt;&#8221;&gt;&lt;?php the_title() ?&gt;&lt;/a&gt;&lt;/li&gt;</p>
<p>&lt;?php endwhile; ?&gt;</p>
<p>&lt;/ul&gt;<br />
&lt;/div&gt;</p>
<p>&lt;div class=&#8221;prev&#8221;&gt;&amp;nbsp;&lt;/div&gt;<br />
&lt;div class=&#8221;next&#8221;&gt;&amp;nbsp;&lt;/div&gt;</p>
<p>Basically you&#8217;re just creating a div named MyCarousel, inside there is an unordered list (&lt;ul&gt;) and then there&#8217;s some PHP to loop through the 5 most recent Featured items and create &lt;li&gt; tags for each one.</p>
<p>You should tailor this to your needs. This code uses a Wordpress function to find the latest blog entries but your code can pull data from wherever.</p>
<p>Notice this also creates the necessary div tags, MyCarousel, Next and Prev.</p>
<p>Step 4) Celebrate, you&#8217;re done. If everything worked you should get a vertical scrolling carousel on your blog&#8217;s home page. With that working you can add in other blog elements like the blog entry excerpt or number of comments etc.</p>
<p>Hope that&#8217;s clear enough.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/BpdMDyq5GOIaRcnQNMAPhNq5h5E/0/da"><img src="http://feedads.g.doubleclick.net/~a/BpdMDyq5GOIaRcnQNMAPhNq5h5E/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/BpdMDyq5GOIaRcnQNMAPhNq5h5E/1/da"><img src="http://feedads.g.doubleclick.net/~a/BpdMDyq5GOIaRcnQNMAPhNq5h5E/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=lPSZYeBRDrI:n4Q0oEMoWig:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=lPSZYeBRDrI:n4Q0oEMoWig:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=lPSZYeBRDrI:n4Q0oEMoWig:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=lPSZYeBRDrI:n4Q0oEMoWig:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=lPSZYeBRDrI:n4Q0oEMoWig:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=lPSZYeBRDrI:n4Q0oEMoWig:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FrancisShanahancom/~4/lPSZYeBRDrI" height="1" width="1"/>]]></content:encoded><description>A number of folks have asked for detailed step-by-step instructions so here&amp;#8217;s how I added a nice Carousel to the Arthemia theme running under Wordpress. I use the free version of the Arthemia theme which doesn&amp;#8217;t have a carousel out of the box. It&amp;#8217;s easy to add one though and of course these instructions apply regardless of the theme you&amp;#8217;re using so here goes. 
I&amp;#8217;ll assume you have Wordpress installed, doesn&amp;#8217;t matter which version.
Depending on the theme you use, the pages you&amp;#8217;ll need to edit are located in a folder ...</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://francisshanahan.com/www/index.php/2009/how-to-add-jcarousel-lite-to-wordpress/feed/</wfw:commentRss><feedburner:origLink>http://francisshanahan.com/www/index.php/2009/how-to-add-jcarousel-lite-to-wordpress/</feedburner:origLink></item><item><title>Vibram FiveFingers: Sprint-Male</title><link>http://feedproxy.google.com/~r/FrancisShanahancom/~3/hW-qmxUc9Nw/</link><category>Featured</category><category>Headline</category><category>Life &amp; Introspection</category><category>Weird Wide World</category><category>running</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Francis</dc:creator><pubDate>Sun, 10 May 2009 02:37:39 PDT</pubDate><guid isPermaLink="false">http://francisshanahan.com/www/?p=2232</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>There&#8217;s more to Running than meets the eye. Just as some folks enjoy Trail Running, Cross Country, Long Distance and so on, there is a school of runners who enjoy running barefoot. </p>
<p>I guess some folks really do run barefoot but if you&#8217;re not sure or don&#8217;t have the feet for it you can always grab a pair of &#8220;Vibram Five Fingers&#8221; shown here. </p>
<p>These are probably the strangest looking things I&#8217;ve seen, like gloves for your feet. I guess that makes traditional sneakers more like mittens for your feet. </p>
<p>These things seems to be fairly popular and a well developed product and I&#8217;m told they have to be broken in. Check &#8216;em out here: <a href="http://www.vibramfivefingers.com/products/products_Sprint_m.cfm">Vibram FiveFingers: Sprint-Male</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/pmdHaIRNlbOAI6yvSMybrw-119s/0/da"><img src="http://feedads.g.doubleclick.net/~a/pmdHaIRNlbOAI6yvSMybrw-119s/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/pmdHaIRNlbOAI6yvSMybrw-119s/1/da"><img src="http://feedads.g.doubleclick.net/~a/pmdHaIRNlbOAI6yvSMybrw-119s/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=hW-qmxUc9Nw:M-VKACh4bZ4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=hW-qmxUc9Nw:M-VKACh4bZ4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=hW-qmxUc9Nw:M-VKACh4bZ4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=hW-qmxUc9Nw:M-VKACh4bZ4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=hW-qmxUc9Nw:M-VKACh4bZ4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=hW-qmxUc9Nw:M-VKACh4bZ4:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FrancisShanahancom/~4/hW-qmxUc9Nw" height="1" width="1"/>]]></content:encoded><description>There&amp;#8217;s more to Running than meets the eye. Just as some folks enjoy Trail Running, Cross Country, Long Distance and so on, there is a school of runners who enjoy running barefoot. 
I guess some folks really do run barefoot but if you&amp;#8217;re not sure or don&amp;#8217;t have the feet for it you can always grab a pair of &amp;#8220;Vibram Five Fingers&amp;#8221; shown here. 
These are probably the strangest looking things I&amp;#8217;ve seen, like gloves for your feet. I guess that makes traditional sneakers more like mittens for your feet. ...</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://francisshanahan.com/www/index.php/2009/vibram-fivefingers-sprint-male/feed/</wfw:commentRss><feedburner:origLink>http://francisshanahan.com/www/index.php/2009/vibram-fivefingers-sprint-male/</feedburner:origLink></item><item><title>Twitter oAuth Is Working Again</title><link>http://feedproxy.google.com/~r/FrancisShanahancom/~3/vL5ypKjegrk/</link><category>Digital Identity</category><category>Featured</category><category>Headline</category><category>Web Development</category><category>oAuth</category><category>Relying Party</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Francis</dc:creator><pubDate>Thu, 23 Apr 2009 20:34:29 PDT</pubDate><guid isPermaLink="false">http://francisshanahan.com/www/?p=2221</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Twitter oAuth is working again, in fact it never went away. All that was suspended was the ability to grant new access tokens. Existing ones worked fine. At least from my rudimentary testing. </p>
<p>It seems like it came back sometime around 10 o&#8217;clock eastern.  I immediately noticed things weren&#8217;t working on <a href="http://tweetarun.com">TweetARun.com</a> but Twitter was at least providing an authorization token. </p>
<p>A bit of debugging revealed that Twitter no longer respects the oauth_callback parameter passed in by the relying party. It seems to be just directing the token back to the domain that requested it rather than the page in the oauth_callback. I checked the spec and sure enough oauth_callback is there: [<a href="http://oauth.net/core/1.0/#request_urls">LINK</a>] but maybe we&#8217;ll see an update in the near future. </p>
<p>Anyway, glad to get oAuth back. I far prefer it to OpenID and am looking forward to pressing on with <a href="http://tweetarun.com">TweetARun.com</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/r96cRYfgkZGQPd3gwkDE_Ht2Fj0/0/da"><img src="http://feedads.g.doubleclick.net/~a/r96cRYfgkZGQPd3gwkDE_Ht2Fj0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/r96cRYfgkZGQPd3gwkDE_Ht2Fj0/1/da"><img src="http://feedads.g.doubleclick.net/~a/r96cRYfgkZGQPd3gwkDE_Ht2Fj0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=vL5ypKjegrk:9P7MVCMhw3E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=vL5ypKjegrk:9P7MVCMhw3E:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=vL5ypKjegrk:9P7MVCMhw3E:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=vL5ypKjegrk:9P7MVCMhw3E:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=vL5ypKjegrk:9P7MVCMhw3E:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=vL5ypKjegrk:9P7MVCMhw3E:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FrancisShanahancom/~4/vL5ypKjegrk" height="1" width="1"/>]]></content:encoded><description>Twitter oAuth is working again, in fact it never went away. All that was suspended was the ability to grant new access tokens. Existing ones worked fine. At least from my rudimentary testing. 
It seems like it came back sometime around 10 o&amp;#8217;clock eastern.  I immediately noticed things weren&amp;#8217;t working on TweetARun.com but Twitter was at least providing an authorization token. 
A bit of debugging revealed that Twitter no longer respects the oauth_callback parameter passed in by the relying party. It seems to be just directing the token back ...</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://francisshanahan.com/www/index.php/2009/twitter-oauth-is-working-again/feed/</wfw:commentRss><feedburner:origLink>http://francisshanahan.com/www/index.php/2009/twitter-oauth-is-working-again/</feedburner:origLink></item><item><title>Open Auth Security Flaw Torpedoes Partners</title><link>http://feedproxy.google.com/~r/FrancisShanahancom/~3/NvbgQFAA6aE/</link><category>Digital Identity</category><category>Featured</category><category>Headline</category><category>Web Development</category><category>oAuth</category><category>Relying Party</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Francis</dc:creator><pubDate>Wed, 22 Apr 2009 20:44:35 PDT</pubDate><guid isPermaLink="false">http://francisshanahan.com/www/?p=2216</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Today I learned that Twitter and Yahoo have pulled their support for oAuth on the news of a security flaw. [<a href="http://news.cnet.com/8301-13577_3-10225103-36.html">LINK</a>] Open Auth (oAuth) is an open source authentication scheme which I&#8217;d just implemented in a new project I&#8217;m working on (<a href="http://TweetARun.com">http://TweetARun.com</a>) and wouldn&#8217;t you know it it&#8217;s dead in the water. </p>
<p>This just highlights the dependency we as Relying Parties have on Identity Providers. </p>
<p><a href="http://TweetARun.com">http://TweetARun.com</a> is a nice simple little site that purposefully avoids the need to register or store passwords by implementing Federated Single Sign On with Twitter through Open Auth. That&#8217;s a lot of words but all it means is you never ever register on <a href="http://TweetARun.com">http://TweetARun.com</a>. Rather you click a button on <a href="http://TweetARun.com">http://TweetARun.com</a> which sends you over to Twitter. Then you simply Grant permission to <a href="http://TweetARun.com">http://TweetARun.com</a> to access your profile. This action sends you back to TweetARun.com with what&#8217;s called an authorization token. <a href="http://TweetARun.com">http://TweetARun.com</a> then exchanges this token for an Access Token which it can then use to update or retrieve information from your Twitter account. It&#8217;s a nice scheme. </p>
<p>Now you might say this just highlights the need to have two forms of authentication, one for the partner site and one for when the partner site is down. Think of it, TweetARun.com is not down right now, it&#8217;s fully functional as can be seen here (<a href="http://tweetarun.com/FrancisShanahan">http://TweetARun.com/FrancisShanahan</a>) so why should users be locked out? I&#8217;m on the fence about this as I really want to avoid the proliferation of information, specifically userid and password. </p>
<p>Let&#8217;s see how long the outage lasts and then I&#8217;ll decide. </p>

<p><a href="http://feedads.g.doubleclick.net/~a/bNC0ti1348YgyrkzFfqp6Q5t0Y4/0/da"><img src="http://feedads.g.doubleclick.net/~a/bNC0ti1348YgyrkzFfqp6Q5t0Y4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/bNC0ti1348YgyrkzFfqp6Q5t0Y4/1/da"><img src="http://feedads.g.doubleclick.net/~a/bNC0ti1348YgyrkzFfqp6Q5t0Y4/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=NvbgQFAA6aE:a1ZbhWc5mNs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=NvbgQFAA6aE:a1ZbhWc5mNs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=NvbgQFAA6aE:a1ZbhWc5mNs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=NvbgQFAA6aE:a1ZbhWc5mNs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=NvbgQFAA6aE:a1ZbhWc5mNs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=NvbgQFAA6aE:a1ZbhWc5mNs:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FrancisShanahancom/~4/NvbgQFAA6aE" height="1" width="1"/>]]></content:encoded><description>Today I learned that Twitter and Yahoo have pulled their support for oAuth on the news of a security flaw. [LINK] Open Auth (oAuth) is an open source authentication scheme which I&amp;#8217;d just implemented in a new project I&amp;#8217;m working on (http://TweetARun.com) and wouldn&amp;#8217;t you know it it&amp;#8217;s dead in the water. 
This just highlights the dependency we as Relying Parties have on Identity Providers. 
http://TweetARun.com is a nice simple little site that purposefully avoids the need to register or store passwords by implementing Federated Single Sign On with Twitter ...</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://francisshanahan.com/www/index.php/2009/open-auth-security-flaw-torpedoes-partners/feed/</wfw:commentRss><feedburner:origLink>http://francisshanahan.com/www/index.php/2009/open-auth-security-flaw-torpedoes-partners/</feedburner:origLink></item><item><title>The God Bucket</title><link>http://feedproxy.google.com/~r/FrancisShanahancom/~3/4kv-S2ptVMw/</link><category>Featured</category><category>Headline</category><category>Life &amp; Introspection</category><category>Science</category><category>religion</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Francis</dc:creator><pubDate>Thu, 16 Apr 2009 21:54:16 PDT</pubDate><guid isPermaLink="false">http://francisshanahan.com/www/?p=2212</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>I read an article recently which attempted to make the argument that religion and science are deep down intrinsically linked. You can read this article here [<a href="http://www.twine.com/item/126fclz4v-3j6/metascience-the-unification-of-science-and-religion">LINK</a>]. </p>
<p>The article is filled with logical fallacies, the most basic being the redefinition of &#8220;God&#8221;.  Most faiths define god as a sentient super being, who hears our every thought. Something who must constantly be glorified. Who, when we die will weigh up the good deeds vs the bad deeds and punish us or reward us accordingly, for all eternity. The article re-defines god as &#8220;that which is not limited by whatever limits the universe&#8221;. </p>
<p>Religion is a rigid set of traditions, beliefs and dogmata which have been informally handed down from generation to generation. Most religions have splinter groups which split off when the core group gets too large. There&#8217;s almost always a single authoritative leader in the group who lays things out for others to follow. Religion rejects new information and anything incompatible with the established practices is labeled &#8220;doubt&#8221; and ends up in the &#8220;sin&#8221; column. </p>
<p>Science on the other hand presents a means by which we can examine the world around us. It claims no final answers and there are no single authoritative leaders. There are no hard and fast facts, only theories which vary by the degree to which there is evidence supporting them. In some cases the evidence is overwhelming yet it&#8217;s still a theory (e.g. The Theory of Evolution).  As new information is uncovered it&#8217;s evaluated, tested, documented and peer-reviewed. In fact science itself is already a meta-system!  Unfortunately most people are not clear on what science actually is or how the community operates.</p>
<p>If evidence supports the re-writing of a theory then that theory is re-examined, re-tested and in some cases thrown out and replaced with a better, more encompassing theory. In this way science evolves and moves forward. Religion can never move forward as it would require admitting that the definition of god or the belief system is inaccurate. </p>
<p>Taking a closer look at the neurology behind it you might ask well why do we even have religion if it makes such little sense? First you must realise you&#8217;re an animal and your actions are governed by your brain. Just as you can&#8217;t touch your elbow to your nose due to how you&#8217;ve evolved physically, in a neurological sense you cannot resist the urge to make sense of the information you&#8217;re presented with. It happens automatically. </p>
<p>The human brain has evolved to make sense of the world. It uses the constructs of beginning, middle and end as an aide. When the brain lacks information it readily makes it up, there&#8217;s plenty of examples of this in patients with partial memory loss or dementia.  They fill in the gap. On a grander scale that&#8217;s one possible theory as to why we have religion, because man lacked a systematic means to make sense of the world. Too much information, too fast, so we created the various religions we have today as a basic means to explain it all. That&#8217;s essentially what the author is doing in this case.</p>
<p>Even if you buy into the statement that god is &#8220;that which is not limited by whatever limits the universe&#8221; it doesn&#8217;t help. It&#8217;s like saying &#8220;everything I don&#8217;t understand is god&#8221;.  If I took that definition and applied it back in the 1800s you would&#8217;ve said the &#8220;power which causes birds to fly is god&#8221; or &#8220;that which causes lightning is god&#8221; etc. It&#8217;s a fruitless exercise and as time goes by, understanding increases, we&#8217;ll find less and less of a need for a bucket labeled &#8220;god&#8221;. </p>
<p>One final note which must always be called out in discussions such as this; the presence or lack thereof of a religious set of beliefs is in no way tied to the morality or ethical behaviour of the individual. Just because you require evidence and question the world around you doesn&#8217;t make you a bad person. I certainly don&#8217;t have all the answers but I&#8217;m willing to present my thoughts in an open manner in an effort to further the discussion. </p>

<p><a href="http://feedads.g.doubleclick.net/~a/N0yLTZoDYlI_Joy-Xinw8cNvsLc/0/da"><img src="http://feedads.g.doubleclick.net/~a/N0yLTZoDYlI_Joy-Xinw8cNvsLc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/N0yLTZoDYlI_Joy-Xinw8cNvsLc/1/da"><img src="http://feedads.g.doubleclick.net/~a/N0yLTZoDYlI_Joy-Xinw8cNvsLc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=4kv-S2ptVMw:z9e2mtZp8v4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=4kv-S2ptVMw:z9e2mtZp8v4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=4kv-S2ptVMw:z9e2mtZp8v4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=4kv-S2ptVMw:z9e2mtZp8v4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=4kv-S2ptVMw:z9e2mtZp8v4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=4kv-S2ptVMw:z9e2mtZp8v4:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FrancisShanahancom/~4/4kv-S2ptVMw" height="1" width="1"/>]]></content:encoded><description>I read an article recently which attempted to make the argument that religion and science are deep down intrinsically linked. You can read this article here [LINK]. 
The article is filled with logical fallacies, the most basic being the redefinition of &amp;#8220;God&amp;#8221;.  Most faiths define god as a sentient super being, who hears our every thought. Something who must constantly be glorified. Who, when we die will weigh up the good deeds vs the bad deeds and punish us or reward us accordingly, for all eternity. The article re-defines ...</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://francisshanahan.com/www/index.php/2009/the-god-bucket/feed/</wfw:commentRss><feedburner:origLink>http://francisshanahan.com/www/index.php/2009/the-god-bucket/</feedburner:origLink></item><item><title>Unhandled Errors</title><link>http://feedproxy.google.com/~r/FrancisShanahancom/~3/KUCdANgRZwQ/</link><category>Featured</category><category>General Computing</category><category>Headline</category><category>Web Development</category><category>bad practice</category><category>lazy</category><category>useless tech</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Francis</dc:creator><pubDate>Tue, 14 Apr 2009 21:01:56 PDT</pubDate><guid isPermaLink="false">http://francisshanahan.com/www/?p=2182</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Checkout this screen grab of an error message thrown up by my garbage collector&#8217;s online bill pay system. This is appalling. If you develop software for a living you&#8217;ll know what&#8217;s going on here. Essentially the developer didn&#8217;t unit test their code, and didn&#8217;t handle the exception. Actually they did handle the exception but in completely the wrong way, throwing a system exception straight back to the end user. </p>
<p>Not only has this developer ruined the user experience but he&#8217;s exposed vital information to a potential villain. E.g. from this message I can tell the site is running SQL Server on the back end. I can tell there&#8217;s a table named tbl_Payment_Master which is owned by the built in dbo account. I can tell there&#8217;s a primary key on that table and I&#8217;m even told the data database name. So I&#8217;m all set for a SQL Injection attack. Remember this is a PAYMENT application most likely with credit card information stored therein. </p>
<p>This is just lazy, like the guy doing the rubik&#8217;s cube above.</p>
<p><img src="http://francisshanahan.com/www/wp-content/uploads/2009/03/error.jpg" /></p>

<p><a href="http://feedads.g.doubleclick.net/~a/jrCoaeSLw5rxx6Lw9fvPlLYcYfM/0/da"><img src="http://feedads.g.doubleclick.net/~a/jrCoaeSLw5rxx6Lw9fvPlLYcYfM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/jrCoaeSLw5rxx6Lw9fvPlLYcYfM/1/da"><img src="http://feedads.g.doubleclick.net/~a/jrCoaeSLw5rxx6Lw9fvPlLYcYfM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=KUCdANgRZwQ:A-5LC-tUEKU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=KUCdANgRZwQ:A-5LC-tUEKU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=KUCdANgRZwQ:A-5LC-tUEKU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=KUCdANgRZwQ:A-5LC-tUEKU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FrancisShanahancom?a=KUCdANgRZwQ:A-5LC-tUEKU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FrancisShanahancom?i=KUCdANgRZwQ:A-5LC-tUEKU:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FrancisShanahancom/~4/KUCdANgRZwQ" height="1" width="1"/>]]></content:encoded><description>Checkout this screen grab of an error message thrown up by my garbage collector&amp;#8217;s online bill pay system. This is appalling. If you develop software for a living you&amp;#8217;ll know what&amp;#8217;s going on here. Essentially the developer didn&amp;#8217;t unit test their code, and didn&amp;#8217;t handle the exception. Actually they did handle the exception but in completely the wrong way, throwing a system exception straight back to the end user. 
Not only has this developer ruined the user experience but he&amp;#8217;s exposed vital information to a potential villain. E.g. from this ...</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://francisshanahan.com/www/index.php/2009/unhandled-errors/feed/</wfw:commentRss><feedburner:origLink>http://francisshanahan.com/www/index.php/2009/unhandled-errors/</feedburner:origLink></item></channel></rss>
