I've been recently experimenting with the idea of creating an open source S3 rest api clone that runs as a GAE application. This would allow for "private S3 instances" that leverage the google hosted infrastructure (big-table etc) and your existing S3 tools/applications/processes.
The project has reached a minimum level of functionality as a proof of concept, and is now hosted out on google code.
http://code.google.com/p/baltic-avenue/
The core bucket and object-level operations are implemented, as well as support for multiple custom user accounts, ACLs and public-reads. More info on the site on how to configure third-party clients (smoke-tested with s3sync,boto,jets3t/cockpit,resourceful/spaceblock).
There are some obvious limitations right now due to the preview release quotas on GAE - e.g. object size limited to 1MB, and total storage limited to 500MB. The assumption is that these will be lifted or relaxed once the service is pay-as-you-go.
Would love to get people involved in testing and making the implementation more robust. I'm not necessarily a pythonista, so I attempted to write as little of it as possible...
Finally signed up. Give me a ping, I'm http://twitter.com/johnspurlock
I'll probably keep my shorter tech musings there. Although the whole thing still seems rather creepy to me.
Check out the demo.
From what I've seen so far after kicking the tires, the managed silverlight platform seems new and somewhat incomplete, but provides just enough basic build material to stay interesting - certainly no accusations of over-engineering (yet).
One immediately apparent frustration is that the mac hosts are at least an order of magnitude slower than the windows hosts when it comes to rendering - I hope this is only a temporary thing. Once we have some parity here, it would be *great* to get some cross-platform low-level 3d primitives - taking advantage of the hardware of course.
The wpf library turned out to be far more stripped-down than I first imagined. Again, I think this is actually a good thing - it's not hard to completely wrap your head around the entire mini-wpf control set. I did find myself looking for better brushes, though - it would have been nice to have the DrawingBrush or the VisualBrush from mega-wpf.
Also there are no built-in UI thread-marshalling functions even though the threading primitives are tantalizingly exposed. You basically have to rig up a bootleg ui-pump yourself, using the Storyboard object, which conveniently raises events on the correct thread. Again, not something you'd want to do on a regular basis, but it works for now.
It will be interesting to see what types of .net applications start making the jump into this very "applet-like" environment. Sorry of course I meant "Rich and Interactive" environment...
The Silverlight CLR was unveiled today. Here are some quick thoughts after poking around in the 4MB download on what it actually contains (and of course more telling - what it does not).
unmanaged dlls:
- agcore,coreclr,mscorrc,npctrl - i did not dig into these, safe to assume these provide the slimmed down clr/garbage collector/native layer
- ie/slr.dll - presumably the ie plugin
- np/slr.dll - presumably the mozilla plugin
managed dlls:
- agclr - slimmed down WPF library, no 3d etc
- Microsoft.Scripting - the "dlr", includes a BigInteger implementation, awesome!
- IronPython - python
- IronPython.Modules - python
- Microsoft.Scripting.Vestigial - once again python is first out of the gate
- Microsoft.JScript.Compiler - javascript
- Microsoft.JScript.Runtime - javascript
- Microsoft.VisualBasic - nice to know IIF made the cut. late binding support via NewLateBinding
- mscorlib - the largest managed assembly, though obviously cut down from the "real" version. no external processes, interop, or any io other than file manipulation. thread primitives are still there however, i'll be curious how these work in practice inside of the other "hosts". otherwise, what you'd expect.
- System.Core - linq! made my day
- System - regex and a system.net that only includes httpwebrequest/response
- System.SilverLight - presumably the silverlight host, includes a little document object model for interaction with the browser (and a BrowserHttpWebRequest, interesting)
- System.Xml.Core - a barebones System.Xml replacement, no XmlDocument, no xpath, only the basic readers and writers
Make no mistake - this is definitely a slimmed down version of the base class library. Must have been a fun engineering effort squeezing the most into the install.
Interestingly enough, there is nothing from System.Data. omg no DataSets! :) I would bet that the final version will ship with a System.Data.Core (like the xml dll) but they are having trouble trimming the fat...
XML