<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-31980614</id><updated>2011-10-29T05:12:50.771-05:00</updated><category term='ruby'/><category term='linux'/><category term='Pulseaudio'/><category term='glitch'/><category term='flash'/><category term='synergy'/><category term='proxy'/><category term='javascript'/><category term='polipo'/><category term='movies'/><category term='programming'/><category term='christmas'/><category term='youtube'/><category term='fullscreen'/><category term='pause'/><category term='root'/><category term='ie'/><category term='misc'/><category term='firefox'/><category term='stutter'/><category term='flashblock'/><category term='adblock'/><category term='white clock'/><category term='download'/><category term='android'/><category term='urlbar'/><category term='gedit'/><category term='python'/><category term='smoked glass'/><category term='market'/><category term='usb speakers'/><category term='droidmod'/><category term='thunderbird'/><category term='multimedia keys'/><category term='sholesmod'/><category term='patch'/><title type='text'>Right Foot In</title><subtitle type='html'>the diakon radish of blogs...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-31980614.post-9088696398380347899</id><published>2011-09-06T03:24:00.010-05:00</published><updated>2011-10-01T01:19:09.841-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='urlbar'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><title type='text'>FF6/FF7: Re-enable javascript: from urlbar</title><summary type='text'>Jump a bit for instructions on how to re-enable execution of javascript: urls in Firefox 6.0.1 and 7.0.






