stefan's blog

Bulk emailing via CSV

If you've ever had a reason to send the same (99% same) email to tens or hundreds of recipients, then CSV2Email is the right tool for you. I've just launched it so it may change its functionality soon, but you can upload a CSV, then create your email text and insert variables (the names of the columns surrounded by {}, i.e. {first-name} where First Name is the column header).

Word Press Content Management

I've launched a new outsourcing venture, with the primary purpose of helping businesses and individuals update and create new content for them on their wordpress site. Often inexperienced, or untrained individuals end up having to update the content of a wordpress site. Isn't a Lawyer's time better spent handling cases than updating their website. Should the office assistant of a small business learn some CSS to ensure that the content is formatted correctly?

Check it out at:


I've been helping two of my clients (Travel Guide to Vietnam and with SEO. It appears to be a full time job, writing content, understanding the analytics and improving them, working with google adwords.

These are two different businesses, City Pass Guide is the premier travel information provider for Vietnam and Urban Thier is a Law Firm in the US that is specialized US, German, and Brittish law, as well as other areas.

Spam and Work at home fraud pages now using GeoLocating in their text

I don't usually click on Spams in my email, but this one was sent by a Vietnamese sounding name to my inbox. Living in Ho Chi Minh City, I figured it "could" be real, and since I'm running linux I thought, what the hell, if it tries to download malware in .exe format or .dmg I'll be fine.

Cloud Insurance, Why it makes sense

I've been working for and with maybe the first company that is dealing with Cloud Insurance. It is an interesting idea, and definitely makes sense if you are a large enterprise that has recently moved your date or applications to the cloud. Say you save 100,000 USD by moving to the cloud, perhaps it would make sense to take out 20,000 of insurance on your cloud deployment. This way if the cloud goes down and your business is harmed, then atleast you get a payout to perhaps offset the financial hit of the downtime.

Handling server errors with ajax calls?

I got very used to using jquery's get and post functions which are wrappers around the $.ajax function. However, during development, and even on live sites, sometimes bugs appear, and a fatal error occurs (unforeseen conditions?). Thus the success function never gets fired and nothing happens but your fancybox popup may sit there spinning a little loading icon.

Decreasing page loads when sending email

Sometimes it is necessary to send an email or two after a visitor does something (shopping cart purchase, contact forms, etc.). However, most of the times these don't need to go out right this instant. Many web programming languages are stateless or you might not want to deal with threads.

Whatever your reasons are, its best to just stick them into a DB and run a script with sleep(60) or what suits your needs best in a loop and have it pickup these items and send them at its leisure.

Facebook being blocked in vietnam?

If you imagine DNS servers as a phone book, then this analogy works.

The government in the past basically just removed the entries for facebook from the "phone book" so that computers couldn't "call" on facebook anymore. It is a very simple way to block something but easily circumvented if you change which phonebook you use (changing DNS server).

SSL Zone info

We were having some issues with login and redirects depending on the servers ssl configuration. Our testing machines didn't have any SSL setup so all worked hunky doary. However our live machines have some complicated rewrite rules plus SSLZoneSettings to force pages into ssl if they were manually hit via http.

However, this setting isn't well documented in ezpublish, in fact it seems at the time of this writing isn't any documentation on any of the pages for it and its ini variables. Googling around I found that you could do this:


Instead of just

Casting a character column in mysql for order by

So I'd done this already in postgres, where I needed to sort a character column by integer sort instead of character sort so that the following strings would appear in order:


Using character sort it would be 1,10,11,22,5. Which appears wrong to the naive end user. Therefore, if we know that the column will only have ints we should convert it to an integer column. Sometimes this wont work!