]> sipb.mit.edu Git - wiki.git/blob - projects/ideas.mdwn
33bc53c5d2e129149256a715230a0e4bb08f3eb4
[wiki.git] / projects / ideas.mdwn
1 [[!meta title="Project Ideas"]]
2
3 A lot of what SIPB does which is not helping users with immediate
4 problems and answering questions falls under the heading of SIPB
5 projects. SIPB projects are usually things that a member or two have
6 decided are worth doing and are working on. The main qualification of
7 SIPB projects is that they help the MIT community or the world at large
8 in some way. In general they also involve computers.
9
10 Here's a list of SIPB project ideas that have been mentioned recently,
11 along with the person who's suggested the project or a team that would
12 be good to contact. Feel free to get in touch if something sounds
13 interesting or you want advice getting started.
14
15 ## "add me to this list" button
16
17 If I'm a webmaster for some group with an announcement list, it would be
18 really nifty if I could add some HTML code to my page to create a button
19 that, if someone clicks it, would use MIT certificates to find their
20 username and automatically add them to a list. This isn't particularly
21 difficult; you'll need to get a keytab (essentially, an account in
22 Kerberos / Moira) for the website, and write a script to set that keytab
23 as the list's "membership ACL" and a webapp to use that capability to
24 add or remove people from the list.
25
26 _Contact: geofft_
27
28 ## debdiffs of Debathena packages
29
30 We have [a webpage](http://debathena.mit.edu/package-list/proposed) to
31 list all Debathena packages in the ["proposed"
32 repository](http://debathena.mit.edu/experimental#proposed), i.e., things
33 we just changed and are waiting a few days for testing before pushing to
34 the clusters, etc. However, that page gives you no information on what
35 the change was. A very useful addition would be to use the `debdiff`
36 tool to link to the changelog and code changes for each new package.
37
38 _Contact: broder, debathena_
39
40 ## Better Trac-email integration
41
42 A bunch of SIPB projects use [Trac](http://trac.edgewall.org/) as a bug
43 tracker. The current email adapter we use [isn't very
44 clever](http://debathena.mit.edu/trac/ticket/308); it'll send
45 out each update to a ticket with a generic subject line, so it doesn't
46 easily indicate whether the bug was resolved or someone just commented
47 on it. It also doesn't know how to receive e-mail, so we can't reply to
48 the e-mails it generates and have our comments go back into the bug
49 tracker, and we can't [make bugs@mit.edu create Trac
50 tickets](http://debathena.mit.edu/trac/ticket/216). There are one or two
51 alleged plugins to do this, but they create a new ticket on every
52 e-mail, rather than doing something intelligent with replies; a better
53 plugin in both directions would be extremely helpful.
54
55 _Contact: debathena, geofft, broder_
56
57 ## PulseAudio support for the office sound system
58
59 There's a server in the SIPB office that you can "print" MP3 files to,
60 and they will get played one by one. A significantly more modern
61 interface to this would be to make a
62 [PulseAudio](http://www.pulseaudio.org/wiki/AboutPulseAudio) server out of the
63 computer hooked up to our sound system; this lets computers running
64 PulseAudio (notably, most recent desktop Linux distributions, but
65 Windows computers that install Pulse as well) route their sound to the
66 office speakers.
67
68 _Contact: geofft_
69
70 ## Cluster and printer viewer for the iPhone
71
72 You might have seen the xcluster displays (in the SIPB office, near the
73 four building 11 quickstations, and in the building 12 cluster) that
74 show you which clusters aren't in use and which printers aren't hosed.
75 This would be immensely more useful as an iPhone application.
76
77 _Contact: ccpost_
78
79 ## Safari plugin for setting identity preferences
80
81 Safari's handling of client-side certificate authentication [changed around OS X 10.5.3](http://support.apple.com/kb/HT1679), such that Safari won't present (and won't prompt you to present) a client-side certificate if certs are only optional. Unfortunately, most sites around MIT only optionally accept certs, in spite of the fact that they'll error out if you don't provide one.
82
83 You can override this unfortunate behavior with "Identity Preferences", and IS&T's answer for this is [CertAid](http://ist.mit.edu/services/software/certaid/10x), which simply seeds the Keychain with a pre-defined list of websites for which Safari should present your cert. This isn't a great solution for, e.g., scripts.mit.edu, which has thousands of sites - far too many to give to IS&T to include in CertAid. If that wasn't irritating enough, Identity Preferences don't take affect until you restart your browser.
84
85 A better solution would be a plugin for Safari that intercepted 401 errors sent over SSL, prompted you to set an Identity Preference, and then attempted to reload the page with the new identity preference set.
86
87 _Contact: broder_
88
89 ## Snapshotted virtual machines for all popular Linux distributions
90
91 A common need for people writing Linux software is to check that their
92 software works on many popular distributions (Red Hat, SuSE, Debian,
93 Ubuntu, Xandros, etc. etc.), and on multiple versions of these
94 distributions. The qemu system emulator, and its virtualization cousin
95 kvm, support image snapshots and a fairly lightweight process for
96 running virtual machines, so you could set up an Athena locker with a
97 few commands that give you a temporary copy of a Linux system for a
98 particular distro and version that runs inside your terminal.
99
100 _Contact: geofft_
101
102 ## Efficient disk snapshot support
103
104 The previous project and a lot of other work could be made significantly
105 more efficient by rethinking the design decisions in qemu's snapshot
106 support. If this is the kind of thing that interests you...
107
108 _Contact: nelhage_
109
110 ## inotify logger for scripts and Debathena
111
112 On both our [web hosting platform](http://scripts.mit.edu/) and Athena
113 cluster machines, we have way more software packages installed than we
114 suspect people use, but no good way of determining this. There's a Linux
115 interface called [inotify](http://en.wikipedia.org/wiki/Inotify) that
116 lets you get notifications when another user accesses the filesystem: it
117 would be pretty simple to use this to collect aggregate (anonymous)
118 statistics of what programs and packages are used frequently or even at
119 all.
120
121 _Contact: geofft_
122
123 ## SIPB PostgreSQL server
124
125 A lot of people prefer Postgres to MySQL, so having a community Postgres
126 server akin to [sql.mit.edu](http://sql.mit.edu/), with similar access
127 control, could be a useful project. You could set it up on
128 [XVM](http://xvm.mit.edu/) with an eye to redoing the configuration on a
129 scripts-hosted VM at some future point.
130
131 This could easily become a bigger project, integrated with scripts'
132 autoinstallers, etc., depending on ambition. Or it can just be a
133 standalone server for people who want access to a Postgres database, but
134 don't want to set up and maintain a server on their own.
135
136 _Contact: mitchb, geofft_
137
138 ## Rewriting "add", "attach", etc. for Debathena
139
140 Athena used to have a system _liblocker_ for managing the /mit
141 directories and attaching and detaching links to networked filesystems.
142 Debathena and Macathena come with an automounter for /mit, so links
143 automatically appear when you use them, and nobdy cares much about
144 detaching them, but we still use most of the complexity of liblocker
145 because we haven't gotten around to cleaning it up. There's a [design
146 proposal](http://debathena.mit.edu/trac/wiki/FixingLiblocker) on the
147 Debathena bug tracker listing what should be a better implementation.
148
149 _Contact: broder, debathena_
150
151 ## Checking scripts.mit.edu servers for consistency
152
153 Now that we have five or six web servers (I've lost count), it's
154 become entirely too easy to change something on one or some but not
155 all of the servers. We often test changes, like newer versions of
156 packages or tweaked configuration, in place on one of the servers, but
157 we'd like something to remind us if we don't copy these changes to all
158 the other servers. This involves checking packages (RPM, perl, etc.) as
159 well as config files in /etc and possibly other things like LDAP config.
160
161 I've also been told by multiple people that
162 [Puppet](http://reductivelabs.com/products/puppet) or some other
163 configuration mangement framework is the Right Answer here. We looked at
164 Puppet and a bunch of others last summer and concluded none fit our
165 workflow well, but we could re-evaluate that.
166
167 _Contact: geofft, scripts-team_
168
169 We'd like a cron job to automatically tell us if
170 there are RPM packages installed on some but not all of the servers,
171 or if there are changes in /etc, other than hostname and such, that we
172 haven't committed to the scripts Subversion repository.
173
174 ## SIPB Library
175
176 SIPB has a bunch of books in its library. It'd be nice if a list of
177 the library books also existed online in some sort of sane, searchable
178 database. One possible platform is the [Exhibit](http://simile-widgets.org/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.
179
180 _Contact: pbaranay, fawkes_
181
182 ## Your Project Here
183
184 SIPB can help you out in terms of both computing resources and
185 experienced people to bounce ideas off of. If you've got an idea for
186 something cool to advance the state of computing at MIT or just
187 computing in general, [[drop by our office|office]] and say hello.