]> sipb.mit.edu Git - wiki.git/blobdiff - projects/ideas.mdwn
(no commit message)
[wiki.git] / projects / ideas.mdwn
index dcfa9f4ccca60045e77af4029438df251d91b46f..d1d6803aa8801dbb14e32817ba3ef8d605195b22 100644 (file)
@@ -14,6 +14,8 @@ interesting or you want advice getting started.
 
 A [[list from 2008-2009|/doc/project-ideas]] may also have some relevant ideas.
 
 
 A [[list from 2008-2009|/doc/project-ideas]] may also have some relevant ideas.
 
+[[!toc]]
+
 ## "add me to this list" button
 
 If I'm a webmaster for some group with an announcement list, it would be
 ## "add me to this list" button
 
 If I'm a webmaster for some group with an announcement list, it would be
@@ -78,16 +80,6 @@ This would be immensely more useful as an iPhone application.
 
 _Contact: ccpost_
 
 
 _Contact: ccpost_
 
-## Safari plugin for setting identity preferences
-
-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.
-
-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.
-
-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.
-
-_Contact: broder_
-
 ## Snapshotted virtual machines for all popular Linux distributions
 
 A common need for people writing Linux software is to check that their
 ## Snapshotted virtual machines for all popular Linux distributions
 
 A common need for people writing Linux software is to check that their
