Global Reset

Engineer, Objectivist, and Father

Penny Arcade Goes Rails

Posted by shughes Tue, 15 Nov 2005 15:08:00 GMT

I read over on Penny Arcade that they’ve converted their site to Rails. This is pretty big news for Rails advocates. Penny Arcade has over 4 million readers… And after browsing their new site, I find it pretty damn fast. There is a large speed improvement over their php implementation. So they definitely took advantage of Rail’s caching feature. Of course, the biggest difference will be transparent to their readers, but it should be a hell of a lot easier to maintain and add new features.

Posted in | no comments |

RubyConf

Posted by shughes Sat, 15 Oct 2005 00:13:00 GMT

RubyConf 2005 is underway and I’m hoping that the slides from the presentations will be available soon. I found that Kevin Clark is live-blogging RubyConf and is doing a pretty good job of it (Thanks, Kevin!).

His notes from the progress report on YARV: Yet Another Ruby VM are an especially interesting read. Maybe YARV will finally help answer the question, “Does RubyOnRails Scale?”

Thanks to Ezra Zygmuntowicz, you can start listening in on some presentations as well.

Update: Matz’s slides from his keynote speech on the future of Ruby are now available online. He talks about a lot of cool ideas that are going to keep Ruby 2.0 very fun. There’s even a video(198mb).

Posted in , | no comments |

GMail being blocked by SpamCop

Posted by shughes Tue, 04 Oct 2005 19:53:00 GMT

As much as I enjoy my gmail account, it’s starting to be rendered useless by Google’s refusal to include sender’s IP address in the message headers. I discovered this after an old student who I TA’ed at Georgia Tech tried to contact me using my primary pobox.com email address ([my first initial][my last name]@pobox.com). Luckily, she tried again using my gmail account and was successful in reaching me. I searched my pobox.com discard list and found her email, which was from her own gmail account. The headers added by pobox.com explain the reason:

X-Pobox-Antispam: dnsbl/bl.spamcop.net returned deny: 
  for 66.249.82.198(xproxy.gmail.com)
X-Sift-Reason: dnsbl/bl.spamcop.net returned deny: 
  for 66.249.82.198(xproxy.gmail.com) 

Apparently, SpamCop’s list has changed in the past week (since this email was sent), because it appears SpamCop does not block xproxy.gmail.com anymore but does block qproxy.gmail.com. I don’t have an estimate on how many proxies gmail has and I didn’t check any others.

I found more information on the foo-projects blog, where they’ve heard back from SpamCop and SORBS about the blocking. Apparently, spammers are easily masking themselves behind gmails relays, so the spam police have no choice. The best solution is to complain to Google.

I use pobox.com’s standard settings for discarding junked emails, which (until now?) worked really well for me. It ends up blocking several hundred spam emails a day (this email address is 10 years old, from days when I posted it more promiscuously), and allowing about 10-15 false negatives through. I never have to check the discard list, because I have come to trust it to make zero false positives. That said, if you’ve emailed me recently from a gmail account and are unsure if I got it, I’d appreciate it if you re-sent it to me. I have temporarily set my spam settings to flag the message, instead of discarding it.

Hopefully Google and the Spam Po-Po can come to an agreement on this soon. But you should know that SpamCop is a highly regarded blocking list, so until this is resolved it is likely that I’m not the only one who isn’t receiving your gmails.

Posted in | 4 comments |

iPod Vending Machine

Posted by shughes Fri, 23 Sep 2005 17:09:00 GMT

When flying back to Texas from Pennsylvania last weekend, Nicole and I had a layover in Atlanta. While waiting on our plane, we noticed this vending machine tucked away beside the regular shops. It can dispense an iPod Mini, iPod Shuffle, or any of the various iPod accessories. Also, if you made it to the airport with your PowerBook, but forget your wireless card, you can purchase an AirPort card from the machine.

Typically, when one is faced with such a huge convenience (especially in an airport), one would expect a significant markup. I was surprised to find that each item was at the regular retail price, same as if you ordered it from Apple.com or bought it at an Apple retail store.

But here’s a thought… If I go ahead and drop $200 on an iPod mini at the airport, what am I going to do with it? It doesn’t come preloaded with songs. I mean, other luxuries at the airport like the portable DVD-player rental places at least give you the player and some movies. I suppose the only scenario in which this is terribly useful is if your grandparents are flying out for your graduation and they waited until they got to the airport to find a present for you… But will your grandparents want to buy something from a kiosk?

