Following Tarek Ziade's Python Meme, here's my try:
One small note first, though. 2011 has totally been a python year for me. I actually discovered python for myself and for professional applications in October 2010 and have been using it since in professional and fun applications alike (actually, python makes professional applications fun, as well). The point is, i learned a lot in this year from python and pythonistiacs. Thank you all!
1. What’s the coolest Python application, framework or library you have discovered in 2011?
Let's start with cool libraries. I like Andreas Klöckners pyopencl. I have used it for some nice things over the course of the year, one of which is a parallelized triangulation algorithm for structured light projection. It has been a joy seeing the algorithm using a tiny fraction of the time it used to need and all with as little code change as possible.
The libraries i have used most often are of course numpy and scipy. scipys weave is my fallback, when i couldn't parallelize an algorithm but needed a performance push.
Lastly, i have been using mahotas and pymorph both by Luis Pedro.
Of course, there were many more libraries that i employed from time to time and I'm sure, I'm missing some really important and awesome ones, but these libraries have been very nice to me this year!
2. What new programming technique did you learn in 2011?
I wanted to report a bug to python once, where i discovered class attributes and was drawn back by how they can be used to communicate between class instances. I used this feature once for a communication class for a measurement automation application, where i had to keep an easy count of sent commands and their respective answers (to and from a remote machine). The class attribute was a dictionary containing all the class instances available with their respective id as the dictionary key. This way, it's easy to find the appropriate command object.
The resulting code looks a little bit like this:
-
class command():
-
ids = {}
-
def __init__(self):
-
self.id = self.findemptyid()
-
# handle False return!
-
ids[self.id] = self
-
-
def findemptyid(self):
-
for i in range(10000):
-
if i not in ids.keys():
-
return i
-
return False
Another technique i did learn - to love actually - was event based programming. I used it in the same application as the class attributes for the evaluation and sorting of the tcp stack.
3. What’s the name of the open source project you contributed the most in 2011? What did you do?
Alas, i didn't have much time to contribute anywhere. I did however release some small code fragments on github and gitorious.
4. What was the Python blog or website you read the most in 2011?
I regularly read through the python planet, but i don't have a single python related blog that i read regularly.
5. What are the three top things you want to learn in 2012?
I took the machine learning course from Standford Engineering this year and would like to elaborate on the gained knowledge within python. There are some neat looking machine libraries out there that i would like to try one day.
Using large frameworks like django and such is also on my todo-list, but i didn't find any use for them yet.
Also, there are some emerging compilers for python that i would like to learn to use (Pypy, nuitka..).
6. What are the top software, app or lib you wish someone would write in 2012?
This would definitely be a comprehensive python wrapper Pointclouds (pcl). They did present a gsoc-idea for a wrapper, but it seems the project didn't take off.
Want to do your own list ? here’s how:
- copy-paste the questions and answer to them in your blog
- tweet it with the #2012pythonmeme hashtag