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.
javascript
A little while ago I was driving my car and a traffic report came on the radio. It gave some useful information but also a lot of information about roads I was not going to be using. As the report was trying to satisfy lots of people it ended up telling me lots of information I didn't need to know while missing out information that could be useful. I began thinking it would be great to have a personalised traffic report and given that my mobile has text to speech functionality and can connect to the Internet on the move maybe it could generate it (especially as I purchased the SVOX Victoria app which gives the mobile a rather charming accent). Digging around I found that the Highways Agency publishes some great RSS feeds for key roads so I thought I would have a go at building an app. To keep the development time for this experiment to a minimum I decided to use PhoneGap.
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.
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.
Just targeting one mobile platform is not good enough anymore but building apps for lots of different mobile phone platforms could be a long and tedious task. Every smartphone platform has its own software development kit (SDK), these will need a developer to use different languages to be able to work with them all. You could easily end up with five or six code bases in order to reach a decent number of devices. So what to do if a mobile web site isn't seen as an acceptable alternative? Fortunately mobile apps and mobile web sites are two ends of a spectrum of possibilities. Sitting somewhere in the middle is PhoneGap Build, a service that lets you develop using Javascript, HTML and CSS and then builds apps for five platforms in the cloud.
A little while ago I started reading up on Notube, an EU funded project that aims to explore how technology such as Linked Data can be used with televisions to (amongst other aims) produce personalised content. Inspired by this idea I started thinking about a small example that would build upon my earlier blog post How to use Linked Data on the Samsung Internet@TV platform to produce a personalised view of Open University Podcasts. In order for the example to be useful it would need to use data for the personalisation that was easy for the user to supply using just a remote control. I've got as far as producing a simple prototype that hopefully shows some of the potential of this technology.
A real advantage of Internet powered TV is the opportunity for personalisation and customisation to make it a more compelling and meaningful experience for the viewer, but to support this it helps to have a flexible solution to query the data about what is on offer. Linked Data could be that flexible solution as it makes it possible to send a quite complex query, possibly generated on the fly to a data store. With this in mind I have been experimenting with consuming linked data on a cheap and cheerful blu-ray player that supports the Samsung Internet@TV platform. Using a web developer skill set it is possible to build a web application that runs on the device that has the ability to pass a query directly to a SPARQL endpoint and parse the results.
Samsung Internet@TV is a platform that aims to bring content from the Internet into people's living rooms through certain Samsung televisions and Blu-ray players (be careful to check app availability though). The system uses HTML “widgets” to bring an app like experience to the TV set. For developers this is a chance to experience developing for an embedded system while needing only HTML, CSS and Javascript skills. As another bonus Samsung are currently running a competition for developers in Europe (at the time of writing there is about one month left until closing) where you can win some decent prizes. In this post I will attempt to pull together some information on how to build a simple “Hello World” app and then deploy it to a real Internet@TV device for testing.
Boxee is easy to use, mainly you need only six buttons on a remote to control it (the navigational keys, select and back). Sometimes you need to enter some text, maybe for a search box or to use the new feature of adding a comment to an item you liked. This can be time consuming with a normal remote, so the ideal device would have a little keyboard like the Boxee remote or the Logitech diNovo Mini ™ (which does seem a little expensive). The Nokia N900 has a nice backlit hardware keyboard though and a touch screen. One possible snag you might think is the lack of a “app” to control Boxee (such as the ones available for Android and iPhone), but “if you can't do something do something else” (according to a saying I may have made up). Fortunately it is possible to control Boxee through a browser, and this approach might work for other mobile devices too.
Despite the idea of "being in Cyberspace" and the power of the Internet to connect us to people all over the world regardless of our location, we often use a browser to find out about people and services close to us. These might be queries such as finding the opening times of a local store, the time of a train or local expertise. Each time we do this it is often necessary to tell the website where we are, typcially by providing a post code, but what if you don't know the postcode? Fortunately browsers and becoming much more clever, and some can even work out where you are.