Subscribe via

Completed OMNINOGGIN Server Migration

Server Migration
I apologize if you have visited earlier today and found the Maintenance-Mode screen. I was moving this blog from a self-hosted dedicated server to a shared-hosting server. In this post, I will discuss the reasons for my decision and the switching experience.
Here are some reasons why I made the switch (Pros):

  1. I’ve been getting more readers lately so my bandwidth was almost reaching capacity. Shared-hosting is the cheapest way to get decent burstable bandwidth.
  2. I wanted to start focusing more on WordPress and less on FreeBSD. Making this switch will alleviate me from having to maintain/troubleshoot low-level system things, leaving me with more time to focus on WordPress development & discussion.
  3. Read on…

List Poisoning Email Harvesters


You may not know it, but your site is probably being regularly harvested for email addresses. In this post I will show you how to easily help fight email spam using a Lojack technique called List Poisoning (see previous post for more Lojack anti-spam philosophy). Though this is not a new technique, it is definitely worth spreading the word and implementing.
The goal here is to pollute the harvester’s email list with fake email addresses and fake recursive links. In doing so, the harvester will waste time and resources harvesting and spamming fake addresses. (see this in action)
In the demo below, you will notice that the first three links are recursive links that will just redirect to the same index.php. The next set of links will be fake email addresses generated for harvesters.
Read on…

Block Unwanted Spam Bots Using Varnish VCL


Every time I search the web for information on how to block spam bots, scrapers, and harvesters, I always see an Apache .htaccess file or some code to dump into httpd.conf to achieve this. I’m a bit against using this method for blocking evil bots. I do respect Apache for being a flexible & modular web server (that’s why I still use it), but I do not have much to boast about Apache’s speed and efficiency.
To achieve the same purpose on my server with greater efficiency, I made use of my Varnish reverse proxy configurations (located under /usr/local/etc/varnish/default.vcl).
In this post, I will only be discussing about vcl_recv subroutine, which gets called when a client request is received.
Read on…

Creating a Staging WordPress Blog for Testing

Over the past few months, I’ve been meaning to create a staging WordPress blog that is an exact replica of my production OMNINOGGIN blog so I can test major feature changes before releasing them to my production site.  I have to admit that there are many other interesting things to spend time on (see also: Make Popularity Contest Work with WP-Super-Cache and NowThen Photo Display WordPress Plugin) so I have been lagging at getting this task done.  Fortunately the WordPress 2.5 released was enough to motivate me to get this done.  My goal in this post is to provide a step-by-step set of instructions (or checklist) for getting this task done.  I run Apache 2.2.8, MySQL 5.0.51a, and PHP 5.2.5 on a FreeBSD 7.0 machine that I have complete control over.  Keep in mind that these steps will vary depending on how your blog is configured.  It is a good checklist nonetheless so without further ado:

Read on…

Developing CiCi’s Cafe Website

Cici (Paweena’s sister) owns a breakfast restaurant in Tarzana, CA. I am blessed and thankful for that because she lets me free-load off the delicious fresh food at her restaurant every time I visit Los Angeles. (As a side note: If you ever get the chance, you should visit CiCi’s Cafe in Tarzana, CA. Highly recommended breakfast joint!)

Aside from not knowing how to repay her for her kindness, I love the food so much that I have been developing a website for her restaurant, ciciscafe.com.

CiCi’s Cafe Screenshot

Believe it or not, the site’s backbone is WordPress! I can’t believe how easy it is to turn a WordPress blog into a simple restaurant site. This just goes to show how flexible Content Management Systems (CMS) are now.

I am nearly finished with the site. All I need to do now is update the menu and add some yummy food pictures.

Nowthen Photo Display WordPress Plugin

This plugin is no longer supported/updated because of low demand for the plugin.

Today I would like to announce the release of “Nowthen Photo Display” WordPress widget that parses picture RSS feeds from the image service nowthen.com and displays the pictures neatly on the sidebar. This is my first WordPress widget so any comments and suggestions are welcomed. I would be happy to make updates/releases if the demand for this widget is high enough and there are some worthwhile feature requests.

Screenshots

Sidebar Widget
Sidebar Widget
Widget Options
Widget Options
Gallery
Gallery
Gallery Options
Gallery Options

Read on…

150W to Power My Computer

Comments Off on 150W to Power My Computer


In the previous post, I found out that it takes 150W to power my personal computer which I always leave on the entire day. I felt bad that I am not contributing to the “Go Green & Save the planet” cause. I actually use my person computer for a variety of things throughout the day but there was definitely a way to optimize the usage. Here are tasks that require my computer to be on all the time:

  1. File Server (mainly used for backups)
  2. Torrents
  3. PVR System
  4. Personal FTP Server (mainly used for syncing settings with my work computer)
  5. MyCast Orb Sharing

I immediately saw that I can give up MyCast Orb Sharing, since I haven’t used it for months. Read on…

1500VA of Battery Backup for Omninoggin.com


I recently purchased an APC BACK-UPS XS 1500VA LCD for $120 to prepare for California rolling blackouts/brownouts. I’m not sure if this is going to be worth it yet since I still cannot supply backup internet access in case of power outage. So if the power goes out, omninoggin.com along with a few other sites will still be forced offline. The great news though is that all of my precious hardwares are completely protected from over/under power issues. Here are some interesting facts I found out while installing this battery backup unit:
Read on…

Make Your WordPress 10X faster During Traffic Storms


This tutorial will augment the technique of automatically enabling WP-Cache during heavy load with the ability to switch to a low-bandwidth WordPress theme at the same time.

Few reasons to do this

1. WP-Cache messes with your site statistics, so you do not want to leave it on when your site is not being hammered.
2. You don’t want to use a bandwidth efficient theme all the time because it’s not pretty-lookin’.
3. During traffic storms (e.g. Digg Effect), every 1/100 second optimization tweak counts.
4. If you host your site on a shared host, you will most likely have a bandwidth quota. Switching to a leaner theme conserves your bandwidth (duh!)
5. If you host your site on a home connection, your upload is not up to par with most hosting services, so you need to use that small pipe efficiently.
6. Each “IMG” tag, even if it’s a 1×1 pixel gif, requires an HTTP request to your web server. If you have 10 images on your page, and 10 users are loading your page, that’s 100 simultaneous calls to your server already. Leaner themes usually means less/no images, giving Apache some break.
7. If you’re server is non-uber, you don’t deserve to administer it.
Read on…

Setting up a FreeBSD 6.2 Web Server: Proxy Caching (Part 7)

Okay I lied, eAccelerator gives a pretty darn high ROI, but setting up a proxy cache gives a comparable or higher ROI. I chose to use Varnish as my proxy cache.

Once installed, Varnish will keep a cache of all objects requested by internet users (e.g. post-generated PHP pages, CSS, javascripts, images) with the goal of off-loading some work from your web server (remember: we won’t want big Apache to do the work only if it has to). Also Varnish takes full advantage of the OS’s virtual memory and advanced I/O features on FreeBSD 6.x making it the optimal choice for my setup.

There were many confusing instructions on the web about how to configure Varnish. Here are the steps I took to setting up Varnish for a signal machine running both Varnish and the web server: Read on…