A lot of what SIPB does which is not helping users with immediate problems and answering questions falls under the heading of SIPB projects. SIPB projects are usually things that a member or two have decided are worth doing and are working on. The main qualification of SIPB projects is that they help the MIT community or the world at large in some way. In general they also involve computers.
Here's a list of SIPB project ideas that have been mentioned recently, along with the person who's suggested the project or a team that would be good to contact. Feel free to get in touch if something sounds interesting or you want advice getting started.
A list from 2008-2009 may also have some relevant ideas.
If I'm a webmaster for some group with an announcement list, it would be really nifty if I could add some HTML code to my page to create a button that, if someone clicks it, would use MIT certificates to find their username and automatically add them to a list. This isn't particularly difficult; you'll need to get a keytab (essentially, an account in Kerberos / Moira) for the website, and write a script to set that keytab as the list's "membership ACL" and a webapp to use that capability to add or remove people from the list.
[adehnert notes 2013-02-24: More recently, WebMoira has been redone, and might more conveniently support this. It might be possible to directly integrate with WebMoira, or you might conclude that WebMoira is already good enough.]
We have a webpage to
list all Debathena packages in the "proposed"
repository, i.e., things
we just changed and are waiting a few days for testing before pushing to
the clusters, etc. However, that page gives you no information on what
the change was. A very useful addition would be to use the
tool to link to the changelog and code changes for each new package.
Contact: broder, debathena
A bunch of SIPB projects use Trac as a bug tracker. The current email adapter we use isn't very clever; it'll send out each update to a ticket with a generic subject line, so it doesn't easily indicate whether the bug was resolved or someone just commented on it. It also doesn't know how to receive e-mail, so we can't reply to the e-mails it generates and have our comments go back into the bug tracker, and we can't make firstname.lastname@example.org create Trac tickets. There are one or two alleged plugins to do this, but they create a new ticket on every e-mail, rather than doing something intelligent with replies; a better plugin in both directions would be extremely helpful.
Contact: debathena, geofft, broder
There's a server in the SIPB office that you can "print" MP3 files to, and they will get played one by one. A significantly more modern interface to this would be to make a PulseAudio server out of the computer hooked up to our sound system; this lets computers running PulseAudio (notably, most recent desktop Linux distributions, but Windows computers that install Pulse as well) route their sound to the office speakers.
You might have seen the xcluster displays (in the SIPB office, near the four building 11 quickstations, and in the building 12 cluster) that show you which clusters aren't in use and which printers aren't hosed. This would be immensely more useful as an iPhone application.
A common need for people writing Linux software is to check that their software works on many popular distributions (Red Hat, SuSE, Debian, Ubuntu, Xandros, etc. etc.), and on multiple versions of these distributions. The qemu system emulator, and its virtualization cousin kvm, support image snapshots and a fairly lightweight process for running virtual machines, so you could set up an Athena locker with a few commands that give you a temporary copy of a Linux system for a particular distro and version that runs inside your terminal.
The previous project and a lot of other work could be made significantly more efficient by rethinking the design decisions in qemu's snapshot support. If this is the kind of thing that interests you...
A lot of people prefer Postgres to MySQL, so having a community Postgres server akin to sql.mit.edu, with similar access control, could be a useful project. You could set it up on XVM with an eye to redoing the configuration on a scripts-hosted VM at some future point.
This could easily become a bigger project, integrated with scripts' autoinstallers, etc., depending on ambition. Or it can just be a standalone server for people who want access to a Postgres database, but don't want to set up and maintain a server on their own.
Contact: mitchb, geofft
Athena used to have a system liblocker for managing the /mit directories and attaching and detaching links to networked filesystems. Debathena and Macathena come with an automounter for /mit, so links automatically appear when you use them, and nobdy cares much about detaching them, but we still use most of the complexity of liblocker because we haven't gotten around to cleaning it up. There's a design proposal on the Debathena bug tracker listing what should be a better implementation.
Contact: broder, debathena
Now that we have five or six web servers (I've lost count), it's become entirely too easy to change something on one or some but not all of the servers. We often test changes, like newer versions of packages or tweaked configuration, in place on one of the servers, but we'd like something to remind us if we don't copy these changes to all the other servers. This involves checking packages (RPM, perl, etc.) as well as config files in /etc and possibly other things like LDAP config.
I've also been told by multiple people that Puppet or some other configuration mangement framework is the Right Answer here. We looked at Puppet and a bunch of others last summer and concluded none fit our workflow well, but we could re-evaluate that.
Note: mitchb has begun working on this. Coordinate with him if you'd like to work on this project.
Contact: geofft, scripts-team
SIPB has a bunch of books in its library. It'd be nice if a list of the library books also existed online in some sort of sane, searchable database. One possible platform is the Exhibit project (which originates from a collaboration between the Haystack group in CSAIL and the MIT Libraries). This would require mostly just making a spreadsheet of the information. Check out http://sipb.mit.edu/library/ for the current state of the catalog.
Contact: zhangc, fawkes
Currently, it is a pain to get someone else set up using zephyr within screen on Linerva with automatically-renewing tickets. We should write scripts to set them up so that that all they have to do is enter a command or click an icon, type their kerberos password, and then know how to use BarnOwl.
There are several extensions that allow you to do stuff sort of like this (Firebug, Web Developer Toolbar, Chrome's web developer tools). But they're hard to use and really mostly just debuggers. Our goal here is to build something that goes out of its way to give you complete control via a nice UI.
Around SIPB we're kind of big fans of git. But there is an area that git comes up short. We have a lot of common directories where people really just want to edit files in place (instead of wanting to clone/checkout, edit, commit, push...), but git doesn't support that well. It would be cool if there was a way to work with non-bare repositories in shared directories.
One idea might be using FUSE to present a separate checkout to each person using the directory.
Scripts Pony is scripts.mit.edu's new hostname management system. It was just released recently, and has lots of bite-sized improvements remaining to be implemented. Particularly good ideas include adding the ability to show and edit hostname aliases, checking whether hostname paths exist and giving appropriate feedback, creating a zephyrbot to allow people to approve tickets easily, and adding the ability to check hostnames in Moira automatically.
See the project TODO file for more ideas.
Many SIPB-affiliated people use the Zephyr messaging system, and the BarnOwl client for it in particular. BarnOwl has a number of very nice features that make it easy to follow large amounts of zephyr traffic: search, color coding, auto-narrowing, etc. BarnOwl can also store logs of zephyrs sent and received for future reference, but the logs are saved separated by class in a way that's quite annoying to navigate sometimes. A BarnOwl-like interface (perhaps implemented as a BarnOwl plugin) for viewing zephyr logs would be a great thing to have.
BarnOwl nominally has views support. However, it consists of verifying that the view name is "main" and returning an error otherwise. It would be nice to maintain multiple sets of view state at once. This would involve figuring out semantics, moving some data structures around, adding the new functionality, designing some interface, and probably much testing for subtle bugs.
Etherpad is an awesome tool for online collaborative text editing. It's recently been open-sourced; set up a Java servlet container on XVM, make it work, and then start adding cool MIT features like, oh, the ability to edit daemon.etherpad-writable files in AFS, login with certs and see all your files, and print to Athena printers. Or add cool non-MIT features such as an Emacs client (possibly proxying Infinote, which appears to have some F/OSS implementations already), or integration with codepad or gists.
Note: tvald has set up etherpad.mit.edu. Coordinate with him if you'd like to get features into etherpad.mit.edu.
I think every RFC website I know of just puts the entire RFC plain text in a <pre> tag. It should be possible to parse out the headers and footers every "page", make section headings into useful ones, and reflow the non-diagram text in a proportional font, which would make RFCs more readable.
Really, it should not be as hard as it is to make a website where people can upload files too big for e-mail to your locker. Either find a good, simple, PHP or Python or something file upload app, or write a (relatively small) one of your own and a scripts autoinstaller.
Thanks to the deeply disturbing magic of a couple of programs named fakeroot and fakechroot, you can without root privileges enter a "chroot" of an operating system and look at how things work in it. Create some appropriate chroots for popular Linux distros in a locker and appropriate wrapper scripts.
Contact: geofft, broder
ls, it will look up users and groups against the local machine's conception of users and groups, so if you take a stock Linux etc. machine and look at most any AFS cell, you'll get a bunch of unhelpful numbers. Make an interface that stands a decent chance of being merged into upstream
lsto permit it to call
pts examine(or, rather, the AFS library equivalent) against the appropriate servers instead of
getpwnametc. on AFS files. See also Debathena Trac #300.
Contact: mostly geofft
Help the cause of OS ecumenism! FreeBSD provides binary compatibility with Linux operating systems: an add-on module to the kernel knows how to interpret Linux-"personality" programs, just like the base kernel can interpret FreeBSD-"personality" ones, and a standard component in the FreeBSD ports system will install a number of libraries from Fedora 10 in /compat/linux.
However, the number of people who use FreeBSD as their own OS is limited compared to those who use Linux or Mac OS X. Possible projects here include BSD binary compatibility on Linux, or porting FreeBSD's Linux binary compatibility to Mac OS X (which has a bunch of BSD-like parts, but whose core kernel is actually Mach). The latter would allow running Linux locker software on MacAthena.
Contact: geofft, kaduk
Athena documentation these days seems somewhat lacking and/or hard-to-find, which should not be the case. Athena is already foreign enough to incoming students, who are more likely to use their laptops than an Athena machine. Help make it easier by consolidating and updating available Athena documentation so that people know here how to use their Public folder, their Private folder, their dotfiles, and so on.
Contact: zhangc, kasittig
Some time ago I wrote a spec for zephyr client hints, optional extensions that zephyr clients can easily implement to add nifty stuff like typing indicators and preventing zwgc from starting more than once per user and such. I got lazy before actually implementing these specs, but I believe they'd be relatively easy extensions to both zwgc and BarnOwl (in their respective extension languages, even — no changes needed to core).
Project Waverly is attempting to rethink collaborative text editing. We are starting a project to do collaborative text (and other stuff) editing right -- clean protocol, reasonable algorithms, good web client, good plugins for desktop text editors, nice API, version control integration, etc. etc.
Contact: lizdenys, geofft, maria89
SIPB can help you out in terms of both computing resources and experienced people to bounce ideas off of. If you've got an idea for something cool to advance the state of computing at MIT or just computing in general, drop by our office and say hello.