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.
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.
Google's App Engine offers an attractive idea for web developers of being able to use Google's famous server infrastructure to serve up their own code and interactive websites. If you develop for it though you might find it is a bit different from developing for other types of web host and some of the concepts are new. I've been asked if I would do a simple run through of how you would set up an application and handle an HTTP GET requests with parameters, so here is a tutorial that will not just say “hello world” but greet you by name. The example is deliberately simple, but the concepts in it can be built on for many other uses. This example uses Python, if you would like to see a Java version then please mention it in the comments.