Boulder's big VC investor dude Brad Feld has a house in Kansas City now. He doesn't live there, even for just part of the year, but he owns it. He's letting YOU live there. For free. FREE!!! But should you live in Kansas City (a mid-sized town in the American southwest midwestern state of Missouri) to bootstrap your startup? If the rent is free?

Awhile back I talked about bootstrapping your startup in Ho Chi Minh City on the cheap. And what's better than cheap besides free?

Read the rest of this article...

Calling the US for free from foreign countries

Submitted by tomo on October 14, 2012 - 12:01am

Calling US numbers from the US is pretty trivial and nearly free. But calling from another country means either:
- paying for long distance from your telephone company
- using a phone card to call the US
- calling via Skype out (like 2 cents per minute)
- call out via Google Voice - FREE!

Yes, for the time being Google Voice lets users call US phone numbers for free from their phone. However, to do that you need to be in the US or make Google think your computer is on an American network. You can easily do this by logging into Gmail while connected to a VPN (like StrongVPN) which will make Google think you're in the States (due to using your VPN's IP address) and then give you the option to dial out from within Gmail.

So Google Voice is obviously the preferable way to make calls if you don't want to give Skype (and Microsoft) money. But what if you want to receive calls too?

Of course you can pay a monthly subscription fee to Skype to get a Skype in phone number which will ring your Skype account or forward to a phone. You could also set up your own VoIP service, buy a DID (direct inward dialing) number from someone and have Asterisk set up on a Linux server somewhere.

You can also have Google Voice receive calls with a personal Google number. However, it needs to actually forward to another phone number - if you're a real American living in the US then you should have a cell phone or home phone line to forward to.

