Webdev/Side Projects

From MozillaWiki
Jump to: navigation, search

We all probably one or two interesting little side projects we hack on from time to time.

Let's dump them all onto the table! List anything you would either like some help with, or just think is cool and worth sharing, or are exploring or spending a little time on, whatever your own criteria is. Try to include some of description of what it is and what there is to do, if anything.

adrian

Component Entity Manager for JavaScript games
A simple implementation of the component / entity model in JavaScript. It works both client- and server-side. It is meant to be a basic brick for JavaScrip game libraries or game engines, or for games that don't want to use heavy libraries. I would love to get feedback and reviews of this code, as well as suggestions to make it better.
Fightly Game Engine
Strategic, turn-based game engine for the Open Web. This a pretty heavy project, I want to refactor it a lot to make it really extensible and modular. The Component Entity manager up here was originally made for this project. Contributors to the project would be great, that will motivate me to create some doc and make it easy for others to contribute.

andy

ashort

aricaud

bsavage

ckoehler

cmore

dd

Webdev Project Inventory 
List of web sites and projects maintained by the team.

ednapiranha

Lexicrypt
Lexicrypt is a Python / MongoDB proof-of-concept of token-based steganography. Content (currently text-based) is encrypted using AES and can only be accessed by users who have their API tokens added to the access list for it. More info coming soon - will be posted as development progresses at lexicrypt.com
The Great Brain
The Great Brain is a Node.js / jQuery experiment allowing multiple users to contribute text/images/audio to various 'nodes' that randomly communicate to each other and activate the node.
Web Imagery
Web Imagery retrieves images from the following popular services: Instagram, Imgur, Flickr, Path, Skitch, Minus, Cloud App.
Auto Tagify
Auto Tagify uses NLTK to auto tag words in a body of text.

erik

MediaWiki Parser
A research project turned Summer of Code project turned side project again, this is an attempt to parse the horrific MediaWiki syntax into an actual syntax tree in pure Python. At the moment, we have a working 2-pass parser that supports templates and basically all of MW syntax worth having outside an actual deployment of MediaWiki. We also have outputters that transform the tree into HTML and plain text. It's just slow (3s per page), so we have a bunch of exciting optimization work to do.
nose-progressive
A really nice way to debug your Python code. nose-progressive is a nose plugin which displays progress in a stationary progress bar, freeing the rest of the screen (as well as the scrollback buffer) for the compact display of test failures, which it formats beautifully and usefully. It displays failures and errors as soon as they occur and avoids scrolling them off the screen in favor of less useful output. It also offers a number of other human-centric features to speed the debugging process. The governing philosophy of nose-progressive is to get useful information onto the screen as soon as possible and keep it there as long as possible while still indicating progress. Version 1.0 is just about to come out, with significant usability improvements and pretty colors and bears.

in_progress.png

stackful
A variant on Lisp-style dynamic variables for Python. They're akin to Perl’s local variables but with less tendency to degrade into spaghetti. Use it with care, and you can quickly defeat many common cases of coupling without having to refactor the world.
django-tidings
django-tidings is a framework for sending email notifications to users who have registered interest in certain events, such as the modification of some model object. Used by support.mozilla.com, it is optimized for large-scale installations. Its features include...
  • Asynchronous operation using the celery task queue
  • De-duplication of notifications
  • Association of subscriptions with either registered Django users or anonymous email addresses
  • Optional confirmation of anonymous subscriptions
  • Hook points for customizing any page drawn and any email sent
rust
…which so far I've made only documentation contributions to, but the bootstrap process continues. :-)

espressive

Watcher : https://github.com/ossreleasefeed/Watcher

A Nodejs module that watches a single or multiple files and reloads all connected clients when any of the files change. Useful while cross browser testing and debugging

gkoberger

Unnamed project
An HTML drawing tool NOT named after a product we all know.

jgrlicky

jlongster

OMGBUGS
OMGBUGS is a node.js-powered Bugzilla interface. It scrapes your saved searches and indexes your bugs in redis, making everything lightning-fast. The interface provides your saved searches, a sortable/filterable/customizable table for viewing bugs, bug details in a popup, light editing functionality, view and post comments, query your buglists and graph statistics, and more. View the site at http://jlongster.com:8001/.

jsocol

Joshua
Joshua is a way to deal with user-uploaded files when we have sites hosted in multiple data centers. There are already a dozen or so of these tools, but I was curious how hard it would be to create one. It's all Python, built on Tornado. It's protocol-based, running entirely over HTTP—so in the future some enterprising developer could create a Joshua server in another language. It doesn't so much work. It accepts uploads and deletes from the client interface, and will serve files from the public interface, but the peer-to-peer/node-to-node interface doesn't work yet. Help would be awesome, in the form of patches or just pointing out things I've forgotten or am doing wrong.
Bleach
Bleach is our whitelist-based, Python HTML sanitization tool! There are always things that can be added, but at the moment I'd really love to see a refactor that would allow methods to be chained without necessarily rebuilding a DOM tree. linkify() is also huge and nasty now, and I am curious to see what kind of improvements could be made there.
Jig
Jig, for Jenkins-IRC-Github, is a simple Node HTTP server/client/IRC bot that accepts Github's post-commit payload, filters by branch, posts into IRC, and triggers Jenkins builds (allows you to specify a Jenkins job per branch, since Github doesn't discriminate with payloads). It runs kitsunebot in #sumodev. It doesn't do a whole lot--I suspect it could be more useful. There are a couple issues filed. One thing I think would be fun is achievements. Help is appreciated!

