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

First some general words. My interests are in the areas of Unix (particularly FreeBSD and Linux), computer systems, database management systems, computer networks and web technologies. I’m also interested in anything related to managing large collections of digital media including photos, 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 please get in touch. You can use email, but usually it’s best just to bang on my door (room L1.11).

Chromecast

I know very little about chromecast; in fact, I haven’t even seen one.

However, surely there must be a good project (or ten, or twenty) to be done.

Sharing from Chrome

On Android (and I assume on IPhone too) you can share pretty much any content with apps, and notably therefore with social media sites. Just click share and choose from the list available.

Why can’t I do the same thing on desktop Chrome?

Proposal:

Well that’s about it, really. I want a button on chrome which, when clicked, pops up a variety of ways in which I can share the current page — Facebook, Google+, email, Reddit, and so on.

Google App Scripts and IFTTT

Take a look at Google App Scripts, then take a look at IFTTT.

Specifically, IFTTT is a kind of web-scale automation tool kit. However, it’s somewhat static in terms of the types of recipes one can create.

Proposal:

Develop something similar to IFTTT using Google App Scripts; however, with JavaScript as the glue between services.

One use case I’d be interested in is:

  • whenever a message is tagged with a particular label in GMail, post the body of the message to a given URL.

Cloud storage and synchronisation

There are two problems here:

Storage

There is now a wide variety of cloud storage solutions on offer. I have accounts with Google Drive, Dropbox, SugarSync and probably a few others that I’ve forgotten about. Each of these has a different API.

Synchronisation

Data should move seamlessly between my desktop machine at work, the cloud, my laptop and server at home and possibly even my phone.

To make things a bit trickier, I don’t want to synchronise everything. For example, for LaTeX or C, the source file should be synchronised but target files should not; log and backup files should never be synchronised. This web page is written in asciidoc. I want the source file to be synchronised (project-ideas.ascii), but not the corresponding HTML file.

Proposal:

Write a fuse-based file system which:

  1. supports multiple back end cloud storage providers,

  2. allows new storage providers to be added easily, and

  3. provides a mechanism to control what is synchronised and what is not (based on a variety of configurable factors).

My Cloud Bookmarks

Take a look at the following tools:

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 defined. 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.

Tasker Scripting

If you have an Android device, you might have come across Tasker. Check it out.

Now, the only programming interface available for Tasker is point and click — which is slow. Also, if you have more than one device, then synchronising your Tasker profiles between devices is painful.

Proposal:

Develop a Tasker programming language and "compiler". The programming language should be suitable for expressing Tasker-type activities in a textual format, and the compiler should translate such programs into the XML import format supported by Tasker.

Warning

This may already exist. When you create a Tasker backup, two files are created. One is XML, the other is text. I’ve never looked too closely at the text file.

Anything else …

If you’ve read this far, you probably have a fairly good idea of the type of project that’s likely to float my boat. So please feel free to suggest your own ideas in which you think I may be interested.