<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1931489360431959261</id><updated>2012-01-17T04:55:35.458-08:00</updated><title type='text'>Brendon Crawford</title><subtitle type='html'>Practical Approaches to Software</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.aphexcreations.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default'/><link rel='alternate' type='text/html' href='http://blog.aphexcreations.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Brendon</name><uri>http://www.blogger.com/profile/17253776647489907462</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1931489360431959261.post-6918557507740927906</id><published>2011-09-28T14:48:00.000-07:00</published><updated>2011-09-28T14:48:10.179-07:00</updated><title type='text'>Fixing the DropBox Client for GNU/Linux</title><content type='html'>&lt;p&gt;
I had experienced an issue with the DropBox client for Ubuntu 10.04 where PSD files over 1MB were not consistently syncing. Here is a solution which seems to have fixed the problem. 
&lt;/p&gt;
&lt;p&gt;
Keep in mind that this involves making changes to &lt;strong&gt;/etc/fstab&lt;/strong&gt;, which if not done properly, could cause loss of data or other disasters. First, be sure to backup your &lt;strong&gt;/etc/fstab&lt;/strong&gt; file, and read up on some &lt;a href="https://help.ubuntu.com/community/Fstab"&gt;fstab documentation&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
In &lt;strong&gt;/etc/fstab&lt;/strong&gt; find the root mount point which should have a forward slash as the 2nd field. Fields are separated by spaces or tabs on a line. Mine looks like this:
&lt;/p&gt;
&lt;pre&gt;
/dev/sda3 / ext3 errors=remount-ro 0 1
&lt;/pre&gt;
&lt;p&gt;
The 4th field is the &lt;strong&gt;options&lt;/strong&gt; field. You will want to append the &lt;strong&gt;user_xattr&lt;/strong&gt; option to these options. Options are separated by commas, with no space between them. So, in my case, it would look like this:
&lt;/p&gt;
&lt;pre&gt;
/dev/sda3 / ext3 errors=remount-ro,&lt;strong&gt;user_xattr&lt;/strong&gt; 0 1
&lt;/pre&gt;
&lt;p&gt;
After saving this file, restart your computer and DropBox should work correctly.
&lt;/p&gt;


&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1931489360431959261-6918557507740927906?l=blog.aphexcreations.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.aphexcreations.net/feeds/6918557507740927906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1931489360431959261&amp;postID=6918557507740927906' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/6918557507740927906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/6918557507740927906'/><link rel='alternate' type='text/html' href='http://blog.aphexcreations.net/2011/09/fixing-dropbox-client-for-gnulinux.html' title='Fixing the DropBox Client for GNU/Linux'/><author><name>Brendon</name><uri>http://www.blogger.com/profile/17253776647489907462</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1931489360431959261.post-3597731812043151458</id><published>2011-09-12T18:05:00.000-07:00</published><updated>2011-09-12T18:10:34.756-07:00</updated><title type='text'>Installing Erlang and Agner Package Manager from Source on Ubuntu 10.04</title><content type='html'>I have had many problems using the default erlang package on ubuntu, so I have found it best to install from source. I also use the &lt;a href="http://erlagner.org/"&gt;Agner package manager&lt;/a&gt; which simplifies Erlang package management. You will need to run most of these commands as sudo.

&lt;pre&gt;&amp;gt; apt-get purge erlang
&amp;gt; apt-get build-dep erlang
&amp;gt; apt-get install curl
&amp;gt; apt-get install libc6-dev
&amp;gt; apt-get install libncurses5-dev
&amp;gt; apt-get install m4
&amp;gt; apt-get install libssl-dev
&amp;gt; apt-get install erlang-mode
&amp;gt; apt-get install openjdk-6-jdk
&amp;gt; cd /usr/local/src/
&amp;gt; git clone --recursive git://github.com/erlang/otp.git erlang-otp
&amp;gt; cd erlang-otp
&amp;gt; ## Replace this with newer version if you wish
&amp;gt; git checkout OTP_R14B01
&amp;gt; ./otp_build autoconf
&amp;gt; ./configure --prefix=/usr/local
&amp;gt; make
&amp;gt; make install
&amp;gt; curl https://raw.github.com/agner/agner/master/scripts/oneliner | sh
&amp;gt; export ERL_LIBS="/usr/local/agner/packages"
&amp;gt; echo &gt;&gt; /etc/environment
&amp;gt; echo 'ERL_LIBS="/usr/local/agner/packages"' &gt;&gt; /etc/environment
&lt;/pre&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1931489360431959261-3597731812043151458?l=blog.aphexcreations.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.aphexcreations.net/feeds/3597731812043151458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1931489360431959261&amp;postID=3597731812043151458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/3597731812043151458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/3597731812043151458'/><link rel='alternate' type='text/html' href='http://blog.aphexcreations.net/2011/09/installing-erlang-and-agner-package.html' title='Installing Erlang and Agner Package Manager from Source on Ubuntu 10.04'/><author><name>Brendon</name><uri>http://www.blogger.com/profile/17253776647489907462</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1931489360431959261.post-433226186673107267</id><published>2011-08-11T00:44:00.000-07:00</published><updated>2011-09-08T12:39:51.850-07:00</updated><title type='text'>Installing RabbitMQ with Management Plugin from Source on Ubuntu 10.04</title><content type='html'>These should be run as sudo...
&lt;pre&gt;$ apt-get purge rabbitmq-*
$ userdel -fr rabbitmq
$ apt-get install xsltproc xmlto
$ useradd -M -r -s /bin/bash -d /var/lib/rabbitmq rabbitmq
$ mkdir -p /usr/local/lib/rabbitmq/plugins/
$ mkdir -p /var/log/rabbitmq/ /var/lib/rabbitmq/ /etc/rabbitmq/
$ chown -R root:root /usr/local/lib/rabbitmq/ /etc/rabbitmq/
$ chown -R rabbitmq:rabbitmq /var/log/rabbitmq/ /var/lib/rabbitmq/
$ chmod -R 775 /usr/local/lib/rabbitmq/ /var/log/rabbitmq/
$ chmod -R 700 /var/lib/rabbitmq/
$ cd /usr/local/src/
$ hg clone http://hg.rabbitmq.com/rabbitmq-public-umbrella
$ cd rabbitmq-public-umbrella
$ hg checkout rabbitmq_v2_5_1
$ make co
$ make release
$ make test
$ cp -fr rabbitmq-server/ebin /usr/local/lib/rabbitmq/
$ cp -f rabbitmq-server/scripts/rabbitmqctl /usr/local/sbin/
$ cp -f rabbitmq-server/scripts/rabbitmq-env /usr/local/sbin/
$ cp -f rabbitmq-server/scripts/rabbitmq-server /usr/local/sbin/
$ cp -f rabbitmq-management/dist/amqp_client-*.ez /usr/local/lib/rabbitmq/plugins/
$ cp -f rabbitmq-management/dist/mochiweb-*.ez /usr/local/lib/rabbitmq/plugins/
$ cp -f rabbitmq-management/dist/rabbitmq_management_agent-*.ez /usr/local/lib/rabbitmq/plugins/
$ cp -f rabbitmq-management/dist/rabbitmq_management-*.ez /usr/local/lib/rabbitmq/plugins/
$ cp -f rabbitmq-management/dist/rabbitmq_mochiweb-*.ez /usr/local/lib/rabbitmq/plugins/
$ cp -f rabbitmq-management/dist/webmachine-*.ez /usr/local/lib/rabbitmq/plugins/
$ bash -c 'echo "export HOME=/var/lib/rabbitmq" &gt;&gt; /etc/rabbitmq/rabbitmq-env.conf'
$ bash -c 'echo "export RABBITMQ_HOME=/usr/local/lib/rabbitmq" &gt;&gt; /etc/rabbitmq/rabbitmq-env.conf'
&lt;/pre&gt;

If you want to run RabbitMQ as a background service, add it as a supervisord service. Supervisord can be installed by doing:

