These project ideas are targeted at third- and fourth-year computing students at Dublin City University (DCU). Some may also be suitable for MSc practicums.

First some general words. My research interests are in the areas of databases and computer networks. I’m also interested in Unix systems (particularly FreeBSD), and in anything related to managing large collections of digital media including music, voice and video.

If you’re interested in one of these projects — or if you have your own idea that you think might interest me — then get in touch. You can use email, but often it’s best just to bang on my door (L1.11).

Anything Cloud

The cloud remains pretty hot, so any cloud related project might be interesting. And there are great resources available: take a look at the Google App Engine, for example. It allows you to write and deploy cloud/web-based applications developed in Python, Java or Go.

Here are a couple of ideas.

A Cloud Privacy Proxy

Take a look at Privoxy:

Privoxy is a non-caching web proxy with advanced filtering capabilities for enhancing privacy, modifying web page data and HTTP headers, controlling access, and removing ads and other obnoxious Internet junk.
— Privoxy web site

The project — develop a cloud-based application that offers functionality similar to that of Privoxy.

A Cloud Mobile Gateway

With smart phones becoming ever more popular, a divide is emerging between the mobile web and the desktop web. The mobile web offers web pages designed for small displays, the desktop web offers web pages designed for large displays. Pages designed for the latter but displayed on the former tend to be difficult to read and navigate.

Google’s Web Toolkit provides some help in this regard, but it seems to me that there’s a lot of room for improvement.

The project — use the Google App Engine to develop something (I don’t rightly know what) that allows smooth browsing between the mobile and desktop webs on mobile devices. For example, your application might take content from sites like the Irish Times and:

  • redirect mobile devices to the corresponding mobile page, or

  • reformat the page such that it views well on a mobile device.

My Cloud Bookmarks

Take a look at the following:

Surfraw provides a great keyword-based interface to both bookmarks and search engines. Forget about the fact its a Unix command-line utility for now. YubNub provides similar functionality, but on the web.

Now, the YubNub idea is a great one. My only problem is that it offers just one large, flat name space. So I can’t define my own keywords/bookmarks as almost all short keyword sequences are already used by someone else. Also, if I define the keyword "rr" to map to my local rainfall radar site, then it’s likely to be of little use to anybody else (except, perhaps, other people in Ireland).

The project — write a cloud-based application similar to YubNub, but with individual name spaces. If you want to get clever, you could even introduce some mechanism for name spaces to be shared — but in a controlled way, not just one global name space à la YubNub.

Google Calendar Geeks

Google Calendar is really convenient. However, it’s slow compared to console-based interfaces. Proposal: write a curses-based interface to Google Calendar. A good starting point might be gcalcli. But gcalcli doesn’t cache data, so it’s slow. And in terms of how the interface, it should look something like wyrd — which is quick and easy to use.

So, meld gcalcli and wyrd, and add caching. That’s the project.

Anything Android and Interesting

Heading says it all, really.

But here’s something I’d really like …

I have a server at home that controls my network media players and DVB satellite card. The server also runs a VPN. There are some common operations which I run frequently on the server:

  • change the volume of a media player

  • change the station to which the DVB card is tuned

  • bring up, take down and check the status of the VPN

Now, I can do all of those things using various web interfaces on the server. Moreover, I’ve written a small, special-purpose Android App that does them too. However, it seems to me that there is a more general home automation problem here.

The project — develop an application/framework for building custom home automation apps on Android devices.

Web Keyboard Shortcuts

Try the following link: keyboard shortcuts.

Now, try using the j and k keys. j takes you down the list, and k back up the list. <ENTER> follows the currently selected link.

Note
This will only work with Google Instant turned off; see the first question in the Frequently Asked Questions section.

Now, I really like this feature of Google’s search service. So much so, in fact, that I’d love to be able to do that same thing on (more-or-less) any web page:

  • On search-result pages, keyboard shortcuts could be added to move from result to result, à la Google Search.

  • On social network sites, keyboard shortcuts might be used to move from posting to posting.

  • On the front page of a news site, move from story to story.

  • On articles, move from paragraph to paragraph.

How might you go about it? Well, it can probably be done with a few Greasemonkey or Scriptish scripts.

The tough part, is figuring out — on an arbitrary web page — what the units of selection/navigation should be. Figuring that out automatically might be tricky. Some type of manual per-site configuration with subscriptions, like AdBlock Plus, might work better.

A Podcast Aggregator the Really Works

This has been really bugging me for some time. There are tonnes of podcast aggregators out there, but none of them really does what I want them to:

  • Configure some set of feeds to which I subscribe, then give me just one feed URL I can use to access all of my podcasts.

  • Provide some mechanism such that, when a podcast is read on one device, it is no longer offered to other devices

  • Automatic equalisation of MP3 gain across all podcasts, à la mp3gain.

  • Automatic increase (or decrease, if that’s what you want) of the MP3 gain to make podcasts audible in a noisy environment.

  • Smart aging of podcasts. I subscribe to lots of podcasts and invariably the list of unlistened-to episodes grows and grows. So some smart mechanism for quietly dropping old episodes would be helpful.

The project — build a podcast aggregator that does all this and more. It might even be done as a cloud service.