<?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>Andy Daykin's Opinions on Technology</title>
	<atom:link href="http://andydaykin.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://andydaykin.com/blog</link>
	<description>Tricks to solving programming problems I encounter in day to day situations</description>
	<lastBuildDate>Fri, 15 Jan 2010 02:30:03 +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>PHP 5.3.1 + MySQL on Windows 7</title>
		<link>http://andydaykin.com/blog/php-5-3-1-mysql-on-windows-7/</link>
		<comments>http://andydaykin.com/blog/php-5-3-1-mysql-on-windows-7/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 16:21:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[host]]></category>
		<category><![CDATA[innodb_log_file_size]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://andydaykin.com/blog/?p=35</guid>
		<description><![CDATA[Running PHP 5.3.1 + MySQL on Windows 7]]></description>
			<content:encoded><![CDATA[<p>Ok, this was a bit of a hassle getting these two running on my laptop, using Windows 7 Business. I encountered several problems with both MySQL and PHP. </p>
<p>MySQL has issues on Windows 7 setting up the instance configuration. The problem is that the innodb_log_file_size parameter in my.ini is different than what MySQL thinks it is. You have to manually change the innodb_log_file_size in your my.ini file to what mysql thinks it should be. In order to see this, you need to run the command</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SHOW</span> GLOBAL <span style="color: #993333; font-weight: bold;">STATUS</span></pre></div></div>

<p>and change your value in my.ini to match the value from the command.</p>
<p>The second problem I had was that PHP could not talk to MySQL over the localhost. This is because in Windows 7, by default the line</p>

<div class="wp_syntax"><div class="code"><pre class="none" style="font-family:monospace;">127.0.0.1       localhost</pre></div></div>

<p>in your host file is commented out. To uncomment this line, open the file C:\Windows\System32\drivers\etc\hosts. and remove the # sign from the line mentioned above.</p>
<p>I&#8217;m using the apache available from <a href="http://apachelounge.com">apachelounge</a> so that I can build PHP extensions from C++ on this version of apache. The PHP I am using is VC9 Thread Safe. It is important that you use the thread safe version, so that you can use mod_php to connect PHP to apache.</p>
]]></content:encoded>
			<wfw:commentRss>http://andydaykin.com/blog/php-5-3-1-mysql-on-windows-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Objected Oriented Widgets with Prototype and Scriptaculous</title>
		<link>http://andydaykin.com/blog/objected-oriented-widgets-with-prototype-and-scriptaculous/</link>
		<comments>http://andydaykin.com/blog/objected-oriented-widgets-with-prototype-and-scriptaculous/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 18:51:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Prototype]]></category>
		<category><![CDATA[Scriptaculous]]></category>
		<category><![CDATA[widgets]]></category>

		<guid isPermaLink="false">http://andydaykin.com/blog/?p=29</guid>
		<description><![CDATA[Object Oriented Widgets with Prototype and Scriptaculous]]></description>
			<content:encoded><![CDATA[<p>Making objected oriented widgets with prototype and scriptaculous becomes easy with prototype&#8217;s Class.create function. In this demo, I will examine how to make a custom alert dialog.</p>
<p>First, let&#8217;s take a quick peek at the code:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">/**
 * @author Andy Daykin
 * @website http://andydaykin.com
 * @param {Object} text
 * @param {Object} callerElem
 */</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> Dialog <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">Class</span>.<span style="color: #660066;">create</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
	initialize<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>text<span style="color: #339933;">,</span> callerElem<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> height <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">height</span> <span style="color: #339933;">!==</span> undefined<span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> document.<span style="color: #660066;">height</span> <span style="color: #339933;">:</span> document.<span style="color: #660066;">body</span>.<span style="color: #660066;">offsetHeight</span><span style="color: #339933;">;</span>
		height <span style="color: #339933;">+=</span> <span style="color: #CC0000;">25</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">new</span> Insertion.<span style="color: #660066;">Bottom</span><span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">body</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;&lt;div id='overlay' style='position: absolute; width: 100%; top: 0px; left: 0px; z-index: 100;'&gt;&lt;/div&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'overlay'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span> height<span style="color: #339933;">:</span> height <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;px&quot;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	        <span style="color: #003366; font-weight: bold;">var</span> div <span style="color: #339933;">=</span> document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'div'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		Element.<span style="color: #660066;">extend</span><span style="color: #009900;">&#40;</span>div<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		div.<span style="color: #660066;">id</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'dialog'</span><span style="color: #339933;">;</span>
		div.<span style="color: #660066;">addClassName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialog'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		div.<span style="color: #660066;">update</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&lt;div class='dialogWrap' id='dialog'&gt;&lt;div id='dialogHandle'&gt;&lt;span class='dialogHeader'&gt;Error:&lt;/span&gt;&lt;span id='dialogClose'&gt;X&lt;/span&gt;&lt;br /&gt;&quot;</span> <span style="color: #339933;">+</span> 
			<span style="color: #3366CC;">&quot;&lt;/div&gt;&lt;div id='dialogDivider' style='display: none;'&gt;&lt;/div&gt;&lt;p&gt;&quot;</span> <span style="color: #339933;">+</span> text <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&lt;/p&gt;&lt;div class='dialogBtn' id='okBtn'&gt;OK&lt;/div&gt;&lt;/div&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		div.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span> <span style="color: #3366CC;">'display'</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">'none'</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		document.<span style="color: #660066;">body</span>.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>div<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #006600; font-style: italic;">// Calculate position</span>
		<span style="color: #003366; font-weight: bold;">var</span> height <span style="color: #339933;">=</span> div.<span style="color: #660066;">getHeight</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> width <span style="color: #339933;">=</span> div.<span style="color: #660066;">getWidth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #003366; font-weight: bold;">var</span> <span style="color: #000066;">scroll</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">all</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> document.<span style="color: #660066;">body</span>.<span style="color: #660066;">scrollTop</span> <span style="color: #339933;">:</span> window.<span style="color: #660066;">pageYOffset</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #006600; font-style: italic;">// Calculate the middle of the screen</span>
		<span style="color: #003366; font-weight: bold;">var</span> top <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">viewport</span>.<span style="color: #660066;">getHeight</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #000066;">scroll</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">2</span> <span style="color: #339933;">-</span> height<span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> left <span style="color: #339933;">=</span> document.<span style="color: #660066;">viewport</span>.<span style="color: #660066;">getWidth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">2</span> <span style="color: #339933;">-</span> width<span style="color: #339933;">;</span>	
		div.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span> <span style="color: #3366CC;">'left'</span><span style="color: #339933;">:</span> left <span style="color: #339933;">+</span> <span style="color: #3366CC;">'px'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'top'</span><span style="color: #339933;">:</span> top <span style="color: #339933;">+</span> <span style="color: #3366CC;">'px'</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		div.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialogClose'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">observe</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">closeDialog</span>.<span style="color: #660066;">curry</span><span style="color: #009900;">&#40;</span>callerElem<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'okBtn'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">observe</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">closeDialog</span>.<span style="color: #660066;">curry</span><span style="color: #009900;">&#40;</span>callerElem<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">new</span> Draggable<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialog'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span> handle<span style="color: #339933;">:</span> <span style="color: #3366CC;">'dialogHandle'</span><span style="color: #339933;">,</span> 
			starteffect<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialogDivider'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialogHandle'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span> backgroundColor<span style="color: #339933;">:</span> <span style="color: #3366CC;">'#5777AF'</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #003366; font-weight: bold;">new</span> Effect.<span style="color: #660066;">Opacity</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialog'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span> from<span style="color: #339933;">:</span> <span style="color: #CC0000;">1.0</span><span style="color: #339933;">,</span> to<span style="color: #339933;">:</span> <span style="color: #CC0000;">0.7</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
			endeffect<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialogDivider'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialogHandle'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span> backgroundColor<span style="color: #339933;">:</span> <span style="color: #3366CC;">'#2C508F'</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #003366; font-weight: bold;">new</span> Effect.<span style="color: #660066;">Opacity</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialog'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span> from<span style="color: #339933;">:</span> <span style="color: #CC0000;">0.7</span><span style="color: #339933;">,</span> to<span style="color: #339933;">:</span> <span style="color: #CC0000;">1.0</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span> 
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
&nbsp;
	closeDialog<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>callerElem<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'overlay'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">remove</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">new</span> Effect.<span style="color: #660066;">Fade</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialog'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span> duration<span style="color: #339933;">:</span> .8<span style="color: #339933;">,</span> afterFinish<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialog'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">remove</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			callerElem.<span style="color: #000066;">focus</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>There is a reserved function in prototype classes called &#8220;initialize&#8221;, which acts as a constructor function, for those of you who have experience with other object oriented languages. In my initialize function, I take two parameters, the text and the caller element. The text is the message which will be displayed in the dialog. The text parameter can contain both a plain text string and HTML in it, since prototype&#8217;s update function can take in either. The callerElem is the id of the element which will take focus after the dialog is closed. </p>
<p>In order to make this a true alert statement, we need to display an overlay, so the user must click on the dialog before they can do anything else. To make our overlay we need to find the width and height of the user&#8217;s screen.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> height <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">height</span> <span style="color: #339933;">!==</span> undefined<span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> document.<span style="color: #660066;">height</span> <span style="color: #339933;">:</span> document.<span style="color: #660066;">body</span>.<span style="color: #660066;">offsetHeight</span><span style="color: #339933;">;</span>
height <span style="color: #339933;">+=</span> <span style="color: #CC0000;">25</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">new</span> Insertion.<span style="color: #660066;">Bottom</span><span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">body</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;&lt;div id='overlay' style='position: absolute; width: 100%; top: 0px; left: 0px; z-index: 100;'&gt;&lt;/div&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'overlay'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span> height<span style="color: #339933;">:</span> height <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;px&quot;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>After the height is obtained, we need to insert the overlay at the bottom, so it covers the entire document. Note the z-index value set at 100, so the overlay is set on top of everything.</p>
<p>Next we need to create our dialog widget. The dialog already has some css to make it more user friendly, but I will leave that part up to you, to style your own widget. It is important to note that the dialog css class does have some rules which must be put in place for it to function properly.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.dialog</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #000000; font-weight: bold;">black</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">275px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#2C508F</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">white</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">z-index</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">200</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>The z-index on your dialog should be greater than whatever you set your overlay to, so the dialog shows up.</p>
<p>Now let&#8217;s create the element and calculate or position. To do so, we will use document.createElement, and then extend the element. By extending the element you are able to use prototype&#8217;s element methods on the widget, such as setStyle, addClassName, and update.</p>
<p>After setting the styles we can calculate the middle of the screen so our dialog mimics the behavior of the alert dialog.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> div <span style="color: #339933;">=</span> document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'div'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
Element.<span style="color: #660066;">extend</span><span style="color: #009900;">&#40;</span>div<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
div.<span style="color: #660066;">id</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'dialog'</span><span style="color: #339933;">;</span>
div.<span style="color: #660066;">addClassName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialog'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
div.<span style="color: #660066;">update</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&lt;div class='dialogWrap' id='dialog'&gt;&lt;div id='dialogHandle'&gt;&lt;span class='dialogHeader'&gt;Error:&lt;/span&gt;&lt;span id='dialogClose'&gt;X&lt;/span&gt;&lt;br /&gt;&quot;</span> <span style="color: #339933;">+</span> 
			<span style="color: #3366CC;">&quot;&lt;/div&gt;&lt;div id='dialogDivider' style='display: none;'&gt;&lt;/div&gt;&lt;p&gt;&quot;</span> <span style="color: #339933;">+</span> text <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&lt;/p&gt;&lt;div class='dialogBtn' id='okBtn'&gt;OK&lt;/div&gt;&lt;/div&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
div.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span> <span style="color: #3366CC;">'display'</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">'none'</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
document.<span style="color: #660066;">body</span>.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>div<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// Calculate position</span>
<span style="color: #003366; font-weight: bold;">var</span> height <span style="color: #339933;">=</span> div.<span style="color: #660066;">getHeight</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> width <span style="color: #339933;">=</span> div.<span style="color: #660066;">getWidth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> <span style="color: #000066;">scroll</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">all</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> document.<span style="color: #660066;">body</span>.<span style="color: #660066;">scrollTop</span> <span style="color: #339933;">:</span> window.<span style="color: #660066;">pageYOffset</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// Calculate the middle of the screen</span>
<span style="color: #003366; font-weight: bold;">var</span> top <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">viewport</span>.<span style="color: #660066;">getHeight</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #000066;">scroll</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">2</span> <span style="color: #339933;">-</span> height<span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> left <span style="color: #339933;">=</span> document.<span style="color: #660066;">viewport</span>.<span style="color: #660066;">getWidth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">2</span> <span style="color: #339933;">-</span> width<span style="color: #339933;">;</span>	
div.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span> <span style="color: #3366CC;">'left'</span><span style="color: #339933;">:</span> left <span style="color: #339933;">+</span> <span style="color: #3366CC;">'px'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'top'</span><span style="color: #339933;">:</span> top <span style="color: #339933;">+</span> <span style="color: #3366CC;">'px'</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Once we have set our style and placed the element properly it&#8217;s time to show it and add our close event handler. By using prototype&#8217;s curry method we can pass along the id of our element to the close event handler. We also make our dialog draggable, and change the style of the upper part of our element when we do so to give the handle effect.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">div.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialogClose'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">observe</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">closeDialog</span>.<span style="color: #660066;">curry</span><span style="color: #009900;">&#40;</span>callerElem<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'okBtn'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">observe</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">closeDialog</span>.<span style="color: #660066;">curry</span><span style="color: #009900;">&#40;</span>callerElem<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">new</span> Draggable<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialog'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span> handle<span style="color: #339933;">:</span> <span style="color: #3366CC;">'dialogHandle'</span><span style="color: #339933;">,</span> 
	starteffect<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialogDivider'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialogHandle'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span> backgroundColor<span style="color: #339933;">:</span> <span style="color: #3366CC;">'#5777AF'</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">new</span> Effect.<span style="color: #660066;">Opacity</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialog'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span> from<span style="color: #339933;">:</span> <span style="color: #CC0000;">1.0</span><span style="color: #339933;">,</span> to<span style="color: #339933;">:</span> <span style="color: #CC0000;">0.7</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
	endeffect<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialogDivider'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialogHandle'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span> backgroundColor<span style="color: #339933;">:</span> <span style="color: #3366CC;">'#2C508F'</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">new</span> Effect.<span style="color: #660066;">Opacity</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialog'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span> from<span style="color: #339933;">:</span> <span style="color: #CC0000;">0.7</span><span style="color: #339933;">,</span> to<span style="color: #339933;">:</span> <span style="color: #CC0000;">1.0</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> 
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Finally we come to our close handler. When the close handler is clicked, the overlay will be removed. After the overlay is removed, we get rid of the dialog, and focus on the element that initially triggered the dialog.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">closeDialog<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>callerElem<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'overlay'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">remove</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">new</span> Effect.<span style="color: #660066;">Fade</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialog'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span> duration<span style="color: #339933;">:</span> .8<span style="color: #339933;">,</span> afterFinish<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'dialog'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">remove</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		callerElem.<span style="color: #000066;">focus</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Calling the dialog widget is just a simple matter of saying</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> form <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'contact'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span>form<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getValue</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">new</span> Dialog<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Please enter your name&quot;</span><span style="color: #339933;">,</span> $<span style="color: #009900;">&#40;</span>form<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://andydaykin.com/blog/objected-oriented-widgets-with-prototype-and-scriptaculous/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enabling .htaccess in opensuse 11.1</title>
		<link>http://andydaykin.com/blog/enabling-htaccess-in-opensuse-11-1/</link>
		<comments>http://andydaykin.com/blog/enabling-htaccess-in-opensuse-11-1/#comments</comments>
		<pubDate>Sun, 26 Jul 2009 22:27:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[OpenSuse]]></category>
		<category><![CDATA[11.1]]></category>
		<category><![CDATA[default-server.conf]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[httpd.conf]]></category>
		<category><![CDATA[suse]]></category>

		<guid isPermaLink="false">http://andydaykin.com/blog/?p=17</guid>
		<description><![CDATA[Allowing .htaccess files in opensuse 11.1 to override controls by enabling .htaccess.]]></description>
			<content:encoded><![CDATA[<p>By default .htaccess files will have no effect in opensuse 11.1 out of the box. In order to enable a .htaccess file, you must allow your web root directory to override controls. To do this navigate to your apache directory. For me it is:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apache2</pre></div></div>

<p>Find the file named default-server-conf. Open it with your favorite text editor</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">nano</span> default-server.conf</pre></div></div>

<p>Find the line</p>

<div class="wp_syntax"><div class="code"><pre class="vim" style="font-family:monospace;"><span style="color: #000000;">&lt;</span>Directory <span style="color: #C5A22D;">&quot;/srv/www/htdocs&quot;</span><span style="color: #000000;">&gt;</span></pre></div></div>

<p>Everything between the directory tags will help you manage your web root of your server, in my case it is /srv/www/htdocs. The line you are looking for is</p>

<div class="wp_syntax"><div class="code"><pre class="vim" style="font-family:monospace;">AllowOverride None</pre></div></div>

<p>Change &#8220;None&#8221; to &#8220;All&#8221;. Your .htaccess files can now override directives set in your httpd.conf, default-server.conf, and php.ini files, among others. This will enable .htaccess to do things like limit viewing of .inc, .sql, .log, and .ini files by putting</p>

<div class="wp_syntax"><div class="code"><pre class="vim" style="font-family:monospace;"><span style="color: #000000;">&lt;</span>Files <span style="color: #000000;">~</span> <span style="color: #C5A22D;">&quot;<span style="">\.</span>(inc|sql|log|ini)$&quot;</span><span style="color: #000000;">&gt;</span>
  order allow,deny
  deny from all
<span style="color: #000000;">&lt;/</span>Files<span style="color: #000000;">&gt;</span></pre></div></div>

<p>in your .htaccess file.</p>
]]></content:encoded>
			<wfw:commentRss>http://andydaykin.com/blog/enabling-htaccess-in-opensuse-11-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compiling Java With an External Jar From the Command Line</title>
		<link>http://andydaykin.com/blog/comiling-java-with-an-external-jar-from-the-command-line/</link>
		<comments>http://andydaykin.com/blog/comiling-java-with-an-external-jar-from-the-command-line/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 22:02:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Jar]]></category>

		<guid isPermaLink="false">http://andydaykin.com/blog/?p=11</guid>
		<description><![CDATA[An example on how to compile java classes using an external jar from the command line.]]></description>
			<content:encoded><![CDATA[<p>It took me a while to firgure this out, but I&#8217;m sure someone else will find it useful. In order to compile from the command line, you need to set the classpath of the jar, when you compile, and run the class. Here is an example:</p>
<p>javac -classpath .:/pathtojar/jarname.jar ClassName.java</p>
<p>java -classpath .:/pathtojar/jarname.jar ClassName</p>
]]></content:encoded>
			<wfw:commentRss>http://andydaykin.com/blog/comiling-java-with-an-external-jar-from-the-command-line/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a Web Based Backup System With PEAR&#8217;s Archive_Tar package</title>
		<link>http://andydaykin.com/blog/creating-a-web-based-backup-system-with-pears-archive_tar-package/</link>
		<comments>http://andydaykin.com/blog/creating-a-web-based-backup-system-with-pears-archive_tar-package/#comments</comments>
		<pubDate>Sat, 01 Nov 2008 03:50:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Archive_Tar]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[PEAR]]></category>

		<guid isPermaLink="false">http://andydaykin.com/blog/?p=3</guid>
		<description><![CDATA[Create a web based backup system of your files, using PEAR's Archive_Tar class.]]></description>
			<content:encoded><![CDATA[<p>I needed to create a web based backup system and the natural choice of language for the task was php (although I am looking into some perl modules as well). After tweaking with the thought of using a shell command to run a tar command I looked into PEAR&#8217;s Archive_Tar package. The class is fairly straightforward to use, my code to backup one particular directory was:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">error_reporting</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">E_ALL</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">ini_set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'display_errors'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'Archive/Tar.php'</span><span style="color: #339933;">;</span>
PEAR<span style="color: #339933;">::</span><span style="color: #004000;">setErrorHandling</span><span style="color: #009900;">&#40;</span>PEAR_ERROR_DIE<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$tar</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Archive_Tar<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;data.tar&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$dir</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;../&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$handle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">opendir</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$dir</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">false</span> <span style="color: #339933;">!==</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">readdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$file</span> <span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$tar</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>add<span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span> or <span style="color: #990000;">die</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Could not add file!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #990000;">closedir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Telling PEAR to die on errors, and spit out the error message was especially helpful when debugging the script. In order for the script to run from a browser, the user running the script (apache in my case), must have write permissions on the directory the script is running from.</p>
]]></content:encoded>
			<wfw:commentRss>http://andydaykin.com/blog/creating-a-web-based-backup-system-with-pears-archive_tar-package/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
