To twitter or not to twitter

To twitter or not to twitter

Like almost everyone here, I have my Twitter account too, which I created long ago. Thing is, I don’t exactly know what’s it about (what a shame). Thaya he told me that it’s some kind of chatting, just less annoying and more useful, but still I don’t understand how people can keep a web page open like 8 hours a day and type in such as “I’m reading this {TinyURL}”, “I’m listening to this {TinyURL}” :D

So recently I see more and more people are following me on Twitter. This is like that, maybe, I should seriously start twittering and let them know that I should start twittering and let them know that I should start… oh well.

By having someone “following” you and reading your updates, kind of, make you feel more important. I don’t think I can get used to it (easily).

But what do you think? Are you following me on Twitter? ;)


I was taking a break. It was Lunar New Year holiday here and I was too lazy to even think of posting something new.
Got a bad sick during Tet, but I’m still alive (“Alive and kicking, oh!“).

Btw, Referrer Detector is coming close to the next version with some real improvements. UPDATE: Version 3.2 is here with some serious improvements! Check it out!

Kohana PHP framework

Kohana PHP framework

You know, I’m a die-hard fan of CodeIgniter. Among a lot of PHP frameworks out there, I prefer CI over Zend, Cake, Symfony etc. because of its speed, efficiency, and most importantly, simplicity. Just download it, unzip into a folder, and call it done. To me, a framework that costs me more than 10 minutes to install is considered failure - Symfony is one.

With simplicity and efficiency being the priority in mind, several days ago, I discovered Kohana and was impressed. As clearly specified on its homepage, Kohana was originally based on CodeIgniter, so CI users should find no difficulties migrating. Then, along its (community-driven) development way, Kohana has grown quite a bit, and now looks like a very promising PHP framework. Among its features:

  • Highly secure
  • Extremely lightweight
  • Short learning curve
  • Uses the MVC pattern
  • 100% UTF-8 compatible
  • Loosely coupled architecture
  • Extremely easy to extend

Read more »

IP address to geographic details

IP address to geographic details

Today I received a small project to detect the country of web visitors. I’ve never done something like that before, so as always, I started googling around. And it turned out that it’s not that complex - there is a company called MaxMind that offers APIs to look up geographic details from an IP address. The APIs are written in a variety of languages like C, Perl, Java, Python, Ruby, C#, VB.NET, Pascal, Javascript, and of course, PHP.

For this project, I decided to go with PHP version which has a NET_GeoIP PEAR package. Just download it, along with the free data files (they have paid ones also) - Geo Lite Country if you want the country details only, or Geo Lite City if you want extra stuffs like city, region, latitude and longtitude etc. In this post, I’ll go with City version. Read more »

WP-DBManager’s vulnerability

I’ve been using WP-DBManager for quite a while now, and in short it’s a very good - if not the best - WordPress plugin to help you manage your database - with just one click, you can backup, restore, repair, optimize, and do other tasks. Essential plugin, really.

But today I noticed this DANGEROUS thing, and I want to announce it so that everybody can fix. By default, sql dumb data are saved into files under a directory named backup-db inside wp-content. And this directory has absolutely no protection. That means you can freely browse anyone’s wp-content/backup-db/ content and download the data file.

Now, I did a search of “index of /wp-content/backup-db” on Google. From the popularity of WordPress and this plugin, you can tell how many results I got. Yes, thousands of results were returned, each was a browsable and downloadable backup directory among thousands of different WordPress-powered websites. Read more »

Setup a development version of WordPress

Setup a development version of WordPress

Being a WordPress user, there’re certainly times when you want to try something new with your blog - a new plugin, some hacks and tweaks, some theme fine-tunes etc. It may not be a big deal if your blog is new and has a limited userbase, but if you’re maintaining a big blog, then every little modification puts you in risk. Like, if something goes wrong with the plugin you’re developing, the whole running site maybe broken, and you may lose hundreds of visitors and RSS subscribers before you know it. Well, it’s my own story too… once I left my abandoned two days long, without even knowing that with my smart hacks, all the internal links were totally broken. The worst thing is, that mechanic Google didn’t forgive me about this, which resulted in a disappearance of from the first 2 result pages - ugh.

