more projects
[wiki.git] / hackathons / great-hacksby / projects.mdwn
index 6c9f8584495614c85cc6b1055b08e4b2e79ec96a..ff16e3a8b8b159a6ff6d97a12c99fbca97ad05ae 100644 (file)
@@ -1,3 +1,36 @@
+[Scripts](http://scripts.mit.edu)
+=================================
+talk to:
+--------
+- [Edward Z. Yang](mailto:ezyang@mit.edu)
+- [Geoffrey Thomas](mailto:geofft@mit.edu)
+- [Alex Chernyakhovsky](mailto:achernya@mit.edu)
+- [Quentin Smith](mailto:quentin@mit.edu)
+
+Scripts is SIPB's shared webhosting service for the rest of MIT.  Even if you don't end up working on the infrastructure backing this project, chances are you will use Scripts to setup a website of your own.
+
+We have lots of small to big projects to attack during this hackathon.  Here are some that we've given some thought to already:
+
+- **Scripts DNS**.  It is currently possible to request ``*.mit.edu`` hostnames from http://pony.scripts.mit.edu, as well as have an external name provider have its DNS server point to Scripts hosts. However, some domain name sellers only do registration and do not manage DNS servers; we should offer a DNS server to provide the correct records in this case. This project would involve setting up such a nameserver, using the [XVM nameserver](http://xvm.mit.edu/gitweb/invirt/packages/invirt-dns.git) as a starting point.  There are several technical issues to address: not all *.mit.edu hostnames exist, so you need to modify the source code to query our LDAP server and NXDOMAIN if it doesn't exist, rather than a Postgres database. You will also need to protect against cache poisoning attacks by running two different BINDs (one local and one public). If you're super ambitious, add the capability to take arbitrary zone files from users and serve them.
+
+- **Google Spreadsheets clone**. A frequent request we get from users of Scripts is the ability to make a form to collect information.  Right now, your choices are install some sketchy form collection software from the web, or build one from scratch using Django.  We should create a Google Spreadsheets clone that does all of this for you.  The bonus of running this on Scripts is that you get personal certificate authentication (that is to say, we can automatically identify a user with their Athena account when they access the webpage) and we can offer more complex APIs like a SQL database which you can build a full-fledged application off of.  Some design considerations: will this just be a webapp, or something more closely integrated with Scripts?
+
+- **Subversion and Git mirroring**. One selling point of [Heroku](http://www.heroku.com/) is that deployment is as simple as pushing to a remote Git repository. Now, we have a [Subversion/Git autoinstaller](http://scripts.mit.edu/faq/93/can-i-serve-subversion-or-git-repositories-on-scriptsmitedu), but we don't have a live deployment option. Implement this. This would involve writing hooks which update an appropriate checkout (what if it's dirty?), and possibly run other user-specific code.
+
+- **Who's the admin?** Given a Scripts website, who administers it? This is a simple project that will get you acquainted with Moira, MIT's IT management database, and also help us improve our user experience (for example, if you try to sign up a locker you don't own, we should say you don't own it and let you know who does.)
+
+- **Over 9000 tables.** If you run the MySQL backup program "mysqldump" on a
+database with many thousands of tables, [it crashes](https://scripts.mit.edu:444/trac/ticket/154) because it has too
+many open file handles. There's no obvious need to open each table
+simultaneously, though -- can mysqldump be modified to only open one
+table at a time? Here's [the source](http://bazaar.launchpad.net/~mysql/mysql-server/mysql-trunk/view/head:/client/mysqldump.c).
+
+- **Pony for autoinstalls.** We have [a nice interface](https://pony.scripts.mit.edu:44) for managing all of the hostnames you own. We do not have a nice interface for managing all of the autoinstalls you have made. Using [wizard](http://scripts.mit.edu/wizard) build an interface that lets you know about all the autoinstalls you have, and lets you upgrade them, check what your diff with upstream is, back them up, or delete them.
+
+- **Scripts Liberation.** It's your data.  Write an application which makes it easy to take all of your information off of Scripts (SQL especially) and move it somewhere else.
+
+- **Reset my password from the command line.**
+
 [Straversity](http://straversity.com/mit/)
 ==========================================
 talk to:
@@ -6,6 +39,8 @@ talk to:
 
 Central Hub for a variety of MIT websites, much more comprehensive than MIT's main site for an easier method of finding desired MIT sites and discovering new ones. 
 
+To get involved, you should know HTML, JavaScript, jQuery, and CSS. 
+You'll also want to know a backend language for more, complex, and easier integration. (That will make sense when I talk about it.) Should be very simple to think of something innovative and how to implement it quickly.
 
 
 
@@ -21,23 +56,28 @@ Current technologies used are  argus - http://www.qosient.com/argus/ - ruby, bou
 
 smiopp is currently set up and being quite useful at http://pika.mit.edu - the display looks like this and updates every five minutes with the average of the previous 5 minutes:
 
-Peverill, Matthew
-PIKA-SIXTY-TWO 00241d17d578
-up 6 KB/s (0%) down 288 KB/s (22%)
+    Peverill, Matthew
+    PIKA-SIXTY-TWO 00241d17d578
+    up 6 KB/s (0%) down 288 KB/s (22%)
+
+    Fernandes, Braulio Pessoa
+    18.214.1.234 e0f8470f190e
+    up 5 KB/s (0%) down 209 KB/s (16%)
 
-Fernandes, Braulio Pessoa
-18.214.1.234 e0f8470f190e
-up 5 KB/s (0%) down 209 KB/s (16%)
+    Visit https://nic.mit.edu/dhreg/support/
+    PIKA-ONE-FORTY-FIVE 001e33d26666
+    up 3 KB/s (0%) down 77 KB/s (6%)
 
-Visit https://nic.mit.edu/dhreg/support/
-PIKA-ONE-FORTY-FIVE 001e33d26666
-up 3 KB/s (0%) down 77 KB/s (6%)
+    YFNCC
+    HOGGLE 00114305f429
+    up 0 KB/s (0%) down 1 KB/s (0%)
 
-YFNCC
-HOGGLE 00114305f429
-up 0 KB/s (0%) down 1 KB/s (0%)
 
 (note that one of the tasks is doing incremental update so the "visit" stanzas go away)
 
 There is a not actually used yet mostly current dump of code and doc at:
 http://gitorious.org/smiopp
+
+The project needs someone who is proficient in either Ruby or Python. In addition, C knowledge would be useful.
+
+I am able to spend as much time as needed to get someone up-to-speed. After that I'll be spending time making the documentation and packaging not suck, which would also help someone new.