&lt;pre&gt;apt-get install supervisor
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1931489360431959261-433226186673107267?l=blog.aphexcreations.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.aphexcreations.net/feeds/433226186673107267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1931489360431959261&amp;postID=433226186673107267' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/433226186673107267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/433226186673107267'/><link rel='alternate' type='text/html' href='http://blog.aphexcreations.net/2011/08/installing-rabbitmq-with-management.html' title='Installing RabbitMQ with Management Plugin from Source on Ubuntu 10.04'/><author><name>Brendon</name><uri>http://www.blogger.com/profile/17253776647489907462</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1931489360431959261.post-5814723629633192342</id><published>2011-07-29T18:37:00.000-07:00</published><updated>2011-10-07T11:31:30.510-07:00</updated><title type='text'>Sharing a Terminal Session Between 2 Users Behind a Firewall</title><content type='html'>&lt;p&gt;
    Imaging that you have 2 users both using Ubuntu 10.04:
    &lt;strong&gt;UserA@HostA&lt;/strong&gt;
    and &lt;strong&gt;UserB@HostB&lt;/strong&gt;. &lt;strong&gt;HostB&lt;/strong&gt; is behind a
    firewall,
    and &lt;strong&gt;UserA&lt;/strong&gt; would like to SSH into &lt;strong&gt;HostB&lt;/strong&gt;
    and share a terminal with &lt;strong&gt;UserB&lt;/strong&gt; to
    collaborate on some kind of task. This article will attempt to
    explain how to do this.
&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;
        &lt;p&gt;
            Make sure both users have SSH access to a "middle" server. We will
            call this &lt;strong&gt;HostC&lt;/strong&gt;...
        &lt;/p&gt;
&lt;pre&gt;root@HostC$ sudo useradd -m -s /bin/bash UserA
root@HostC$ sudo useradd -m -s /bin/bash UserB&lt;/pre&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;p&gt;
            Install &lt;em&gt;OpenSSH Server&lt;/em&gt; on &lt;strong&gt;HostB&lt;/strong&gt;...
        &lt;/p&gt;
&lt;pre&gt;UserB@HostB$ sudo apt-get install ssh&lt;/pre&gt;
        &lt;p&gt;
            Keep in mind that this could cause potential security
            issues, so you should also familiarize yourself with
            how to secure OpenSSH server. Specifically, make sure you
            disable the "PermitRootLogin" option.
        &lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;p&gt;
            Install GNU Screen on &lt;strong&gt;HostB&lt;/strong&gt; and
            setuid root for GNU Screen...
        &lt;/p&gt;
&lt;pre&gt;UserB@HostB$ sudo apt-get install screen
UserB@HostB$ sudo chmod u+s /usr/bin/screen
UserB@HostB$ sudo chmod -R 755 /var/run/screen&lt;/pre&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;p&gt;
            Add a new user on &lt;strong&gt;for UserA@HostB&lt;/strong&gt;...
        &lt;/p&gt;
&lt;pre&gt;UserB@HostB$ sudo useradd -m -s /bin/bash UserA
UserB@HostB$ sudo passwd UserA&lt;/pre&gt;
       &lt;p&gt;
           Be sure to remember the password for &lt;strong&gt;UserA&lt;/strong&gt;
           which was set here.
       &lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;p&gt;
            Have &lt;strong&gt;UserB&lt;/strong&gt; SSH into
            &lt;strong&gt;HostC&lt;/strong&gt;, setting up a remote forward...
        &lt;/p&gt;
&lt;pre&gt;UserB@HostB$ ssh -R 20022:localhost:22 UserB@HostC&lt;/pre&gt;
       &lt;p&gt;
           &lt;strong&gt;UserB&lt;/strong&gt; will need to keep this terminal window open,
           but will not need to enter commands here.
       &lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;p&gt;
            Have &lt;strong&gt;UserA&lt;/strong&gt; SSH into
            &lt;strong&gt;HostC&lt;/strong&gt;.
        &lt;/p&gt;
&lt;pre&gt;UserA@HostA$ ssh UserA@HostC&lt;/pre&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;p&gt;
            Now, from &lt;strong&gt;HostC&lt;/strong&gt;, have &lt;strong&gt;UserA&lt;/strong&gt;
            SSH into &lt;strong&gt;HostB&lt;/strong&gt;...
        &lt;/p&gt;
&lt;pre&gt;UserA@HostC$ ssh -p 20022 UserA@localhost&lt;/pre&gt;
        &lt;p&gt;
            Keep in mind that &lt;strong&gt;UserA&lt;/strong&gt; will be asked for
            a password at this point. This will be the password which
            was set earlier.
        &lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;p&gt;
            At this point, &lt;strong&gt;UserA&lt;/strong&gt; should now be logged
            in to &lt;strong&gt;HostB&lt;/strong&gt;. Now &lt;strong&gt;UserA&lt;/strong&gt;
            will need to setup a named screen session.
        &lt;/p&gt;