So after that stupid “accident”, I decided to keep myself out of those risks. I installed a local development version of on my own PC. It was a true breeze - very easy and fast. If you’re like me - always living on the news trying new cool stuffs - then here is a step-by-step guide, with no or very little coding involved. Even better, all software to be used are free/open source. Read more »

Top 1000 WordPress plugin authors - I’m at the bottom :D

Top 1000 WordPress plugin authors – I’m at the bottom :D

White Shadow has recently compiled a list of top 1000 WordPress plugin authors based on number of downloads. There are 2190 authors in total, and I rank at 843th position with 1328 downloads on 3 plugins. Not very impressive right? :)

Nevertheless, I’ve just taken part in this community for 2 months, so I would consider this a small success.

And this is a win-win.

How I made use of WordPress “sticky posts” feature

How I made use of WordPress “sticky posts” feature

As you may have already known, WordPress 2.7 introduces a lot of new features, among them are the hierarchical comment system, a brand new admin panel, and most interesting (for me) the ability to make a post “sticky”. This concept of sticky posts is not new, in fact it’s been around quite a while in forums and bulletin boards, but now it’s the first time we see it in blog world. Need I say how useful it is?

So, yesterday I came up with this idea: making use of “sticky posts” to stick something called “best verses” or “most refined verses” for my which is dedicated to poetry. As its name tells, this special post is not a poem as normal ones, but contains some best verses (chosen by me ;) ) only, and its content should be changed once every day or so. For this special mission, it should be decorated different to catch the eyes of users. After some hours playing with Photoshop, this is what I got:

Sticky Post - Design Read more »

We are the champions

We are the champions

Today, December 28, 2008, we Vietnamese officially beats Thailand and wins the South-East Asian Cup.

Finally. Now we are the champions. Whohoo.

The only bad thing is I lost my voice from shouting (cough).

Google Search in an AJAX’ed way

Google Search in an AJAX’ed way

I have a good news and a bad news for today. The bad news is, I got hit by a f-king drunker several days ago in a traffic accident (Saigon’s traffic is pure shit) and had to take some macro surgeries. The good news is, due to this accident I have some free time to think and do something - sense and nonsense, just for my habits.

So yesterday, this pal of mine showed (off) a web project he’s taking part in - a site called “HeyGoo“. This site uses Google’s AJAX Search API (and Yahoo’s too, I’m not sure) to find and display result in an AJAX’ed way - that is, no pagination involved, instead users have to scroll to bottom for the next results to be shown up. Rather interesting, eh?

Well, my friend he seemed to be very proud of this project and putting all his hope to its success, so I didn’t want to discourage him. But honestly, I don’t see it as any revolution. Not talking about the old design with tables everywhere, the annoying target=”_blank” anchors and the so-cliché logo, I pointed out for him some problems the site was having:

  • The search results are not so good. I searched for something on Google and it returned some hundreds of results, when HeyGoo told me it couldn’t find any. I don’t know why, hey, at least it is using Google Search API no?
  • There are certainly times that a user want to go to page, say, 3571, to see if his new forum ever reaches to Google. He can do that very easily with any “normal” search engine out there, but not with this HeyGoo where he must scroll 3570 times.
  • Biggest problem: the site currently doesn’t care about the loaded results. New results are appended, appended, appended, when old ones are still there in the top. Imagine how much memory the poor browser has to use up for this curious guy who’s scrolling over 317 pages and counting.

With all these drawbacks vs. the only ajax advantage (personally I don’t see it as an advantage but another failure however), I doubt this site will do anything big. Anyhow as a friend I still wish it the best.

Now to the main part: despite of my skeptical thoughts, I still see the AJAX dynamic scroll content something interesting, and might be useful sometimes. So I sit down and wrote my own (very basic) version of the AJAX Search, where no pagination is involved and you must scroll for something new ;) It took me 30 minutes for the core, and some 30 more for the layout tweaks. Before getting into the code, you can see the final working result here. Read more »