mdg labs

I couldn’t have gotten where I am today without the generous help of others, so I’d like to try to give a little back. I’ve done a little bit of work in the open source community, and have high hopes that my contributions will increase in the coming months/years.

I keep my current public projects/code available on a few different repositories:

Some of the work I’ve done (or ideas I’ve had) recently include:

  • Paypal Adaptive Payments API in Python: I forked Pat Collins’ paypal-python API to extend it to support the new Adaptive Payments. I haven’t made much progress yet. Check out paypal-python on Github for more information.

  • Culture Shock: I’ve had a few hallway conversations with coworkers about karma and point-systems as a tool to encourage developer growth, make coding and testing more fun, and to encourage software craftsmanship. Check out culture-shock on Google Code for more information.

  • Python AntiSamy: The goal is to bring comprehensive cross-site scripting (XSS) protection to python web applications. There are some great java tools for web security, but no tools have great integration with the python web frameworks. Check out pyantisamy on Google Code for more information.
  • Ski Reports for the iPhone: I took a few minutes to write a web scraper and front end for an iphone-enabled ski report web app. The front end uses the IUI library, on top of a web.py python app. The backend is python, controlled by bash/cron. Check out Cleveland area ski reports for the iPhone.
    Source code forthcoming.
  •  

    >>> import this
    The Zen of Python, by Tim Peters
    
    Beautiful is better than ugly.
    Explicit is better than implicit.
    Simple is better than complex.
    Complex is better than complicated.
    Flat is better than nested.
    Sparse is better than dense.
    Readability counts.
    Special cases aren't special enough to break the rules.
    Although practicality beats purity.
    Errors should never pass silently.
    Unless explicitly silenced.
    In the face of ambiguity, refuse the temptation to guess.
    There should be one-- and preferably only one --obvious way to do it.
    Although that way may not be obvious at first unless you're Dutch.
    Now is better than never.
    Although never is often better than *right* now.
    If the implementation is hard to explain, it's a bad idea.
    If the implementation is easy to explain, it may be a good idea.
    Namespaces are one honking great idea -- let's do more of those!
    

Categories