<?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>iMatt :: The Blog of Matt Clare &#187; PHP</title>
	<atom:link href="http://mattclare.ca/blog/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://mattclare.ca/blog</link>
	<description>About a man who saw an over crowding of information and said &#039;me too!&#039;</description>
	<lastBuildDate>Thu, 02 Feb 2012 02:16:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>More websites updates</title>
		<link>http://mattclare.ca/blog/2011/11/05/more-websites-updates/</link>
		<comments>http://mattclare.ca/blog/2011/11/05/more-websites-updates/#comments</comments>
		<pubDate>Sun, 06 Nov 2011 02:33:14 +0000</pubDate>
		<dc:creator>Matt Clare</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[web dev]]></category>

		<guid isPermaLink="false">http://mattclare.ca/blog/?p=1447</guid>
		<description><![CDATA[I&#8217;ve recent updated the main page of my website. Ever since Facebook first took off I&#8217;ve been trying to figure out how to give the various things that dribble out of my mind and are fit (or not) for on-line consumption a proper home. A proper home, might often have been my blog, but more [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mattclare.ca/blog/wp-content/uploads/2011/11/Screen-shot-2011-11-05-at-22.17.49-.png"><img src="http://mattclare.ca/blog/wp-content/uploads/2011/11/Screen-shot-2011-11-05-at-22.17.49--640x412.png" alt="" title="New MattClare.ca" width="640" height="412" class="aligncenter size-medium wp-image-1448" /></a><br />
I&#8217;ve recent updated the main page of my website.  Ever since Facebook first took off I&#8217;ve been trying to figure out how to give the various things that dribble out of my mind and are fit (or not) for on-line consumption a proper home.  A proper home, might often have been my blog, but more often than not it was easier to post it to Facebook or Twitter &#8212; both for the shorter length and the immediacy of the tool.</p>
<p>To accommodate this I added my Facebook, and then Twitter status to my web site as the constant &#8220;first blog post&#8221;.  This sort of worked, but still didn&#8217;t provide an ideal summary of information.</p>
<p>I&#8217;ve tried again, this time focusing on <a href="http://mattclare.ca" class="autohyperlink" title="http://mattclare.ca" target="_blank">mattclare.ca</a>.  There&#8217;s a little more of a summary of of the blog, focussing in the titles and images, with some teaser text.</p>
<p>Further I&#8217;m hoping to write more on the blog, and more pictures etc.</p>
<p>One thing I still refuse to do is narrow the focus of my posts, that will still range from server admin, to ed. tech. to F1 and fatherhood.</p>
<p>Here&#8217;s hoping.</p>
<fb:like href='http://mattclare.ca/blog/2011/11/05/more-websites-updates/' send='false' layout='button_count' show_faces='true' width='450' height='65' action='like' colorscheme='light' font='lucida+grande'></fb:like>]]></content:encoded>
			<wfw:commentRss>http://mattclare.ca/blog/2011/11/05/more-websites-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moved VPS&#8217;es</title>
		<link>http://mattclare.ca/blog/2011/07/28/moved-vpses/</link>
		<comments>http://mattclare.ca/blog/2011/07/28/moved-vpses/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 02:30:41 +0000</pubDate>
		<dc:creator>Matt Clare</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[web dev]]></category>

		<guid isPermaLink="false">http://mattclare.ca/blog/?p=1361</guid>
		<description><![CDATA[Over the last month I&#8217;ve moved from my previous Virtual Private Server (VPS) with A2WebHosting to Linode. A2WebHosting was a good host back when I only needed a shared host, before I wanted the apache web server highly configure with a lot of extra settings and things like PHP&#8217;s APC. My transition to A2WebHosting&#8217;s VPS [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last month I&#8217;ve moved from my previous Virtual Private Server (VPS) with A2WebHosting to Linode.</p>
<p>A2WebHosting was a good host back when I only needed a shared host, before I wanted the apache web server highly configure with a lot of extra settings and things like PHP&#8217;s APC.   My transition to A2WebHosting&#8217;s VPS service I was not that great.  I&#8217;ve run basement servers that were more reliable.</p>
<p>A lot of the frills of having your own virtual server  weren&#8217;t there with A2WebHosting, but what was worse was for the first year I wasn&#8217;t able to load any kernel modules&#8230;. like ipfilters &#8211; the firewall! &#8212; I wasn&#8217;t too public about that problem.  Also the drive was often so slow (I/O wait) the site slowed to being almost unresponsive.</p>
<p>I&#8217;ve now transitioned to Linode.  A VPS host only.  I first discovered them when tracking down where comment (wiki) spam bot traffic was coming from &#8212; the hackers know where to find value.</p>
<p>Their recent increase in storage ensured that their low-end offering was much better than what A2 offered.  I&#8217;ve since really appreciate their custom web-dashboard and iPhone app for managing servers.</p>
<p><a href="http://mattclare.ca/blog/wp-content/uploads/2011/07/Linode-Dashboard-linode116266.png"><img src="http://mattclare.ca/blog/wp-content/uploads/2011/07/Linode-Dashboard-linode116266-779x1024.png" alt="" title="Linode   Dashboard    linode116266" width="600" class="aligncenter size-large wp-image-1363" /></a></p>
<p>I&#8217;ve also transitioned from a CentOS host and the Red Hat / RPM world to Ubuntu.  The recent politics around the CentOS releases sealed the deal in me moving from the free version of the &#8220;enterprise&#8221; standard to Ubuntu&#8217;s well respected and also free Linux version.</p>
<p>So now that I&#8217;ve got this new, more reliable virtual server with more resources I think I need to start coming up with some more web projects soon!</p>
<fb:like href='http://mattclare.ca/blog/2011/07/28/moved-vpses/' send='false' layout='button_count' show_faces='true' width='450' height='65' action='like' colorscheme='light' font='lucida+grande'></fb:like>]]></content:encoded>
			<wfw:commentRss>http://mattclare.ca/blog/2011/07/28/moved-vpses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RimCount.com RRRR&#8217;eturns</title>
		<link>http://mattclare.ca/blog/2011/02/25/rimcount-com-rrrreturns/</link>
		<comments>http://mattclare.ca/blog/2011/02/25/rimcount-com-rrrreturns/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 18:18:27 +0000</pubDate>
		<dc:creator>Matt Clare</dc:creator>
				<category><![CDATA[educational technology]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[self-promotion]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[web dev]]></category>

		<guid isPermaLink="false">http://mattclare.ca/blog/?p=1250</guid>
		<description><![CDATA[My little hobby web site for tracking your luck with a large Canaidan coffee and donuts chain&#8217;s roll-up promotion is back! My previous attempt was Drupal-based, and required an account. I was never very happy with the account requirement, and played with it being a facebook App but ultimately took the site down (described in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mattclare.ca/blog/wp-content/uploads/2011/02/RimCount.com-Track-coffee-rims-via-Twitter.png"><img src="http://mattclare.ca/blog/wp-content/uploads/2011/02/RimCount.com-Track-coffee-rims-via-Twitter-167x300.png" alt="" title="Preview of Rim Count .com - Track coffee rims via Twitter" width="167" height="300" class="alignright size-medium wp-image-1284" /></a>My little hobby web site for tracking your luck with a large Canaidan coffee and donuts chain&#8217;s roll-up promotion is back!</p>
<p>My previous attempt was Drupal-based, and required an account.  I was never very happy with the account requirement, and played with it being a facebook App but ultimately took the site down (<a href="http://mattclare.ca/blog/2010/02/24/rimcoun/">described in this blog post</a>).  This time there&#8217;s no need for an account as it&#8217;s Twitter-based.  This also helps with the promotional side of things.</p>
<p>I had hoped to partner with the <a href="http://www.rimrollerapp.com" class="autohyperlink" title="http://www.rimrollerapp.com" target="_blank">www.rimrollerapp.com</a> &#8211; but that Twitter based iPhone App needed a technical update, and for other reasons, it&#8217;s now removed from the App Store.  It&#8217;s too bad, but you don&#8217;t need anything beyond a Twitter account to enjoy <a href="http://RimCount.com" class="autohyperlink" title="http://RimCount.com" target="_blank">RimCount.com</a>.</p>
<p>Simply tweet with the tag #RollUpTheRim to have your tweet listed on <a href="http://RimCount.com" class="autohyperlink" title="http://RimCount.com" target="_blank">RimCount.com</a>.  The site tracks results posted to Twitter in the format of wins/rims (and unofficially, a few other formats).</p>
<p>You can visit the main page for the latest, the scoreboard for the best and worst ratios <a href="http://rimcount.com/scoreboard" class="autohyperlink" title="http://rimcount.com/scoreboard" target="_blank">rimcount.com/scoreboard</a>.  There&#8217;s also a rapidly growing list of Twitter users who have tweeted with the hashtag #RollUpTheRim  <a href="http://rimcount.com/list" class="autohyperlink" title="http://rimcount.com/list" target="_blank">rimcount.com/list</a> </p>
<p>The site is no longer Drupal-based, but some of the PHP from the Drupal module I wrote and the MySQL data structure were migrated to the new site which is otherwise built from scratch.</p>
<p>As many developers have indicated, working with <a href="http://Twitter.com" class="autohyperlink" title="http://Twitter.com" target="_blank">Twitter.com</a>&#8216;s non-standard API is quite a joy.  I was able to get things rolling (pun intended) quite quickly based on the simple twitter searches through Twitter&#8217;s search service&#8217;s RSS feed and looking-up someone&#8217;s Twitter details via an XML call is easy too.</p>
<p>The hardest part has been writing the PHP to search a tweet for a ratio.  Challenges have gone beyond simply adapting for ratios like &#8220;x/x&#8221; or &#8220;x for x&#8221; or &#8220;x-x&#8221;, etc.  My original work only work with ratios under ten, then when I adapted it I had to protect agains numbers that were near by but not part of the ratio.  I&#8217;m only 90% I&#8217;ve stopped mathematically impossible ratios and ratios like &#8220;3-3 cups were losers!&#8221;.  The struggle continues.  What I have done, like <a href="http://Twitter.com" class="autohyperlink" title="http://Twitter.com" target="_blank">Twitter.com</a>, I&#8217;ve added an option from the admin side to disregard a tweet or twitter user.</p>
<p>If you have a Twitter account please tweet your results with the large Canaidan coffee and donuts chain&#8217;s roll-up promotion and check <a href="http://RimCount.com" class="autohyperlink" title="http://RimCount.com" target="_blank">RimCount.com</a> to see how your results compare to others&#8217;.</p>
<fb:like href='http://mattclare.ca/blog/2011/02/25/rimcount-com-rrrreturns/' send='false' layout='button_count' show_faces='true' width='450' height='65' action='like' colorscheme='light' font='lucida+grande'></fb:like>]]></content:encoded>
			<wfw:commentRss>http://mattclare.ca/blog/2011/02/25/rimcount-com-rrrreturns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP script to download files from GMail</title>
		<link>http://mattclare.ca/blog/2010/12/15/php-script-download-files-from-gmail/</link>
		<comments>http://mattclare.ca/blog/2010/12/15/php-script-download-files-from-gmail/#comments</comments>
		<pubDate>Wed, 15 Dec 2010 06:20:07 +0000</pubDate>
		<dc:creator>Matt Clare</dc:creator>
				<category><![CDATA[help]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[self-promotion]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mattclare.ca/blog/?p=1229</guid>
		<description><![CDATA[While my wife was getting a valuable two hours of sleep before she was woken with contractions signaling the birth of our first born child 19 hours later, I was not quite tired enough to sleep. UnknowingIy missing out on my last chance to sleep for a while, I was typing away at a PHP [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mattclare.ca/blog/wp-content/uploads/2010/12/save-image.png"><img src="http://mattclare.ca/blog/wp-content/uploads/2010/12/save-image-300x210.png" alt="" title="Evan computing" width="300" height="210" class="alignright size-medium wp-image-1238" /></a>While my wife was getting a valuable two hours of sleep before she was woken with contractions signaling the birth of our first born child 19 hours later, I was not quite tired enough to sleep.   UnknowingIy missing out on my last chance to sleep for a while, I was typing away at a PHP script to allow us to share pictures of our new baby &#8211; whenever he was going to arrive &#8211; with our friends and family privately with nothing more complex than the ability to eMail photos from my iPhone.  </p>
<p>It was important to us to be able to share these pictures of our new child, but also to protect our child&#8217;s image from the very public exposure of the public internet and the still too public (or at least,  un-trustable privacy of) Facebook. </p>
<p>Here&#8217;s how I was able to achieve this with a web server, some PHP, a GMail account and my iPhone:</p>
<p><strong>Creating Galleries</strong><br />
First off I created a folder with standard Apache Basic Auth settings and let our friends and family know the simple username and password.  I also turned on WebDAV access for the geekier viewers.  In order to construct interesting galleries I placed a copy of <a href="http://qdig.sourceforge.net/">Qdig</a>, a <strong>Q</strong>uick <strong>D</strong>igital <strong>I</strong>mage <strong>G</strong>allery PHP script to create galleries and thumbnails on the fly (<small>and secured it against the WebDAV access</small>).  I had to increase the amount of RAM PHP could use, but otherwise it was very easy to implement.</p>
<p><strong>Getting eMail Attachements from GMail with PHP</strong></p>
<p>I created a new GMail account (specifically through my Google Apps domain) to receive all of these cute baby pictures via eMail from my iPhone.  The next step was to check it automatically and store the attached pictures in a specific folder.</p>
<p>I wrote a PHP script, <a href="http://mattclare.ca/~mclare/blog/fetch_mail.phps">fetch_mail.php</a>, that POP&#8217;s the GMail account, looks at new mail for attachements, and saves the attachements in the protected folder.</p>
<p>The full PHP file, save my account details, is here:  <a href="http://mattclare.ca/~mclare/blog/fetch_mail.phps" class="autohyperlink" title="http://mattclare.ca/~mclare/blog/fetch_mail.phps" target="_blank">mattclare.ca/~mclare/blog/fetch_mail.phps</a></p>
<p>The configuration settings:<br />
<span style="color: #0000BB">$user</span><span style="color: #007700">=</span><span style="color: #DD0000">&#8220;<a class="autohyperlink" href="mailto:your-address@gmail.com" title="mailto:your-address@gmail.com">your-address@gmail.com</a>&#8220;</span><span style="color: #007700">;&nbsp;</span><span style="color: #FF8000">//GMail&nbsp;address&nbsp;<br /></span><span style="color: #0000BB">$pass</span><span style="color: #007700">=</span><span style="color: #DD0000">&#8220;your&nbsp;password&#8221;</span><span style="color: #007700">;&nbsp;</span><span style="color: #FF8000">//GMail&nbsp;address<br /></span><span style="color: #0000BB">$save_dir&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">&#8216;./&#8217;</span><span style="color: #007700">;&nbsp;</span><span style="color: #FF8000">//Folder&nbsp;to&nbsp;save&nbsp;the&nbsp;files&nbsp;into<br />//lower&nbsp;case&nbsp;array&nbsp;of&nbsp;EMail&nbsp;address&nbsp;that&nbsp;are&nbsp;allowed&nbsp;to&nbsp;send.&nbsp;&nbsp;Don&#8217;t&nbsp;set&nbsp;if&nbsp;you&nbsp;want&nbsp;to&nbsp;allow&nbsp;anyone<br /></span><span style="color: #0000BB">$senders&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">&#8216;<a class="autohyperlink" href="mailto:maybespam@mattclare.ca" title="mailto:maybespam@mattclare.ca">maybespam@mattclare.ca</a>&#8216;</span><span style="color: #007700">,</span><span style="color: #DD0000">&#8216;<a class="autohyperlink" href="mailto:something@hotmail.com" title="mailto:something@hotmail.com">something@hotmail.com</a>&#8216;</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$extensions&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">&#8216;png&#8217;</span><span style="color: #007700">,</span><span style="color: #DD0000">&#8216;jpeg&#8217;</span><span style="color: #007700">,</span><span style="color: #DD0000">&#8216;jpg&#8217;</span><span style="color: #007700">,</span><span style="color: #DD0000">&#8216;gif&#8217;</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//lower&nbsp;case&nbsp;file&nbsp;extensions&nbsp;to&nbsp;allow.&nbsp;&nbsp;Don&#8217;t&nbsp;set&nbsp;if&nbsp;you&nbsp;want&nbsp;allow&nbsp;any&nbsp;file<br /></span><span style="color: #0000BB">$prepend_date&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">;&nbsp;&nbsp;</span><span style="color: #FF8000">//Add&nbsp;date&nbsp;and&nbsp;time&nbsp;to&nbsp;start&nbsp;of&nbsp;file&nbsp;names&nbsp;to&nbsp;prevent&nbsp;filename&nbsp;collisions<br /></span><span style="color: #0000BB">$status&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">;&nbsp;</span><span style="color: #FF8000">//Should&nbsp;a&nbsp;status&nbsp;report&nbsp;be&nbsp;reported&nbsp;at&nbsp;the&nbsp;end?</p>
<p>The GMail imap_open string for POP:<br />
<br />//&nbsp;GMail&nbsp;with&nbsp;pop3<br /></span><span style="color: #0000BB">$authhost</span><span style="color: #007700">=</span><span style="color: #DD0000">&#8220;{<a href="http://pop.gmail.com" class="autohyperlink" title="http://pop.gmail.com" target="_blank">pop.gmail.com</a>:995/pop3/ssl/novalidate-cert}INBOX&#8221;</span><span style="color: #007700">;</p>
<p></span><span style="color: #0000BB">$connection&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">imap_open</span><span style="color: #007700">(</span><span style="color: #0000BB">$authhost</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$user</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$pass</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">imap_errors</span><span style="color: #007700">();</p>
<p>Then over a hundred more lines of PHP to look for an attachement and to then save it to the designated folder.</p>
<p><strong>Running the PHP Script</strong><br />
I added the following to my server&#8217;s crontab to have it check for new mail every ten minutes.<br />
<code><br />
*/10 * * * * nice php -f ~/bin/baby_pictures/fetch_mail.php<br />
</code></p>
<p>I ran the script from the command line, but it would work through the web.</p>
<p><strong>That&#8217;s It</strong></p>
<p>Hopefully if you know a little PHP and have a web server at your disposal this script will help you move files from GMail to your web site.  I know we&#8217;ve really appreciated sharing our joy this way.</p>
<fb:like href='http://mattclare.ca/blog/2010/12/15/php-script-download-files-from-gmail/' send='false' layout='button_count' show_faces='true' width='450' height='65' action='like' colorscheme='light' font='lucida+grande'></fb:like>]]></content:encoded>
			<wfw:commentRss>http://mattclare.ca/blog/2010/12/15/php-script-download-files-from-gmail/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Birth Blog Announcement of Evan Clare</title>
		<link>http://mattclare.ca/blog/2010/11/22/birth-blog-announcement-evan-clare/</link>
		<comments>http://mattclare.ca/blog/2010/11/22/birth-blog-announcement-evan-clare/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 01:10:43 +0000</pubDate>
		<dc:creator>Matt Clare</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Pictures]]></category>
		<category><![CDATA[self-promotion]]></category>

		<guid isPermaLink="false">http://mattclare.ca/blog/?p=1217</guid>
		<description><![CDATA[My wife Lindsay and I are excited to announce the birth of our first child: Evan Isaac Clare Evan was born on Tuesday November 16th 2010 at 19:33 at Joseph Brant Hospital in Burlington, Ontario Canada. He was born 7 pounds 10 ounces, 8 lbs 4 as of Monday November 22nd. His four grandparents, two [...]]]></description>
			<content:encoded><![CDATA[<div style="margin:auto;width:100%;text-align:center"><a href="http://www.flickr.com/photos/mattclare/5199248593/" title="Doing tricks for Aunt Shealyn by mattclare, on Flickr"><img src="http://farm5.static.flickr.com/4107/5199248593_1aa5785293.jpg" width="500" height="423" alt="Doing tricks for Aunt Shealyn" /></a></div>
<p>My wife Lindsay and I are excited to announce the birth of our first child: Evan Isaac Clare</p>
<p>Evan was born on Tuesday November 16th 2010 at 19:33 at Joseph Brant Hospital in Burlington, Ontario Canada.  He was born 7 pounds 10 ounces, <small> 8 lbs 4 as of Monday November 22<sup>nd</sup></small>.</p>
<p>His four grandparents, two aunts, one uncle and many others in the GTA have all had a chance to hold him.  He&#8217;s even been held by one of his three great grandmothers.</p>
<p>Thanks to everyone who have sent their congratulations, cards gifts and love.  He&#8217;s blessed to be born into such a caring community.</p>
<div class="entry">
<div style="width:380px; text-align:center;float:right">
<a href="http://www.flickr.com/photos/mattclare/sets/72157625323185979/">Full gallery can be found here</a><br /> <br />
			<object type="application/x-shockwave-flash" data="/library/swf/flickrwidget.swf" width="380" height="350"><param name="movie" value="/library/swf/flickrwidget.swf"><param name="bgcolor" value="#ffffff"><param name="flashvars" value="feed=http://api.flickr.com%2Fservices%2Ffeeds%2Fphotoset.gne%3Fset%3D72157625323185979%26nsid%3D78447483%40N00%26lang%3Den-uss"><param name="AllowScriptAccess" value="always"><p>
			<a href="http://www.roytanck.com">Roy Tanck</a>&#8216;s Flickr Widget requires Flash Player 9 or better.</p>
<p></object><span style="font-size:8px;">Get this widget at <a href="http://www.roytanck.com">roytanck.com</a><br /> <br />
			</span>
			</div>
</div>
<p>Lindsay and I have setup a private web site with a lot more pictures of us and Evan.  If you feel like your one of our close friends who should have access and don&#8217;t please send one of us a E-Mail and we&#8217;ll be sure to make sure that happens.  At a later date I&#8217;ll create a post that describes how a leashed a GMail account to a PHP script and private web site to allow us to send updated pictures of Evan from our smart phones so that our close friends and family could see the little guy&#8217;s cuteness ASAP but giving as a lot of control over those images.</p>
<fb:like href='http://mattclare.ca/blog/2010/11/22/birth-blog-announcement-evan-clare/' send='false' layout='button_count' show_faces='true' width='450' height='65' action='like' colorscheme='light' font='lucida+grande'></fb:like>]]></content:encoded>
			<wfw:commentRss>http://mattclare.ca/blog/2010/11/22/birth-blog-announcement-evan-clare/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updates from the PassNerd</title>
		<link>http://mattclare.ca/blog/2010/08/31/updates-from-the-passnerd/</link>
		<comments>http://mattclare.ca/blog/2010/08/31/updates-from-the-passnerd/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 19:05:23 +0000</pubDate>
		<dc:creator>Matt Clare</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[self-promotion]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mattclare.ca/blog/?p=1172</guid>
		<description><![CDATA[My web site passnerd.com has had some recent updates. Here&#8217;s what to look for: There&#8217;s a new complexity picker. The site has got even more light-weight and should load even faster than before. There is a new mobile version ( preview it at passnerd.com/?mobile ) You can enter the password length into the URL, for [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://passnerd.com"><img src="http://mattclare.ca/blog/wp-content/uploads/2010/08/simulated_passnerd_iphone.jpg" alt="" title="simulated Passnerd site on iphone" width="300" height="287" class="alignright size-full wp-image-1177" /></a><br />
My web site <a href="http://passnerd.com" class="autohyperlink" title="http://passnerd.com" target="_blank">passnerd.com</a> has had some recent updates.</p>
<p>Here&#8217;s what to look for:</p>
<ul>
<li>There&#8217;s a new complexity picker.</li>
<li>The site has got even more light-weight and should load even faster than before.</li>
<li>There is a new mobile version ( <small> preview it at <a href="http://passnerd.com/?mobile" class="autohyperlink" title="http://passnerd.com/?mobile" target="_blank">passnerd.com/?mobile</a> </small> ) </li>
<li>You can enter the password length into the URL, for example: 6 characters <a href="http://passnerd.com/6" class="autohyperlink" title="http://passnerd.com/6" target="_blank">passnerd.com/6</a> , 12 <a href="http://passnerd.com/12" class="autohyperlink" title="http://passnerd.com/12" target="_blank">passnerd.com/12</a> , 32 <a href="http://passnerd.com/32" class="autohyperlink" title="http://passnerd.com/32" target="_blank">passnerd.com/32</a>  &#8212; worth bookmarking.</li>
</ul>
<p>The site still is a quick way to have a scure password suggested to you from work done one <em>YOUR</em> computer, not &#8220;my&#8221; end.  I created the site as a service to those who need it, and it makes pennies a year, but one of these days if it earns enough I&#8217;ll create an HTTPS version &#8211; but I want to stress that it&#8217;s just as secure without it because it uses JavaScript on <em>YOUR</em> computer&#8217;s end to create the password.</p>
<p>I&#8217;m always looking for <a href="http://passnerd.com/feedback.php">suggestions or feedback</a> from anyone that is willing to share them.</p>
<p><!--d82428e5a9fe44e28be24cf1b30d8865--></p>
<fb:like href='http://mattclare.ca/blog/2010/08/31/updates-from-the-passnerd/' send='false' layout='button_count' show_faces='true' width='450' height='65' action='like' colorscheme='light' font='lucida+grande'></fb:like>]]></content:encoded>
			<wfw:commentRss>http://mattclare.ca/blog/2010/08/31/updates-from-the-passnerd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding comments to my blog</title>
		<link>http://mattclare.ca/blog/2010/02/18/adding-comments-to-my-blog/</link>
		<comments>http://mattclare.ca/blog/2010/02/18/adding-comments-to-my-blog/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 14:44:23 +0000</pubDate>
		<dc:creator>Matt Clare</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[self-promotion]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mattclare.ca/blog/?p=971</guid>
		<description><![CDATA[Unless you&#8217;re reading this posting via Facebook, you may have noticed that you now have to sign in to add comments to my blog postings. I tried to resist as long as possible, but the signal to noise ratio was getting too high for me whenever I had to approve comments. I could have add [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mattclare.ca/blog/wp-content/uploads/2010/02/iMatt-The-Blog-of-Matt-Clare-â€º-Log-In.png"><img class="alignright size-medium wp-image-975" title="iMatt -- The Blog of Matt Clare â€º Log In" src="http://mattclare.ca/blog/wp-content/uploads/2010/02/iMatt-The-Blog-of-Matt-Clare-â€º-Log-In-300x147.png" alt="" width="300" height="147" /></a>Unless you&#8217;re reading this posting via Facebook, you may have noticed that you now have to sign in to add comments to my blog postings.</p>
<p>I tried to resist as long as possible, but the signal to noise ratio was getting too high for me whenever I had to approve comments.</p>
<p>I could have add a CAPTCHA, which is a contrived acronym for &#8220;<strong>C</strong>ompletely  <strong>A</strong>utomated <strong>P</strong>ublic <strong>T</strong>uring test to tell <strong>C</strong>omputers  and <strong>H</strong>umans <strong>A</strong>part.&#8221; But I find their squiggles to be fundamentally inaccessible, even the audio or reCAPTCHA ones, and I didn&#8217;t want to further promote the technology.Â  My <a href="http://mattclare.ca/blog/2009/09/22/british-government-issues-apology-to-alan-turing/">admiration for Alan Turing</a> aside.</p>
<p>So I&#8217;m now asking commentators to sign in via <a href="http://developers.facebook.com/connect.php">Facebook Connect</a> or <a href="http://openid.net/what/">OpenID</a>.Â  Both technologies never disclose your password to my site, and warn you about what they are disclosing and in this case it&#8217;s not much more than your name/handle.</p>
<p>You may not know it, but you may already have an <a href="http://openid.net/what/">OpenID</a>! Google, Flickr, MySpace, WordPress and others all provide the service to their users.</p>
<p>This also means that comments are no longer being closed after 90 days.Â  Feel free to comment on all the postings going back to 2004.</p>
<p>Thanks for your time and patience.</p>
<fb:like href='http://mattclare.ca/blog/2010/02/18/adding-comments-to-my-blog/' send='false' layout='button_count' show_faces='true' width='450' height='65' action='like' colorscheme='light' font='lucida+grande'></fb:like>]]></content:encoded>
			<wfw:commentRss>http://mattclare.ca/blog/2010/02/18/adding-comments-to-my-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up a server</title>
		<link>http://mattclare.ca/blog/2009/08/04/my_server/</link>
		<comments>http://mattclare.ca/blog/2009/08/04/my_server/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 00:20:34 +0000</pubDate>
		<dc:creator>Matt Clare</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://mattclare.ca/wordpress/?p=762</guid>
		<description><![CDATA[Since I just went through the process of setting-up my own self-managed VPS (virtual private server) system I figured I&#8217;d share my experience in the hopes that it will help someone else with some basic command-line comfort looking to gain control of their web hosting or being the process of scaling up. This is the [...]]]></description>
			<content:encoded><![CDATA[<p>Since I just went through the process of setting-up my own self-managed VPS (virtual private server) system I figured I&#8217;d share my experience in the hopes that it will help someone else with some basic command-line comfort looking to gain control of their web hosting or being the process of scaling up.</p>
<p>This is the start of what I hope will be a brief series of blog posts describing the process.</p>
<p>I went with a VPS system because of the considerable cost savings over a full dedicated system and the ability to scale-up from a low-power system to a high-powered system.  In fact, I did just that when I initially opted for the 128mb system, but found that I need 256mb.  My VPS (and previously shared host) is <a href="http://a2WebHosting.com">A2 Web Hosting</a> and they&#8217;ve been pretty good to work with.</p>
<p>Here&#8217;s what <a href="http://mattclare.ca">mattclare.ca</a> is currently running, I&#8217;ll go through each elements and how I&#8217;ve configured them:</p>
<ul>
<li>CentOS 5 Linux Operating System
<p>Including:</p>
<ul>
<li>Installing the basic files and packages</li>
<li><a href="http://wiki.centos.org/HowTos/Network/SecuringSSH">Securing SSH and the rest of the server</a></li>
<li>The Apache web server</li>
<li>MySQL database</li>
</ul>
</li>
<li>Google/Gmail for mail (and calendaring, etc.)</li>
<li>JungleDisk/Amazon Webservers for backup</li>
</ul>
<fb:like href='http://mattclare.ca/blog/2009/08/04/my_server/' send='false' layout='button_count' show_faces='true' width='450' height='65' action='like' colorscheme='light' font='lucida+grande'></fb:like>]]></content:encoded>
			<wfw:commentRss>http://mattclare.ca/blog/2009/08/04/my_server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interleave Just Got Better</title>
		<link>http://mattclare.ca/blog/2009/02/23/interleave-just-got-better/</link>
		<comments>http://mattclare.ca/blog/2009/02/23/interleave-just-got-better/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 21:03:07 +0000</pubDate>
		<dc:creator>Matt Clare</dc:creator>
				<category><![CDATA[*nix]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[self-promotion]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mattclare.ca/wordpress/?p=595</guid>
		<description><![CDATA[.. thanks to me. I just wanted to toot my own horn and let everyone know that a modification I made to our local Centre for Teaching, Learning and Educational Technologies &#8220;Client Relationship Manager&#8221; (AKA any other set of words that match CRM) called INTERLEAVE will be incorporated into the next release. Interleave is a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/mattclare/3303862083/" title="Toot my own horn by mattclare, on Flickr"><img src="http://farm4.static.flickr.com/3524/3303862083_d3bd165e98_m.jpg" width="240" height="180" alt="Toot my own horn" align="right" /></a>.. thanks to me.</p>
<p>I just wanted to toot my own horn and let everyone know that <a href="http://kumu.brocku.ca/anything/Interleave_code">a modification I made</a> to our local Centre for Teaching, Learning and Educational Technologies &#8220;Client Relationship Manager&#8221; (AKA any other set of words that match CRM) called <a href="http://sourceforge.net/projects/crm-ctt/">INTERLEAVE</a> will be incorporated into the next release.</p>
<p>Interleave is a (business) process automation application and what I implemented to track my own work at Brock University.   It allows me to stay on top of issues and names, and ultimately be able hand-off issues with some accountability and be able to report on the work I do year-to-year.</p>
<p>Our installation was getting a little slow, and I had tracked it to having a lot of clients and that creating a lot of communication between the web server and the database in certain situations.  INTERLEAVE has it&#8217;s own caching infrastructure to speed this situations up so I took a look at it and just wrote some simple <a href="http://www.php.net/">PHP</a> code around it to have it store the cached items in<a href="http://ca.php.net/apc">APC&#8217;s cache</a> instead of the database.</p>
<p>This is an advantage because APC implements shared memory in PHP (among other things) and that allows to be stored between transmission between the web server and the client WITHOUT the need for a database, or the internal communication and overhead that requires.  There a number of tools that do this for PHP, but APC is the one that should be included into PHP 6.</p>
<div style="width:75%;text-align:justify;margin:auto">
<h4>How shared memory works</h4>
<p>If a web server fronted to a database could be considered a place like the post office, having shared memory copies of things is like walking up to the person at the front desk and asking &#8220;Is there any mail in back for me?&#8221; and the immediate response from the top of the postmaster&#8217;s head being &#8220;Your mother says you don&#8217;t write enough and Rogers wants you to buy a home phone&#8221; &#8212; with similar security concerns.</p></div>
<p>I posted my update to <a href="http://sourceforge.net/forum/forum.php?thread_id=3026411&#038;forum_id=205868">the INTERLEAVE Forum</a>.  Hidde, the creator and project manager of INTERLEAVE apparently likes the idea and has taken my code, which would work without APC installed but complain, and enhanced it to not complain and apparently it&#8217;s going in the next release of INTERLEAVE.  I was glad to help as INTERLEAVE is great tool and I want to help the project as much as I can.</p>
<p>Lastly, if you haven&#8217;t installed <a href="http://www.php.net/apc">APC</a> on your PHP-based server I highly recommend it.  Having all of your files pre-compiled with the option to tell APC/PHP to not look at the files on the drive at all when requested is a significant speed boost for any site.  If you modify your code like Mediawiki/Wikipedia have (which is where I first learned of it) or as Facebook has, it can significantly speed-up the execution of your PHP scripts and allow for systems that might require Java or ASPX to be implemented in PHP.</p>
<fb:like href='http://mattclare.ca/blog/2009/02/23/interleave-just-got-better/' send='false' layout='button_count' show_faces='true' width='450' height='65' action='like' colorscheme='light' font='lucida+grande'></fb:like>]]></content:encoded>
			<wfw:commentRss>http://mattclare.ca/blog/2009/02/23/interleave-just-got-better/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