The problem is when you're an expat living in Vietnam. You can't set up Google Voice to forward to your local number. But what you can do is set up a free New York state-based DID incoming phone number (your free number there is limited to being a NY number but you will just be forwarding your Google number to it anyways so it shouldn't matter - you can choose Google Voice phone numbers from any area code) at CallCentric or somewhere else. This will also be your phone number, but you can use it only for the free unlimited incoming calls. You'll forward your Google Voice number to this DID number but then use Google Voice (you need to install a plugin to be able to call out from Gmail) to call out for free, at least until the end of the year. To answer your DID number (from CallCentric) you'll need to be running sip phone software and be online. The best thing is you can set up your smartphone (and Symbian Nokia phones) to be your sip phone so anytime your phone is online you can receive calls when people call your Google Voice number!

If you don't receive calls with your Google Voice number you can still receive voice messages which are then transcribed and emailed to you.

Using Google AdSense in Drupal

Submitted by tomo on October 8, 2012 - 10:11pm

Recently I attended a BarCamp where there was a session about monetizing blogs for a very modest monthly income, although an amount that amounts to a lot for a local blogger. With Drupal, setting up Google AdSense content is easy.

First, just copy the code generated from Adsense into a new block using the block admin interface. Be sure to save the node with the PHP Input Filter (you may need to give yourself permission in admin/permissions to use this powerful filter). Full HTML filter is not sufficient for AdSense code as it will break the finicky JavaScript, so use PHP which performs no filtering or transformations or create a new input filter that does no filtering.

You may want to create a special region (by editing the .info file for your theme and adding a new line, then refreshing cache to see it in the dropdown in blocks admin) for your ads otherwise use an existing region to place the block. If you already have regions like a sidebar that has space for content in the same dimensions (especially width) as your chosen AdSense ad then you won't need to do anything. If you want to optimize your ads though it's recommended, even by Google themselves, to choose larger ad sizes - especially large square ads.

For placing the node somewhere within the node's content, it's trickier as you can't place it use the block admin interface which only deals with regions that are defined in .info and made available via preprocess functions to your page.tpl.php. You can still use blocks to contain the code though. So create a new block, then look for the number in the URL which is the block id. Then you can manually place that block's content anywhere with this code:

$block = module_invoke('block', 'block', 'view', <BLOCK_ID_HERE>);
print $block['content'];

When publishing your ad blocks, if they don't appear at first and you see "Bad Request 400" in Chrome's Developer JavaScript Console, you can try waiting and may magically go away after awhile. That's what happened to me.

There's also an AdSense module ( which makes this all a bit easier, but as you can see it's not hard at all to do manually, which means one less module on your system to complicate things.

But here are some other things the Drupal AdSense module can do:

The module provides easy-to-use ad blocks.
You can easily disable the ads for certain roles.
Provides simple controls for troubleshooting the ads before going live with the site.
If Google changes some minor details in the script in , your script can be updated site-wide just by upgrading the module.
If you want to do ad revenue sharing, there's really no other option

This technique can be used for other online advertising networks besides Google AdSense. It could just as easily be used for's affiliate program. If you're in Vietnam you might consider one of the burgeoning number of Vietnamese online ad networks, although they won't have anything like the inventory of Google.

Vietnam Online Ad Networks

Submitted by tomo on October 8, 2012 - 10:10pm

What to do if you're a content provider in Vietnam?

If you're fairly established as a Party-affiliated Vietnamese newspaper then you have probably been selling banner ads for years on your online properties. Maybe you have enough online properties that they constitute a small ad hoc online ad network which you can sell to advertisers. If you're smaller than that then you should be concentrating on producing content rather than developing the ad selling product. So you'd need to find some service to take care of selling your available ad space inventory.

How online ads are sold outside of Vietnam

The first online ad marketplace that should come to anyone's mind is Google with its AdWords and AdSense products (which complement each other as supply and demand). I've played around with Google AdSense (the advertising product for publishers) on this site but it may not be appropriate for Vietnamese publishers. As an American it's easy for me to connect to the US financial system. Vietnamese people would have trouble opening up a US bank and the Vietnamese banking system is barely connected to itself (making homegrown PayPal clones even more difficult to pull off) much less to the US or international banking system. It's hard to move money into and out of Vietnam, although regulations make inflows of cash much easier than outflows. And due to the large amount of fraud originating from Vietnam it's hard to get outsiders to allow normal Vietnamese people to receive money, since once it enters Vietnam it's hard to get it back out if there are any problems, outside of the remittance networks. Until very recently it wasn't possible to use PayPal as a Vietnamese person here and it's still extremely rare.

If you're one of Vietnam's major publishers then you don't care too much about homegrown ad networks since they only reduce your monopoly on ad space, while pushing down prices and encouraging transparency which could force you to be more honest about your product and push prices down even further.

Vietnamese ad networks for Vietnamese content websites!

But having more available ad networks to Vietnamese content producers helps develop a strong web ecosystem for and by Vietnamese people, giving them ways to earn money both domestically and from foreign companies wanting to market to Vietnam. Blogs and other content websites could potentially give Vietnam's economy a tiny push in the right direction although currently it's risky to plan a business around content websites in Vietnam for a number of reasons and monetization is just one of them. (Just recently, Zing, a large content network with news, a social network, and lots of downloadable but unlicensed (pirated) music got dropped by major advertisers like Samsung, Coca Cola, Canon, Yamaha, Intel, etc. precisely because of the latter - they didn't want to associate themselves with an illegal music downloading site, but without the mp3s it would be hard for Zing to get traffic.)

So without further ado here are the online ad networks in and targeting Vietnam:

- ComScore put Innity in first place (of only two measured competitors?) for ad network size in Vietnam in February of 2011 with 900,000 average daily visitors. I really can't say whether Innity, from Malaysia and serving all of Southeast Asia, is the biggest ad network running in Vietnam.

- VietAd, part of IDG Vietnam's portfolio, running since May of 2007. According to them:
"VietAd Ad-Network is an intermediate system connecting sellers and buyers of online advertising. In other words, VietAd operates as an trading platform helping website owners to sell advertising, individuals and enterprises to advertises; both of them can save time and cost while they still have effective advertising campaigns."

"After more than two years on the market, VietAd attracted nearly 1,000 quality media, news, commentary and entertainment websites in Vietnam, served more than 3 billion Ad views and reached 400 million website hits per month."

- AdMarket, a product from AdMicro which is part of BarCamp Saigon sponsor VC Corp. (not to be confused with MicroAd which just entered Vietnam from Japan). Online advertising from 900đ/click and reaching up to 25 million people.

- from PeaceSoft (NganLuong,, ChoDienTu)

- Ambient Digital Network (minimum payout payment of 300,000 VND) based in Ho Chi Minh City.

- VietBUZZad

- AdMax Network in South East Asia, based in Singapore

- AdBay, partner of PeaceSoft and VietBUZZad.

- in Hanoi

- CleverAds, a local Google AdWords partner who helps companies set up their AdWords campaigns, also claim to have their own AdNetwork.

- Some hints of an ad network (Fmob) coming from Joomlart. Will have to ask him about that soon.

- New from FPT,

As mentioned, large news sites have their own ad networks. I skipped some really pathetically small ad networks. If you have anything to share about the ad networks listed above -please- post a comment. :)

One question I have and I welcome any theories:
How long before MJ Group (NhomMua, DiaDiem) or Rocket Internet, both big consumers of online ad space in Vietnam, decide to roll their own ad networks?

How can we store tables or spreadsheets in Drupal content nodes?

Drupal is a Content Management System as well as a Content Management Framework. It's meant for facilitating the creation and editing of content, where content doesn't just mean simple text. CCK allows Drupal site managers to easily enable complex data types for their content. But sometimes it's not so easy to manage lots of simple data in the way that a spreadsheet (meaning Excel or Google Spreadsheet) easily manages many rows and columns of related data.

Sometimes you really want tabular data and you may not know for sure how many rows or columns you'll want beforehand, which is never a problem for Excel or Google Spreadsheet (which is also why sometimes people abuse Excel as a general purpose database). Maybe you are importing spreadsheets or are using spreadsheets with many rows and columns, and only want to use a section of the spreadsheet. Maybe you need to use spreadsheets because you are using formulas and want to do some graphing based on some numbers too. In fact, Excel can do much more. Rather than hoping all of those use cases will make it into a Drupal module anytime soon, wouldn't it be nice if you could just embed a spreadsheet in a node?

There are some modules for attaching tables or tabular data to nodes but in the end the interface can be a bit unwieldy. I discussed building something like a spreadsheet to quickly edit many values and below I present a demonstration.

What is already available that we could use to attach spreadsheets or something similar to nodes?

1. You could: Configure a Google spreadsheet that's either public or somehow accessed via a Google api, perhaps using OAuth2 or just assuming the viewer also has edit access to the spreadsheet. Google already lets you embed spreadsheets including the editable spreadsheet but they don't let you limit the view of the spreadsheet (limiting the view still lets everyone access the whole spreadsheet by changing the URL).

We would also need new nodes to automatically create sheets in the spreadsheet or new spreadsheets altogether and embed them in node edit. This would need to use their APIs since the embeddable Google Spreadsheets require an existing spreadsheet, otherwise this step needs to be done manually for each node - a new Google spreadsheet created per node.

This Redmine Google Docs plugin takes a similar approach and shows how the resulting data could be embedded.

(This might be worth investigating as well.)

2. Another approach would be to take an existing JavaScript or Java spreadsheet that could be embedded. This could be exactly what you want if you need the full functionality of Excel in each node. One such online spreadsheet is ZK Spreadsheet which is written in Java, and would let you have full formula and charting support.

3. Embed a widget like the form below as a CCK field in a node. It would be a new CCK field type where the editing widget is the below spreadsheet-like table and the display widget might be the same thing, an uneditable table, or the raw JSON string representation. In the database, the actual value of the field would be JSON (unless you wanted to use PHP's serialize() which would require POSTing values first instead of just posting the json value). This means you wouldn't relate or compare this field to anything else, as with any serialized data in a database. You could come up with some other schema involving columns and rows to store the table's values for each field in a node but I'm not sure it's worthwhile.

I created this demonstration but haven't turned it into a Drupal module. There is code to dump the edited values into a single JSON value to be stored in the database but the storage would be module-specific.

Get the JavaScript - then combine it with html and CSS, which you also see below.



Improved Google Spam Filter?

Submitted by tomo on February 26, 2011 - 10:08pm

Google, in response to the flood of recent concern about spam/content farms showing up in their results, have just announced a big change in their system of algorithms which calculate page rankings. They had previously published a Chrome plugin that lets you manually block results, and Google says the new algorithm blocks some 84% of the same sites that people were blocking with the plugin. I guess some people were controversially blocking non-spammy sites, rather than guess that Google's algorithm isn't good enough. Or isn't it?

Matt Cutts, the main anti-spam guy at Google, says the new algorithm change affects 11.8% of queries. Since the change is only effective in the US right now and I can browse from both Vietnam and the US, we can compare results and some one in eight queries should be improved.

So I tested "dog shampoo" out of the blue. I have never had a dog because I think they smell.

In Vietnam, high ranking results included which had a low quality page of filler about dog shampoo and which is clearly a made-for-adsense site. In the US, the drnaturalvet link is much lower, but maintains the same high position. A link to content farm is also lower now. And a link to, a made-for-adsense site with nothing about dog shampoo at the time of indexing (see cache) is now gone too.

A search for winrar came up with fairly similar results in either country, and both maintained links to spam sites like

A search for "tightvnc server authentication successful closed connection" punished duplicate content site slightly but another duplicate/copy site maintained its position in the top 20. Both copy the StackExchange site

So it seems that the new algorithm change is an improvement, but I don't think it goes far enough to filter spammy results. While it may be a slight setback for those guys, they are still in the running and will be emboldened to try to rank higher.

There may still be a need for users to crowdsource a database of filtered spam sites until further algorithm improvements.

Note: The Atlantic did a similar test from India on "is botox safe" and "drywall dust" and found their results to be much improved.

Google Spam / Content Farm Filter

Submitted by tomo on January 21, 2011 - 3:06pm

There's been a lot of talk about the decrease in quality of Google search results over the years due to spammers / content farms with strong SEO skills. I'm glad I'm not the one who's been annoyed by this.

Google should know which sites are spam, content farms, or duplicated content. That they aren't properly filtering or demoting them could be due to a conflict of interest - they make money from the ads on those crap sites.

But we, as individuals, can easily distinguish the spam results from the quality ones and we do so everyday. If only there were a way to stop duplicating this effort.

If Google won't do this for us, then we can do this ourselves.

Here's what I want:
1. When I've been tricked into opening an ad-filled page without meaningful content, I want to go back to Google and mark that link as "spam", have that noted somewhere in the cloud so I can access it from any computer, and have future search queries filter out that link.

2. I probably don't want to see any pages from that domain show up on any other queries.

3. I probably don't want to see any pages that my friends have also marked as spam.

4. I probably don't want to see any pages that friends of my friends have also marked as spam.

5. I may even want to befriend / "follow" strangers just because they're good at marking spam.

Read the rest of this article...
Syndicate content
© 2010-2014 Saigonist.