Monday, June 30, 2008

Tech4frica

When tech conferences are organized within a hop-skip range of where i live it always makes me feel warm and fuzzy feelings towards the organizers.

So far the speaker line up for Tech4frica looks pretty good and i'll definitely be attending.


Wednesday, June 11, 2008

Git in my eye

Okay, so Linus Torvalds has struck again as GIT gains more and more traction each day from GitHub to 37Signals.

I can no longer ignore this distributed manifestation and will start playing around with switching from svn to git on one of my own projects. In the mean time, a gift from our friendly neighbourhood backpackers.

Open source push email and calendar

Who needs MobileMe when there's an open source solution waiting to be lovingly integrated into your business - funambol

Update!!
Came across a neat alternative: PostPath

Tuesday, June 10, 2008

gem install mysql

Let's pretend you have installed mysql with yum on your fedora box, and you want to install the mysql gem so you can take advantage of it's c binding goodness.

With giddy excitement you bash away at the keyboard and run the following command:

gem install mysql

But wait, what's this? An error the likes of which would consume small children given the chance:

checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... yes
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.

Fear not! For it probably doesn't know how to find you mysql_config file. Try something along the following lines:

sudo gem install mysql -- --with-mysql-config=/usr/lib/mysql/mysql_config

The location of mysql_config may vary depending on your system installation.

Tuesday, June 3, 2008

SELinux: PERMISSION DENIED!!!!

Doing a Rails app installation on Fedora Core 8, I kept getting "Permission Denied" errors.

I checked file permission, wept, begged and even went on a holy walk to try massage this problem into oblivion.

As it turns out, there's this dear little linux feature that came free of charge with my fedora installation: SELinux (Pronounced "seeeed-OF-eeviel"). This gem of a feature enforced security policies, which need to take your rails app's location into account, which you can do as follows:

chcon -R -t httpd_sys_content_t /path/to/your/app

Tuesday, May 27, 2008

Damn .svn to hell!

Every once in a while i need to destroy svn a project as a working copy.

find . -name .svn -exec rm -rf {} \;

or

find . -name .svn -print0 | xargs -0 rm -rf

Monday, May 12, 2008

Kaizen, Yoga and Ruby on Rails

Kaizen is the Japanese word for the concept (and practice) of continuous improvement. It is a philosophy by which one actively re-evaluates processes in all areas of life. These processes are changed and adjusted in ways which promote improvement and eliminate waste.

Kaizen requires some methodology through which evaluation is done - something like the scientific method. With a methodical approach, it is much easier to observe the affect of changes and respond to them appropriately.

Also worth mentioning, Kaizen is not only concerned with the end result, but the process by which the end is attained. It is a holistic philosophy that is concerned with the big picture.

What i find particularly interesting, is how this principal is also echoed within other disciplines, like yoga for instance.

The philosophy of yoga is a mind-body practice by which happiness is sought (in brief). The body is continuously taken to it's boundaries and incrementally pushed beyond. The mind follows and guides in this process, simultaneously being taken and pushed beyond it's boundaries. This duality in yoga is what makes it a holistic process that draws on all areas of life.

Yoga can very easily be understood to be continuous process of incremental improvement. The goal may be happiness (or continual bliss), but the process by which we reach that place is also important.

I do a lot of work with Ruby and Rails and cant help but attribute some of it's success with how well it echoes the precepts illustrated within kaizen and yoga. The whole agile software process of incremental changes and enhancement to crank out a product mirrors the previous philosophies well. The process by which the product is created is also made important. It is made joyful and it is made to easily flow from the developer and the business goals, by not wastefully overcomplicating the process with unnecessary syntax or configuration nightmares.

Rails tries to tackle it's problem domain holistically by providing tools that make development with it easier: templating, testing, code generation etc. Importantly, though, it is just a tool used by the person wielding it.

My belief is that the more complete a person's life and experience is, the more complete the solutions and processes are that this person is able to produce. To be as complete as possible for any one moment, the process by which that one moment is reached must be a process of continuous improvement and re-evaluation.