subscribe to rss feed
subscribe by email

Puppet Kaos - where Kelvin Kao plays with puppets and tell random stories

New Video! (With New Puppets!)

And… here’s the new video! I built four new puppets for this project, so together with the old ones, there are 8 total in this video. This is a music video that I made in January to enter the Brad Paisley’s “Start A Band” green screen contest (which I didn’t win, but whatever, enjoy! :-) )

If you can’t see the embedded video, click here to see it on YouTube.

The premise of the contest was that they provided the green screen footages of Brad Paisley singing the song, and you can use the footages in your video any way you like. I was glad that I participated, because I’ve always wanted to try these things:

  1. make a music video
  2. purchase and learn to use a sewing machine
  3. build more new puppets
  4. build puppets that are humans (as opposed to “monsters” and animals)
  5. build puppets that have shoulders made out of foam and cloth them
  6. build puppets with hair made out of yarn
  7. try out new lighting set-up
  8. enter a contest
  9. overlay several different green screen shots

And somehow making this video has all those elements! Of course, that’s also because I consciously attempt to try out a new technique every time I make a new video, but so many of them at once? That hasn’t happened before. So yeah, it was definitely a good experience. And I hope you all have as much fun watching it as I have making it!

Coming up in the following weeks

I have a new video ready for release (with new puppets too)! I will post up the new video next Monday. So remember to check back here.

And then in the following few weeks, I will be dissecting the hell out of it, documenting the whole process, talking about how things are done and why they are done that way. Should be fun. Of course, there’s other stuff also. I wouldn’t be just talking about one video. I will definitely be updating more frequently as well.

Oh, and for those of you that are on Twitter, you can now follow me @kelvinkao. Don’t be shy! :-)

Happy Valentine’s Day!

Happy Valentine’s Day! And here’s a picture of a happy couple:


And another one:


Wait, who are those? You will know soon enough. (If somehow you already found out, don’t tell.)

So happy Valentine’s Day, all. And hopefully the next time around, I won’t be single. 😛

Upgraded to WordPress 2.7

This is going to be a post that’s a little technical. It’s about the maintenance of a website (this one), and yes, we’ll soon be back to talking about puppets.

I recently upgraded to WordPress 2.7. While it shouldn’t be a complicated process, mine took some time because I was also backing up files and looking into where the site has been hacked. You see, just like PCs are more likely to be attacked than Macs because they there are more PCs, WordPress blogs are also more prone to attacks because it’s the most popular content management system for blogging. It’s very important to stay up to date. I am writing this post to share the process I went through, in case anyone needs the information.

Discovering the problem

The other day my sister noticed that my site was loading slow. I suspected an attack, but after inspecting the top level files for suspicious code (because I know iframe hacks are sometimes inserted there), I came up empty and concluded that the server just happened to be slow that day. Later, though, I suspected that the problem might be elsewhere. I decided that I shouldn’t procrastinate any longer on upgrading, so I started backing up.

While I copied the files off the server onto my hard drive, I noticed that my anti-virus software is marking quite a few files in wp-content/themes folder as potential threats. This is the folder that stores all the WordPress themes that were installed. And in every theme, header.php was marked as a threat. At this point I disabled my anti-virus software (a move that’s usually not recommended) in order to download one header.php to have a closer inspection. Note that running such a file might be bad, but I am only inspecting it as a text file, so that will do know harm. After comparing that copy of header.php with a backup copy I have, I noticed it has one extra line of script that shouldn’t be there. That was the culprit. Also, I compared folder contents, and found a file called remv.php in the wp-content/themes folder that shouldn’t have been there.

A search on the suspicious file remv.php led me to this article WordPress, remv.php and You, which confirmed my suspicions. This is a hack that exploits a hole in WordPress 2.6 and often perform DDoS (Denial of Service) attacks on sites. That is why it was running slowly. After some reading on the topic, I started taking care of the problem.

Back up your files and database

First, load up your FTP program and then download all the files. I already did that in the last step. Also I did not need to back up all files, because I already periodically back up files and I know I do have good copies of those files. And then I go into my database admin page and exported my database as SQL. I also saved it as a CSV (Comma-Seperated Values). I also tried to save it as PDF and XML but those took a long time for some reason, so I thought, never mind. It’s important to back up your files before upgrading, because there’s a possibility that something might go wrong during the process, and you’ll need your backup copy to restore the site. And also it’s simply a good habit to back up your files anyway.

Deleting old files

A good rule-of-thumb is to download the new copy of WordPress first, and unzip it to look at what files are provided to you. For example, you can delete all the files at top level, because the new copy of WordPress will provide that. Okay, maybe you will want to keep wp-config.php, because that’s where your configurations are saved. However I decided to use the fresh copy, and then just compare it to my old copy to make the changes I need. I also deleted the whole wp-admin and wp-includes folders from the server, because the new WordPress does provide them.

For wp-content, though, I am more careful with it. In this case, I did not just delete the plug-ins and themes, because I have already customized these things at some point. Also the uploads folder have the files (most likely pictures) that you uploaded that were not part of the original WordPress. You’d want to keep that. I left my plug-in folder pretty much untouched as well, except putting in the new version of Akismet. For the themes, I made sure that I deleted that remv.php file. And then I went ahead and deleted all themes that I wasn’t using. Since I wasn’t using them, and they are all available for download on the internet anyway, I am not going to miss them. This is also to be on the careful side to make sure the code that’s not supposed to be there is no longer there. I did not delete the theme that I’m currently using, because I’ve already modified it in many places. I did, however, downloaded the folder to compare each file against the original theme (ok, not the original, but a backup copy I made while switching the Feedburner feeds) to make sure the bad code is no longer there.