Background
So, much to my surprise, javascript: urls stopped working after I upgraded to FF6. I assumed it was a bug, and would be fixed soon enough. After all, "ReferenceError: alert is not defined" couldn't be intentional, right? I mean, javascript:alert(foo.prop); has worked since </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/9088696398380347899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=9088696398380347899' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/9088696398380347899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/9088696398380347899'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2011/09/ff6-re-enable-javascript-from-urlbar.html' title='FF6/FF7: Re-enable javascript: from urlbar'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-6982870093255645553</id><published>2011-06-22T22:02:00.007-05:00</published><updated>2011-06-22T22:28:52.495-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='fullscreen'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='synergy'/><title type='text'>[FIXED] Synergy Flash Fullscreen</title><summary type='text'>On my media computer I use synergy to remote control it from my desktop. There was one big drawback -- every time I switched to the primary screen, the flash video would exit fullscreen on the secondary screen. So I either had to watch the video non-fullscreen or go to the physical mouse of the secondary box and hit the fullscreen button and then not switch to the secondary until the video was </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/6982870093255645553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=6982870093255645553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/6982870093255645553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/6982870093255645553'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2011/06/fixed-synergy-flash-fullscreen.html' title='[FIXED] Synergy Flash Fullscreen'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-2910860588739699214</id><published>2011-04-06T16:18:00.006-05:00</published><updated>2011-04-06T16:24:30.611-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='thunderbird'/><title type='text'>Thunderbird won't open links</title><summary type='text'>So after a recent system update (Arch Linux, cause it's the best, obviously. Duh, Winning), Thunderbird refused to open links in email bodies.I would be like, "Please Mr. email client, open my links" and it would say "No, eff you, rawr-rawr-rawr" and then poop this on the error console:Error: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [</summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/2910860588739699214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=2910860588739699214' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/2910860588739699214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/2910860588739699214'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2011/04/thunderbird-wont-open-links.html' title='Thunderbird won&apos;t open links'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-3908492673618794178</id><published>2010-07-21T01:20:00.004-05:00</published><updated>2010-07-21T01:52:07.976-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='usb speakers'/><category scheme='http://www.blogger.com/atom/ns#' term='Pulseaudio'/><category scheme='http://www.blogger.com/atom/ns#' term='multimedia keys'/><title type='text'>Getting USB speakers working in Gnome</title><summary type='text'>So I just got a set of Insignia USB speakers (NS-2908). Wanted to use them as my default speakers, but still have the option of using the internal sound card. Got it working and thought someone else might find it useful. This assumes you're using a new-ish version of gnome.You'll want to set the Internal Audio profile to "Off" in the pulseaudio volume control application, under the Configuration </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/3908492673618794178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=3908492673618794178' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/3908492673618794178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/3908492673618794178'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2010/07/getting-usb-speakers-working-in-gnome.html' title='Getting USB speakers working in Gnome'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-4539318119521243847</id><published>2010-02-23T20:13:00.004-06:00</published><updated>2010-02-23T21:54:48.595-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sholesmod'/><category scheme='http://www.blogger.com/atom/ns#' term='white clock'/><category scheme='http://www.blogger.com/atom/ns#' term='droidmod'/><category scheme='http://www.blogger.com/atom/ns#' term='smoked glass'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Dark Glass theme with DroidMod v1.0 - White Clock</title><summary type='text'>The DroidMod Team (formerly of sholes.info) relased a new ROM (--one of the best availible, I might add). The only "problem" with the ROM is that it does not include the ability to select the Smoked Glass theme when applying it. This is not so much a problem as a design decision.The Metamorph application, available on the Market, lets you apply all manner of themes to your device, uncluding the "</summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/4539318119521243847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=4539318119521243847' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/4539318119521243847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/4539318119521243847'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2010/02/dark-glass-theme-with-droidmod-v10.html' title='Dark Glass theme with DroidMod v1.0 - White Clock'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-4507822173189011659</id><published>2010-02-15T00:30:00.003-06:00</published><updated>2010-02-15T01:29:45.555-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='market'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='root'/><title type='text'>Clear Android Market Search History</title><summary type='text'>So, I wanted to clear the search history that displays in the Market app when you open the search bar. It seems that from a quick googling many people would like to do the same thing. I found a way that seems to work, but it requires root access.I figured the Market app probably stores the search history in some type of standard database, rather than in a compressed or encrypted container, so I </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/4507822173189011659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=4507822173189011659' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/4507822173189011659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/4507822173189011659'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2010/02/clear-android-market-search-history.html' title='Clear Android Market Search History'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-6923174047245972436</id><published>2009-11-19T18:47:00.015-06:00</published><updated>2009-11-24T23:30:20.808-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='polipo'/><category scheme='http://www.blogger.com/atom/ns#' term='adblock'/><category scheme='http://www.blogger.com/atom/ns#' term='proxy'/><title type='text'>Ad-blocking with Polipo</title><summary type='text'>Polipo is a fast local proxy that does on-disk caching (by default, at least). Privoxy is another local proxy, with a focus on privacy and ad-blocking. Due to the nature and purpose of Privoxy, it has to buffer portions of the page (to check for content it should block) before serving it to the browser. This makes it a bit slower than Polipo. You could always use Polipo in front of Privoxy (see </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/6923174047245972436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=6923174047245972436' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/6923174047245972436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/6923174047245972436'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2009/11/ad-blocking-with-polipo.html' title='Ad-blocking with Polipo'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-6510944835419886864</id><published>2009-05-20T21:21:00.008-05:00</published><updated>2009-05-20T21:49:54.655-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='glitch'/><category scheme='http://www.blogger.com/atom/ns#' term='Pulseaudio'/><category scheme='http://www.blogger.com/atom/ns#' term='stutter'/><category scheme='http://www.blogger.com/atom/ns#' term='pause'/><title type='text'>Fixing Pulseaudio stutters / pauses / glitches</title><summary type='text'>It seems that for many AC'97 sound chips, the new scheduler / timer in Pulseaudio &gt;=0.9.11 causes hiccups in sound playback. These are exacerbated when the daemon is not running with higher priority and realtime permissions. The simple fix is to use the older scheduler. To do this, edit /etc/pulse/default.pa and add the tsched=0 option to module-hal-detect (or module-alsa-source if you manually </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/6510944835419886864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=6510944835419886864' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/6510944835419886864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/6510944835419886864'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2009/05/fixing-pulseaudio-stutters-pauses.html' title='Fixing Pulseaudio stutters / pauses / glitches'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-7860214275263473490</id><published>2009-04-14T00:51:00.010-05:00</published><updated>2009-04-14T17:12:30.432-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='flashblock'/><title type='text'>FlashBlock WannaBe</title><summary type='text'>I've been using Midori as my primary browser for a number of months (I have a daily cron job that updates and builds WebKit and Midori). It's a fast little browser using WebKit for it's rendering engine and SFX for it's JS engine, so it's standards compliant and really, really fast. And it implements some handy, commonly used features (e.g., error console, user scripts / styles, element inspector</summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/7860214275263473490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=7860214275263473490' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/7860214275263473490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/7860214275263473490'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2009/04/flashblock-wannabe.html' title='FlashBlock WannaBe'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-150744152423968629</id><published>2009-01-01T00:22:00.019-06:00</published><updated>2009-04-14T16:53:06.742-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='download'/><category scheme='http://www.blogger.com/atom/ns#' term='ie'/><category scheme='http://www.blogger.com/atom/ns#' term='youtube'/><title type='text'>Automatic YouTube download with IE7</title><summary type='text'>So my mom likes to collect silly little clips from YouTube, and she uses IE7 on Windows XP (I've tried to get her to convert to Linux, but she's not very computer saavy and has learned computing with Windows—even Ubuntu is a bit too much for her to take in). She normally just copies the YouTube url, pastes it to KeepVid, followed by a right-click + save-as, pasting in the video title as the file </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/150744152423968629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=150744152423968629' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/150744152423968629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/150744152423968629'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2009/01/automatic-youtube-download-with-ie7.html' title='Automatic YouTube download with IE7'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-5487673197500443924</id><published>2007-02-23T13:55:00.001-06:00</published><updated>2009-04-14T16:53:44.114-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>String interpolation in python</title><summary type='text'>In python, the standard way to do string interpolation is to use the % operator. There are some bells and wistles to it, like named substitutions, but overall it behaves much the same as the C printf function on which it was modeled. On the other hand, in ruby you can use inline interpolation with #{} inside a string, which combines perl's ${} and $() into one. I personally prefer the latter </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/5487673197500443924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=5487673197500443924' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/5487673197500443924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/5487673197500443924'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2007/02/string-interpolation-in-python.html' title='String interpolation in python'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-6055215468676788376</id><published>2007-01-04T15:41:00.000-06:00</published><updated>2007-01-04T17:06:47.619-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><category scheme='http://www.blogger.com/atom/ns#' term='movies'/><category scheme='http://www.blogger.com/atom/ns#' term='christmas'/><title type='text'>New Happy Day!</title><summary type='text'>Err, Happy Merrynox! Doh. That's not right either. Holiyears Newmas Kwanza-Chana-Peruvian Llama Shedding Merry Days! Oh, I give up. I can't keep all these new joined-together, uber, all-encompassing holidays strait. I celebrate Christmas and the western New Year. So Merry Christmas and Happy New Year! And if you don't celebrate them, well, I hope you enjoyed the days off of work!So I'ven been </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/6055215468676788376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=6055215468676788376' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/6055215468676788376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/6055215468676788376'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2007/01/new-happy-day.html' title='New Happy Day!'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-871233775892708036</id><published>2006-09-30T01:44:00.006-05:00</published><updated>2009-04-14T16:54:07.987-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='gedit'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Scripting Gedit</title><summary type='text'>Gedit allows you to write python scripts which interface with its backend (and frontend via pygtk). This is very cool, for reasons obvious to VIM and Emacs users. You can write your own plugins to manipulate the document you are editing in many useful ways.Well I was using various external tools to run my various scripts for test purposes (the External Tools plugin is itself written in python!). </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/871233775892708036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=871233775892708036' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/871233775892708036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/871233775892708036'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/09/scripting-gedit.html' title='Scripting Gedit'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-3608182629482594507</id><published>2006-09-23T12:02:00.000-05:00</published><updated>2006-09-23T13:21:27.980-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Conventional wisdom</title><summary type='text'>The conventions of a given community of programmers are usually time-tested and often they make life much easier on the programmer. For example, the convention of writing self-documenting code rather than using one or two letter variable names is a very helpful guideline.But as with many other issues, what is generally beneficial and a good practice for most people in most situations gets </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/3608182629482594507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=3608182629482594507' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/3608182629482594507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/3608182629482594507'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/09/conventional-wisdom.html' title='Conventional wisdom'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-3057257808888882917</id><published>2006-09-07T20:50:00.001-05:00</published><updated>2009-04-14T16:54:51.454-05:00</updated><title type='text'>Spicey curry in your ruby</title><summary type='text'>I've been learning OCaml for the past few days, and for being a member of the evil functional programming paradigm (invented by people who actually liked doing calculus!), it's not too bad. It has some cool features like pattern matching, subtyping (variants) and some other fun stuff. But over all, it's just too much of a pain to use (speaking personally). If I ever had to do something that </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/3057257808888882917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=3057257808888882917' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/3057257808888882917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/3057257808888882917'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/09/spicey-curry-in-your-ruby.html' title='Spicey curry in your ruby'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-7408994034808958790</id><published>2006-09-06T08:27:00.001-05:00</published><updated>2009-04-14T17:16:39.265-05:00</updated><title type='text'>Code formatting</title><summary type='text'>I try to be consistant about code formatting. I pick a convention and stick to it. But I like the convention to make sense, as well as being easy to read (easy for me, I could care less if you can read it, heh).If you've seen any of my code in my posts, you probably noticed that I use parentheses for everything -- method invocation, conditionals / other control structures, built-in methods like </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/7408994034808958790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=7408994034808958790' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/7408994034808958790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/7408994034808958790'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/09/code-formatting.html' title='Code formatting'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-572061298488501912</id><published>2006-09-05T21:22:00.001-05:00</published><updated>2009-04-14T17:17:09.647-05:00</updated><title type='text'>ruby reopen</title><summary type='text'>In ruby we have a nifty reopen method we can use on references to file-handles that are already opened. This is helpful when you need to open a file as read-only, then you want to write to the same file, or you just want to use the same reference to point to a new file-handle. You simply reopen and go on about your merry way. Usually this is used within a File.open block. But with python you have</summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/572061298488501912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=572061298488501912' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/572061298488501912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/572061298488501912'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/09/ruby-reopen.html' title='ruby reopen'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-8471626596347407634</id><published>2006-09-04T20:24:00.003-05:00</published><updated>2009-04-14T17:18:50.828-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>More on python flatten</title><summary type='text'>The standard (but for some unknown reason, not built-in) python flatten method looks something like this:def flatten(l):  out = []  for item in l:    if isinstance(item, (list, tuple)):      out.extend(flatten(item))    else:      out.append(item)  return outThis obviously runs into recursion errors pretty quickly for highly nested lists; what suprised me is that it can't grok even relatively </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/8471626596347407634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=8471626596347407634' title='32 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/8471626596347407634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/8471626596347407634'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/09/more-on-python-flatten.html' title='More on python flatten'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>32</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-51001766187257490</id><published>2006-09-04T03:39:00.000-05:00</published><updated>2006-09-04T03:52:17.012-05:00</updated><title type='text'>No builtin flatten in python...</title><summary type='text'>One view of why there is no built-in flatten in python is that "there are several open semantic questions which are not intuitively answered". But that seems like a cop-out. So what if there are some academic questions about what exactly a flatten method should do? The basic fact of the matter is that people want a method to be able to flatten a multi-dimensional list into a single dimension. </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/51001766187257490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=51001766187257490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/51001766187257490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/51001766187257490'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/09/no-builtin-flatyen-in-python.html' title='No builtin flatten in python...'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-6367797862896019462</id><published>2006-08-31T04:27:00.000-05:00</published><updated>2006-08-31T04:54:06.223-05:00</updated><title type='text'>Hyper-fatugly!</title><summary type='text'>Good Lord, how can anyone want to use perl6/pugs, let alone develop it! The syntax is so awful they had to start adding superlatives to describe its level of convolusion! I give you the hyper-fatarrow (yes, that's really the name, at least colloquially); actually...you may want to sit down first, it could give you a brain hemorrhage just looking at it. Here it comes: »=&gt;«. What does it do? Well..</summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/6367797862896019462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=6367797862896019462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/6367797862896019462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/6367797862896019462'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/08/hyper-fatugly.html' title='Hyper-fatugly!'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-4754716982894573637</id><published>2006-08-29T18:44:00.001-05:00</published><updated>2009-04-14T17:24:41.299-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Of Rocks and Reptiles...</title><summary type='text'>A blog article was posted by jesusphreak the other day about why he chose python over ruby. Several people have commented on this in the blogosphere and mailing-lists (e.g., here, here and here), and in his comments section. So I might as well add my two bits.I use both ruby and python, though I've only been using python for about 6 months (been using ruby for like...hmmm...3 years or so). </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/4754716982894573637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=4754716982894573637' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/4754716982894573637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/4754716982894573637'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/08/of-rocks-and-reptiles.html' title='Of Rocks and Reptiles...'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-2636415887096865460</id><published>2006-08-26T11:54:00.001-05:00</published><updated>2009-04-14T17:23:52.417-05:00</updated><title type='text'>Favorite editor</title><summary type='text'>I'm a pariah when it comes to my favorite (grafical) text-editor. I've tried gvim, xemacs, scite, and I have gripes with all of them. I like Gedit. That's right. Gedit. Now that you're done gawking at how non-geeky, non-hacker-ish, lame I am, let me explain why.GvimModed editing...need I say more? Yes? OK, what about...moded editing!XemacsFunky keysBloat...I personally don't want an editor that </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/2636415887096865460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=2636415887096865460' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/2636415887096865460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/2636415887096865460'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/08/favorite-editor.html' title='Favorite editor'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-115645182200844912</id><published>2006-08-24T11:48:00.001-05:00</published><updated>2009-04-14T17:26:14.466-05:00</updated><title type='text'>Doing it the Ruby Way™</title><summary type='text'>I posted a comment on Redhanded that got me thinking about the Ruby Way™ of doing string formatting. Since ruby is a true OO language, where everything is a first-order object, and all methods are object attributes, it doesn't seem to follow suite to leave it at Kernel#format which takes as its first argument the string object on which to operate. It seems like it would be much more rubyish to </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/115645182200844912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=115645182200844912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/115645182200844912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/115645182200844912'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/08/doing-it-ruby-way.html' title='Doing it the Ruby Way™'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-115626413326178052</id><published>2006-08-22T09:39:00.000-05:00</published><updated>2006-08-22T16:14:49.546-05:00</updated><title type='text'>Write it in C or face 10,000 slow deaths!</title><summary type='text'>Ruby is slow. Matz owns up to the fact. Benchmarks show that it's true. Ruby is not too slow to be useful or anything, just slower (at some things) that many other languages, including perl and python. It is getting faster (1.9 is faster than 1.8.5 in many areas), but even so, when you need speed you often need to drop to a lower-level language like C to get it. That's true for perl and python </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/115626413326178052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=115626413326178052' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/115626413326178052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/115626413326178052'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/08/write-it-in-c-or-face-10000-slow.html' title='Write it in C or face 10,000 slow deaths!'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-115594970932629982</id><published>2006-08-18T20:01:00.000-05:00</published><updated>2006-08-18T20:12:05.516-05:00</updated><title type='text'>Kazehakase...ruby in your browser?!!</title><summary type='text'>I just came across a project called Kazehakase. It is a web-browser based on Gecko (the Mozilla/Firefox HTML rendering engine). Big deal, you say. There are already Galeon and Epiphany and so forth. But I ask you, do any of those browsers have a ruby prompt sandbox (with autocompletion!) built in? No? Didn't think so. Well, kazehakase does!The docs are mainly in Japanese and the wiki and mailing </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/115594970932629982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=115594970932629982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/115594970932629982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/115594970932629982'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/08/kazehakaseruby-in-your-browser.html' title='Kazehakase...ruby in your browser?!!'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-115510506897011605</id><published>2006-08-09T01:15:00.000-05:00</published><updated>2006-08-09T01:31:08.983-05:00</updated><title type='text'>ELER...Ruby-style</title><summary type='text'>A person using the handle RailsBlob posted a comment linking to their blog on Redhanded the other day and I found a particular line in this post to be rather humorous (the effect was intended). Now _why has blogged about RailsBlob, and I decided to throw together a little comic incorporating the line I liked (I also used one of the "Foxes" from Why's (Poignant) Guide To Ruby in one frame, </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/115510506897011605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=115510506897011605' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/115510506897011605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/115510506897011605'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/08/elerruby-style.html' title='ELER...Ruby-style'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-115476305561661421</id><published>2006-08-05T02:30:00.000-05:00</published><updated>2006-08-07T01:21:03.256-05:00</updated><title type='text'>A Matter of Semantics</title><summary type='text'>It's all about semantics. Linguists (of both natural languages and engineered languages) have long realized that semantics are foundational to all communication. Computer Scientists have not been blind to this important fact. Recent developments such as the Semantic Web and Domain Specific Languages (DSLs) have only served to emphasize this fact. Actually these developments aren't recent, but </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/115476305561661421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=115476305561661421' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/115476305561661421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/115476305561661421'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/08/matter-of-semantics.html' title='A Matter of Semantics'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-115465946034081605</id><published>2006-08-03T21:38:00.002-05:00</published><updated>2009-04-14T17:27:55.577-05:00</updated><title type='text'>Non-Recursive Factorial</title><summary type='text'>A common way to find a factorial in Ruby is to use a recursive function similar to this:def fac(n)  if (n &gt; 1)    n * fac(n - 1)  else    1  endendThis is just the ruby implementation of the recursive Y-combinator for finding a factorial. Nothing wrong with that--if you live in a theoretical world of limitless stack space! But what if you want to calculate (why would you, I wonder?) the factorial</summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/115465946034081605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=115465946034081605' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/115465946034081605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/115465946034081605'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/08/non-recursive-factorial.html' title='Non-Recursive Factorial'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-115456900592639580</id><published>2006-08-02T19:58:00.001-05:00</published><updated>2009-04-14T17:22:41.273-05:00</updated><title type='text'>To "do" or to "squiggle"</title><summary type='text'>Well, I've been waivering lately between using do...end and {...} for blocks. I like the way do...end looks, and the end flows nicely with all the other ends. But on the other hand, a block is a bundle of code that is contextually and syntactically distinct from the code around it on the interpreted level. So should it also be distinct on the implementation level also? Obviously do...end is a </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/115456900592639580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=115456900592639580' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/115456900592639580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/115456900592639580'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/08/to-do-or-to-squiggle.html' title='To &quot;do&quot; or to &quot;squiggle&quot;'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-115451471105729906</id><published>2006-08-02T05:01:00.001-05:00</published><updated>2009-04-14T17:21:37.969-05:00</updated><title type='text'>Simple batch processing</title><summary type='text'>Ok, so I wanted a way to backup my Anime in mpeg4. Simple, just use transcode or mencoder. But what about chapter splitting and such? Well, I could always use my trusty bash history -- up-arrow, edit, return. But that is rather tedious, and oddly enough don't work when I'm sleeping. It is especially irksome if your encoding something like 12 Kingdoms, with 5 episodes per disk. So I made a simple </summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/115451471105729906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=115451471105729906' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/115451471105729906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/115451471105729906'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/08/simple-batch-processing.html' title='Simple batch processing'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31980614.post-115450637179775238</id><published>2006-08-02T02:39:00.001-05:00</published><updated>2009-04-14T17:19:45.881-05:00</updated><title type='text'>Implementing a state pattern in Ruby</title><summary type='text'>A few weeks ago, Maurice Codik blogged about a better state pattern than the one on RubyGarden. I posted a comment suggesting an alternative implementation using a hash of state blocks. Here is an updated version with a little bit of fleshing out:module Stateful  class StateInitError &lt; Exception; end  class StateSetError &lt; Exception; end  def with_key(key, ex, &amp;b)    if (@s_states.has_key?(key))</summary><link rel='replies' type='application/atom+xml' href='http://rightfootin.blogspot.com/feeds/115450637179775238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31980614&amp;postID=115450637179775238' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/115450637179775238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31980614/posts/default/115450637179775238'/><link rel='alternate' type='text/html' href='http://rightfootin.blogspot.com/2006/08/implementing-state-pattern-in-ruby.html' title='Implementing a state pattern in Ruby'/><author><name>MonkeeSage</name><uri>http://www.blogger.com/profile/01905033551465108847</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_TDGc6xf-yGk/SwXnBI6eR_I/AAAAAAAAACA/vCJ3V3hairQ/S220/monkeys.jpg'/></author><thr:total>0</thr:total></entry></feed>
