1. Scorpion Sting and the Chicken Story

    This article is a part in the Cruel Kids, The Animals I Know and How to Neuter a Cow series.


    I was going to write a paragraph about chickens, but to be honest, chickens have always been somewhat a boring topic to me. So let’s ...continue

  2. The Frogs and the Drum Story

    This article is a part in the Cruel Kids, The Animals I Know and How to Neuter a Cow series.


    The drum is a serious object in Asian culture. It’s loud and it’s “official.” Usually, a village has two drums: one for the local ...continue

  3. Cricket Head on a Stick Story

    This article is a part in the Cruel Kids, The Animals I Know and How to Neuter a Cow series.


    Weather-wise, there were probably just two most common types of days from my childhood memories growing up in Việt Nam: scorching hot and torrential rain. People ...continue

  4. Cruel Kids, The Animals I Know and How to Neuter a Cow

    on April 20, 2016 in learning about


    Growing up in a bucolic part of southern Việt Nam, I loved waking up to all sort of intriguing sounds like pigs squealing, cows mooing, cow cart wheels on dirt road and people talking loudly to each other.

    You’d love it too if you were ...continue

  5. Thirty & Ba Mươi

    on April 24, 2014 in learning about
    Đọc bài viết này bằng tiếng Việt

    When I was thirty, my daughter turned one and I joined a startup.

    As much as I remember the lack of sleep or the constant struggle to keep a work-life balance, the thing I remember most was how blessed I was to have a such a ...continue

  6. Migrating to Django 1.5 and Custom User Model

    on March 28, 2013 in technology about

    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

  7. Personal and Business Cloud Security

    Personal and Business Cloud Security

    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

  8. Installing M2Crypto on CentOS, RedHat or Fedora

    on February 05, 2013 in technology about

    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

  9. My List of Commonly-Used Git Commands

    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

  10. Inline Read More Link in Python Using lxml

    on January 06, 2013 in technology about

    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

  11. Creating Mid-Autumn Festival Lantern for Mây Sơn

    on September 30, 2012 in learning about
    Đọc bài viết này bằng tiếng Việt

    Trung Thu Lantern Design

    Growing up in Việt Nam as a kid, when the lights of electricity had yet to pollute the world and the night sky was truly black, a lantern had mysterious power over my childhood.

    How can it not be? Imagine sitting under a sky of a ...continue

  12. jQuery-Fakecrop: Cropping Images with jQuery

    on June 13, 2012 in technology about

    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

  13. Setting Menu Active State Using HTML and CSS

    on June 11, 2012 in technology about

    Setting menu active state should be simple in any programming languages or frameworks. Checking whether a page_id or an Object is the same as the current page in context is usually all that’s required.

    When using a template engine, such as jinja in Django or ...continue

  14. Eating Striped Bass Organs and Innards

    on June 08, 2012 in life about

    Stripe Bass

    Other than our short temper, my brother and I share little in common. Our hobbies and activities are also completely different. While I love arts and technology, he is an accountant, a true “foodie” and an avid fisherman.

    Having said that, I love my brother dearly ...continue

  15. Creating a Blog with Python Pelican

    on June 06, 2012 in technology about

    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

  16. Rice Paddy and Crabs in Viet Nam

    on June 01, 2012 in life about

    I visited Viet Nam in the summer of 2008 and jotted down some memories. This was written on June 4th, 2008

    Rice Paddies and Mountain

    I felt the smooth and squishy earth between my toes. That was last week. Standing in a flooded rice paddy with water just above my ...continue

  17. Hello (Learning) World

    on May 28, 2012 in learning about

    Starting a personal blog is something I have wanted to do for a very long time. However, my priority list tends to favor non-personal action items.

    As a web developer, technology consultant and especially as a bootstrap startup enthusiast, it makes sense to produce work that ...continue