[opensource] Student programming project at OSU - Anyone interested?
bettsp at cse.ohio-state.edu
Tue Nov 15 23:51:15 EST 2005
One thing that I've noticed while at OSU is that while the school is
great at teaching computer science, in my opinion we don't do enough
projects, especially "real-world" projects, that have real open-ended
problems to solve.
To solve that problem, I'd like to put forth an idea I've been working
on in my spare time for an application called Porpoise, which lets
students access their documents over the Internet via a website. It's a
huge project, and I'd like to turn it into something that us
CSE/ECE/whatever students can work on and turn out an awesome app that
anyone would find useful. It also looks great on a resume to have a
project that's actually out there on the web for people to see.
What's unique about this application is that it appeals to both of the
software student groups here at OSU (OSUOSS and NTSig), and we'll need
people from both camps to write it; most of it is written in C#
using .NET (and ASP.NET), but it's also made to be cross-platform using
Mono, and the background daemon (service for you Win32 people) is
written in straight GTK+/Glib/C (in vim too!). I've pasted my abstract
of the project in this Email, you can check out more info here:
My Notes: http://www.cse.ohio-state.edu/~bettsp/Porpoise%20Master%20Page.html
Source Code (so far):
(Check porpoised/src and htdocs for the actual code, I haven't done
much, most of my work has been on the autotools side)
I look forward to hearing back with opinions / ideas / whatever, or if
you're interested in working on the project!
Paul Betts <bettsp at cse.ohio-state.edu>
Porpoise is a set of programs that allow you to search and access your
data from anywhere easily, as well as keeping all your data synchronized
between your Home PC, your Laptop, your thumb drive, and other machines
(ie Lab PCs) by keeping a central repository and setting up a website to
This project was basically created in response to seeing the typical
college student try to keep track of their data. Here's how they usually
* Throw everything in My Documents or the Desktop
* If things get too unorganized, put stuff in a "Old Stuff" folder, or
as my roommate does, create a folder called "Desktop" and throw
everything into it; I think he's up to Desktop\Desktop\Desktop\Desktop
* Copy some file to a USB drive to work on it, then remember to copy it
back, or they Email it to themselves. Now there are two, three, or even
four versions of what they were working on, leading to the "Oh crap, I
left it on my disk at home" syndrome
* If students get together in a group, the problem gets even worse;
"Who has the latest version of the project slides?", etc. Watch the CSE
560 kids on a lab due date, it gets really out of hand
The Solution - Kind of
Programmers have been dealing with this situation for years, and since
we're a clever bunch, we've created all kinds of ways to solve it, and
they all revolve around Revision Control; programs such as CVS and
Subversion exist to manage this problem. Unfortunately, they've clearly
got a target audience, and it's not regular people. Even with programs
like TortoiseCVS, it's still too much for the average end-user.
This is where we come in.
Porpoise is a program that internally uses the Subversion revision
control system (http://subversion.tigris.org) to manage users'
documents. It consists of a website running on a user's PC that allows
users to download and upload their files, a daemon (background program)
that automatically keeps track of changes to local files, and later, a
shell extension that will kind of be like an easier version of
Yeah, but how does that help?
Because, not only will we keep files in a repository, we'll index it
too, using technology from the Beagle project. If you haven't heard
about it, it's a great program that indexes files of all types and
stores the results in a Lucene database that can easily be queried by
other programs. We'll use this to help users find their stuff quickly
and easily via a search page, as well as having it integrated into the
Philosophy and rambling
This program is for end-users, aka your grandma; it's got to be simple
and elegant, and look good doing it. "Just works" is definitely the
philosophy behind this project. On a more abstract level, this program
is trying to achieve "data independence"; the idea is that people
shouldn't think of it as "the data on PC X, Y and Z", they should be
able to think of it as "I have my data, and it doesn't matter what PC
I'm at, anywhere". We've got this Internet thing, let's put it to use!
Sounds great. But why 'Porpoise'?
It kind of sounds like Tortoise. Only with more echolocation.
More information about the Opensource