Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN : Which opensource project for beginner python developer
65 points by simplyJump on Jan 21, 2011 | hide | past | favorite | 25 comments
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.

Need some advice on the below points -

1.) What are the projects available at my level. If you know one from the top of your head, great !

2.) Apart from my own interest (algorithms, frameworks, monitoring systems). What should I be looking for in an open source project ?

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.

Thanks for any suggestions you have.




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.



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/


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.


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/


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


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).


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


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


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

(I am the maintainer of mincemeat.py)


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.


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.


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.


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/...

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


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


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... Although, you should try to find something you have a personal interest in as well.


EXECUTIVE SUMMARY

"First, Twisted should be fun. It began as a game, it is being used commercially in games, and it will be, I hope, an interactive and entertaining experience for the end-user."

"Twisted is a platform for developing internet applications...Twisted is a good (if somewhat idiosyncratic) pure-python framework or library, depending on how you treat it, and it continues to improve."

"As a platform, Twisted should be focused on integration. Ideally, all functionality will be accessible through all protocols. Failing that, all functionality should be configurable through at least one protocol, with a seamless and consistent user-interface."

- http://twistedmatrix.com/documents/current/core/howto/vision...

SUCCESS STORIES

"Lucasfilm has used Twisted in its business-critical production processes since 2004...We use Twisted to proxy database connections for our render farm, which runs 24/7/365."

"Justin.tv is the largest live video site on the internet. We allow anyone to broadcast live video from their PC and chat with viewers. Every second of every broadcast is archived so it can later be browsed, searched, or made into highlight clips.

Each of Justin.tv's half a billion monthly pageviews passes through a custom Twisted caching engine."

http://twistedmatrix.com/trac/wiki/SuccessStories


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


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.


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


Django? Flask?


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


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.


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/


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




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: