Today marks the rekindling of my vision to create positive, sustainable change in Cambodia.

My trip to Cambodia last December not only showed me how beautiful my family’s country is, but also illustrated the many real problems that trouble the country and its people. I have known this all along from the numerous articles I have read throughout the years, but it’s truly impactful to see and feel these those things firsthand. I have always had plans to go back to Cambodia one day so I could apply myself towards solving problems there, but the emotional roller coaster that underscored my recent visit brought about an urgency that I could not let pass.

My plan is simple:

  1. Create awareness
  2. Raise money
  3. Build schools and businesses in Cambodia

I’ve spent the last ten years honing my skills and relationships to be able to make a difference. Yesterday was my last day working at Demand Media. I left a comfortable, promising job as a Director of Engineering to focus my full time and effort on moving this life goal forward.

In the coming days, I will reveal my first initiative towards bringing about awareness.

 

Node.js does not come with RPMs for CentOS. Chris Abernethy provides instructions on how to do this but node.js has gained two major versions since then and files in the original source package have been removed. Here are the updated instructions without building the source as root.

  1. Make sure you have the Development Tools group installed
    1
    sudo yum groupinstall 'Development Tools'
  2. Install supporting development libraries
    1
    sudo yum install openssl-devel
  3. Download node.js 0.6.15 into your ~/rpmbuild/SOURCES folder
    1
    2
    3
    mkdir ~/rpmbuild/SOURCES
    cd ~/rpmbuild/SOURCES
    wget http://nodejs.org/dist/v0.6.15/node-v0.6.15.tar.gz
  4.  Download the latest specfile into you ~/rpmbuild/SPECS folder
    1
    2
    3
    mkdir ~/rpmbuild/SPECS
    cd ~/rpmbuild/SPECS
    wget https://raw.github.com/vibol/node-rpm-spec/master/nodejs.spec

Feel free to  fork/update the specfile as versions change on GitHub:

Here are the RPMs built from these instructions for the x86_64 architecture. Sorry, it’s unsigned.

 

It’s been almost exactly two years since the last update, but here it is.

v1.0 Release Notes:

  • Tidied up code
  • Cleaned up default settings
  • Add support for HTML fragments before/after the widget and title. This is available in the Appearance > Widget configuration of WordPress.
  • If you’re upgrading from a previous version and have used the get_ZenfolioRSS() function directly, you may need to update your call to get_ZenfolioRSS() to pass a configuration array. See function docs for more detail.
Head on over to the ZenfolioRSS for WordPress page to download the source files.
 

Palm Pre PlusHaving decided to go back to Verizon after two years of AT&T, I started shopping for a new smartphone. My poor experience with the Blackberry Bold really made me shy away from spending more money on a new Blackberry — I was on my 4th replacement Blackberry Bold by the time the one-year warranty ran out on the phone. The shoddy data network and mediocre voice quality of the AT&T network were important factors for my switch to Verizon.

My choice of carrier meant that the iPhone was out, though the lack of a physical keyboard took the iPhone out long ago. That left me to choose between a Google Android phone or a Palm webOS phone. With a keyboard being a requirement, I could choose from the Motorola Droid, Palm Pixi Plus or the Palm Pre Plus.

Continue reading »

Tagged with:
 

To diff and ignore whitespace, create a script called ‘sd’ with the following content:

1
2
#!bin/sh
svn diff --diff-cmd diff -x -uw $1 | view -

Run it like so:

1
sd -r13788:head
 

This post is password protected. To view it please enter your password below:


 

Having upgraded to Snow Leopard, I wanted to wipe out my MacPorts installation and start clean. I’ve had tons of stuff installed and updated from the past (three versions of each port, in fact). Here’s how to uninstall MacPorts.

The first step is to uninstall all the installed ports:

1
sudo port -f uninstall installed

Then remove any trace files lingering about:

1
2
3
4
5
6
7
8
9
10
sudo rm -rf /opt/local \
/Applications/MacPorts \
/Applications/DarwinPorts \
/Library/Tcl/macports1.0 \
/Library/Tcl/darwinports1.0 \
/Library/LaunchDaemons/org.macports.* \
/Library/StartupItems/DarwinPortsStartup \
/Library/Receipts/MacPorts*.pkg \
/Library/Receipts/DarwinPorts*.pkg \
~/.macports
 

Here are three simple steps to uninstall the MySQL installation provided by MySQL.com. You should take care with these commands since a typo can obliterate portions of your OS, requiring a reinstall. If you’re comfortable with shell commands and understand what’s being done, here are the commands:

1
2
3
sudo rm -rf "/usr/local/mysql*"
sudo rm -rf "/Library/StartupItems/MySQLCOM/"
Go to System Preferences... > ctrl-click the MySQL icon and remove it.
 

DOS sums up the sizes of all the files it lists when using the dir command, but Linux ls does not. Here’s an awk script that will calculate that information.

1
ls -la [filenames] | awk '{ sum += $4 } END { print sum }'

An easier command (thanks Sunny):

1
du -hs * --total
 

I installed a  fresh copy of Magento v1.3.2.2 on my development box using the installer and Google Chrome. After completing the install, I was unable to login to the Admin Panel through Chrome. It seemed to work fine in Firefox though. Each time I entered the admin username and password, I got sent back to the login page. Upon further investigation, I was unable to create an account or login via the frontend user interfaces either. The frontend would send me to a page indicating that I should turn Cookies on. I took a look at Chrome’s cookie bin and surely enough, there were no cookies being stored for my domain (magento-1.myhost.com). Other sites seemed to work fine.

At this point, I was really unsure what was going on. I found some references online to Magento and Cookies, but nothing to do with Google Chrome. Perhaps my issue was a particular one, but it was repeatable and my problem criteria only partially matched the other problems found online (i.e. the localhost problem). I also found that Google’s diagnostic tools are severely lacking. Unlike Firefox, which has tools like Tamper Data to let users diagnose HTTP Header problems, Chrome had nothing like it.

After a bit of sleuthing, I was able to see that Magento sets the following default cookie parameters if nothing is configured in the Magento Admin Panel:

Cookie Domain: magento-1.myhost.com (it looks up HTTP_HOST)
Cookie Path: /
Cookie Lifetime: 3600

I thought these parameters looked fine, but they were not working for Chrome. On a hunch, I decided to change the Cookie Lifetime from 3600 to 0 to force the browser to only keep the cookie data until the browser is closed.

Magento Admin_1248045898014

Surprisingly, it worked! I have not had time to figure out why this is the case yet, but I don’t have any concerns setting Cookie Lifetime to 0, so it will stay that way for now.