Convert most http: links to https:
[wiki.git] / hackathons / great-hacksby / projects.mdwn
index a96e19e30e213bceb04b9157dfaa69be5da51417..a7b8987b73469777607f96f76ab8a1fa7e6d2655 100644 (file)
@@ -1,6 +1,6 @@
 There are a lot of projects: Scripts, BarnOwl, Straversity, smiopp and cyclist all have different things to work on. Skim through, see what catches your fancy.
 
-[Scripts](http://scripts.mit.edu)
+[Scripts](https://scripts.mit.edu)
 =================================
 talk to:
 --------
@@ -13,11 +13,11 @@ Scripts is SIPB's shared webhosting service for the rest of MIT.  Even if you do
 
 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.
+- **Scripts DNS**.  It is currently possible to request ``*.mit.edu`` hostnames from https://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.
+- **Subversion and Git mirroring**. One selling point of [Heroku](https://www.heroku.com/) is that deployment is as simple as pushing to a remote Git repository. Now, we have a [Subversion/Git autoinstaller](https://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.)
 
@@ -25,20 +25,20 @@ We have lots of small to big projects to attack during this hackathon.  Here are
 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).
+table at a time? Here's [the source](https://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.
+- **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](https://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.
 
 - **Pony for cron.** Editing crontabs? That's so 90s! Code up a spiffy interface for editing your cronjobs, scheduling them, and testing to make sure they work (even when all your environment variables get nuked.)
 
 - **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.** OK, so you forgot your password. You click "Forgot my password" and you get emailed a password. Oh, you say you didn't set your password? Well, then you might have to go edit the database. Maybe that's not so user friendly. What if you could run 'wizard change-password' and then have a nice, application-aware tool to change passwords? Might be handy. Add a 'change-password' command to [wizard](http://scripts.mit.edu/wizard).
+- **Reset my password from the command line.** OK, so you forgot your password. You click "Forgot my password" and you get emailed a password. Oh, you say you didn't set your password? Well, then you might have to go edit the database. Maybe that's not so user friendly. What if you could run 'wizard change-password' and then have a nice, application-aware tool to change passwords? Might be handy. Add a 'change-password' command to [wizard](https://scripts.mit.edu/wizard).
 
 - **A more friendly Forbidden sign.** There are any number of conditions that could lead to a 403 on Scripts, including an explicit Deny rule, a poorly chosen file extension, a CGI script lacking an executable bit, etc. Right now, we give no guidance about what of these many, many problems is afflicting any given page. If you don't know much about coding but want to write documentation that will make a difference, try redesigning a 403 page that is actually helpful! If it's good, we'll deploy it on our servers and you will aid new Scripts users all over MIT's campus.  A similar project is for the **Welcome** page, which we should place in a new signup's web_scripts directory, to let them know how to use their shiny new Scripts instance.
 
 
-[BarnOwl](http://barnowl.mit.edu/)
+[BarnOwl](https://barnowl.mit.edu/)
 ==================================
 talk to:
 --------
@@ -50,15 +50,15 @@ BarnOwl is a curses-based IM client used by many MIT students.  Work you do here
 
 - **More tab completion**.  BarnOwl supports tab completion for a subset of its commands.  Enlarge this subset; it's not particularly hard.
 
-- **Google Plus support**.  Google Plus recently published an [API](http://developers.google.com/+/api/). Integrate it with BarnOwl! We have lots of other plugins adding support for things like Facebook and Twitter which you can use to get some inspiration. A subproject would be making Perl bindings for the Google Plus API.
+- **Google Plus support**.  Google Plus recently published an [API](https://developers.google.com/+/api/). Integrate it with BarnOwl! We have lots of other plugins adding support for things like Facebook and Twitter which you can use to get some inspiration. A subproject would be making Perl bindings for the Google Plus API.
 
 - **Facebook direct message support**.  We recently landed Facebook support in the trunk, but it only supports messaging on walls. Add support for direct messages.
 
-- **GMail new message support**. Now you can obsess over your new emails in realtime! Add support for GMail's notification API: http://code.google.com/apis/talk/jep_extensions/gmail.html (see our existing XMPP bindings.)
+- **GMail new message support**. Now you can obsess over your new emails in realtime! Add support for GMail's notification API: https://code.google.com/apis/talk/jep_extensions/gmail.html (see our existing XMPP bindings.)
 
-- **Setup [gerrit](http://code.google.com/p/gerrit/)**. We've been talking about moving from github to gerrit, which seems to have a better code review model, but we haven't had the chance nor time to set one up.
+- **Setup [gerrit](https://code.google.com/p/gerrit/)**. We've been talking about moving from github to gerrit, which seems to have a better code review model, but we haven't had the chance nor time to set one up.
 
-- **Solve and close some trac tickets**. We have a bunch of [open issues on trac](http://barnowl.mit.edu/query).  Look through them and pick one to work on.  In particular, [#119](http://barnowl.mit.edu/ticket/119), [#122](http://barnowl.mit.edu/ticket/122), [#156](http://barnowl.mit.edu/ticket/156), [#162](http://barnowl.mit.edu/ticket/162), [#167](http://barnowl.mit.edu/ticket/167), [#192](http://barnowl.mit.edu/ticket/192), and possibly [#17](http://barnowl.mit.edu/ticket/17), [#193](http://barnowl.mit.edu/ticket/193), [#194](http://barnowl.mit.edu/ticket/194) all seem fairly reasonable for someone not particularly familiar with the code.
+- **Solve and close some trac tickets**. We have a bunch of [open issues on trac](https://barnowl.mit.edu/query).  Look through them and pick one to work on.  In particular, [#119](https://barnowl.mit.edu/ticket/119), [#122](https://barnowl.mit.edu/ticket/122), [#156](https://barnowl.mit.edu/ticket/156), [#162](https://barnowl.mit.edu/ticket/162), [#167](https://barnowl.mit.edu/ticket/167), [#192](https://barnowl.mit.edu/ticket/192), and possibly [#17](https://barnowl.mit.edu/ticket/17), [#193](https://barnowl.mit.edu/ticket/193), [#194](https://barnowl.mit.edu/ticket/194) all seem fairly reasonable for someone not particularly familiar with the code.
 
 
 [Straversity](http://straversity.com/mit/)
@@ -90,7 +90,7 @@ talk to:
 
 Some MIT living groups have relatively slow internet connections (usually 10/10). As do some small business, etc. It's useful to have a public display showing who is using the most bandwidth (and how much), so they can be asked to throttle their use if they are making the connection slow for everyone else. Also, just knowing that the display exists seems to make people more mindful of their bandwidth use.
 
-Current technologies used are  argus - http://www.qosient.com/argus/ - ruby, bourne shell. Future work will include SNMP, and the code is simple enough it could be re-written entirely in ruby or python by someone clueful in under an hour (except that for python a feature - the ability to use client-side SSL certificates - may need to be added to a library first).  Also we need to use a very new/untested feature of argus for SNMP integration, so C knowledge would also be useful.
+Current technologies used are  argus - https://www.qosient.com/argus/ - ruby, bourne shell. Future work will include SNMP, and the code is simple enough it could be re-written entirely in ruby or python by someone clueful in under an hour (except that for python a feature - the ability to use client-side SSL certificates - may need to be added to a library first).  Also we need to use a very new/untested feature of argus for SNMP integration, so C knowledge would also be useful.
 
 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: