

Ask HN : Which opensource project for beginner python developer - simplyJump

I like python and consider myself at beginner level. I've never contributed to an open source project, hence not sure how things go. But want to start now.<p>Need some advice on the below points -<p>1.) What are the projects available at my level. If you know one from the top of your head, great !<p>2.) Apart from my own interest (algorithms, frameworks, monitoring systems). What should I be looking for in an open source project ?<p>I checked github, the number of projects out there are huge, to say the least. Need something to start/get my feet wet, then I can dive full force in a month.<p>Thanks for any suggestions you have.
======
jolan
Work on an open source project that you actually use so you have some
motivation to improve the codebase and know what improvements to make.

------
dho
PyPy is looking for contributors: <http://morepypy.blogspot.com/2011/01/pypy-
wants-you.html> (via <http://news.ycombinator.com/item?id=2127461>)

~~~
simplyJump
This sounds interesting. Thanks

For others in my boat, who didn't know what exactly pypy was
-<http://rayli.net/blog/2010/04/what-is-the-purpose-of-pypy/>

------
MichaelStubbs
The way I started out was contributing small patches to the Reddit (social
news website) code base. The source code _can_ be pretty daunting at first,
but once you spend some time with it then it's pretty easy to learn.

Reddit has several of your interests in common. Algorithms regarding voting,
built on the the Pylons framework, monitoring systems to make sure the
services are up and running. For me, as someone who is still relatively new to
Python, Reddit has a good combination of technology I know about and
technology I want to learn about. I'd really recommend checking it out.

There are also subreddits such as <http://www.reddit.com/r/bugs> and
<http://www.reddit.com/r/ideasfortheadmins> that can give you an idea for
features, suggest bugs that may need fixing or even just enhancement requests.

Provided that you're nice, the community is very welcoming and open. The
admins are all fantastic guys, as well, which is a real bonus.

<http://code.reddit.com/> \- take a look.

------
patd
Find a project that you already use or that you like that supports plugins.
Write one plugin and learn by looking at other plugins.

On the top of my head: deluge (bittorrent client) emesene (MSN client) XBMC
(media center)

If you're a Gnome user, most applications support Python plugin (Nautilus,
GEdit, ...)

Shameless plug on my part, you could make a plugin for my open source project
called periscope. It downloads video subtitles from various websites
<http://code.google.com/p/periscope/>

~~~
simplyJump
This also is a pretty good idea. I know django supports plugins. I've written
some for my site.

------
aspir
I'm learning python as well and would benefit from an answer to this question.
A friend suggested building a web scraper, which sounds reasonable, but I'd
also want to work on a larger endeavor (but not too big).

------
japherwocky
<http://github.com/facebook/tornado> is a pretty simple, useful project. You
could set up ab and try to make it faster!

~~~
j2d2j2d2
I have to disagree. The IOLoop is not trivial and could lead to some major
confusion.

------
michaelfairley
Mincemeat.py (<http://mincemeatpy.com>) is fairly simple, only uses standard
libraries, and definitely welcomes contributions.

(I am the maintainer of mincemeat.py)

~~~
pjkundert
Agreed. Quite simple to use, and provides a good foundation for learning about
Map/Reduce with little initial overhead.

I'm working on a fork (<https://github.com/pjkundert/mincemeatpy>) which
enhances the robustness of the asyncore/async_chat based networking code (in
addition to adding a Client to Server back-channel, to allow Clients to
schedule Map/Reduce tasks), for use in a shipping product.

------
chr15
You could subscribe to the project's mailing list or join the IRC channel and
answer any questions that newbies have. This is probably a softer introduction
to contributing to an open source project than committing code.

For example, I know the Django mailing list is pretty active and there are a
lot of questions that can be answered.

------
agentultra
I have a relatively simple project: <http://code.google.com/p/tracshell>

There are some outstanding issues that still need looking into. It's also not
feature complete (but there is enough done that it's usable, I eat my own dog
food) so there are enhancements to work on as well.

It just started off as an afternoon hack and a few people have added things to
it over time. You'll get some experience with core library modules as well as
third party modules. You can work with terminals, RPC, etc. Nothing terribly
hard, but challenging to a beginner in many areas.

------
karlclement
Hello there,

<http://www.djangoproject.com/>

The Django project is one of the best frameworks for Python Programming. If
you would like to contribute to the visit this link:

[http://docs.djangoproject.com/en/dev/internals/contributing/...](http://docs.djangoproject.com/en/dev/internals/contributing/?from=olddocs)

This page explains how you can contribute to the project.

You can also contribute to few popular desktop Python programs such as Miro
and Blender.

Good luck!

Karl

------
Lewisham
I have an API for the World of Warcraft Armory which almost certainly broke
after they updated when Cataclysm was released.

It's not brilliant code (particular shame for the testing, or lack thereof)
but it should be fairly readable and does what I think is a cool thing :)
You'll learn some stuff about SQLAlchemy/ORMs and web scraping along the way.

<http://www.github.com/lewisham/wowspyder>

------
octopus
Port a Pyhton 2.x library to Python 3.x. Take PIL (Python image library) for
example, this is a great image processing library that seems to stagnate in
the 2.x world for a few years.

It will be fun and you will learn a lot.

If this seems too difficult, then take a good introductory book like "Invent
Your Own Computer Games with Python" and implement by yourself all the include
projects.

------
gomer
Twisted seems like a good option. Here is a good question on stackoverflow
with some comments: [http://stackoverflow.com/questions/117561/what-are-good-
open...](http://stackoverflow.com/questions/117561/what-are-good-open-source-
projects-in-python-for-which-i-can-be-a-contributor) Although, you should try
to find something you have a personal interest in as well.

~~~
japherwocky
Twisted is kind of notorious for being difficult to pick up and use, even for
experienced Python programmers..

------
Sargis
I'd like to learn more about HTTP, web servers, etc... Which open source
project should I start with?

~~~
kingsidharth
Django? Flask?

~~~
Sargis
I think Django would be too complicated for me. Hadn't thought about Flask
before. Thanks!

~~~
gkelly
I've had great experiences with the django source code. It is very readable,
well-commented, and has tests for everything.

I'd suggest reading the tests for django.forms, and then reading the source
code. From there, one can then dive into other sections of django.

------
cloudkick
libcloud - a unified interface into the cloud -
<http://incubator.apache.org/libcloud/>

Since you're into monitoring, check out what we're up to -
<https://github.com/cloudkick/>

------
ireadzalot
I am interested in contact/list management-type projects based on Python. Does
anyone know of one?

