hoodwink.d enhanced
RSS
2.0
XHTML
1.0

RedHanded

Park Place, the S3 Clone You've Been Always Almost Wanting to Save Fifteen Cents With! #

by why in inspect

Yes yeah, that’s right. Put that dime away and put especially that clunky nickel away. Rubyist’s don’t get rich by spending money frivolously on online services. And when we do, we don’t spend in minute coinage! Micropayments only feed an ecosystem built entirely from misers and young, innocent newlyweds. Maybe steam captains. We don’t want that for us!

That crisp, sensible whistling you hear is coming from Park Place. Experts in our field agree! For example, here is what I said earlier today about Park Place when I was by myself in the garden with my blazer on:

I sure got carried away today working on that S3 clone. Geez, what was I thinking? Now I’ve ruined a whole crop of cucumbers. (Sound of stabbing many vegetables with so pokey cleets.) At least my new S3 clone, which happens to go by the name of Park Place, is a complete implementation of the REST API. However, I haven’t done any of the XML ACL requests yet. Like RedHanded readers are gonna care about that!

Yes, it’s done in Camping. And you have to update Camping. AND UPDATE MONGREL AND ACTIVERECORD.

 gem install camping --source code.whytheluckystiff.net
 gem install mongrel activerecord
 svn co http://code.whytheluckystiff.net/svn/parkplace/trunk parkplace
 cd parkplace/lib
 ruby parkplace.rb

If you really do start into this, some tips:

  • It’ll create the SQLite3 database for you, if you’re sure you’ve absolutely followed BeAlertWhenOnSqlite3.
  • You’ll need to add users manually into the parkplace_users table.
  • If you use Amazon’s Ruby library, you’ll need to change the S3::DEFAULT_HOST and S3::PORTS_BY_SECURITY in S3.rb. They are hard-coded. Amazon does not want you to save fifteen cents!
  • And, oh once again, THERE IS NO SOAP SUPPORT.

So, in conclusion, Amazon will be pretty furious about this and they will pursue class-action suits and, since my life is not in order, lots of pretty gruesome things will come out about me. One of the first things they’ll bring up is how I claim to give away FREE WEEiZARDS! and have failed to deliver to all participating parties. The ignorance of my critics never fails to astonish me. I have delivered free weeizards! on many occassions and at all times. Duh, check your fax machines, guys! But the courts DO NOT see eye-to-eye. (Never have.)

You’ll definitely want to be blogging about this one, guys. It’s one of those classic stories many can relate to, while still being highly rare and fully collectible!

said on 07 Apr 2006 at 00:29

Wouldn’t WebDAV cousin, once removed, be more appropriate?

said on 07 Apr 2006 at 04:44

Here was me thinking you meant this S3 Turns out that one’s actually called S5… two louder.

said on 07 Apr 2006 at 08:11

Hm, probably no need to modify S3.rb.

Just do this:

  S3.module_eval do
    const_set(:DEFAULT_HOST, "localhost")
    const_set(:PORTS_BY_SECURITY, { true => 443, false => 80 })
  end

Hard coding stuff is quite hard in Ruby.

said on 07 Apr 2006 at 08:28

Hrm… RES Tfull network object persistance… interesting…

said on 07 Apr 2006 at 09:19

If you want to put a WebDAV layer on top, go ahead.

said on 07 Apr 2006 at 09:45

very very cool. nice work why.

said on 07 Apr 2006 at 10:23

The only S3 I know was a maker of graphics chips in the 90’s. Did you clone a graphics engine?

said on 07 Apr 2006 at 11:32

Will this work with BRACKUP ?

said on 07 Apr 2006 at 11:45

<|:{: Yes, the graphics are in XML .

jes5199: At very least, someone’s gonna have to hack Perl’s Net::Amazon::S3 module to let you say a host.

said on 07 Apr 2006 at 13:25

Thats powerfully hot. Supa-cool why, supa-cool.

said on 07 Apr 2006 at 15:17

I followed your instructions but was greeted with:


$ ruby parkplace.rb 
/usr/local/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/dependencies.rb:123:in `const_missing': uninitialized constant Configurator (NameError)
        from parkplace.rb:378
said on 07 Apr 2006 at 15:30

psmith: You’ve got an old version of Mongrel somewhere. Or have you installed Mongrel from source at all? It could be loading that rather than the gem. That’ll need to go as well.

said on 07 Apr 2006 at 16:09

why: That got it: I had an early version installed from source. D’oh.

said on 08 Apr 2006 at 01:21

When is the Nvidia due?

said on 08 Apr 2006 at 13:25

I don’t get it—why is this useful? The point of S3 is to let you cheaply rent storage on a Huge Server In The Sky with immense bandwidth, uptime and reliability. The API is just the means to get your stuff there. Running the API on my server doesn’t make my server bigger or faster or more reliable. Did I miss something?

said on 08 Apr 2006 at 15:24

Hey, snej, I’ll explain the point of the software if you can give a good reason for questioning it.

said on 08 Apr 2006 at 15:28

snej: Now any software that uses S3 can also be used with any given server without mucking about in its internals. It gives us the option to use S3-aware apps without S3.

said on 08 Apr 2006 at 18:10

parkplace = flexibility, and insurance against any future corporate naughty doin’s on the part of a server provider.

said on 08 Apr 2006 at 20:07

poor me

said on 09 Apr 2006 at 13:05

the point as I see it… test your S3-usin’ apps for free using a local instance of Park Place. Use the real S3 for production only, since it costs money.

said on 10 Apr 2006 at 14:21

snej: But what if you DO have a Huge Server in the Sky already? Why pay Amazon if you can provide the stuff for free?

Why: Camping is begging for a ActionWebService layer. I may end up working on that, if I’m not too buisy with Pry

said on 11 Apr 2006 at 21:34

I’m gonna throw these ups on http://rubyonrailsblog.com for good ol freshness and poppin fun :)

Comments are closed for this entry.