With the recent Django 1.5 release, we now have the choice to create custom user model instead of the default user model that came with django.contrib.auth.
Two important use cases this release resolved were the ability to easily extend user profile and fix ...continue
These days, it seems that businesses are finally starting to be more comfortable with the Bring Your Own Device (BYOD) policy which allows employees to use their personal devices to access privileged corporate information.
Device manufacturers have also started to push their own flavor of cloud ...continue
Installing M2Crypto, a feature-rich Python wrapper for OpenSSL, should be a simple matter of running pip install M2Crypto. However, it seems that on CentOS, RedHat or other Fedora Core-based distributions, especially 32-bit operating system running on 64-bit hardware, it is a bit tricky.
Here are the ...continue
One of the tools I use on a daily basis is Git, a Distributed Version Control System (DVCS). Other than the usual git checkout -b branch, git tag -a and git merge/push/pull, the Git workflow generally demands very little of me to keep the ...continue
When dealing with displaying large html content, we need a way to generate its summary and a “read more” or “continue” link to the full article.
This is a simple matter of truncating the html content at a defined maximum word count and adding the convenient ...continue
Once in a while, you just want to display a collection (or more) of images with different dimensions. The problem seems easy enough.
The task of manually creating thumbnail for each image is quite tedious and it’s definitely not worth the trouble to write a ...continue
Let’s move beyond the when and why of a personal blog of a web developer and discuss the what and how. The current trend seems to favor the static site generation route and I agree whole-heartedly. Static pages are easier and faster to host and ...continue