Posted in , | no comments |

Freeloader - a RubyOnRails Movie Librarian

Posted by shughes Sun, 11 Sep 2005 18:57:00 GMT

I’ve been working on my own RubyOnRails app for the past week: Freeloader. The idea is sort of like Delicious Library, except it’s web-based and it’s a form of folksonomy. Like Delicious Library, Freeloader will allow you to create a library of all the movies you own and it will track who you’ve lent those movies too and whether or not those movies are overdue. Unlike Delicious Library, friends who you’ve designated as contacts can browse your collection online and request to borrow any movie(s) they see of interest. Registered users can help ‘tag’ movies and rate/review movies or other users. i.e. “I recommend this movie if you like such and such” or “Scott sucks, he never returns my stuff on time”.

My immediate goal is to create a very narrow folksonomy, as in a private install with a private group of friends. The project is open and (much like Typo) your free to install your own version of it to help coordinate your circle of movie-borrowing friends.

I do have a test site setup that anyone can try out. I will nuke the database periodically, so don’t spend much time inputting your library. Right now, the only features that work are registering a new user, searching/adding new movies, adding any existing movie to your own collection, viewing your collection, viewing the collection of any user, and adding/removing ‘friends’. When I’m ready to start using the project regularly, the test site will become ‘invite-only’, though anyone is still free to browse the collections.

Freeloader Demo

If you want to try out the code for yourself, you can browse the source and see other project details at the Trac wiki and svn repository.

Freeloader - Trac

Freeloader - anonymous SVN

If you’d like to contribute anything to the project or need help installing what’s currently there, let me know.

Update - if the test site doesn’t seem to work (i.e. you get an Application Error), just hit refresh a couple of times. For some reason, my fcgi processes are having trouble staying alive on Dreamhost tonight.

Posted in , , | no comments |

Win32 Peripheral Breakout Box

Posted by shughes Wed, 31 Aug 2005 23:21:00 GMT

So, what do you do when you need to access peripherals on Windows XP x64, but the vendors have yet to release a 64-bit compatible version of their driver?

Switch to Linux? Same problem, if vendor doesn’t open source their driver.

Complain? Tried that, vendor said they don’t support 64-bit and they considered the whole problem my own fault.

Improvise? The pic attached shows my Win32 (Windows XP) Peripheral Breakout Box. All you need is an old laptop and a copy of Windows XP (or other vendor supported OS). Throw in Remote Desktop or just an rsync folder and ssh server, and you’ve got everything you need.

The better solution, which I will hopefully be able to implement soon, is to throw Windows XP x64 in the “Great Idea, Bad Implementation, Abysmal Follow-through” bin.

Posted in , | no comments |

Typo @rev 586

Posted by shughes Tue, 30 Aug 2005 03:29:00 GMT

I updated Typo to the latest svn (rev 586) yesterday and got a sample of the new Filters API. Looks very slick. For example, here’s a filter which formats Ruby code with syntax highlighting:

class Foo
  def bar
    "abcde"
  end
end

The syntax for declaring that looks like this:

<typo:code lang="ruby">
class Foo
  def bar

&quot;abcde&quot;

end end <typo:code>

<typo:flickr img=”38104907” style=”border: 1px solid #8ab3d1; padding: 5px; margin: 5px; float: right;” size=”small”/>

And it’s very easy to drop in a reference to a flickr image:

<typo:flickr
   style="border: 1px 

        <span class="k">solid #8ab3d1;</span>
   <span class="k">padding: 5px;</span>
   <span class="k">margin: 5px;</span>
   <span class="k">float: right;</span><span class="dl">&quot;</span></span>

img="31367273" size="small" />

Is translated into the picture at the right. I’m quite impressed with that one.

Lastly, there is a filter for Sparklines, which allows you generate a chart (pie, area, discreet, etc) from dynamic data. e.g.:

<typo:sparkline
   type="pie"
   data="33.3 66.6" />

That bit of code renders the following graphic:

<typo:sparkline type=”pie” data=”33.3 66.6” />

Posted in | no comments |

GVisit

Posted by shughes Mon, 29 Aug 2005 03:10:00 GMT