kumar

lars

laura

lcrouch

django-appetizer
django-appetizer is a reusable Django app for creating Open Web App manifests to django sites.

lonnen

lorchard

django-badger
django-badger is a Playdoh-biased reusable Django app for creating and awarding badges. You can use Django signals to track important award-worthy events in your site, track progress and dependencies, issue awards automatically. Additionally, django-badger aims for compatibility with Mozilla's Open Badges infrastructure, allowing badges to be federated and collected elsewhere. There are also feeds for almost everything in JSON, RSS, and Atom formats for great mashup justice.
django-badger-multiplayer
django-badger-multiplayer augments django-badger by letting people create their own badges, nominate each other for awards, and generally turn badges into a multiplayer affair. Eventually, this should do most of the stuff I wrote about last summer
badger2
badger2 is a playdoh site that hopes to be the reference demo for django-badger and friends
domjot
domjot is a personal hypertext notebook (ie. a wiki) I started working on as a response to the older code in TiddlyWiki. The data model is HTML5 - article as the document, sections as the notes. The code is built from request.js, backbone, and random other fun stuff.
robokuma
robokuma aspires to be a node-based IRC bot that can announce daily standup meetings, capture logs and publish as web archives, highlight links mentioned and summarize what everyone's doing
Tinkering with Activity Streams
Tinkering with Activity Streams will be my next book, self-published, if I ever get back to it.

malexis

mkelly

Charas-Project
Charas ([1]) is a website for RPG Maker enthusiasts. It's primarily known for it's large repository of sprites, tilesets, midis, etc. as well as it's sprite generators that let you build sprites. This project is my attempt at re-making the site using Playdoh.

morgamic

Social
Amply named, it's trying to help Firefox kickstart its social itegration. Our mission has a clause about projects that, "give people tools to take control of their online lives." I believe we can do that, and I'm getting things started with dascher to make it a reality.
Management
Not really code-related, but I'm trying to build a management community at Mozilla, working with folks in people dept to encourage folks to share what works/doesn't work so we can establish more consistency in management and leadership at Mozilla.

nigelb

Geektionary
Like urban dictionary, but open source! I haven't started anything yet. I started with the idea of coding it in Flask + MongoDb, I might just use Django/Playdoh + Postgres instead.

ozten

peterbe

potch

rhelmer

ricky

dotjs (code)
dotjs is a Firefox Add-on that executes JavaScript files in `~/.js` based on their filename and the domain of the site you are visiting. Also has support for coffeescript and injecting CSS.

robhudson

django-debug-toolbar: Shows lots of things Django is doing behind the scenes on each request, like SQL queries and which templates are rendered, etc. Authored and now co-maintain with David Cramer of Disqus.

At my previous job I wrote pivotal-py, a lightweight wrapper around the Pivotal Tracker API. The original impetus was to email each developer a daily snapshot of all of our open bugs each morning. I've used the same pattern for the Untappd API and have been pondering a possible API wrapper toolkit idea for APIs that follow good REST patterns.

seanmonstar

Shipyard
Shipyard is a sink-included MVC framework in JavaScript. Add-on Builder is currently get transformed into it. Wee!

skinny

ubernostrum

timw

Django Statomatic
django-statomaic is a pure Django static-site generator. Alternative to Jykell.

tofumatt

Kijiji Kombat
Firefox add-on that removes annoying UX fails of the popular-in-Canada (but terrible-to-use) Kijiji website.
vacation-bot
A node.js IRC bot that reminds you of your vacationing web developer friend.

In development and not ready for primetime:

rails-annoying
Ruby Gem that takes some common, minor annoyances out of Rails (or your Rails code).
Quotes.txt
Django app -- A collection of the funny things you and your friends say that no one should read.

wenzel

Straßendeutsch
Straßendeutsch (German for: Street German) is a German UrbanDictionary clone (such sites exist, but they all suck). I use it as an excuse to play with Flask and MongoDB and Twitter Bootstrap. It doesn't do much yet, nor have I staged it anywhere. Baby steps!
Copy ShortURL
Copy ShortURL is my favorite little Firefox add-on based on the Addons SDK. Right-click -> Copy ShortURL works well, but there's no convenient way to configure it yet. It's in urgent need of a preference window.
Python-Bcrypt
python-bcrypt is a pure Python implementation of bcrypt. It works, but is ridiculously slow in CPython (factor 300 slower than C), in PyPy a not-as-painful 10x slower than C. While it might never become a viable alternative to py-bcrypt (the wrapped C library), it could use some optimization love (make sure it never exceeds 32bit ints?) if you're into this kind of thing.
Stapler
A small PDF manipulation tool written in Python. It makes use of the PyPDF library to act as a somewhat more lightweight alternative to pdftk
Millimeter
A simple Django-based, private (i.e., login-only) URL shortener. If you want to play with django-piston (or so), it should be really easy to add an API.

wil

willkg

Pyblosxom
Pyblosxom is a file-based blog system that allows you to use your existing text-editing tools/workflow to blog.
Python Miro Community
Python Miro Community is a curated index of Python-related video primarily from conferences like PyCon, DjangoCon, PyOhio, .... It's a great resource for keeping up with what's going on conference-wise. Runs on Miro Community and I'm integrating Universal Subtitles now, too.
MediaGoblin
MediaGoblin is a media-posting system in its early stages.
phil
phil is a command line utility that sends reminder emails about meetings as defined in an iCalendar file.