Installing the new version

Of course, you will need to download the new version of WordPress from The file will be a zip file, and you can unzip it to your local hard drive and then upload it to your server. And then, if you had overwritten your wp-config.php, you would need to set up a few variables again, namely, information about your database set-up. At first I did not set it up correctly. I threw in the old wp-config.php from my backup and it did work. I think, in general, they would make the wp-config.php files backward compatible, but I would like to use the new one even though it’s only slightly different. I compared the old and the new, and ended up loading up a new wp-config.php based on the new wp-config-sample.php. Note that they made it a sample file so the actual configuration file will not be accidentally overwritten.

At this point, hopefully you can type in your site’s URL and then it would just work. If it did not, search the internet for whatever error message you are getting. Also compare it against your backup files for insight, and throw the old files back onto the server if necessary.

Unicode problem

This is only an issue for people that use certain symbols and characters that’s not English. For example, I write about Taiwanese puppets, so several of my posts contain Chinese characters. I noticed that, after the update, most things look fine (none of that vanished categories problem like last time), but I noticed that the Chinese characters are showing up as garbage (sometimes just ???). The worst case scenario is, I’d have to go back to all articles that have Chinese characters and enter them again. Or maybe there’s another way to solve this. But either way, I need to figure it out, because I am planning to write more about Taiwanese puppetry and I can’t just re-type things after every single upgrade!

I looked into this Unicode problem and found this post titled WordPress, Unicode, and ?s. It said to just comment out the defines for DB_CHARSET and DB_COLLATE in wp-config.php. I did that and it worked like a charm. Now, those defines were not in the old wp-config.php either. Maybe it would’ve just worked if I didn’t bother to be such a genius and used the new one. Oh well. And later I found this documentation on the official WordPress site, which explicitly stated:

If DB_CHARSET and DB_COLLATE do not exist in your wp-config.php file, DO NOT add either definition to your wp-config.php file unless you read and understand Converting Database Character Sets. Adding DB_CHARSET and DB_COLLATE to the wp-config.php file, for an existing blog, can cause major problems.

Okay… major problems, eh? I’ve learned the hard way. Also, WordPress does have native Unicode support. It’s the php code that’s messing it up.


Wow, that was quite a technical post.

It’s time like these that I’m glad that I’m a computer programmer. Many problems popped during along the way for one reason or another, but I was able to just look up some information and then resolve all my problems. Now I am writing in WordPress 2.7 with the new shiny interface. I hope most of you never have to deal with the problem, and if you do, I hope you found this information useful.

Oh, and remember, always back up.

20000 Spam Comments (Woohoo?)

Today is the day that Akismet, the anti-spam plug-in, caught the 20000th spam comment since being installed on this site. The current count sits at 20001. This website has experienced significant growth in this aspect, and I’m keeping this for my record. Would be interesting to make up some kind of graph several milestones later. (Edit: Never mind, I’ll make the graph now.)

April 13, 2008: Installed Akismet
October 11, 2008: 1,000th spam comment
December 27, 2008: 10,000th spam comment
February 9, 2009: 20,000 spam comment

A Linguistic Study on Myself

I’ve always been interested in linguistics, well, by always I meant, ever since I learned what linguistics is. At our school, to get a computer science degree, we were required to pick another field as a technical minor to take several upper division classes in. Many fellow computer science students picked math or economics, because computer science students usually have already completed some math classes that were required for both the major and the technical minor. On the other hand, I decided to study linguistics because I am multi-lingual and I am curious about these things.

One of my favorite linguistics class was the linguistics lab where we record voices, and then analyze them on a computer. (See how computer science and linguistics sort of come together?) In this class, we looked at waveforms and spectrograms to examine different properties in voices and even to figure out which words were said by looking at graphs. Part of the interest came from the fact that English is not my first language, and I am curious to see how much difference there is between the way I speak and the way other people speak.

And what I want to do, is to look more specifically (and mathematically) at my voiceovers for the puppet shows on this site.

When I was making Think, Outside the Box, a puppet video that was voiced by yours truly and a few of my friends, I noticed that my voice sounded a little out of place among the stuff other people recorded (good thing I only had like, two lines). Was it because I spoke in a low voice? Was it because of the speed? Was it the intonations? I haven’t really found out but I’ve been curious.

Also, my impression was that my characters here at Puppet Kaos speak slower than those on other puppet shows I’ve seen. Is it true? I don’t know. And if it was true, was it because the individual words are said longer, or because I have more pauses between words or sentence? I know most people don’t care, and I am not about to (consciously) change the way my current cast of characters speak, but do I really talk slower? I am curious to find out.

And then there’s the differences between different characters. In class, we’ve compared recordings of different people and examined the differences. However, I’ve never seen studies done on voice actors that do many different voices. Why do we recognize different voices when it’s voiceovered by the same person? Are there any similarities that still remain? Why do Mac and Cheese sound different from Moostifer… is it just the pitch? And what changed when I go falsetto?

I am going to record some stuff, and I am going to analyze them. Maybe I won’t actually figure anything out since I am by no means an expert, but it would be fun. 😀

Well, fun in a geeky sort of way anyway. It won’t be the last time I do geeky stuff. 😉

Next Page >>