Random Musings

Code and Data belong together

2 minute read Published:

After a couple of years of using and abusing CouchDB, I think some of the unique concepts embodied in Couch Apps needs to be spelled out. Code and data belong together Keep your data alive and breathing Share widely Let’s look at the implications of this in more details: Code and Data belong together Data on its own is largely useless to most of us. And ditto for code.

Perl Pocket Reference

2 minute read Published:

Perl Pocket Reference is exactly that, and no more - or less however! This 5th Edition is a venerable update to one of the web’s most transformative programming languages. Perl’s regex have become endemic (some would say advisedly so) in every language since, and it pioneered coming to terms with internationalisation and unicode in the browsable internet. The format hasn’t changed much but the coverage brings it up to date with 5.

CouchDB Evangelism

1 minute read Published:

In an earlier post I made a commitment to evangelise CouchDB more. I’m making good progress on this so far: another CouchHack has been set up in Vienna, Austria - sign up! I’m giving a talk about CouchDB 1.2.0 and friends at ViennaJS soon the planned @CouchDBWeekly newsletter got derailed but will be out this Friday the CouchBase documentation import is underway and should be available for 1.1.0 next week Couch is an awesome platform, and with a set of killer features such as replication, inbuilt webserver & database, and incremental map-reduce, it should be an enabler of open data and a great environment to use to learn how the internet works for new programmers and engineers.

CouchDB Summit in Boston

2 minute read Published:

The first CouchCamp was over 18 months ago, and since then things have changed significantly, from the open-sourcing of @Cloudant’s fork of BigCouch, and subsequent merger, the departure of CouchDB’s founder @damienkatz, from the project, subsequent addition of two new committers and the recently released 1.2.0. That’s a whole lot to take in! @sbisbee from Cloudant whupped our raggedy butts into shape and a bunch of core couch people hung out in Boston for 9⁄10 April at @bocoup’s nice offices for the CouchDB Summit, two days (and nights) of pure couch.

CouchDB 1.2.0 Busts Out

1 minute read Published:

In other news today, a warrant was issued for the arrest of Apache CouchDB 1.2.0. An unnamed source repo points the finger at a steady supply of dangerous performance-enhancing patches, including Google Snappy, a high-speed compression engine applied at the document level, and the infamous YAJL streaming JSON parser, optimised for performance even in low memory situations. A closer examination of the source confirms that these patches were applied in native form using Erlang NIFs, and as a result, users are warned to expect dizzying increases in overall throughput with now-native JSON parser.

Putting the Apache back into CouchDB

3 minute read Published:

Over the last year, the Apache CouchDB project feels like it’s been in a holding pattern between missing Benevolent Dictator and ASF-style meritocracy. It hasn’t helped that Damien Katz, the original visionary developer of CouchDB, has been largely absent in the community since the CouchOne and MemBase merger. And that’s a shame - few know CouchDB better than him. His blog post about the future of CouchBase comes as no surprise to anybody who followed the merger; CouchOne was funded by venture capital, and as such the owners will be pushing for a return - and there’s nothing wrong with following the money.

Building Erlang and CouchDB on Windows like a Boss

3 minute read Published:

For the last 2 years, Ericsson’s Erlang binaries have been built with a legacy Visual Studio 2005 compiler, and provided limited instructions on building Windows Erlang from source. This has made building CouchDB from source on Windows particularly challenging, as almost all dependencies such as Mozilla SpiderMonkey and IBM’s ICU no longer officially support such an old compiler. I developed glazier for two reasons, namely document the Erlang build process on newer compilers with a scripted installation, and to provide a reference build of CouchDB on Windows by including steps to build the required dependencies.

Updating CouchDB Windows build

1 minute read Published:

I’ve updated glazier to support Microsoft’s SDK 7.1 and therefore Visual Studio 2010 SP1 as well. This represents a significant upgrade of most dependencies for CouchDB and Erlang/OTP, namely: Erlang bump wxWidgets 2.8.11 to 2.8.12 revert OpenSSL 1.0.0e to 0.9.8r to align with OTP R15B release notes start using OTP/R15B from now on CouchDB bump curl to 7.23.1 bump ICU to 4.6.1 use Mozilla SpiderMonkey 1.8.5 Feel free to try these out from snapshots.

Slurping data back out of CouchDB

1 minute read Published:

While this example is slightly contrived, we can re-use CouchDB to extract this data again. There are several ways, so let’s try each of them. First, and easiest, is to request a list of all documents in the DB, and then use xargs wget to pull the data down. $ DB=http://localhost:5984/posts $ curl --silent $DB/_all_docs | sed -nE 's/{"id":"([0-9]+)".*/\1/p' 21298063 21298065 ... 31797293 66018817 $

Generating YAML from CouchDB docs

4 minute read Published:

Continuing the theme of the last two posts, the old Posterous blog content is now available as JSON inside CouchDB. I’m now going to combine a few pieces that are unique to CouchDB to build up the components that will become blog fodder for OctoPress. Octopress, which is based on Jekyll, uses a mixture of YAML and markdown for pages and posts. We’ll use a show function, which passes a JSON document to a JavaScript transformation function, to build this up.