Just so that there isn’t any misunderstanding, my intent is not to build a full featured database, but rather to help understand and document the external interfaces of CouchDB. In the process, hopefully I can make suggestions that will improve the consistency of this interface. See my NOTES for a start. It is my hope that eventually there will be as many clients and servers implementing this interface as there are for XMPP. Hopefully, once I get to parity with passing the CouchDB test cases, I can help offload Damien by prototyping new features on a simpler codebase that he (and others) can then reimplement in a robust manner.
P.S. That basura link above? It is a bzr repository... check it out!
[from deusx] Sam Ruby: Introducing Basura
“It is my hope that eventually there will be as many clients and servers implementing this interface as there are for XMPP.”...
deusx : Sam Ruby: Introducing Basura - “It is my hope that eventually there will be as many clients and servers implementing this interface as there are for XMPP.” Tags : basura couchdb python rest webdev...
Testing this against the Python client API I’m working on, I noticed one problem: the response to a <code>GET</code> against the server root URL doesn’t return proper JSON.
Patch:
=== modified file 'basura/GET.py'
--- basura/GET.py 2007-09-18 17:50:31 +0000
+++ basura/GET.py 2007-09-19 09:52:48 +0000
@@ -7,7 +7,7 @@
# at the root is a simple welcome
if path == '/':
response('200 OK', [('Content-type','application/json')])
- yield repr({"basura": "Welcome", "version": "0.0.1"})
+ yield tojson({"basura": "Welcome", "version": "0.0.1"})
return
# serve static files
Of all the established languages in the world, Python is closest to the pseudo-code that we developed (independently) for the book.
So he finds the use of python as pseudocode that Sam is doing here quite natural. Also, cross language is better when trying to validate APIs. I’d say a reasonable JSON DB API won’t be mature until it has been implemented, in addition to erlang, in at least one of perl, python, ruby, and also PHP and java or C#.
The primary reason why I didn’t chose Erlang for this task is that there already is a high quality Erlang implementation. Erlang’s pattern matching would have been ideal for capturing the semantics of a specification.
The primary reason why I chose Python amongst the alternatives is that by saying Python 2.5, I could ensure that there already was a BSDDB binding installed.
The Deep Synergy Between Testability and Good Design Synergy is what happens when people realize they were on the right track to begin with. Software Testing - Is it a cost or an Investment ? Well, investments have the characteristic of generating...
Danny Ayers Raw: Semantic Web: JSON: missing a link?
Friday and Saturday I spent a good few hours fiddling with conversion from a dialect of XML to JSON. Immediately afterwards I felt a bit grumpy about JSON, it seemed like I had to jump through a lot of hoops to do a relatively trivial translation....
Q. What does IBM’s involvement mean for CouchDB and the community? A. The main consequences of IBM’s involvement are: - The code is now being apache licensed, instead of GPL. - Damien is going to be contributing much more time!......
CodeMash 2008 was my first conference since coming to work for SitePen, and my first opportunity to talk about Dojo. I had two talks: an introduction to Dojo (i.e. “how much Dojo can I cram into an hour”) and a talk about Dojo Offline...