4 ms·
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.
- gomer 16y agoTwisted seems like a good option. Here is a good question on stackoverflow with some comments: http://stackoverflow.com/questions/117561/what-are-good-open-source-projects-in-python-for-which-i-can-be-a-contributor http://stackoverflow.com/questions/117561/what-are-good-open... Although, you should try to find something you have a personal interest in as well.
- Wolf_Larsen 16y agoEXECUTIVE 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.html 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 http://twistedmatrix.com/trac/wiki/SuccessStories
- japherwocky 16y agoTwisted is kind of notorious for being difficult to pick up and use, even for experienced Python programmers..
- shinkansen 16y agoTwisted has always seemed like its own ideology altogether. Not that this is inherently bad per se, just that it might make approaching it a little more difficult.
- aspir 16y agoI'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).
- jolan 16y agoWork 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 16y agoPyPy is looking for contributors: http://morepypy.blogspot.com/2011/01/pypy-wants-you.html http://morepypy.blogspot.com/2011/01/pypy-wants-you.html (via http://news.ycombinator.com/item?id=2127461 http://news.ycombinator.com/item?id=2127461)
- simplyJump 16y agoThis 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/ http://rayli.net/blog/2010/04/what-is-the-purpose-of-pypy/
- japherwocky 16y agohttp://github.com/facebook/tornado http://github.com/facebook/tornado is a pretty simple, useful project. You could set up ab and try to make it faster!
- j2d2j2d2 16y agoI have to disagree. The IOLoop is not trivial and could lead to some major confusion.
- Sargis 16y agoI'd like to learn more about HTTP, web servers, etc... Which open source project should I start with?
- kingsidharth 16y agoDjango? Flask?
- Sargis 16y agoI think Django would be too complicated for me. Hadn't thought about Flask before. Thanks!
- gkelly 16y agoI'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.
- patd 16y agoFind 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/ http://code.google.com/p/periscope/
- simplyJump 16y agoThis also is a pretty good idea. I know django supports plugins. I've written some for my site.
- MichaelStubbs 16y agoThe 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 http://www.reddit.com/r/bugs and http://www.reddit.com/r/ideasfortheadmins 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/ http://code.reddit.com/ - take a look.
- ireadzalot 16y agoI am interested in contact/list management-type projects based on Python. Does anyone know of one?
- chr15 16y agoYou 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.
- cloudkick 16y agolibcloud - a unified interface into the cloud - http://incubator.apache.org/libcloud/ http://incubator.apache.org/libcloud/ Since you're into monitoring, check out what we're up to - https://github.com/cloudkick/ https://github.com/cloudkick/
- michaelfairley 16y agoMincemeat.py (http://mincemeatpy.com http://mincemeatpy.com) is fairly simple, only uses standard libraries, and definitely welcomes contributions. (I am the maintainer of mincemeat.py)
- pjkundert 16y agoAgreed. 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 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.
- agentultra 16y agoI have a relatively simple project: http://code.google.com/p/tracshell 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 16y agoHello there, http://www.djangoproject.com/ 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/?from=olddocs 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
- Lewisham 16y agoI 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 http://www.github.com/lewisham/wowspyder
- octopus 16y agoPort 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.