Google's Go programming language looks like something interesting to explore and one of the aims of the Raspberry Pi is to enable people to learn programming. However if you are using the new Raspbian distribution you may have noticed that the golang package does not work due to problems with the way it is compiled. The package installs without issue but if you attempt to run Go it crashes in a quite ugly way. Fortunately thanks to the power of the Debian package management system used on Raspbian it is relatively straightforward to grab the source of the package, change it and rebuild it so it does work. This is preferable to rebuilding it from the source code on the Go website as it means that the work done to integrate it with the operating system will remain intact.
howto
There was once a time when Google was mainly associated with search, but today many of us use all sorts of Google services. The latest of these to draw a lot of attention is Google+ a relatively new social network which could maybe be described as a bit like Tumblr crossed with Facebook. Google offer APIs to many of these services and recently added a read only API to Google+. They also supply client libraries that are designed to work with traditional desktop environments but with a bit of modification can be made to work with the Scripting Layer for Android (SL4A). We need to modify the code in one of the program files that Google supply and change the location of some of the files, but after that you can go ahead and integrate all sorts of Google services with your scripts.
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.
When you are sat on the sofa at the end of the day relaxing and watching TV, maybe eating food and not in the mood to have to keep constantly making decisions about what to watch you might not think that you are in a situation where Linked Data and SPARQL queries could be useful. Yet the flexibility of the data that can be obtained from data sources supporting these technologies makes them ideal candidates to power a Leanback TV experience. With the right query it is possible to curate a collection of video podcasts that can be played one after each other to keep the TV viewer happy. They still have control, they can still go to any podcast in the collection, but they are not faced with a decision every ten minutes about what to watch, allowing them to relax and discover new content.
In a recent poll on this site I asked "Do you have, or are you planning to learn, any skills related to Linked Data?". Interestingly 60% of respondents (there were 101 votes) said yes, so I thought I should finally get round to writing up a demonstration app that uses Linked Data to provide the information and jQuery Mobile to provide the looks (and more) for a mobile podcast by subject explorer. The site is written using PHP and was developed quite quickly. Again I will be using the Open University's Linked Data store, but the site could easily be adapted to use other stores, maybe even more than one store. Thanks to the use of jQuery Mobile it would even be possible to take the site and embed it in a thin app on the phone to make it look a bit like a native app. Of course the site is a bit rough and ready and I am sure there are thousands of ways to improve it, so experiment and let me know how you get on in the comments.
I read quite a lot of web pages on my Android tablet and it is useful to be able to save them to my Delicious account so that I can look at them again later. On desktop browsers it is possible to save items using a small bookmarklet that lives on a menu bar in the browser. This very handily gets the title and address of the current page and prepopulates the fields on the Delicious save form, it also shows suggested tags. Sadly on the tablet it is not possible to use bookmarklets* in the same way and the apps I found that shared to Delicious used the mobile version of the save page. So I went about converting the bookmarklet into a small app that would hook into Android's Share functionality. The app could easily be repurposed to use in the place of other bookmarklets too, so here is an explanation of how it works.
Summer is an odd time. With no ice hockey matches to attend our thoughts turn to other subjects, such as why does RefSignals sometimes repeat questions? I've been asked a few times about how to stop it doing this, so here is a solution. RefSignals is an Android app built with Google App Inventor for Android that quizzes you on the signals made by referees during ice hockey matches. In February I wrote about this app and published the source code so that people could take it and use it as the basis for their own quiz apps. The response was great and the app has been remixed for all sorts of subjects so I hope this will come in useful.
Just a very quick post about how to get the Asus EEE Pad Transformer working with the Android SDK and Eclipse under Ubuntu 11.04. As the emulator for Android tablets can be a bit slow this could be a handy way to test out applications as you build them. The starting point is to follow the instructions under Using Hardware Devices page on the Android Developer website. Following these instructions I got the machine working on my machine so I thought I would share what I did here.
First edit a new file:
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.
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.