Developers interact with CouchDB using its RESTful HTTP API.
Representational State Transfer (REST) is a software architecture style
that describes distributed hypermedia systems such as the World Wide Web.
In short, URIs are used to identify resources which can then be accessed
using HTTP methods such as GET,
POST, PUT, and DELETE. For example, with CouchDB you can
POST a new document, GET a representation of an existing document,
PUT an updated document, and DELETE a document. It is worth noting that REST
is not limited to the Create, Read, Update, and Delete (CRUD) paradigm,
yet this approach makes sense for CouchDB since it is a tool for
A truly RESTful system will also have hypermedia controls that
inform a client of available state transitions. Fully RESTful applications
can be built in CouchDB using list functions, show functions, and
validation functionsall beyond the scope of this book. For more
information, see the CouchDB Wiki pages on Formatting
with Show and List and Document
Update Validation, or CouchDB: The
Definitive Guide, Part 2: Developing with CouchDB. For
more information on CouchDBs HTTP API, see the CouchDB Wiki pages on the
Document API and the HTTP View API,
or CouchDB: The
Definitive Guide, Part 1: Introduction, Chapter 4: The
Highway: Route 3, Route 102, Indian Point Road, Route 102A
Distance: 35.5 miles (around loop)
HERE’S a drive that visits the western side of fabled Mount Desert Island, home of Acadia National Park. This corner of Mount Desert is one of the few places on the island anyone should drive in summer, when congestion, particularly around Bar Harbor, can be unpleasant. The west portion of the island tends to be undervisited even in summer, and, in other seasons, seems blissfully lonely. The circuit described here begins and ends at the Thompson Island Information Center on Route 3, just at the entrance to Mount Desert Island. You’ll follow a circular route, driving down the extreme west side of the island, across the lower reaches of Mount Desert’s western half, up through Southwest Harbor, and then north along Long Pond and the hills above Somes Sound.
As pretty as this drive is, you must first run the gauntlet of Route 3 from Ellsworth to Trenton and onto Thompson Island. This section of Route 3 has become an ugly honky-tonk, with every conceivable type of hideous tourist trap, but for most people it is the route onto the island. Needless to say, besides the unremitting motels, convenience stores, gift shops, burger stands, and other insults to the eye, traffic here may be reduced to a crawl in summer. If you are approaching from Ellsworth center, an alternative exists. Pick up Route 230 where it crosses U.S. Route 1 (Main Street) in Ellsworth and follow it east and south as it heads for West Trenton and Trenton. Join Route 3 at Trenton, at its junction with Route 230, and you have only a very short drive on Route 3 to Thompson Island Information Center. It is a little longer to Mount Desert from Ellsworth this way, but eminently worth the detour. Route 3 crosses Thompson Island as it goes over Mount Desert Narrows. An information center here has a large parking area, and there are fine views of Oldhouse Cove on Western Bay and of Eastern Bay as you cross the narrows.
The icy grip of winter melted into a perfect spring. Fernando sat studying in the monastery garden. Suddenly an urgent cry broke the silence. “Fernando! Fernando! There’s sad news! Come quickly!”
Fernando slapped his book shut and jumped to his feet. “What news, Brother”
“The Little Brothers of Francis who stayed here with us that night—” the monk before him struggled to catch his breath, “the ones who were on their way to Morocco—have been martyred! The Sultan himself ordered their execution.”
“Who told you this” demanded Fernando with tears in his eyes.
“Messengers from Don Giles, the king’s brother. They rode in this morning. They also said that the bones of the five martyrs are being sent to us and will arrive within the month. Imagine! The relics will rest here in our own monastery. They are a gift to Canon John from Don Giles.”
Fernando shook his head. “I can hardly believe what you’re saying.”
“It’s true, Fernando. Berard tried to preach in the market place and he and his companions were arrested and thrown into prison. They were later released and ordered to return to their own country. Instead, they began preaching again. The Sultan was furious. He had them tortured in an attempt to make them give up the Faith. When he was unsuccessful, he gave the order that all five should be beheaded.”
You can supply your own externals for use with Android if you wish.
The details of native Android development are beyond the scope of this
book, and so well just briefly outline the steps it takes to build and
package externals for Android.
If an external is part of Pd Extended, then its build system already
includes support for Android and you merely have to invoke make with the
right parameters. You can find details at
If you need to implement build support for Android, you can mimic
the approach of the build system of libpd. The file
libpd/Android.mk shows how to compile externals
(e.g., fiddle~) for Android, and the
file PdCore/Makefile shows how to prepare them for
If youre aiming for compatibility with a wide range of devices, you
should consider compiling binaries for both ARMv6 and ARMv7 processors;
the make files of PdCore will show you how.
When you have built your externals, you can package them as zip
files (say, ext.zip for ARMv6 and
ext_v7a.zip for ARMv7), and copy them to the
res/raw folder of your project. Now you only need to
unpack them, e.g., in the onCreate
method of your app, and add their location to the search path of Pd. The
Android branch of libpd includes a class,
Properties.java, that will detect the processor
architecture for you: