<?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>Misty thoughts &#187; web</title>
	<atom:link href="http://blog.kfirbreger.com/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kfirbreger.com</link>
	<description></description>
	<lastBuildDate>Tue, 13 Jul 2010 07:44:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Setting up Solr for Drupal under tomcat</title>
		<link>http://blog.kfirbreger.com/2010/07/13/setting-up-solr-for-drupal-under-tomcat/</link>
		<comments>http://blog.kfirbreger.com/2010/07/13/setting-up-solr-for-drupal-under-tomcat/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 06:37:56 +0000</pubDate>
		<dc:creator>Kfir</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[setup]]></category>
		<category><![CDATA[solr]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://blog.kfirbreger.com/?p=263</guid>
		<description><![CDATA[Disclaimer: This method will probably not work for all servers running tomcat, it is more a personal guide then a general one. Solr is a "popular, blazing fast open source enterprise search platform from the Apache Lucene project". Drupal search has traditionally been less then adequate. Using Solr to index and search you Drupal site [...]]]></description>
			<content:encoded><![CDATA[<p>Disclaimer: This method will probably not work for all servers running tomcat, it is more a personal guide then a general one.</p>
<p>Solr is a "popular, blazing fast open source enterprise search platform from the Apache Lucene project". Drupal search has traditionally been less then adequate. Using Solr to index and search you Drupal site is therefore quite helpful.</p>
<p>To start, download the Solr package (<a href="http://www.apache.org/dyn/closer.cgi/lucene/solr/">link</a>) and the Solr drupal module (<a href="http://drupal.org/project/apachesolr">link</a>). the current standard distribution is Solr 1.4 and Drupal 6.<br />
Unarchive the tar files in a location that is reachable from your server.</p>
<p>We will assume that tomcat is installed in <code>/opt/tomcat</code></p>
<p>In the Solr package there is an example application. That is the Solr application we are going to use. If you can write your own, you probably don't need this tutorial.</p>
<p><strong>Step 1:</strong><br />
Copy the example application, found in the solr package under <code>example/webapps</code> to the tomecat webapps folder which should be <code>/opt/tomcat/webapps</code>. when copying the file rename it to something other the solr. this will enable you to have multiplie solr installations running under one Tomcat container. We will assume the app is renamed <code>new_solr_inst</code>. If you are in the tomcat root folder the command should like like this:<br />
<code>cp /path/to/solr/package/apache-solr-1.4.0/apache-solr-1.4.0/example/webapps/solr.war webapps/new_solr_inst.war</code></p>
<p>Tomcat will pick up the war file and open it automatically after a restart.</p>
<p><strong>Step 2:</strong><br />
In the tomcat root folder create a folder to hold your Solr configuration and data.<br />
<code>mkdir new_solr_inst</code><br />
Copy the example app configuration into that folder<br />
<code>cp -R /path/to/solr/package/apache-solr-1.4.0/apache-solr-1.4.0/example/solr/* new_solr_inst</code></p>
<p><strong>Step 3:</strong><br />
You need to replace the original <code>schema.xml</code> and <code>solrconfig.xml</code> with the ones provided by the drupal module. Copy these two files to your Solr configuration folder. Assuming you are currently at the tomcat root folder<br />
<code>cp /path/to/solr/module/schema.xml new_solr_inst/conf</code><br />
<code>cp /path/to/solr/module/solrconfig.xml new_solr_inst/conf</code><br />
The Solr app is now ready for use.</p>
<p><strong>Step 4:</strong><br />
The last step is needed to inform Tomcat about the app and its settings. Go to <code>conf/Catalina/localhost</code> and create the file <code>new_solr_inst.xml</code>. In that file fill the following content:</p>
<div id="_mcePaste"><code>&lt;Context docBase="/opt/tomcat/webapps/new_solr_inst.war" debug="0" privileged="true" allowLinking="true" crossContext="true"&gt;</code></div>
<div id="_mcePaste"><code>&lt;Environment name="solr/home" type="java.lang.String" value="/opt/tomcat/new_solr_inst" override="true" /&gt;</code></div>
<div id="_mcePaste"><code>&lt;/Context&gt;</code></div>
<p><strong>Step 5:</strong><br />
You need to restart tomcat<br />
<code>/opt/tomcat/bin/shutdown.sh</code><br />
<code>/opt/tomcat/bin/startup.sh</code><br />
And your Solr should be running. There are three tests we can use to check everything went well.</p>
<ul>
<li>Tomcat has opened the war file. There is now a folder <code>new_solr_inst</code> in the <code>webapps</code> folder of Tomcat.</li>
<li>Solr has made a <code>data</code> directory in the Solr home folder (that is <code>/opt/tomcat/new_solr_inst</code>)</li>
<li>In your browser go to the Solr app <code>http://domain:tomcat_port/new_solr_inst</code> and you should see a welcome screen</li>
</ul>
<p>If all is well you are ready to combine this Solr installation with your Drupal</p>
<p><strong>Step 6:</strong><br />
Activate the Apache-Solr module and go to the Solr module settings page <code>admin/settings/apachesolr</code><br />
Assuming tomcat and drupal are running on the same server fill in <code>localhost</code> as the host name, fill in the port tomcat is running on and solr path should be your app name in the tomcat webapps folder. In our case is it <code>new_solr_inst</code>.</p>
<p>Save the settings. Drupal should inform you that a connection is made with Solr</p>
<p>Notes</p>
<ul>
<li>It is not nessecary to put the app configuration in the Tomcat root folder. you can probably (though I have not tested this) place it anywhere you want. you do need to make sure that the environment tag in the Tomact configuration file (the one in the <code>conf/Catalina/localhost</code> folder) is pointing to the right place.</li>
<li>If you make changes to the schema you may need to dump all the indices Solr has made. you can do this via the Drupal admin interface for the Solr module.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.kfirbreger.com/2010/07/13/setting-up-solr-for-drupal-under-tomcat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery animation problem in ie7</title>
		<link>http://blog.kfirbreger.com/2010/05/28/jquery-animation-problem-in-ie7/</link>
		<comments>http://blog.kfirbreger.com/2010/05/28/jquery-animation-problem-in-ie7/#comments</comments>
		<pubDate>Fri, 28 May 2010 11:24:30 +0000</pubDate>
		<dc:creator>Kfir</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[ie problems]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.kfirbreger.com/2010/05/28/jquery-animation-problem-in-ie7/</guid>
		<description><![CDATA[For one of our projects, I was creating a photo bar. When the mouse was over one of the photos it was ment to increase in size and decrease back to original size when the mouse left. Unfortunately the client for which this was developed uses ie7 exclusively. This has brought two problems: 1. ie7 [...]]]></description>
			<content:encoded><![CDATA[<p>For one of our projects, I was creating a photo bar. When the mouse was over one of the photos it was ment to increase in size and decrease back to original size when the mouse left. Unfortunately the client for which this was developed uses ie7 exclusively. This has brought two  problems:<br />
1. ie7 does not support the mouseleave event. I needed to replace it with mouseout event.<br />
2. ie7 does not accept the position property in the jQuery animate function. Giving the position as a parameter will cause an error.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kfirbreger.com/2010/05/28/jquery-animation-problem-in-ie7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting session ID in Drupal 6</title>
		<link>http://blog.kfirbreger.com/2010/02/25/getting-session-id-in-drupal-6/</link>
		<comments>http://blog.kfirbreger.com/2010/02/25/getting-session-id-in-drupal-6/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 20:49:22 +0000</pubDate>
		<dc:creator>Kfir</dc:creator>
				<category><![CDATA[guide]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.kfirbreger.com/?p=257</guid>
		<description><![CDATA[Drupal saves its sessions in the sessions table. One can always query they table to get the session ID. There is however a faster way. If the user is logged it, the session id can be found with the following code: global $user; $user->sid; In any case the session id can also be read from [...]]]></description>
			<content:encoded><![CDATA[<p>
Drupal saves its sessions in the sessions table. One can always query they table to get the session ID. There is however a faster way.<br />
If the user is logged it, the session id can be found with the following code:</p>
<pre>
global $user;
$user->sid;
</pre>
<p><span>In any case the session id can also be read from the cookie:</span></p>
<pre>
$_COOKIE[session_name()];
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.kfirbreger.com/2010/02/25/getting-session-id-in-drupal-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to truly disable drupal cache</title>
		<link>http://blog.kfirbreger.com/2009/05/29/how-to-truly-disable-drupal-cache/</link>
		<comments>http://blog.kfirbreger.com/2009/05/29/how-to-truly-disable-drupal-cache/#comments</comments>
		<pubDate>Fri, 29 May 2009 10:26:05 +0000</pubDate>
		<dc:creator>Kfir</dc:creator>
				<category><![CDATA[guide]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.kfirbreger.com/?p=168</guid>
		<description><![CDATA[Drupal, like most CMSes uses cache intensively to speed things up. In a production site that is exactly what you what. However when developing, cache can cause you much pain. If your an expert in drupal you probably already realized when you need to clear the cache in order to see changes and when not [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>
Drupal, like most CMSes uses cache intensively to speed things up. In a production site that is exactly what you what. However when developing, cache can cause you much pain.</p>
</div>
<div>
<p>
If your an expert in drupal you probably already realized when you need to clear the cache in order to see changes and when not too. the developer module even makes it quite easy to do. However for me, and I am quite sure to quite a lot of other people it is not that clear.
</p>
</div>
<div>
<p>"Wait", you might say. "Drupal has a disable cache setting". You would be right to say that. Only it doesn't completely disable the cache, only part of the cache, namely the page caching. To truly disable cache you need to do a bit of a hacking to the cache code. Yes I know they say to never hack core (cache is part of the core drupal release). for me this was worth it. I figure as long as you remember its there and don't use it in production you should be fine. The following piece of code needs to be added in <code>include/cache.inc</code>. There are two functions there that you need to edit:</p>
<ul>
<li><code>cache_get</code></li>
<li><code>cache_set</code></li>
</ul>
<p>In <code>cache_get</code> place the code right after the <code>global $user</code>. In <code>cache_set</code>  place it at the start of the function. Here is the code that you need to add.<br />
<code><br />
if(variable_get('cache', CACHE_DISABLED) == CACHE_DISABLED) {<br />
    return 0;<br />
}<br />
</code><br />
Kudos for this hack goes to Rolf van der Krol. Cheers mate.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.kfirbreger.com/2009/05/29/how-to-truly-disable-drupal-cache/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Installing Apache2, PHP5 and MySQL5 on OS X Tiger</title>
		<link>http://blog.kfirbreger.com/2009/05/04/installing-apache2-php5-and-mysql5-on-os-x-tiger/</link>
		<comments>http://blog.kfirbreger.com/2009/05/04/installing-apache2-php5-and-mysql5-on-os-x-tiger/#comments</comments>
		<pubDate>Mon, 04 May 2009 19:45:50 +0000</pubDate>
		<dc:creator>Kfir</dc:creator>
				<category><![CDATA[guide]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[os x]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.kfirbreger.com/?p=105</guid>
		<description><![CDATA[Tiger comes bundled with Apache 1.3 and PHP4. While these are still used for web development they are defenetly on the way out. For this reason I have decided to set up a more up to date MAMP installation on my old Powerbook G4. While this was all done on Tiger, it will most likely [...]]]></description>
			<content:encoded><![CDATA[<p>Tiger comes bundled with Apache 1.3 and PHP4. While these are still used for web development they are defenetly on the way out. For this reason I have decided to set up a more up to date MAMP installation on my old Powerbook G4. While this was all done on Tiger, it will most likely also work on Leopard.</p>
<h3><strong>Preparations</strong></h3>
<p>The installation process follows mostly the unix standard. That means that you will want to have the a /usr/local folder made. If you do not have it yet, type the following in terminal:</p>
<p><code>sudo mkdir /usr/local </code></p>
<p>The advantage of using local is that whenever a system updates itself it leaves local alone. If you install directly into /usr/bin, there is a chance that a system update will overwrite your installed software with its own update. If you lost me by now, you are probably off downloading a MAMP binary now.</p>
<p>The first step is to retrieve the packages we will need to properly install MAMP. To keep it nice and organized make a folder that will contain the source code, if you do not yet have a designated folder.</p>
<p><code>mkdir ~/src</code></p>
<p>We can now start installing MAMP</p>
<h3><strong>Installation</strong></h3>
<h4>MySQL</h4>
<p>The first thing that will be installed is MySQL. You can get the latest dmg <a href="http://dev.mysql.com/downloads/mysql/5.0.html#macosx-dmg" target="blank">here</a>. After installing MySQL from the dmg, I also recommend installing <a href="http://www.sequelpro.com" target="blank">Sequelpro</a> if you want a GUI interface to the database. For building MySQL yourself from source check <a href="http://hivelogic.com/articles/view/installing-mysql-on-mac-os-x" target="blank">this</a>.</p>
<h4>Apache2</h4>
<p>Apache comes bundled with OS X. Note that the control panel will only affect the default installation. Starting and stopping your own Apache installation will need some command line work, or some scripting. The following installs Apache 2 into  /usr/local/sbin/apache2, if you prefer to install into another folder change the prefix to that folder.<br />
<code><br />
curl -O http://apache.hippo.nl/httpd/httpd-2.2.11.tar.gz<br />
tar xvzf http-2.2.11.tar.gz<br />
cd http-2.2.11/<br />
./configure --prefix=/usr/local/sbin/apache2 --enable-modules=all --enable-mods-shared=all<br />
make<br />
sudo make install<br />
cd ..<br />
</code><br />
Before we continue to build PHP there are some extra libraries that are needed. If you are not interested in building PHP with GD you can probably skip most of them.</p>
<h4>Freetype</h4>
<p>A Free, High-Quality, and Portable Font Engine. You can learn more about it <a href="http://www.freetype.org">here</a>.<br />
<code><br />
curl -O http://mirrors.zerg.biz/nongnu/freetype/freetype-2.3.9.tar.gz<br />
tar xvzf freetype-2.3.9.tar.gz<br />
cd freetype-2.3.9/<br />
./configure<br />
make<br />
sudo make install<br />
cd ..<br />
</code></p>
<h4>JPEG</h4>
<p>Support for jpeg image format<br />
<code><br />
curl -O http://www.ijg.org/files/jpegsrc.v6b.tar.gz<br />
tar xzf jpegsrc.v6b.tar.gz<br />
cd jpeg-6b/<br />
cp /usr/share/libtool/config.sub .<br />
cp /usr/share/libtool/config.guess .<br />
./configure --enable-shared<br />
make<br />
sudo make install<br />
cd ..<br />
</code></p>
<h4>Libpng</h4>
<p>Support for png image format<br />
<code><br />
curl -O ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.36.tar.gz<br />
tar xjf libpng-1.2.36.tar.gz<br />
cd libpng-1.2.36/<br />
./configure<br />
make<br />
sudo make install<br />
cd ..<br />
</code></p>
<h4>openSSL</h4>
<p>Install the latest version of openSSL<br />
<code><br />
curl -O http://www.openssl.org/source/openssl-0.9.8k.tar.gz<br />
tar xvzf openssl-0.9.8k.tar.gz<br />
cd openssl-0.9.8k<br />
./config --prefix=/usr/local --openssldir=/usr/local/ssl<br />
make<br />
sudo make install<br />
./config shared --prefix=/usr/local --openssldir=/usr/local/ssl<br />
make clean<br />
make<br />
sudo make install<br />
</code></p>
<h4>PHP</h4>
<p>Now that the extra libraries are available we can continue to build PHP. We choose to install it into <code>/usr/local/php5</code>. As before if you wish to install into a different location, change the prefix.<br />
<code><br />
curl -O http://de3.php.net/distributions/php-5.2.9.tar.bz2<br />
tar xjf php-5.2.9.tar.bz2<br />
cd php-5.2.9/<br />
./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/sbin/apache2/bin/apxs --with-config-file-scan-dir=/usr/local/php5/php.d --with-iconv --with-openssl=/usr/local --with-openssl-dir=/usr/local/ssl --with-zlib=/usr --with-gd --with-zlib-dir=/usr --with-xmlrpc --with-iconv-dir=/usr --enable-exif --enable-sqlite-utf8 --enable-ftp --enable-sockets --enable-dbase --enable-mbstring --with-bz2=/usr --enable-fastcgi --enable-cgi --enable-zip --with-curl --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-libxml-dir=shared,/usr/local/php5 --with-jpeg-dir=/usr/local/php5 --with-png-dir=/usr/local/php5 --with-freetype-dir=/usr/local/php5<br />
make<br />
sudo make install<br />
</code><br />
You should now have a ready development system.</p>
<h3>Finalization</h3>
<p>To make sure that the newly installed software is used instead of the default installed one make sure that <code>/usr/local</code> and the bin and php5 folders within are in the path before <code>/usr/bin</code>.<br />
To start the Apache server use the following command:<br />
<code><br />
sudo /usr/local/sbin/apache2/bin/apachectl start<br />
</code><br />
Use <code>stop</code> and <code>restart</code> to stop or restart the server.</p>
<h4>Credit</h4>
<p>This article is inspired by the following three great guides:<br />
<a href="http://projects.serenity.de/php/">Compiling Apache and PHP (and MySQL) on Mac OS X Leopard</a><br />
<a href="http://www.bioneural.net/2005/04/22/apache-2-php-5-mysql-4-under-mac-os-x-1039/">Apache 2 + PHP 5 + MySQL 4 under OS X 10.3.9</a><br />
<a href="http://www.klauskomenda.com/archives/2008/10/07/installing-apache-mysql-and-php-on-leopard/">Installing Apache, MySQL and PHP on Leopard</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kfirbreger.com/2009/05/04/installing-apache2-php5-and-mysql5-on-os-x-tiger/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Django and static files</title>
		<link>http://blog.kfirbreger.com/2008/09/26/django-and-static-files/</link>
		<comments>http://blog.kfirbreger.com/2008/09/26/django-and-static-files/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 18:18:18 +0000</pubDate>
		<dc:creator>Kfir</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://blog.kfirbreger.com/?p=90</guid>
		<description><![CDATA[After a long break I have resumed my side project in django. Last night I came upon a problem. When testing a page outside django, the page was rendered correctly. When it was rendered through django the javascript files were not located. At this point I have to admit I was a bit fullish and [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>After a long break I have resumed my side project in django. Last night I came upon a problem. When testing a page outside django, the page was rendered correctly. When it was rendered through django the javascript files were not located.</p>
</div>
<div>
<p>At this point I have to admit I was a bit fullish and forgot to look at the web server's log to see if the files were correctly served. that was an hour and a half of trying to figure out why the javascript functions were not found. So after smartening up I found out that the javascript files were not found. It seemed that django kept looking for them in the wrong location. Using the example <a href="http://docs.djangoproject.com/en/dev/howto/static-files/?from=olddocs">here</a> I eventually got it all to working.</p>
</div>
<div>
<p>It comes down to this. in the settings.py file there is a reference to the media URL and to the file system path to the media directory. Adding the following code to the urls.py<br />
<code><br />
if settings.DEBUG:<br />
urlpatterns += patterns('',<br />
(r'^tripcalc/media/(?P<br />
.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),<br />
)<br />
</code><br />
Will make sure that while django is in debug mode, serving of the static files will be done via django. for production sites it is better to let a dedicated web server (such as Apache) serve these static files.<br />
And that took care of it. I can now continue with the development. And it also enabled me to call the CSS file, so style is also shown. hurray.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.kfirbreger.com/2008/09/26/django-and-static-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Django on Dreamhost</title>
		<link>http://blog.kfirbreger.com/2008/05/19/installing-django-on-dreamhost/</link>
		<comments>http://blog.kfirbreger.com/2008/05/19/installing-django-on-dreamhost/#comments</comments>
		<pubDate>Mon, 19 May 2008 10:29:44 +0000</pubDate>
		<dc:creator>Kfir</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.kfirbreger.com/?p=73</guid>
		<description><![CDATA[Dreamhost appears on the django site as one of the django friendly hosting services. Unfortunately, dreamhost does not officially support django. It does not have mod_python installed. Django is instead deployed using FastCGI. Hopefully sometime in the future mod_python will be added. There are a few good guides I have found, that explain how to [...]]]></description>
			<content:encoded><![CDATA[<p>Dreamhost appears on the django site as one of the django friendly hosting services. Unfortunately, dreamhost does not officially support django. It does not have mod_python installed. Django is instead deployed using FastCGI. Hopefully sometime in the future mod_python will be added. There are a few good guides I have found, that explain how to setup django on a dreamhost account:</p>
<li>Jeff Croft has a good guide on his <a href="http://jeffcroft.com/blog/2006/may/11/django-dreamhost/">blog</a></li>
<li>Gordon Tillman also has a good informative <a href="http://www.gordontillman.info/Development/DjangoDreamhost">page</a></li>
<li>The dreamhost wiki also has a <a href="http://wiki.dreamhost.com/index.php/Django">guide</a></li>
<p>Between the three of them you can probably find all the information needed for installing django for use on a dreamhost account. I will not repeat what they explain but instead add some from my own experience.</p>
<h2>Python</h2>
<p>Dreamhost, at the moment of writing, is running python 2.4. Luckily it is possible for you to locally install python. I highly recommend it as it will enable you to setup the python environment exactly the way you want it, and it will make it easier to upgrade to future versions of python.</p>
<p><code><br />
cd ~/soft<br />
wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz<br />
tar xvfz Python-2.5.2.tgz<br />
cd Python-2.5.2<br />
./configure --prefix ~/install/dir --enable-shared<br />
make<br />
make install<br />
</code></p>
<p>Where <code>~/install/dir</code> is the directory you want python installed in. I followed dreamhost's <a href="http://wiki.dreamhost.com/Unix_account_setup">Unix account setup guide</a> and installed it under run. I recommend you do to, as it is easier to have full control over you <code>/usr/local</code>.<br />
Also adding setuptools makes future installs easier</p>
<p><code><br />
cd ~/soft<br />
wget http://peak.telecommunity.com/dist/ez_setup.py<br />
~/path/to/yourpython/python ez_setup.py<br />
</code></p>
<p>This will add the <code>easy_install</code> script which will simplify adding packages to your own python install. The final step is adding the new MySQLdb package</p>
<p><code><br />
cd ~/soft<br />
svn co https://mysql-python.svn.sourceforge.net/svnroot/mysql-python/trunk/MySQLdb MySQLdb<br />
easy_install MySQLdb<br />
</code></p>
<p>This is assuming easy_install is in your PATH. If it is not it needs to be added.</p>
<p>Your now ready to install django using your very own Python installation. That is detailed enough so I will move to two problems I met after the installation.</p>
<h2>Post Installation Problems</h2>
<p>I met with two problems that had frustrated me for a few hours. To save you the future installer some pain here they are in case you experience something similar</p>
<p><strong>syncdb after admin activation:</strong> This should have been very obvious to me but for some reason it escaped me. After enabling the admin page you must run <code>django-admin.py syncdb</code> in your project home page. What happened was that I ran it before I enabled the admin application. This lead to the creation of the needed tables in the MySQL database, but no tables for the admin application. After enabling the admin application, more tables need to be created to accommodate the new application data. The errors I got gave me the impression that there was an error in the MySQLdb egg, so I reinstalled it, then tried to find some workaround. Eventually I realized that I'm just missing the admin tables.</p>
<p><strong>.htacess:</strong> This was the real mind bender. I kept getting an internal server error saying that it reached maximum internal allowed redirects. It was obviously a configuration error so I compared my .htaccess with that of the guides and it looked the same. So I looked else, but I kept coming back to the conclusion it has to be in the .htaccess. Yet no matter how often I looked at it I couldn't find what was wrong. I need to point out that I am no expret when it comes to apache and that maybe if I knew more about it this would have been simple, but I didn't so I got some gray hairs before I realized I'm missing a space between the - and the [L]. A bloody white space! I was feeling furious and incredibly stupid at the same time.</p>
<p>Django is now up and running, and I like it so far. I sure is a lot nicer to work with then with JSP and servlets. Enjoy your python</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kfirbreger.com/2008/05/19/installing-django-on-dreamhost/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Javascript reintroduction</title>
		<link>http://blog.kfirbreger.com/2008/04/25/javascript-reintroduction/</link>
		<comments>http://blog.kfirbreger.com/2008/04/25/javascript-reintroduction/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 19:10:05 +0000</pubDate>
		<dc:creator>Kfir</dc:creator>
				<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.kfirbreger.com/2008/04/25/javascript-reintroduction/</guid>
		<description><![CDATA[AJAX is somewhat of a tricky subject for me. I am a huge fan of good UI and of good user experience. There is no doubt in my mind that since the introduction of javascript, and later on AJAX the general experience in using the internet has improved. For me, watching Adobe's new Photoshop express [...]]]></description>
			<content:encoded><![CDATA[<p>AJAX is somewhat of a tricky subject for me. I am a huge fan of good UI and of good user experience. There is no doubt in my mind that since the introduction of javascript, and later on AJAX the general experience in using the internet has improved. For me, watching Adobe's new <a href="http://www.photoshop.com/express">Photoshop express</a> is something close to a miracle. I remember the days that some image rollover was the coolest thing on the web.<br />
That said there are some downsides to this. Nowadays to check your webmail, you most likely will need quite a modern computer and a relative new browser. The internet raised as a means to share data, and it looks to me like that feature is being pushed a bit to the back to make room for the shiny, new, apps.</p>
<p>
<p>
There is a lot to be said for online apps. I like the idea that my office programs are always available, on every system with internet access. Its more platform independent than any virtualization technology, easier sharing then any <a href="https://www.mesh.com/Welcome/Welcome.aspx">mesh</a> and is probably cheaper. Then again, if all I want is to find some simple information about the address of some business, or restaurant, there is no reason for me not to be able to do it on a 10 year old computer running OS/2 with netscape 1. Ok I might have gotten carried away there, but a 10 year old system with a 10 year old OS and a 10 year old browser can probably handle basic HTML. Which means it can display web pages. So it should be good enough.<br />
Except its not. Because every damn site has bells and whistles. And the people who are the most to blame are us, the users. We <strong>want</strong> hype, cool looking pages. Hell if I get a basic HTML page I go away without even looking at the content. What goes through my mind is either "This is some crap some 40 year old did in his garage after reading the w3c tutorial" or "this cant be the right spot". So everyone got bling bling. And we end up with browsers which are turning into an OS. I am quite happy with X thank you. I don't need to run Safari OS on top of that.</p>
<p>
<p>
Ok so I got carried away again, but you get my point.</p>
<p>
<p>
Now that my thoughts on AJAX specifically, and javascript in general are out of the way I can turn to the subject at hand.</p>
<p>
<br />
<h2><bold>javascript rocks!</bold></h2>
</p>
<p>
<p>
Last time I made web pages was hmm, almost 8 years ago. A lot have changed then. It is a wonderful thing to see how it is actually possible to make usable UI on the web with javascript. Since I am now developing java2 EE apps for a living I got into javascript. Its wonderful. And it seems a lot of people think that because there are about as much js and AJAx framweorks as there are commands in js, if not more. I knew about DOJO since it was mentioned several time on the Django page. Trying to choose one seemd to me next to impossible. So I did the only thing I could. I asked an expert. I ended up with <a href="http://www.prototypejs.org/">Prototypes</a> and <a href="http://script.aculo.us/">Scriptalicous</a>. The name alone would have convinced me to us scriptalicous. The fact that Mark Pilgrim did part of the developing just strengthened me in my decision. I have been using he framework for about a week now and I like it.</p>
<p>
<p>
To sum this post up, javascript brings along a lot to the table, but it also enforces a better table. I am a UI design enthusiast. I love my javascript.</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kfirbreger.com/2008/04/25/javascript-reintroduction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Marsedit</title>
		<link>http://blog.kfirbreger.com/2008/04/25/marsedit/</link>
		<comments>http://blog.kfirbreger.com/2008/04/25/marsedit/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 18:01:07 +0000</pubDate>
		<dc:creator>Kfir</dc:creator>
				<category><![CDATA[Me]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.kfirbreger.com/2008/04/25/marsedit/</guid>
		<description><![CDATA[Offline blogging may sound like a bit of an odd idea, but the idea did stick with me. After all, wordpress is not exactly the world's best word processor. I just grabbed Marsedit and am going to see how this works for me. On other news, Im really turning into a twitter fan.]]></description>
			<content:encoded><![CDATA[<p>Offline blogging may sound like a bit of an odd idea, but the idea did stick with me. After all, wordpress is not exactly the world's best word processor. I just grabbed Marsedit and am going to see how this works for me. On other news, Im really turning into a twitter fan.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kfirbreger.com/2008/04/25/marsedit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>some nice maps</title>
		<link>http://blog.kfirbreger.com/2007/10/16/some-nice-maps/</link>
		<comments>http://blog.kfirbreger.com/2007/10/16/some-nice-maps/#comments</comments>
		<pubDate>Tue, 16 Oct 2007 06:50:26 +0000</pubDate>
		<dc:creator>Kfir</dc:creator>
				<category><![CDATA[fun]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.kfirbreger.com/?p=21</guid>
		<description><![CDATA[I came across this site today. they create some nice graphic maps. For example this map shows the development of religions in the world. Its funny that Judaism is shown, but non of the religion of central or south america which were probably a lot larger, though they don't exist anymore, at least not in [...]]]></description>
			<content:encoded><![CDATA[<p>I came across this site today. they create some nice graphic maps. For example this map <a href="http://http://www.mapsofwar.com/ind/history-of-religion.html">shows</a> the development of religions in the world. Its funny that Judaism is shown, but non of the religion of central or  south america which were probably a lot larger, though they don't exist anymore, at least not in any real numbers.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kfirbreger.com/2007/10/16/some-nice-maps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