Found a neat website recently, called GVisit, that shows a Google map overlaid with pins to indicate the location of the last 20 visitors of your site. You can track more visitors if you donate. You can see my last 20 visitors, which shows an interesting international trend, thanks in part to Justin. He’s working on a project in South Africa now and he’s registering on my GVisit map as a visitor from Pretoria, Gauteng. With him and some anonymous visitor from Limassol (looks like it’s a city in Cyprus, an island south of Turkey), my blog looks well visited by the international community.

Update: Since posting this, I can add Tel Aviv, Tokyo, Zurich, and several cities in England to the list. It’s strange to think about some Tokyo schoolboy who is going to be telling his friends tomorrow about this lame American blog he found the previous night. =)

Posted in | 2 comments |

More on Typo

Posted by shughes Sun, 28 Aug 2005 23:06:43 GMT

I’m having some problems with Typo. For a while, I was getting a completely unresponsive blog, requiring a “killall -9 dispatch.fcgi && rake sweep_cache” to bring it back to life. I had assumed that when Dreamhost said that it was taking the Rails environment to Production, that meant that our virtual host entries would declare: RAILS_ENV = production. I found at least one person who also thought as much. Apparently, they are still defaulting to development mode, so I edited config/environment.rb and changed the RAILS_ENV line to read thusly:

RAILS_ENV  = 'production'


Once I did, I noticed that the blog hasn’t become completely non-responsive since and it seems to be responding a lot faster. I still have some bugs to work out though, as I’m seeing way too many “dispatch.fcgi” processes start up. I wrote an email to the mailing list and hopefully I’ll get some more help on that.

There are a couple of .htaccess tidbits that you may be interested in as well. If you, like me, migrated from Wordpress, here are the entries I used to forward my old Wordpress articles to the new Typo pages:

Redirect /blog/archives http://blog.globalreset.org/articles
Redirect /blog http://blog.globalreset.org

And here is my .htaccess entry I inserted into the public/.htaccess file in my Typo install dir so that I could still access my /stats subfolder (otherwise, Typo tries to interpret the url instead of letting it open my web stats page generated by Dreamhost):

#allow /stats
RewriteCond %{REQUEST_URI} ^/stats/(.)$ [OR]
RewriteCond %{REQUEST_URI} ^/failed_auth.html$
RewriteRule ^.$ - [L]

Also, if you’re reading this with an RSS reader, you’re missing out on the new layout of my site. Come to the home page and let me know what you think of my banner.

Technorati Tags: ,

Posted in | 2 comments |

JSR-277 Might Fix Java

Posted by shughes Fri, 26 Aug 2005 13:25:00 GMT

Thanks to Ted Neward, I just read about this interesting new Java Specification Request: JSR 277

The specification of the Java Module System should define an infrastructure that addresses the above issues. Its components are likely to include:
  1. A distribution format (i.e., a Java module) and its metadata as a unit of delivery for packaging collections of Java code and related resources. The metadata would contain information about a module, the resources within the module, and its dependencies upon other modules. The metadata would also include an export list to restrict resources from being exposed outside the module unintentionally. The metadata may allow subset of exposed resources to be used by other modules selectively.
  2. A versioning scheme that defines how a module declares its own version as well its versioned dependencies upon other modules.
  3. A repository for storing and retrieving modules on the machine with versioning and namespaces isolation support.
  4. Runtime support in the application launcher and class loaders for the discovery, loading, and integrity checking of modules.
  5. A set of support tools, including packaging tools as well as repository tools to support module installation and removal.
We also expect the Java Module System to expose the public J2SE APIs as a virtual module in order to prevent unwanted usage of the private APIs in the implementation.

Modules with metadata about their dependencies sounds like just what the doctor ordered. It’s crazy that Java has such a large and pro-active userbase, yet it is so slow in catching up to the fledgling .NET. Item #1 and #2 should’ve been implemented a long time ago, and Sun knows it. I agree with Ted as well when he says:

About the only thing I *wish* we could do that’s out-of-scope to the JSR is to fix the javac compiler to cease emitting .class files directly, but instead consider .class files to be the moral equivalent of C/C++-compiled .obj files, and automagically do that final step and turn it into a .jar file right out of the box. (Out of curiosity, is there anybody out there who doesn’t immediately jar up your .class files?)

I know I immediately jar mine up, except in the cases where I’m prototyping with a single .class. If Javac auto-jarred, that wouldn’t bother me in that case.

Posted in , | no comments |