@@ -168,24 +160,130 @@ database. One possible platform is the [Exhibit](http://simile-widgets.org/exhib
 
 _Contact: pbaranay, fawkes_
 
 
 _Contact: pbaranay, fawkes_
 
-## Search across every public git repository
+## Improve the Setup and UI for new users of Zephyr
+
+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.
+
+_Contact: afarrell_
+
+## Build a web client providing full control to the user
+
+Create a web browser extension (or possibly a stand-alone browser) that is "web-developer antagonistic".  It essentially takes full advantage of the
+immense power of a web client, ignoring the wishes of the web developer and server while letting the user take full control.  Every JavaScript event (ideally variable, function, etc.), every rendering decision, every cookie setting, every HTTP request, if the user so desires, etc. is not only made visible but easily changeable.  When making a request, every aspect of the
+transaction can be completely fiddled with.
+
+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.
+
+_Contact: leonidg_
+
+## Improve git with shared checkouts
+
+Around SIPB we're kind of [big](http://sipb.mit.edu/iap/git/) [fans](http://web.mit.edu/cluedumps/slides/understanding-git-2008.pdf) [of](http://blog.nelhage.com/2010/01/on-git-and-usability/) [git](http://negativespace.mit.edu/2010/03/08/gitionary-the-graphical-game-of-git-guessing/). 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.
+
+_Contact: broder_
+
+## Scripts Pony Improvements
+
+[Scripts Pony](http://pony.scripts.mit.edu) 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](http://web.mit.edu/pony/TODO) for more ideas.
+
+_Contact: xavid_
+
+## A zephyr log viewer
+
+Many SIPB-affiliated people use the [Zephyr](http://zephyr.1ts.org/) messaging system, and the [Barnowl](http://barnowl.mit.edu/) 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.
+
+_Contact: oremanj_
+
+## Multiple views in BarnOwl
+
+[BarnOwl](http://barnowl.mit.edu/) 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.
+
+_Contact: davidben_
+
+## Etherpad
+
+[Etherpad](http://etherpad.com/) 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](http://gobby.0x539.de/trac/wiki/Infinote/Protocol), which appears to have some F/OSS implementations already), or integration with [codepad](http://codepad.org/) or [gists](http://gist.github.com/).
+
+_Contact: geofft_
+
+## RFC pretty-printing
+
+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.
+
+_Contact: geofft_
+
+## scripts.mit.edu file upload form
+
+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.
+
+_Contact: geofft_
+
+## fakechrooted distros in AFS
+
+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_
+
+## Zcommit: A git-to-zephyr connector
+
+For git repositories that we have control over, it's easy to use our home-grown [post-receive zephyr hook](http://web.mit.edu/snippets/git-hooks/zephyr-post-receive) to send zephyrs when somebody pushes. We can't directly edit hooks on sites like [Github](http://github.com). However, Github does support [submitting a POST request](http://help.github.com/post-receive-hooks/) to an arbitrary URL when somebody pushes. We've created [zcommit.mit.edu](http://zcommit.mit.edu) to allow people to send commit zephyrs from Github.  Now we'd like to extend it to other public code hosting platforms with similar APIs, such as [Bitbucket](http://www.bitbucket.org/help/ServiceIntegration#post) and [Google Code](http://code.google.com/p/support/wiki/PostCommitWebHooks).
+
+_Contact: broder, gdb_
+
+## A couple of C/C++ hacking projects
+
+* Each AFS cell has its own database of users and groups. If you run `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 `ls` to permit it to call `pts examine` (or, rather, the AFS library equivalent) against the appropriate servers instead of `getpwnam` etc. on AFS files. See also [Debathena Trac #300](http://debathena.mit.edu/trac/ticket/300).
+* OpenSSH has an option to enable [non-strict acceptor checking](http://www.sxw.org.uk/computing/patches/openssh-patches/strict-acceptor) for Kerberos authentication, so you can ssh to, say, scripts.mit.edu and successfully authenticate despite being load-balanced to a machine that thinks its name is, say, old-faithful.mit.edu. (Specifically a non-strict acceptor lets you authenticate to a machine using any credential in its keytab; a strict acceptor will require that you authenticate to the specific key for the machine's name.) Port the non-strict acceptor option to [Cyrus SASL](http://asg.web.cmu.edu/sasl/) so that scripts.mit.edu can pull the same trick for SVN and LDAP and so forth.
+* I often find that [sbuild](http://packages.debian.org/stable/sbuild) installs many of the same packages into the "base" chroot; for instance, a bunch of Debathena packages depend on cdbs and config-package-dev. sbuild should have the ability to take advantage a chroot with these packages preinstalled (so long as all the packages in this chroot still are a subset of the build dependencies), and for extra awesome bonus points, look at a repository and suggest what non-base chroots I should create.
+* [Write a caching NSS module](http://debathena.mit.edu/trac/ticket/486) that will play more nicely with Debathena than nscd (the current solution) does. It will probably end up looking like nss_nonlocal.
+
+_Contact: mostly geofft_
+
+## Binary compatibility between OSes
+
+Help the cause of OS ecumenism! FreeBSD provides [binary
+compatibility](http://www.freebsd.org/doc/handbook/linuxemu.html) 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](http://macathena.mit.edu).
+
+_Contact: geofft, kaduk_
+
+## Consolidate and Update Athena documentation
+
+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_
+
+## Web zephyr
+
+BarnOwl is a great program, but it's typically most useful when you can SSH to a server somewhere and run it in screen. It would be nice to have some sort of webpage where you could send and view zephyrs. I've written one, but it's not ideal -- in particular, it depends on having a daemon running somewhere to collect and store zephyrs. There's probably a better way, though I have no idea what it is. (Zcommit would be useful for sending; viewing is trickier.) Ideas?
+
+_Contact: cesium_
 
 
-The [git](http://www.git-scm.com/) version control system has been
-rapidly gaining in popularity both in the world of free software at
-large as well as at here at SIPB. One of the properties of git is
-that every object, whether it's a specific version of a file or a
-changeset to a project's source code, has a unique identifying hash
-(e.g., "8c5fa44b1a4902ba1f84a71df20bfe4f21867a7c"). Given one of these
-hashes, it should be possible to identify which project it came from
-and what it refers to.
+## MiTeX
 
 
-The "easy" way to do this is to create a massive single git repository
-with references to every public git repository we can find, but that
-probably causes performance problems, so you may need to be cleverer
-about how data is stored and expose a different interface. You'll
-also need to figure out a way to find all public git repositories.
+Online WYSIWYG Latex editor. Features include Google Preview and equation support.
 
 
-_Contact: geofft, nelhage_
+_Contact: leonidg, mats_a, jgross
 
 ## Your Project Here
 
 
 ## Your Project Here