I recently decided to adhere PEP 8 more strictly (i.e. going from 3 blanks to 4). I ran into some problem with diffing python files ignoring insignificant whitespace.
Continue reading
Category: Programming
Programming related.
How to deploy a python app with dependencies similar to npm
If you have a ruby or node.js background, you probably came to appreciate gem and npm.
Python is lacking in this respect.
Current tools fail “There should be one– and preferably only one –obvious way to do it.”.
We show how to leverage pip and virtualenv in a non-obvious way.
Continue reading
The internet needs groups
The internet needs groups! I’m not talking about the social entity like groups and individuals. I envision a net entity group like website, webpage, newsgroup or email address.
Continue reading
True is False
Usually I prefer to rant about the oddities of ruby but this time it’s python.
Continue reading
Auto reload and poor man’s http caching in PHP
I recently had a problem with my website zimmer69.de. Some not so nice fellow told his opera browser to reload a 300k page every 5 seconds, moved it to some tab and forgot about it for weeks. He caused 2 Gb of traffic per day. Time to implement some cache control.
Continue reading
Constantize in Python
Rails offers a nice function called constantize
. It is easy to rebuild this (to some extend) in python. But the price is too high.
Continue reading
Constantize with Care
The String#constantize
method is a feature that makes rails fun to code with. This method converts a string to the constant that the string contains (or throws a NameError
if there is no such constant). It makes it easy to store class-types in databases as strings and to code controllers that work with classes of the same duck type.
Most people know that eval
on user data is dangerous, but noboddy seems to care about constantize
. Beware, it is also dangerous and you should constantize with care!
Continue reading
Avoiding Shell Injection in Ruby, Python and PHP.
I recently found a shell injection bug in some Ruby-gem I use.
Shell injections have scared me for a long time and I usually prefer to whitelist certain characters/patterns rather than to blacklist. This means that the system fails to the save side. Unfortunally it usually does fail – my whitelisting is to rigorous and data that would not cause any problems gets rejected. So I decided to take the opportunity to investigate how to prevent shell injection in my favorite scripting language (Python), the language I found the problem in and finally the language that I can not avoid (PHP).
Mysql::Error: Deadlock found when trying to get lock
In one of my rails-projects we had problems with deadlocks during transactions:
"A ActiveRecord::StatementInvalid occurred in ...: Mysql::Error: Deadlock found when trying to get lock "
Automatic encryption of home directories using TrueCrypt
Having your private data on a laptop is dangerous, since it might be stolen. The only way to protect your data is to encrypt it. This post describes how to encrypt the home directory of your users on GNU Linux with the help of TrueCrypt and PAM. For convenience the login-password is used as encryption key. Continue reading