The Raspberry Pi might not be a heavyweight in the specifications department but that is no reason why this inexpensive educational computer shouldn't help you learn more about some of the latest technology used to create web sites. The availability of some of the latest open source software in Arch Linux ARM introduces the exiting possibility of using the device as a mini portable web server (you could even battery power it). This could be very useful, not just for learning about these new technologies but also if you wanted to try your sites out with client machines that may not let you install server software locally, e.g. phones, tablets and set top boxes.
couchdb
I've been experimenting a bit with CouchDB again recently and started thinking more about what it means to see non-relational databases as different from rather than better than traditional relational databases. One idea that I wanted to explore is that these differences mean that we do not have to use these new technologies in the same way as a traditional database layer. A notable feature of CouchDB is that it delivers data over an HTTP connection, so it can deliver data to the web without the need to write a layer of software to go in front of it. It can also store files quite happily. This could hugely simplify the server side of many phone, tablet and Internet TV apps so I thought I would have a go at building an experimental proof-of-concept app for the Samsung Internet@TV platform that gets both its metadata and video files from a CouchDB server.
The Scripting Layer for Android (SL4A) and the new SL4A Tablet Remix have a lot of powerful features and interestingly can be used to consume data from a variety of sources both online and offline. The ability to work with some data sources, such as simple relational databases is built in, but thanks to the ability to add additional code libraries to this environment we also get the opportunity to work with non-relational databases and even Linked Data. In this article I will quickly show you how to work with three different types of data source using Python in SL4A: a relational database in the form of a SQLite file, a non-relational database in the form of CouchDB and Linked Data generated from Wikipedia which we will interrogate using the SPARQL language.
Like most developers I spend a lot of time keeping my skills up to date as new technologies and demands emerge. Recently I have been learning a bit about non-relational databases, specifically CouchDB, to understand what this approach means and how it might be useful. I still have a lot to learn about this technology, but thought it might be interesting to share and reflect on what I have learnt so far. In this post I will attempt to introduce CouchDB, how you use it and some of the concepts involved. I won't be able to show the full capabilities of CouchDB in one post so a lot will be missed out, including some of its more powerful features such as replication, but hopefully it will be a start.