I’d just like to let everyone (2-3 people) who might visit here that i’ve created a promo code with my awesome host, namely Dreamhost. Their truely awesome for the price, and their support staff are great, i’ve always gotten a response back within an hour, at which point they’ve already gone ahead and fixed the issues at hand for me :)

Anyway, you will get a $20 discount if you enter ZHUOQE as the promo code when you signup. Also you will be helping out a broke web-developer cause i get some cash when you sign up ;)

Modern Bubbling 0.9.1

February 28th, 2007

Small update with an added feature, and the most critical bug fixed :)

Thanks to Tony Via who created a mod which added a header, i managed to squeeze a few hours aside in the middle of the night to work a bit on Modern Bubbling. I added Tony’s header with modifications, and another header style. I also fixed the custom font bug, or should i say, no-custom font, cause thats basically what it was, you were stuck with 11px Helvetica no matter what you picked in the message style preferences.

Anyway, enough talking, here it is:
http://adiumxtras.com/index.php?a=xtras&xtra_id=3629

hope you enjoy ;)

Mac OS X is an excellent web-development platform if you ask most (except if you ask Windows fanatics). It’s UNIX based, comes with Apache 1.3 pre-installed and ready to rock ‘n’ roll basically. But the default factory settings for Apache and more generally don’t fill all the requirements of the average web-developer, so you change settings, install this, install that, customize a few more things, and before long you’re not sure what you did and where sometimes. And this becomes a problem if/when it comes time to reinstall OSX on your little baby, or simply when your old baby is to old and ugly and you throw it out the window from the 4th floor head first in favor of a brand new and cute little baby. *evil grin*

Whatever the reason, it’s always a pain in the ass to reinstall a system, specially when you’ve installed and reconfigured a lot of background daemons and services. Hence I thought I’d share my method of configuration which makes it quite easy just lifting it all from one system to another.

What I’m gonna outline here is installing PHP 5, MySQL and additional tools, and reconfiguring apache the way I’ve done it.

So lets start by downloading PHP 5 for your system from here:
http://www.entropy.ch/software/macosx/php/

It’s a no brainer, just extract the tar.gz archive and double click the .pkg installer package and follow instructions. This will leave you with a working PHP install located in “/usr/local/php5/”.

Then lets move on to MySQL, download the package for your system here:
http://mysql.org/downloads/mysql/5.0.html#Mac_OS_X_(package_format)

Again, its an easy .pkg installation. Optionally, you can install the preference pane which is an easy way to start and stop MySQL. If you want the MySQL daemon to run at system startup, use the .pkg startup item installer, as the option in the preference pane doesn’t seem to work at all :P

The MySQL GUI Tools are very useful, and are available here:
http://mysql.org/downloads/gui-tools/5.0.html#OSX

As for Apache, there’s a few things to do, first of all you should make sure you’ve turned on “Personal Web Sharing” under the Sharing preference panel in System Preferences. Next we’re gonna add a single line to Apache’s configuration file. Use any text editor of your choice, to open “/etc/httpd/httpd.conf”, you can use the terminal based pico editor by running this in a terminal:

sudo pico /etc/httpd/httpd.conf

Then right at the bottom of the file, add the following on a new line (if you’re using pico, you can quickly scroll down using ctrl+v):

Include /Users/username/Library/httpd/*.conf

Obviously, make sure to replace “username” with your own username. The idea here is that we have apache automatically include all .conf files located in your own “~/Library/httpd/” folder.

Now, before we do anything else, I recommend you open your “~/Sites/” folder with the finder, create a new folder called “_public”, and move everything inside your Sites folder into the newly created _public folder. We’re gonna reconfigure your _public folder to be Apache’s root directory rather than “/Library/WebServer/Documents”.

Then open the “~/Library/” folder in your home folder, and create a folder named “httpd”, in there lets create “_main.conf”, and put this in it (the “Listen” settings you don’t really need unless you want them):

DocumentRoot “/Users/username/Sites/_public”
Listen 80
Listen 3000
Listen 8080

Again, replace “username” with your own username. Save the file, and run the following command in the terminal and enter your password when asked to relaunch Apache.

sudo apachectl graceful

Open http://localhost/ in a web browser, and you should see the contents of your own _public folder :)

Then you can continue to create an “aliases.conf”, “virtual_hosts.conf” and more in “~/Library/httpd/” and apache will automatically include them. This way, you only need to do a single modification to the bottom of httpd.conf on any new system aswell, and just place your config files in the correct dir, and you’re ready to rock ‘n’ roll ;)

What I’ve also done myself, is that I create virtual hosts for the different projects I’m working on. So lets say I’ve got a new project now called “Banjo”, then I would create “~/Sites/banjo/” and I’d create a virtual host entry in “virtual_hosts.conf” that looks like this:

<VirtualHost *:80>
   ServerName banjo
   DocumentRoot “/Users/username/Sites/banjo”
</VirtualHost>

Then I open “/etc/hosts” with a text editor, and I create a new entry which looks like this:

127.0.0.1 banjo

Once all is saved and done, I restart Apache with “sudo apachectl graceful”, open http://banjo/ in a web browser, and I’m all set to create another world dominating merciless enemy business killing machine of a site… Heh

Myself I’ve got phpMyAdmin installed in “~/Sites/_public/mysql/”, which makes it accessible at http://localhost/mysql/. Also, I have a virtual host configured, and a entry in the hosts file so I can also access from http://mysql/ :D

Then of course, I use TextMate, and I’ve got a TextMate project with all the Apache and PHP configuration files, which I can quickly open using Quicksilver by pressing cmd+space and typing “httpd” and pressing return cause the project file is called “httpd”. But the rest of my workflow is a story for another time ;)

I hope some of you have found this useful, saionara fili moy…

…so, here i am two days later after i felt like making some uber-combined search thing… lol… its uber-alpha/beta/omega/malaka/whatever, so don’t complain if it doesn’t work… lol

End result, its cool, but i’m far from happy with it, somewhat sloppy code, and the worst browser compatibility of any project i’ve ever done, Safari and Firefox should be alright, IE is outta question with all the png’s and shit i’m using in the design… lol

anyway, botton line, it works, thats the only reason its online, cause i’m a perfectionist at heart, and i’m not happy with it right now… but i don’t have anymore time to throw away on it right now… lol… not to mention, that it became kinda bloated and sluggish cause my design inspiration took a turn for the weird… lol

but but… check it out for yourself and see what you think…

http://www.searchthethree.com/

Exceptions… wiiee :D

February 7th, 2007

Ok, so this is gonna sound like i’m a complete n00b, but i’ve recently fallen in love with Exception handling in PHP5 :$ .

The reason why i never even looked at it before, is cause i’ve always strived for PHP4 compatibility, but with this latest project (more on it at a later date ;) ), PHP4 has gone out the window :D .

As for updates, not much, but i did recently upload a new quick PHP function to Code Yard. It’s called dir_exists(). It’s useful for checking if a directory exists, and if not, it will create it recursively, and return true or false. It works in PHP 4 and 5, in 4 it simply loops to create all required dirs since mkdir() doesn’t support the recursive argument.

Thats it for now, more updates soon, i’ve just been really busy the last few weeks with shit… GRRR