Yesterday I had a meeting with a customer about a new site I should develop for them. Since they’re a book publisher, they wanted an online book store. Apart from the technical details (the site isn’t as simple as you may believe, they need a lot of not-so-easy-to-do stuff), the most important point we focused on is the fact that they have an internal IT technician that handles all their computer needs. If you’re asking yourself why this matters, keep reading:
- me (to be precise, my company) stopped development of PHP sites about one year ago in favor of Python
- we release the web site’s code to them
- for this project, we haven’t been asked any kind of future support; this means that when the site is finished, we won’t touch the product anymore (unless they don’t pay us to do the modifies they need)
- but they don’t want to pay us to these modifies, because they have their internal IT technician
- their technician knows only PHP (and he never even known the Python’s existence until yesterday)
(Continue reading…)
Just a quick tip. If you’re using the python’s os.listdir() function you may be not happy at all with the way it orders results. The following code snippet orders the result of the listdir so it shows directories first and then files, and sorts these two groups alphabetically:
import os
def custom_listdir(path):
"""
Returns the content of a directory by showing directories first
and then files by ordering the names alphabetically
"""
dirs = sorted([d for d in os.listdir(path) if os.path.isdir(path + os.path.sep + d)])
dirs.extend(sorted([f for f in os.listdir(path) if os.path.isfile(path + os.path.sep + f)]))
return dirs
I have a love/hate relationship against the hello messages shown in all the world languages on flickr. That’s why this morning I was talking with a friend on IRC about this and a bad idea jumped in my mind: do an IRC bot that says hello in many languages when someone joins a channel.
It’s from several years that I don’t do anything IRC related, but this time I had two special weapons in my backpack: python and twisted. The final bot is ~90 lines of code, half of the which are for the hello list and the entire coding process took less than 20 minutes.
(Continue reading…)
One feature of django is worth to note is that it supports signals. In fact, under its skin it implements PyDispatcher, a python library that allows to emit signals and to dispatch them.
If at first glance this couldn’t look so useful to you, well, this hasn’t been true for me since it was exactly that kind of stuff I was looking for. What I was trying to do was to implement some kind of auto-installer for an application that I’m writing, and in order to do so I had to run the set up after that the syncdb command is issued. So the main problem was: how do I know when a user does the syncdb in a non-intrusive way?
After some googling, I found that in django exists the semi-hidden feature of signals, so I began exploring them. The only thing you can look at on the official site is a page on their wiki, and additionally there are some cool articles over the net. Anyway, if you want to know a fast way to catch the syncdb command just follow up the reading.
(Continue reading…)