&lt;pre&gt;UserA@HostB$ screen -S foobar
UserA@HostB$ screen -X multiuser on
UserA@HostB$ screen -S acladd UserB&lt;/pre&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;p&gt;
            In a new terminal window, on &lt;strong&gt;HostB&lt;/strong&gt;,
            have &lt;strong&gt;UserB&lt;/strong&gt; join the screen session...
        &lt;/p&gt;
&lt;pre&gt;UserB@HostB$ screen -x UserA/foobar&lt;/pre&gt;
    &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
    At this point, both users will share a terminal session on
    &lt;strong&gt;HostB&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
    If you plan on doing this often, you should familiarize
    yourself with &lt;em&gt;iptables&lt;/em&gt; so as to properly
    setup a firewall for added security.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1931489360431959261-5814723629633192342?l=blog.aphexcreations.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.aphexcreations.net/feeds/5814723629633192342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1931489360431959261&amp;postID=5814723629633192342' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/5814723629633192342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/5814723629633192342'/><link rel='alternate' type='text/html' href='http://blog.aphexcreations.net/2011/07/sharing-terminal-session-between-2.html' title='Sharing a Terminal Session Between 2 Users Behind a Firewall'/><author><name>Brendon</name><uri>http://www.blogger.com/profile/17253776647489907462</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1931489360431959261.post-412158303956901762</id><published>2011-05-25T00:07:00.000-07:00</published><updated>2011-05-25T00:18:49.069-07:00</updated><title type='text'>Shell Scripting with GNU Screen</title><content type='html'>This launches a program in a new screen, method 1. Does not close window after program terminates...

&lt;pre&gt;
screen -t "my-program" -p "-"
screen -p "my-program" -X stuff "/path/to/program
"
screen -X select "my-program"
&lt;/pre&gt;

This launches a program in a new screen, method 2. Closes window after program terminates...

&lt;pre&gt;
screen -t "my-program" -p "-" "/path/to/program"
screen -X select "my-program"
&lt;/pre&gt;

This kills a process in another screen. This depends on screen-session which can be found at https://github.com/skoneka/screen-session ...

&lt;pre&gt;
sudo screen-session kill "INT" "my-program"
&lt;/pre&gt;

This kills a screen window...

&lt;pre&gt;
screen -p "my-program" -X kill
screen -wipe
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1931489360431959261-412158303956901762?l=blog.aphexcreations.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.aphexcreations.net/feeds/412158303956901762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1931489360431959261&amp;postID=412158303956901762' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/412158303956901762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/412158303956901762'/><link rel='alternate' type='text/html' href='http://blog.aphexcreations.net/2011/05/shell-scripting-with-gnu-screen.html' title='Shell Scripting with GNU Screen'/><author><name>Brendon</name><uri>http://www.blogger.com/profile/17253776647489907462</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1931489360431959261.post-8365971075309231059</id><published>2011-01-10T16:51:00.000-08:00</published><updated>2011-07-29T18:41:05.580-07:00</updated><title type='text'>Compiling Nginx from Source on Ubuntu 10.04</title><content type='html'>This needs to be run as root.

&lt;pre&gt;
&lt;strong&gt;## Basic stuff&lt;/strong&gt;
apt-get update
apt-get install build-essential git-core wget

&lt;strong&gt;## Install PCRE for rewriting&lt;/strong&gt;
apt-get install libpcre3 libpcre3-dev

&lt;strong&gt;## Install ssl&lt;/strong&gt;
apt-get install openssl libssl-dev

&lt;strong&gt;## Download nginx sources&lt;/strong&gt;
cd /usr/local/src/
svn checkout svn://svn.nginx.org/nginx/trunk nginx
cd nginx/

&lt;strong&gt;## Configure&lt;/strong&gt;
./configure \
    --prefix="/usr/local" \
    --conf-path="/usr/local/etc/nginx/nginx.conf" \
    --with-http_ssl_module \
    --with-cc-opt="-I /usr/include/" \
    --with-cc-opt="-I /usr/include/openssl/"

&lt;strong&gt;## Build and install&lt;/strong&gt;
make &amp;&amp; make install

&lt;strong&gt;## Install init script&lt;/strong&gt;
cd /usr/local/src/
git clone git://github.com/brendoncrawford/nginx-init-ubuntu.git
chmod +x nginx-init-ubuntu/nginx
mkdir -p /usr/local/etc/init.d/
cp nginx-init-ubuntu/nginx /usr/local/etc/init.d/nginx
ln -s /usr/local/etc/init.d/nginx /etc/init.d/nginx
/usr/sbin/update-rc.d -f nginx defaults

