Ask HN : Which opensource project for beginner python developer
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.
26 comments
[ 2.9 ms ] story [ 70.6 ms ] thread"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
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/
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.
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/
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.
For example, I know the Django mailing list is pretty active and there are a lot of questions that can be answered.
Since you're into monitoring, check out what we're up to - https://github.com/cloudkick/
(I am the maintainer of mincemeat.py)
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.
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.
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
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
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.