<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tom Claessens</title>
	<atom:link href="http://www.tmclssns.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tmclssns.net</link>
	<description>Photography and some more</description>
	<lastBuildDate>Fri, 12 Mar 2010 11:20:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Exploring Python / Django</title>
		<link>http://www.tmclssns.net/2010/exploring-python-django/</link>
		<comments>http://www.tmclssns.net/2010/exploring-python-django/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 11:20:55 +0000</pubDate>
		<dc:creator>tmclssns</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.tmclssns.net/?p=188</guid>
		<description><![CDATA[
from inventory.inventories.models import Catalog
from django.contrib import admin

I still need to explore much more in Python and Django, but it looks promising. When I&#8217;m finished with this framework, I guess I&#8217;ll advocate it just as much as some fellow colleagues to be used as a base CMS for a multitude of clients.
]]></description>
			<content:encoded><![CDATA[<pre class="brush: python;">
from inventory.inventories.models import Catalog
from django.contrib import admin
</pre>
<p>I still need to explore much more in <a title="Python" href="http://www.python.org/" target="_blank">Python</a> and <a title="Django, Framework for perfectionists with deadlines" href="http://www.djangoproject.com/" target="_blank">Django</a>, but it looks promising. When I&#8217;m finished with this framework, I guess I&#8217;ll advocate it just as much as some fellow colleagues to be used as a base CMS for a multitude of clients.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tmclssns.net/2010/exploring-python-django/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>(L)AMP setup (Mac OS X installation)</title>
		<link>http://www.tmclssns.net/2010/lamp-setup-mac-os-x-installation/</link>
		<comments>http://www.tmclssns.net/2010/lamp-setup-mac-os-x-installation/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 07:51:22 +0000</pubDate>
		<dc:creator>tmclssns</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[MAMP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[xdebug]]></category>

		<guid isPermaLink="false">http://www.tmclssns.net/?p=140</guid>
		<description><![CDATA[Installing AMP (Apache, MySQL, PHP) can sometimes be a real pain on a *nix based system. A lot of popular distributions make it easy for you with package managers like APT, YUM, etc. but when you compile everything from source you often run into unforeseen issues. I&#8217;ve had my share of problems so I decided [...]]]></description>
			<content:encoded><![CDATA[<p>Installing AMP (Apache, MySQL, PHP) can sometimes be a real pain on a *nix based system. A lot of popular distributions make it easy for you with package managers like <a title="Aptitude" href="http://wiki.debian.org/Apt" target="_blank">APT</a>, <a title="YUM" href="http://fedoraproject.org/wiki/Tools/yum" target="_blank">YUM</a>, etc. but when you compile everything from source you often run into unforeseen issues. I&#8217;ve had my share of problems so I decided to (initially for my own reference) write down the process of compiling an AMP stack from source on Mac OS X (MacBook Pro).</p>
<p>I&#8217;ll just focus on the commands (as written paragraphs won&#8217;t be of much use) and give additional information / advise where necessary. A &#8216;\&#8217; or backslash on a command line instruction means that for readability I put a single command on multiple rows. So when you&#8217;re working in Terminal.app, you should type everything on a single line.</p>
<p>Final note: some settings / paths might be different on your system &#8211; so reason and attention might be necessary (and some shell experience comes in handy too!)</p>
<p><span id="more-140"></span></p>
<p><strong>Install Apache</strong></p>
<p>Get a fresh copy of the latest stable production version of the <a title="Apache web server" href="http://httpd.apache.org/download.cgi" target="_blank">Apache web server</a>. (I&#8217;m using version 2.2.14)</p>
<blockquote><p>$ cd ~/Downloads<br />
$ tar -xzf httpd-2.2.14.tar.gz<br />
$ cd httpd-2.2.14<br />
$ CFLAGS=&#8221;-arch x86_64&#8243;<br />
$ ./configure &#8211;prefix=/usr/local/apache2 &#8211;enable-mods-shared=all -with-ssl=/usr -with-mpm-prefork \<br />
-disable-unique-id -enable-ssl -enable-dav -enable-cache -enable-proxy -enable-logio \<br />
-enable-deflate -with-included-apr -enable-cgi -enable-cgid -enable-suexec<br />
$ make<br />
$ sudo make install</p></blockquote>
<p>The installation of Apache is now completed. You should definitely read up on the documentation of Apache so you can configure it so it suits your needs. The configuration file is located at /usr/local/apache2/conf/httpd.conf (if you use a different &#8216;&#8211;prefix&#8217;, your config file is available at <em>PREFIX</em>/conf/httpd.conf).</p>
<blockquote><p>$ sudo apachectl start</p></blockquote>
<p>If you didn&#8217;t see any errors in Terminal, Apache is now started and running. You can verify this by running the following command:</p>
<blockquote>
<p style="text-align: left;">$ ps -ax | grep httpd</p>
</blockquote>
<p style="text-align: left;">You can also verify your installation by opening a browser window and browsing to &#8220;<a title="localhost" href="http://localhost/" target="_blank">http://localhost/</a>&#8221; &#8211; if you see a &#8220;It works!&#8221; page, that&#8217;s Apache in full effect!</p>
<p style="text-align: left;">
<p><strong>Install MySQL</strong></p>
<p>Because we like free software (free in free source <em>and</em> cheap) I opted for <a title="MySQL" href="http://www.mysql.com/" target="_blank">MySQL</a> <a title="MySQL community server" href="http://dev.mysql.com/downloads/mysql/" target="_blank">community server</a> as database server. Installing MySQL is the same as installing any other application on a Mac. Download and mount the DMG image and double click .pkg file and follow the instructions.</p>
<p>By default MySQL installs itself at /usr/local/mysql-5.1.43-osx10.6-x86_64 (I&#8217;m using version 5.1.43) but creates a symbolic link at <strong>/usr/local/mysql</strong>. By default, the MySQL socket file will be created at /tmp/mysql.sock if you ever need to configure third party tools that require the socket location. It&#8217;s also good practice if you&#8217;ll only need local access to MySQL, you create a my.cnf configuration and activate &#8220;skip-networking&#8221; (by uncommenting the line). Doing so, MySQL won&#8217;t be listening at the default network port 3306.</p>
<p>Sample configuration files to start from are located under /usr/local/mysql/support-files/ (by default, you should copy any of the available my-*.cnf files to /etc/my.cnf to activate it).</p>
<p><strong>Install PHP</strong></p>
<p>In order to install PHP, depending on the options / features you like, it&#8217;s possible you have to install additional packages first. <a title="FreeType" href="http://sourceforge.net/projects/freetype/" target="_blank">FreeType</a>, <a title="iconv" href="http://www.gnu.org/software/libiconv/" target="_blank">iconv</a>, <a title="libjpeg" href="http://freshmeat.net/projects/libjpeg/" target="_blank">libjpeg</a>, <a title="mcrypt" href="http://freshmeat.net/projects/libmcrypt/" target="_blank">mcrypt</a>, <a title="libpng" href="http://www.libpng.org/pub/png/libpng.html" target="_blank">libpng</a>, &#8230; this list can be *virtually* unlimited. Installation of these additional packages is beyond the scope of this document. Basically it comes down to downloading the archive, run ./configure, make and make install.</p>
<p>If you&#8217;ve downloaded and installed all required packages / libraries for your setup, it&#8217;s time to <a title="PHP downloads" href="http://www.php.net/downloads.php" target="_blank">download</a> a fresh copy of <a title="PHP: Hypertext Preprocessor" href="http://www.php.net/" target="_blank">PHP</a>.</p>
<blockquote><p>$ cd ~/Downloads<br />
$ tar -xzf php-5.3.2.tar.gz<br />
$ cd php-5.3.2<br />
$ ./configure &#8211;prefix=/usr/local/php &#8211;mandir=/usr/share/man &#8211;infodir=/usr/share/info \<br />
&#8211;sysconfdir=/etc &#8211;with-config-file-path=/etc &#8211;with-zlib &#8211;with-zlib-dir=/usr \<br />
&#8211;with-openssl &#8211;enable-exif &#8211;enable-ftp &#8211;enable-mbstring &#8211;enable-mbregex &#8211;enable-sockets \<br />
&#8211;with-mysql=/usr/local/mysql &#8211;with-pdo-mysql=/usr/local/mysql \<br />
&#8211;with-mysqli=/usr/local/mysql/bin/mysql_config \<br />
&#8211;with-apxs2=/usr/local/apache2/bin/apxs \<br />
&#8211;with-mcrypt &#8211;with-gd &#8211;with-jpeg-dir=/usr/local/lib &#8211;with-png-dir=/usr/X11R6 \<br />
&#8211;with-freetype-dir=/usr/X11R6 &#8211;with-xpm-dir=/usr/X11R6 &#8211;with-xsl=/usr/lib &#8211;with-iconv-dir=/usr/local/bin<br />
$ make<br />
$ make test<br />
$ make install</p></blockquote>
<p>Again, the paths and options are specific for my desired setup of PHP. If you&#8217;re interested in the available options, run ./configure &#8211;help and you&#8217;ll see a list of all parameters. Also running &#8216;make test&#8217; is important because it can inform you about possible errors before installing PHP. Don&#8217;t ignore these otherwise you might have an unstable or not properly functioning PHP installation.</p>
<p>Normally, PHP adds the correct configuration settings to your Apache configuration file so PHP is automatically loaded when your webserver starts. If you were already running Apache (as we tested it after installation) there&#8217;s actually no need to stop / start the webserver but you can reload its configuration.</p>
<blockquote><p>$ sudo apachectl graceful</p></blockquote>
<p>Next we&#8217;ll create a test file so we can see if PHP is actually working and running under Apache.</p>
<blockquote><p>$ echo &#8216;&lt;?php phpinfo(); ?&gt;&#8217; &gt; /usr/local/apache2/htdocs/phpinfo.php</p></blockquote>
<p>Open a browser window and go to <a title="Localhost, PHP information" href="http://localhost/phpinfo.php" target="_blank">http://localhost/phpinfo.php</a>. If everything is in working order you should see a detailed information page autogenerated by PHP. It should look like the screenshot below.</p>
<p style="text-align: center;"><img class="size-medium wp-image-156 aligncenter" style="border: 0px none;" title="screenshot phpinfo" src="http://www.tmclssns.net/wp-content/uploads/2010/03/Screen-shot-2010-03-08-at-12.26.46-600x375.png" alt="PHPinfo() screenshot" width="600" height="375" /></p>
<p><strong>Install xdebug</strong></p>
<p>Xdebug will make your code debugging a more pleasant experience, so I suggest you install this package immediately. Download the latest stable release <a title="xdebug" href="http://xdebug.org/download.php" target="_blank">http://xdebug.org/download.php</a>. (I&#8217;m using a beta release here)</p>
<blockquote><p>$ cd ~/Downloads<br />
$ tar -xzf xdebug-2.1.0beta3.tgz<br />
$ cd xdebug-2.1.0beta3<br />
$ phpize<br />
$ ./configure &#8211;enable-xdebug &#8211;with-php-config=/usr/local/php/bin/php-config<br />
$ make<br />
$ sudo cp modules/xdebug.so /usr/local/apache2/modules/xdebug.so</p></blockquote>
<p>Next step is to make your PHP installation aware of xdebug, so:</p>
<blockquote><p>$ vim /etc/php.ini</p></blockquote>
<p>Add the following line (I suggest to bundle any additional zend extensions together): zend_extension=&#8221;/usr/local/apache2/modules/xdebug.so&#8221;. Of course, paths are all dependent on your particular installation so there might be slight differences, adjust accordingly.</p>
<blockquote><p>$ sudo apachectl graceful<br />
$ cd /usr/local/apache2/htdocs<br />
$ echo &#8216;&lt;?php var_dump($_SERVER); ?&gt;&#8217; &gt; xdebug_vardump.php</p></blockquote>
<p>Open a browser window and browse to <a title="xdebug test run" href="http://localhost/xdebug_vardump.php" target="_blank">http://localhost/xdebug_vardump.php</a> and you should see a similar page as in the screenshot below.</p>
<p style="text-align: center;"><img class="size-medium wp-image-168 aligncenter" style="border: 0px none;" title="xdebug screenshot" src="http://www.tmclssns.net/wp-content/uploads/2010/03/Screen-shot-2010-03-08-at-12.40.56-600x375.png" alt="xdebug var_dump($_SERVER) screenshot" width="600" height="375" /></p>
<p style="text-align: left;">Fore more information about xdebug and its use you should consult the <a title="xdebug documentation" href="http://xdebug.org/docs/" target="_blank">xdebug documentation</a> pages.</p>
<p><strong>Additional tools</strong></p>
<p>Your basic setup is now up and running. Read up on how to configure your Apache web server so you can use <a title="Apache virtual hosts" href="http://httpd.apache.org/docs/1.3/vhosts/" target="_blank">VirtualHosts</a>. Get some additional knowledge about how to use your <a title="Mac OS X hosts file" href="http://support.apple.com/kb/TA27291" target="_blank">/etc/hosts file</a> to add so called &#8220;localhost&#8221; domains (e.g. http://project.localhost).</p>
<p>Here&#8217;s just a list of additional tools I suggest you take a look at:</p>
<ul>
<li><a title="Eclipse PDT" href="http://www.eclipse.org/pdt/" target="_blank">Eclipse PDT</a><br />
An integrated development environment with error checking, syntax highlighting and debugging (too many options to list!) for PHP</li>
<li><a title="Subversion" href="http://subversion.tigris.org/" target="_blank">Subversion</a><br />
A code repository that keeps track of all changes. Allows you to rollback to previous release states of your code (also handy when working in teams). Instead of using SVN from the command line, take a look at the <a title="Subclipse, SVN for Eclipse" href="http://subclipse.tigris.org/" target="_blank">SVN for Eclipse plugin</a> which brings SVN functionality from within the Eclipse IDE.</li>
<li><a title="MySQL GUI tools" href="http://dev.mysql.com/downloads/gui-tools/5.0.html" target="_blank">MySQL GUI tools</a><br />
Visual tools to manage your MySQL server and execute (test) queries, create tables, etc. You could also use phpMyAdmin, which is available in your browser to manage MySQL.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tmclssns.net/2010/lamp-setup-mac-os-x-installation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Server (system) burn-in (Windows)</title>
		<link>http://www.tmclssns.net/2010/server-system-burn-in/</link>
		<comments>http://www.tmclssns.net/2010/server-system-burn-in/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 22:29:45 +0000</pubDate>
		<dc:creator>tmclssns</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[burn-in]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://www.tmclssns.net/?p=134</guid>
		<description><![CDATA[I&#8217;ve build a few personal computers and servers for scratch. Nothing gives you the joy of handling high-tech hardware, put it all together inside the enclosure and push the power button. The following seconds are pure excitement. When the LEDs start to burn, fans start to spin and hard disk(s) start to generate their typical grinding noise you [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve build a few personal computers and servers for scratch. Nothing gives you the joy of handling high-tech hardware, put it all together inside the enclosure and push the power button. The following seconds are pure excitement. When the LEDs start to burn, fans start to spin and hard disk(s) start to generate their typical grinding noise you know you&#8217;ve done a good job.</p>
<p>Before I put a server or computer into &#8220;production&#8221;, I think it&#8217;s import to test its capabilities and check for possible performance and stability issues right from the beginning. It&#8217;s always possible you made a mistake on the application of thermal paste between the heat sink and the CPU, you&#8217;ve got yourself buggy memory modules, etc. In order to verify that everything is in working order and good shape (also applies to new laptops) I do a &#8220;burn-in&#8221; test. If a system passes the burn-in process, it&#8217;s generally a good measure of how the system will perform during its first production use.</p>
<p>The tools I use is a &#8220;torture&#8221; tool and an application to monitor vital system information (CPU temperature, voltages, fan speed).</p>
<ul>
<li><a title="SpeedFan" href="http://www.almico.com/speedfan.php" target="_blank">SpeedFan</a></li>
<li><a title="Prime95" href="http://files.extremeoverclocking.com/file.php?f=103" target="_blank">Prime95</a></li>
</ul>
<p>First I load up Prime95 and run a test with the default settings (use the highest possible torture tests available). Then I open SpeedFan and Task manager and monitor the first hour of the test. If nothing goes out to extremes it&#8217;s safe to leave the system behind and let the test do its work. On my personal computer, now converted to a Windows Server 2008 Enterprise edition, the CPU temperature went all up to 80° C which was way too high. I shut down the system and checked every part of the installation and found out there was a problem with the termal paste between heat sink and CPU. After reapplying the termal paste, temperatures didn&#8217;t went over 50° C.</p>
<p>I usually let the test run for about a night (8-10 hours). If the system never crashed or ran out of memory, you know the hardware and software is doing its job and you won&#8217;t be facing premature hardware failure on any of the components. I&#8217;ve never really ran hard disk tests. Any suggestions to test that (for instance on a database server) are welcome.</p>
<p style="text-align: center;"><img class="size-medium wp-image-135 aligncenter" style="border: 0px none;" title="screenshot burn-in" src="http://www.tmclssns.net/wp-content/uploads/2010/03/screenshot-burn-in-600x375.png" alt="Prime95 load screenshot, SpeedFan temperature monitoring" width="600" height="375" /></p>
<p style="text-align: left;">As you can see in the screenshot above, I&#8217;m running the test on our home file server. CPU load and memory usage get to the roof but CPU temperature was stable at 41° C. As expected (because I carefully select my hardware) the system didn&#8217;t even blink during these torture tests. Of course, this test might seem a bit overkill on a fileserver but you can never be too sure. It&#8217;s also a good test for anyone wanting a stable gaming setup. Don&#8217;t forget to include a <a title="Futuremark, creators of 3D Mark 06" href="http://www.futuremark.com/" target="_blank">3D Mark 06</a> test synchronously ran during the torture test to ensure your GPU can also handle the load.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tmclssns.net/2010/server-system-burn-in/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Show and hide hidden files on Snow Leopard</title>
		<link>http://www.tmclssns.net/2010/show-and-hide-hidden-files-on-snow-leopard/</link>
		<comments>http://www.tmclssns.net/2010/show-and-hide-hidden-files-on-snow-leopard/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 21:56:05 +0000</pubDate>
		<dc:creator>tmclssns</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[hidden files]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Snow Leopard]]></category>

		<guid isPermaLink="false">http://www.tmclssns.net/?p=97</guid>
		<description><![CDATA[As some of you might know the core system behind Mac OS X, Darwin, uses several features of FreeBSD as underlying foundation. This of course means that some of the features of FreeBSD (and Linux in general) are available (either through Terminal or directly in Cocoa).
One of the consequences is that so called &#8220;hidden files&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>As some of you might know the core system behind <a title="Apple Mac OS X" href="http://www.apple.com/macosx/" target="_blank">Mac OS X</a>, <a title="Mac OS X Darwin" href="http://en.wikipedia.org/wiki/Mac_OS_X#Description" target="_blank">Darwin</a>, uses several features of <a title="FreeBSD" href="http://www.freebsd.org/" target="_blank">FreeBSD</a> as underlying foundation. This of course means that some of the features of FreeBSD (and Linux in general) are available (either through <a title="Apple Terminal application" href="http://en.wikipedia.org/wiki/Apple_Terminal" target="_blank">Terminal</a> or directly in <a title="Mac OS X Cocoa framework" href="http://developer.apple.com/technologies/mac/cocoa.html" target="_blank">Cocoa</a>).</p>
<p>One of the consequences is that so called &#8220;hidden files&#8221; on the filesystem (files preceded with a &#8216;.&#8217; are considered as hidden) are also hidden in the GUI on Mac OS X. As a result (for web developers for instance) it&#8217;s sometimes a bit tedious to edit a <a title="Wikipedia entry for htaccess" href="http://en.wikipedia.org/wiki/Htaccess" target="_blank">HTACCESS file</a>. (.htaccess) One way to edit these files for instance is to open Terminal.app (you can use Spotlight), navigate to the folder that contains the file you want to edit and type:</p>
<blockquote><p>$ vim .htaccess</p></blockquote>
<p>Of course, you can just type &#8216;vim /path/to/.htaccess&#8217; too instead of going through lots of folders. The point here is that it&#8217;s not straight forward to edit such hidden files from inside the GUI of Apple. Some smart editors (like <a title="TextWrangler" href="http://www.barebones.com/products/TextWrangler/" target="_blank">TextWrangler</a> for instance) have a build-in &#8220;Open Hidden&#8221; option under the File menu. There&#8217;s a way to enable &#8220;show hidden files in Finder, through a command which should be executed in Terminal.</p>
<blockquote><p>$ defaults write com.apple.finder AppleShowAllFiles TRUE<br />
$ killall Finder</p></blockquote>
<p>The first line sets the property &#8220;AppleShowAllFiles&#8221; to <em>true</em> and the second line kills the Finder process (which is automatically restarted). Smart as you are you probably figured out by now that if you issue the same commands again but set TRUE to <em>FALSE</em> in the first command, hidden files are again unvisible in Finder.</p>
<p>But issuing these commands frequently becomes a nightmare because they&#8217;re quite lengthy and you&#8217;re lazy. A solution is to use <a title="Apple Automator" href="http://www.apple.com/downloads/macosx/automator/" target="_blank">Automator</a> which comes standard with every OS X installation. Below you&#8217;ll find a screenshot guide to optimize the process and make these commands easily accessible just like any other application.</p>
<p><span id="more-97"></span>Open Spotlight (⌘ + space by default) and type &#8220;automator&#8221;. Open the application and choose Application from the available options.</p>
<p style="text-align: center;"><img class="size-full wp-image-103 aligncenter" style="border: 0px none;" title="Spotlight Automator" src="http://www.tmclssns.net/wp-content/uploads/2010/03/Screen-shot-2010-03-05-at-16.17.31.png" alt="Automator screenshot" width="367" height="569" /><img class="size-full wp-image-104 aligncenter" style="border: 0px none;" title="Automator application" src="http://www.tmclssns.net/wp-content/uploads/2010/03/Screen-shot-2010-03-05-at-16.16.03.png" alt="Automator screenshot" width="556" height="517" /></p>
<p style="text-align: left;">Now you need to select an <em>Action</em>, so we&#8217;ll use the search function (again, we&#8217;re lazy) and enter &#8220;script&#8221;, drag the &#8220;Run shell script&#8221; icon to the right side of the screen. Copy / paste the lines posted above to create your first application, which will show all hidden files in Finder.</p>
<p style="text-align: center;"><img class="size-medium wp-image-109 aligncenter" style="border: 0px none;" title="Run shell script" src="http://www.tmclssns.net/wp-content/uploads/2010/03/Screen-shot-2010-03-05-at-16.21.50-600x531.png" alt="Automator screenshot, run shell script" width="600" height="531" /><img class="size-medium wp-image-110 aligncenter" style="border: 0px none;" title="shell script, automator, show hidden files in Finder" src="http://www.tmclssns.net/wp-content/uploads/2010/03/Screen-shot-2010-03-05-at-16.22.14-600x531.png" alt="Automator screenshot, run shell script" width="600" height="531" /></p>
<p style="text-align: left;">We&#8217;re almost there. Now choose &#8220;File&#8221;, &#8220;Save As&#8230;&#8221; and use the settings below to create your first Automator program.</p>
<p style="text-align: center;"><img class="size-full wp-image-113 aligncenter" style="border: 0px none;" title="Save as dialog automator" src="http://www.tmclssns.net/wp-content/uploads/2010/03/Screen-shot-2010-03-05-at-16.22.23.png" alt="Automator &quot;save as application&quot; screenshot" width="438" height="207" /></p>
<p style="text-align: left;">Now repeat each step for a &#8220;Hide hidden files&#8221; except change the first command to <em>FALSE</em>. Next time you need to show / hide hidden files, just open Spotlight and start typing the name of the action you want (&#8220;hide hidden&#8221; or &#8220;show hidden&#8221;) and select your application.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tmclssns.net/2010/show-and-hide-hidden-files-on-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Website optimization</title>
		<link>http://www.tmclssns.net/2010/website-optimization/</link>
		<comments>http://www.tmclssns.net/2010/website-optimization/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 13:26:26 +0000</pubDate>
		<dc:creator>tmclssns</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[gzip]]></category>
		<category><![CDATA[mod_deflate]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[performance tuning]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.tmclssns.net/?p=95</guid>
		<description><![CDATA[At some point, when a project becomes popular, availability becomes an issue. For a client it&#8217;s important their platform (website, intranet, etc.) is up and running 99,99% of the time (actually they want it to be available 100% but no one is brave enough to guarantee such service).
People often start with hardware optimization such as [...]]]></description>
			<content:encoded><![CDATA[<p>At some point, when a project becomes popular, availability becomes an issue. For a client it&#8217;s important their platform (website, intranet, etc.) is up and running 99,99% of the time (actually they want it to be available 100% but no one is brave enough to guarantee such service).</p>
<p>People often start with hardware optimization such as installing faster hard drives, faster CPU&#8217;s, more memory, &#8230; and they&#8217;re right doing so. Hardware is tax-deductible and cheaper than hiring a developer to optimize the code source. However at some point it&#8217;s necessary to sit down and actually review the code if no options are left (except doing a major hardware upgrade).</p>
<p>Query optimization is obviously one of the first items looked at. Queries to a database server (often on not so fast 7200 rpm disks) slow down the whole application. Inefficient use of resources and looping or requesting the same data over and over again, not caching query results all lead up to a slow application. You definitely should take a look at those things but what else can you do?</p>
<p><strong>External image hosting</strong></p>
<p>You could start by using an external hosting partner to host images / photographs for you. <a title="ImageShack" href="http://imageshack.us/" target="_blank">ImageShack</a>, <a title="Flickr" href="http://www.flickr.com/" target="_blank">Flickr</a>, etc. are all viable services but are often bandwidth-limited or blocked by corporate firewalls. A solution for these problems is <a title="Amazon S3: Simple Storage Service" href="http://aws.amazon.com/s3/" target="_blank">Amazon web services S3</a> (Simple Storage Service) which is often an <a title="Amazon S3: Simple Storage Service, inexpensive solution" href="http://aws.amazon.com/s3/#pricing" target="_blank">inexpensive solution</a> compared to upgrading available disk space.</p>
<p><strong>HTTP compression*</strong></p>
<p>This feature can be configured by tweaking the web server software &#8211; and should be enabled FIRST THING. It&#8217;s free bandwidth if you think about it. Most browsers support it and it saves you up to 66% of transferred text data which is a lot in the end. This reduction is by the way applied to all fiels served (HTML, JavaScript and CSS). If you&#8217;re working with <a title="Apache webserver" href="http://httpd.apache.org/" target="_blank">Apache</a>, take a look at <a title="Apache: mod_deflate" href="http://httpd.apache.org/docs/2.0/mod/mod_deflate.html" target="_blank">mod_deflate</a>.</p>
<p><strong>Host RSS feeds somewhere else<br />
</strong></p>
<p>If you provide RSS feeds for your content, you can choose a third-party service like <a title="FeedBurner, by Google" href="http://feedburner.google.com/" target="_blank">FeedBurner</a> (owned by <a title="Google" href="http://www.google.com/" target="_blank">Google</a>). An additional bonus is that you have usage statistics for your feeds so you can track your subscribers in more detail.</p>
<p><strong>Reduce content size</strong></p>
<p>You can do some compression yourself by limiting the amount of data your webserver sends to a browser.</p>
<ul>
<li>Eliminate whitespace where possibly (but keep HTML readable)</li>
<li>Compress your CSS file (<a title="CSS drive CSS compressor" href="http://www.cssdrive.com/index.php/main/csscompressor/" target="_blank">CSS drive CSS compressor</a>)</li>
<li>Refactor your JavaScript code (shorter variable and functions names)</li>
<li>Minify your JavaScript code (<a title="JSmin - Javascript minifier" href="http://www.crockford.com/javascript/jsmin.html" target="_blank">JSMin</a> &#8211; removes unnecessary white space and comments from your JavaScript files)</li>
</ul>
<p>These changes should make the whole experience faster though keep in mind that if you&#8217;re getting a tremendous traffic increase, the tips listed above won&#8217;t suffice but all small tweaks help.</p>
<p><strong>* UPDATE: enabling mod_deflate<br />
</strong></p>
<p>In order to enable mod_deflate, edit your httpd.conf file and make sure <em>LoadModule deflate_module modules/mod_deflate.so</em> is enabled. (if not, remove the comment character). Next find the following part in the httpd.conf file</p>
<blockquote><p>&lt;Directory /&gt;<br />
Options FollowSymLinks<br />
<strong> AddOutputFilterByType DEFLATE text/html text/plain text/css application/x-javascript</strong><br />
AllowOverride None<br />
Order deny,allow<br />
Deny from all<br />
&lt;/Directory&gt;</p></blockquote>
<p>This is your root directory. Whatever you enable here is automatically active for all other path / site definitions (including virtual hosts) as well. Add the line that&#8217;s in bold type and save your httpd.conf file. Restart apache (graceful &#8211; to reload the new configuration) and monitor your access log file &#8211; it should contain additional ZIP information.</p>
<blockquote><p>&#8220;GET /filers/storageOverview HTTP/1.1&#8243; 1318/3971 (33%)</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.tmclssns.net/2010/website-optimization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Language decision and design</title>
		<link>http://www.tmclssns.net/2010/language-decision-and-design/</link>
		<comments>http://www.tmclssns.net/2010/language-decision-and-design/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 17:40:10 +0000</pubDate>
		<dc:creator>tmclssns</dc:creator>
				<category><![CDATA[tmclssns.net]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[language]]></category>

		<guid isPermaLink="false">http://www.tmclssns.net/?p=78</guid>
		<description><![CDATA[Some might remember a previous article on my blog about the reignited spark for tmclssns.net. Due to real life demands not much time was left to keep my blog up-to-date with opinions about current events or photography-related materials. Now everything is settling down, I decided to do something useful again with tmclssns.net.

Content shift
In the past [...]]]></description>
			<content:encoded><![CDATA[<p>Some might remember a previous article on my blog about the reignited spark for <a title="Tom Claessens (tmclssns)" href="http://www.tmclssns.net/" target="_blank">tmclssns.net</a>. Due to real life demands not much time was left to keep my blog up-to-date with opinions about current events or photography-related materials. Now everything is settling down, I decided to do something useful again with tmclssns.net.</p>
<p><span id="more-78"></span></p>
<p><strong>Content shift</strong></p>
<p>In the past I made the decision to only write about photography. Post my own work, link to a nice strobist guide or just write down an experience. However, as you can read in my <a title="About Tom Claessens" href="http://www.tmclssns.net/about/" target="_self">About</a> page, I&#8217;m no longer active as a photographer (profession) so I&#8217;d quickly run out of sources. That&#8217;s why this blog will contain personal opinions, technology-related articles, etc. as well from now on, next to of course the necessary photography-related content.</p>
<p><strong>Design</strong></p>
<p>The previous release, a few weeks ago was a bit inspire-less. That&#8217;s why I worked a few evenings on a new theme and you&#8217;re looking at the result right now. I like it (perhaps might change a color or two) but of course I&#8217;m open to suggestions.</p>
<p><strong>Language decision</strong></p>
<p>As the title indicates, a decision has to be made and I think this is a difficult one. Which language should I use on my blog? I&#8217;m native Belgian, so my first language is Dutch. I came down to a small list of advantages for each possible language.</p>
<p><em>Dutch</em></p>
<ul>
<li><em>Easy to write;</em></li>
<li><em>Possibility to write opinions about local things which readers can relate to;</em></li>
<li><em>Readers can get &#8220;jokes&#8221; which are often difficult to translate to another language and still make sense</em></li>
</ul>
<p>English</p>
<ul>
<li><em>Reaching many more possible readers</em></li>
</ul>
<p>Of course, a mix of both is possible as well. But I&#8217;m afraid it might get a cluttered look. Any opinions and experiences are welcome. Keep in mind though that a switch to Dutch would also mean I have to look again in the code so the interface is Dutch as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tmclssns.net/2010/language-decision-and-design/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 3.225 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-03-12 12:27:23 -->