&lt;strong&gt;## Cleanup stuff&lt;/strong&gt;
rm -f /usr/local/etc/nginx/*.default
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1931489360431959261-8365971075309231059?l=blog.aphexcreations.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.aphexcreations.net/feeds/8365971075309231059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1931489360431959261&amp;postID=8365971075309231059' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/8365971075309231059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/8365971075309231059'/><link rel='alternate' type='text/html' href='http://blog.aphexcreations.net/2011/01/compiling-nginx-from-source-on-ubuntu.html' title='Compiling Nginx from Source on Ubuntu 10.04'/><author><name>Brendon</name><uri>http://www.blogger.com/profile/17253776647489907462</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1931489360431959261.post-7704393698703001560</id><published>2010-11-20T17:01:00.000-08:00</published><updated>2010-11-20T17:04:22.039-08:00</updated><title type='text'>4 Ways to Get an IP Address From a Host Name in Shell/Bash</title><content type='html'>&lt;pre&gt;
$ dig +short google.com A | head -n1

$ host -4t A google.com | head -n1 | awk -F' ' '{print $NF}'

$ gethostip google.com | cut -d' ' -f2

$ nslookup google.com | grep -iFA2 'Non-authoritative answer:' | grep -iF 'Address:' | cut -d' ' -f2
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1931489360431959261-7704393698703001560?l=blog.aphexcreations.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.aphexcreations.net/feeds/7704393698703001560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1931489360431959261&amp;postID=7704393698703001560' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/7704393698703001560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/7704393698703001560'/><link rel='alternate' type='text/html' href='http://blog.aphexcreations.net/2010/11/4-ways-to-get-ip-address-from-host-name.html' title='4 Ways to Get an IP Address From a Host Name in Shell/Bash'/><author><name>Brendon</name><uri>http://www.blogger.com/profile/17253776647489907462</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1931489360431959261.post-7741887658589744556</id><published>2009-11-28T21:25:00.006-08:00</published><updated>2009-11-28T21:27:51.236-08:00</updated><title type='text'>DrupalORM: As a programmatic ORM interface to nodes and their CCK fields</title><content type='html'>I have recently put up an initial development version of DrupalORM. This provides a nice OOP-like ORM interface to Drupal nodes. It can handle basic CRUD operations as well as handling recursive nodereference nodes.

The project is located at &lt;a href="http://drupal.org/project/orm/"&gt;http://drupal.org/project/orm/&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1931489360431959261-7741887658589744556?l=blog.aphexcreations.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.aphexcreations.net/feeds/7741887658589744556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1931489360431959261&amp;postID=7741887658589744556' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/7741887658589744556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/7741887658589744556'/><link rel='alternate' type='text/html' href='http://blog.aphexcreations.net/2009/11/drupalorm-as-programmatic-orm-interface.html' title='DrupalORM: As a programmatic ORM interface to nodes and their CCK fields'/><author><name>Brendon</name><uri>http://www.blogger.com/profile/17253776647489907462</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1931489360431959261.post-7840907934575405706</id><published>2009-11-26T01:22:00.000-08:00</published><updated>2011-07-29T18:41:54.664-07:00</updated><title type='text'>Fixing Weak Wireless on Asus EEE PC With Ubuntu 9.10</title><content type='html'>As a quick google search will show, the wireless signal on the Asus EEE PC for Ubuntu 9.10 is pretty terrible. I found this little trick to work quite well. (Perform at your own risk)

&lt;pre&gt;
$ sudo apt-get install linux-backports-modules-wireless-karmic-generic
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1931489360431959261-7840907934575405706?l=blog.aphexcreations.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.aphexcreations.net/feeds/7840907934575405706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1931489360431959261&amp;postID=7840907934575405706' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/7840907934575405706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/7840907934575405706'/><link rel='alternate' type='text/html' href='http://blog.aphexcreations.net/2009/11/fixing-weak-wireless-on-asus-eee-pc.html' title='Fixing Weak Wireless on Asus EEE PC With Ubuntu 9.10'/><author><name>Brendon</name><uri>http://www.blogger.com/profile/17253776647489907462</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1931489360431959261.post-2555564405892075743</id><published>2009-08-17T23:03:00.000-07:00</published><updated>2011-07-29T18:42:15.863-07:00</updated><title type='text'>Write to HFSPlus Formatted iPod From Linux (Ubuntu)</title><content type='html'>If you have an ipod which was formatted in iTunes for OSX, it will most likely be formatted with the HFSPlus filesystem with journalling enabled. Ubuntu, by default can write to HFSPlus, but only if journalling is disabled. To write to your iPod, you will need to issue the following command from within the terminal in OSX...

&lt;pre&gt;
diskutil disableJournal /Volumes/NAME-OF-IPOD
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1931489360431959261-2555564405892075743?l=blog.aphexcreations.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.aphexcreations.net/feeds/2555564405892075743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1931489360431959261&amp;postID=2555564405892075743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/2555564405892075743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/2555564405892075743'/><link rel='alternate' type='text/html' href='http://blog.aphexcreations.net/2009/08/write-to-hfsplus-formatted-ipod-from.html' title='Write to HFSPlus Formatted iPod From Linux (Ubuntu)'/><author><name>Brendon</name><uri>http://www.blogger.com/profile/17253776647489907462</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1931489360431959261.post-5302731414515655571</id><published>2009-08-03T13:34:00.000-07:00</published><updated>2011-07-29T18:44:01.390-07:00</updated><title type='text'>Enabling Memory Profiling for xDebug 2</title><content type='html'>XDebug has not had memory profiling for the last couple of years. I am not sure why it was taken out, but it was. The APD memory profiling seems for the last year or so to be completely broken, so that is no good as well.

There is a patch over at &lt;a href="http://xdebug.org/archives/xdebug-general/1228.html"&gt;http://xdebug.org/archives/xdebug-general/1228.html&lt;/a&gt; which will allow for memory profiling in xdebug.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1931489360431959261-5302731414515655571?l=blog.aphexcreations.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.aphexcreations.net/feeds/5302731414515655571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1931489360431959261&amp;postID=5302731414515655571' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/5302731414515655571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/5302731414515655571'/><link rel='alternate' type='text/html' href='http://blog.aphexcreations.net/2009/08/enabling-memory-profiling-for-xdebug-2.html' title='Enabling Memory Profiling for xDebug 2'/><author><name>Brendon</name><uri>http://www.blogger.com/profile/17253776647489907462</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1931489360431959261.post-1628692472154326303</id><published>2009-07-31T19:08:00.000-07:00</published><updated>2009-07-31T19:28:13.605-07:00</updated><title type='text'>Using GnuCash With Bank of the West</title><content type='html'>This is not a tutorial for how to setup GnuCash. There is plenty of documentation out there for that. This, however will give you the settings you need to integrate GnuCash with Bankofthewest etimebanker service. This assumes you live in the USA. Have fun.

&lt;pre&gt;
* AqBanking Wizard

  * Users &gt; General...

    * User Name: (your name)

    * User ID: (your etimebanker id)

    * Customer ID: (your etimebanker id)

    * Country: United States of America

    * Bank ID: (your bank routing code, found at bottom of your check)

  * Users &gt; OFX...

    * FID: "5809"

    * ORG: "BancWest Corp"

    * Server URL: "https://olbp.bankofthewest.com/ofx0002/ofx_isapi.dll"

    * Server Options

      * Supports account list download

      * Supoorts statement download

      * Force SSLv3

    * Expert Settings...

      * APPID: "QWIN"

      * APPVER: "1800"

    * Header Version: "102"

  * Accounts &gt; General...

    * Account Settings

      * Name: "DIRECT CHOICE CHECKING" or "SAVINGS INTEGRATED - PERSONAL"

      * Number: (your account number)

      * IBAN: (blank)

      * Owner Name: (your name)

      * Type: "CHECKING" or "SAVINGS"

    * Available Users...

      * All users of this backend

      * Add user

    * Bank Settings

      * Code: (bank routing code)
   
      * BIC: (blank)

      * Name: "Bank of the West"
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1931489360431959261-1628692472154326303?l=blog.aphexcreations.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.aphexcreations.net/feeds/1628692472154326303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1931489360431959261&amp;postID=1628692472154326303' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/1628692472154326303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/1628692472154326303'/><link rel='alternate' type='text/html' href='http://blog.aphexcreations.net/2009/07/using-gnucash-with-bank-of-west.html' title='Using GnuCash With Bank of the West'/><author><name>Brendon</name><uri>http://www.blogger.com/profile/17253776647489907462</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1931489360431959261.post-2498613072842189044</id><published>2009-04-16T13:26:00.000-07:00</published><updated>2009-04-17T11:10:20.507-07:00</updated><title type='text'>Theming the Drupal 6 User Login Form</title><content type='html'>There are a great deal of articles out there on theming the Drupal User Login Form, but most don't give you granular control over each individual form element. Rather, you are restricted to mainly editing the css. Here is a way to have complete granular control over each element within the user login form...

&lt;strong&gt;1. Place this function either in a module or in your template.php:&lt;/strong&gt;
&lt;pre&gt;
function get_user_login_form() {
  $form_id = 'user_login';
  $form = array();
  $form['name'] = array(
    '#type' =&amp;gt; 'textfield',
    '#maxlength' =&amp;gt; USERNAME_MAX_LENGTH,
    '#required' =&amp;gt; TRUE,
    '#attributes' =&amp;gt; array('tabindex' =&amp;gt; '1'),
  );
  $form['pass'] = array(
    '#type' =&amp;gt; 'password',
    '#required' =&amp;gt; TRUE,
    '#attributes' =&amp;gt; array('tabindex' =&amp;gt; '2'),
  );
  $form['submit'] = array(
    '#type' =&amp;gt; 'submit',
    '#value' =&amp;gt; t('Log in'),
    '#weight' =&amp;gt; 2,
    '#attributes' =&amp;gt; array('tabindex' =&amp;gt; '3')
  );
  $form['#validate'] = user_login_default_validators();
  $form['#build_id'] = sprintf('form-%s', md5(uniqid(mt_rand(), TRUE)));
  $form_state = array();
  drupal_prepare_form($form_id, $form, $form_state);
  drupal_process_form($form_id, $form, $form_state);
  $out = new stdClass;
  $out-&gt;form_start =
    sprintf("&amp;lt;form method='post' accept-charset='UTF-8' action='%s'&amp;gt;",
    url('user/login'));
  $out-&gt;form_end = "&amp;lt/form&amp;gt;";
  $out-&gt;name = drupal_render($form['name']);
  $out-&gt;pass = drupal_render($form['pass']);
  $out-&gt;submit =
    drupal_render($form['form_id']) .
    drupal_render($form['form_build_id']) .
    drupal_render($form['submit']);
  return $out;
}
&lt;/pre&gt;

&lt;strong&gt;2. In your .tpl.php file, output the fields&lt;/strong&gt;

&lt;pre&gt;
&amp;lt;?php
  $login_form = get_user_login_form(); 
?&amp;gt;
&amp;lt;?php print $login_form-&gt;form_start; ?&amp;gt;
  Username: &amp;lt;?php print $login_form-&gt;name; ?&amp;gt;&amp;lt;br /&amp;gt;
  Password: &amp;lt;?php print $login_form-&gt;pass; ?&amp;gt;&amp;lt;br /&amp;gt;
  &amp;lt;?php print $login_form-&gt;submit; ?&amp;gt;
&amp;lt;?php print $login_form-&gt;form_end; ?&amp;gt;
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1931489360431959261-2498613072842189044?l=blog.aphexcreations.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.aphexcreations.net/feeds/2498613072842189044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1931489360431959261&amp;postID=2498613072842189044' title='21 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/2498613072842189044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/2498613072842189044'/><link rel='alternate' type='text/html' href='http://blog.aphexcreations.net/2009/04/theming-drupal-user-login-form.html' title='Theming the Drupal 6 User Login Form'/><author><name>Brendon</name><uri>http://www.blogger.com/profile/17253776647489907462</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>21</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1931489360431959261.post-6462384041354219693</id><published>2008-07-11T13:58:00.000-07:00</published><updated>2008-07-11T14:00:38.589-07:00</updated><title type='text'>Drupy: Drupal in Python</title><content type='html'>" Drupy is a Python port of the Drupal content management system, which until now was only available in PHP."

This is a great project, filling a big need. Check it out.

&lt;a href="http://drupy.net"&gt;The Drupy Project&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1931489360431959261-6462384041354219693?l=blog.aphexcreations.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.aphexcreations.net/feeds/6462384041354219693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1931489360431959261&amp;postID=6462384041354219693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/6462384041354219693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/6462384041354219693'/><link rel='alternate' type='text/html' href='http://blog.aphexcreations.net/2008/07/drupy-drupal-in-python.html' title='Drupy: Drupal in Python'/><author><name>Brendon</name><uri>http://www.blogger.com/profile/17253776647489907462</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1931489360431959261.post-4569622415369254262</id><published>2008-04-15T00:26:00.000-07:00</published><updated>2008-04-15T00:27:36.581-07:00</updated><title type='text'>Drupal AJAX Forms Validation</title><content type='html'>Here is a beautiful little module I have created which will automagically validate your forms via AJAX, so you get no page refresh when getting back validation information on a Drupal form.

&lt;a href="http://drupal.org/project/ajax_validation"&gt;Drupal AJAX Forms Validation&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1931489360431959261-4569622415369254262?l=blog.aphexcreations.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.aphexcreations.net/feeds/4569622415369254262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1931489360431959261&amp;postID=4569622415369254262' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/4569622415369254262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/4569622415369254262'/><link rel='alternate' type='text/html' href='http://blog.aphexcreations.net/2008/04/drupal-ajax-forms-validation.html' title='Drupal AJAX Forms Validation'/><author><name>Brendon</name><uri>http://www.blogger.com/profile/17253776647489907462</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1931489360431959261.post-2678118677252071453</id><published>2008-03-17T15:24:00.000-07:00</published><updated>2008-03-17T15:27:17.676-07:00</updated><title type='text'>Get Non Up-to-Date Files in CVS</title><content type='html'>Here it is:

&lt;pre style="color:green;"&gt;
# Get Non Up-to-Date Files in CVS
# This will not work within a Bash alias without proper escaping
# It would be better to put it in file somewhere within you Bash PATH

cvs -qr status | grep Status: | awk '$4 != "Up-to-date" { print $0 }'
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1931489360431959261-2678118677252071453?l=blog.aphexcreations.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.aphexcreations.net/feeds/2678118677252071453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1931489360431959261&amp;postID=2678118677252071453' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/2678118677252071453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/2678118677252071453'/><link rel='alternate' type='text/html' href='http://blog.aphexcreations.net/2008/03/get-non-up-to-date-files-in-cvs.html' title='Get Non Up-to-Date Files in CVS'/><author><name>Brendon</name><uri>http://www.blogger.com/profile/17253776647489907462</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1931489360431959261.post-8813650504075263960</id><published>2007-10-18T04:27:00.000-07:00</published><updated>2007-10-22T22:51:36.325-07:00</updated><title type='text'>Enabling CakePHP 1.1 on Lighttpd 1.5</title><content type='html'>A lot of people out there are trying to figure out how to get CakePHP 1.1x running on Lighttpd 1.5. Here is the solution. Please follow it carefully:

&lt;pre&gt;
&lt;strong&gt;#### Disable BASE_URL ####&lt;/strong&gt;

 a) Open the file "app/config/core.php"
 b) Make sure that the BASE_URL constant is commented out
 
&lt;strong&gt;#### REDIRECT_URI fix ####&lt;/strong&gt;

 a) Open the file "cake/basics.php"
 b) Go to the function "setUri"
 c) Find this line:

   &lt;span style='color:green'&gt;if (env('HTTP_X_REWRITE_URL')) {&lt;/span&gt;
    
  Replace with this:
  
   &lt;span style='color:green'&gt;if( env('REDIRECT_URI') ) {
    $uri = env('REDIRECT_URI');
   }
   else if (env('HTTP_X_REWRITE_URL')) {&lt;/span&gt;

&lt;strong&gt;#### Add rewrite rules to lighttpd.conf ####&lt;/strong&gt;

 a) Enable mod_rewrite in lighttpd.conf
 b) Add this to lighttpd.conf:

   &lt;span style='color:green'&gt;url.rewrite-once = (
    "^/(css|files|img|js|stats)/(.*)$" =&gt; "/$1/$2",
    "^/(.*)$" =&gt; "/index.php?url=$1"
   )&lt;/span&gt;

&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1931489360431959261-8813650504075263960?l=blog.aphexcreations.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.aphexcreations.net/feeds/8813650504075263960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1931489360431959261&amp;postID=8813650504075263960' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/8813650504075263960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1931489360431959261/posts/default/8813650504075263960'/><link rel='alternate' type='text/html' href='http://blog.aphexcreations.net/2007/10/enabling-cakephp-11-on-lighttpd-15.html' title='Enabling CakePHP 1.1 on Lighttpd 1.5'/><author><name>Brendon</name><uri>http://www.blogger.com/profile/17253776647489907462</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry></feed>
