<?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>YamdaBlam!</title>
	<atom:link href="http://www.yamdablam.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yamdablam.com</link>
	<description>YATB - Yet Another Technology Blog.</description>
	<lastBuildDate>Thu, 03 May 2012 19:43:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Redis &#8211; The Hackers Database [Video]</title>
		<link>http://www.yamdablam.com/2012/05/03/redis-the-hackers-database-video/</link>
		<comments>http://www.yamdablam.com/2012/05/03/redis-the-hackers-database-video/#comments</comments>
		<pubDate>Thu, 03 May 2012 19:42:35 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Amir Salihefendic]]></category>
		<category><![CDATA[google tech talk]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[redis]]></category>

		<guid isPermaLink="false">http://www.yamdablam.com/?p=74</guid>
		<description><![CDATA[This is simply a great presentation on the use of Redis and Python. &#160; Sides of the talk can be found here I seriously recommend that you subscribe to this guys blog. He is one smart man who is sharing his tech!]]></description>
			<content:encoded><![CDATA[<p>This is simply a great presentation on the use of Redis and Python.</p>
<p><iframe src="http://www.youtube.com/embed/1BS3UVSLX-I" frameborder="0" width="530" height="317"></iframe></p>
<p>&nbsp;</p>
<p>Sides of the talk can be found <a title="Slides" href="http://amix.dk/blog/post/19593" target="_blank">here</a></p>
<p>I seriously recommend that you subscribe to this guys <a title="Subscribe to Amix's Feed." href="http://feeds.feedburner.com/amixdk" target="_blank">blog</a>. He is one smart man who is sharing his tech!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yamdablam.com/2012/05/03/redis-the-hackers-database-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Web App Developement Stack &#8211; [video]</title>
		<link>http://www.yamdablam.com/2012/05/01/the-web-app-developement-stack-video/</link>
		<comments>http://www.yamdablam.com/2012/05/01/the-web-app-developement-stack-video/#comments</comments>
		<pubDate>Tue, 01 May 2012 17:02:44 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[paul irish]]></category>
		<category><![CDATA[stack]]></category>
		<category><![CDATA[web dev]]></category>

		<guid isPermaLink="false">http://www.yamdablam.com/?p=73</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://player.vimeo.com/video/40929961" frameborder="0" width="500" height="281"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yamdablam.com/2012/05/01/the-web-app-developement-stack-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Actor Model &#8211; All you need to know [video]</title>
		<link>http://www.yamdablam.com/2012/05/01/the-actor-model-all-you-need-to-know-video/</link>
		<comments>http://www.yamdablam.com/2012/05/01/the-actor-model-all-you-need-to-know-video/#comments</comments>
		<pubDate>Tue, 01 May 2012 16:26:00 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[actor model]]></category>
		<category><![CDATA[hewitt]]></category>
		<category><![CDATA[lang.next 2012]]></category>
		<category><![CDATA[Meijer]]></category>
		<category><![CDATA[Szyperski]]></category>

		<guid isPermaLink="false">http://www.yamdablam.com/?p=71</guid>
		<description><![CDATA[&#160; Fascinating talk among exports. Notice how precise their language is and the effort involved in being clear in their arguments. Examples abound!! Great talk!]]></description>
			<content:encoded><![CDATA[<p><iframe style="height: 288px; width: 512px;" src="http://channel9.msdn.com/Shows/Going+Deep/Hewitt-Meijer-and-Szyperski-The-Actor-Model-everything-you-wanted-to-know-but-were-afraid-to-ask/player?w=512&amp;h=288" frameborder="0" scrolling="no" width="320" height="240"></iframe></p>
<p>&nbsp;</p>
<p>Fascinating talk among exports.</p>
<p>Notice how precise their language is and the effort involved in being clear in their arguments. Examples abound!!</p>
<p>Great talk!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yamdablam.com/2012/05/01/the-actor-model-all-you-need-to-know-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alternate PHP Cache &#8211; A Summary</title>
		<link>http://www.yamdablam.com/2012/03/01/alternate-php-cache-a-summary/</link>
		<comments>http://www.yamdablam.com/2012/03/01/alternate-php-cache-a-summary/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 10:55:55 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.yamdablam.com/?p=68</guid>
		<description><![CDATA[Alternate PHP Cache &#8211; A summary **APC is not a replacement for Memcached.*** */ APC is native to PHP so not external deps need to be staistifed */ APC is perfect for small apps under load. */ APC is limited by PHP&#8217;s memory limit */ APC should be used when speed is important &#8211; user [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Alternate PHP Cache &#8211; A summary</strong></p>
<p>**APC is not a replacement for Memcached.***</p>
<p>*/ APC is native to PHP so not external deps need to be staistifed<br />
*/ APC is perfect for small apps under load.<br />
*/ APC is limited by PHP&#8217;s memory limit<br />
*/ APC should be used when speed is important &#8211; user facing scripts for e.g.</p>
<p>The process of serving a PHP script is as follows:<br />
PHP Script -&gt; Parsed -&gt; Compiled -&gt; Excuted -&gt; Output</p>
<p>This is not ideal in high traffic scenarios as this process is repeated.</p>
<p>APC solves this resource problem by caching the previously compiled code for excution.</p>
<p><strong>ACP Process</strong><br />
PHP Script -&gt; converted to opcodes -&gt; excuted -&gt; output.</p>
<p>This process removes the Parse and Compile steps from the normal flow for PHP scripts.</p>
<p><strong>Limitations</strong><br />
Default size is 30mb &#8211; this can be modified.<br />
Only caches to the host machine and therefore cannot be shared between local PHP servers.</p>
<p><strong>Storing Data</strong><br />
Done via apc_add or apc_store functions<br />
This means the values of a variable can be APC&#8217;d<br />
Do need to keep in mind the limitations of this as memory is limited.</p>
<p>Example:<br />
$apcTest = &#8216;This is a storable item&#8217;;<br />
// apc_store is key value &#8211; so generate a good random key.<br />
$key = md5($apcTest);<br />
apc_store($key, $apcTest);</p>
<p>// Retrieving by key<br />
echo apc_fetch($key);</p>
<p>The conventional method with user caches is first to check if the value exists in the cache before<br />
fetching it from source.</p>
<p>Compared with fetching data from a mysql store takes X ms and initially this same data takes<br />
slightly longer (approx X + 2 ms) the first time its cached. After that, the performance can be<br />
up to 50x. Yay!</p>
<p>APC typically caches compiled files whenever they are executed.<br />
Pre-compilation before execution can be triggered with the apc_compile_file() method.<br />
This is generally used to warm up the cache on some systems.</p>
<p><strong>TTL</strong><br />
Normal process is to flush the entire cache when it becomes full.<br />
However, you can set a TTL on opcode caches with the apc.ttl configuration directive.<br />
This can even be customised on specific keys if needs be.</p>
<p><strong>Deleting Files:</strong><br />
Done with apc_delete($filename);<br />
This can be costly as it might trigger a re-hashing of internal hash tables.<br />
Best to work using auto expiry basis.</p>
<p><strong>Tools</strong><br />
VLD (Vulcan Logic Dumper/Disassembler) allows to check out the opcodes generated by compilation<br />
and execution of PHP scripts</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yamdablam.com/2012/03/01/alternate-php-cache-a-summary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Github and Multiple SSH Keys</title>
		<link>http://www.yamdablam.com/2012/02/29/github-multipl-ssh-keys/</link>
		<comments>http://www.yamdablam.com/2012/02/29/github-multipl-ssh-keys/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 10:44:51 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.yamdablam.com/?p=66</guid>
		<description><![CDATA[Generate your SSH key as per github.com instructions. Note: Ensure you do not overwrite your id_rsa keys so specify new key file name Save the public key to your github.com account as per above instructions. On your local machine (mac or linux) create a new file in the .ssh directory called &#8220;config&#8221; and put the [...]]]></description>
			<content:encoded><![CDATA[<p>Generate your SSH key as per <a title="Setup SSH Keys" href="http://help.github.com/mac-set-up-git/" target="_blank">github.com instructions</a>.</p>
<p>Note: Ensure you do not overwrite your id_rsa keys so specify new key file name</p>
<p>Save the public key to your github.com account as per above instructions.</p>
<p>On your local machine (mac or linux) create a new file in the .ssh directory called &#8220;config&#8221; and put the following in there</p>
<fieldset># GithubHost   github.com</p>
<p>HostName    github.com</p>
<p>User    git</p>
<p>IdentityFile /path/to/.ssh/key</fieldset>
<p>&nbsp;</p>
<p>Using this .ssh config file you can specify multiple identities.</p>
<p>Other help on this:</p>
<p><a href="http://www.springloops.com/blog/git-config-for-mutiply-ssh-keys/" target="_blank">Springloops.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yamdablam.com/2012/02/29/github-multipl-ssh-keys/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inventing on Principle</title>
		<link>http://www.yamdablam.com/2012/02/22/inventing-on-principle/</link>
		<comments>http://www.yamdablam.com/2012/02/22/inventing-on-principle/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 12:02:01 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
				<category><![CDATA[Human]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.yamdablam.com/?p=63</guid>
		<description><![CDATA[Bret Victor &#8211; Inventing on Principle from CUSEC on Vimeo. &#160; Some follow up discussion on Reddit &#160;]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://player.vimeo.com/video/36579366?byline=0" frameborder="0" width="400" height="225"></iframe></p>
<p><a href="http://vimeo.com/36579366">Bret Victor &#8211; Inventing on Principle</a> from <a href="http://vimeo.com/cusec">CUSEC</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>&nbsp;</p>
<p>Some follow up discussion on <a href="http://bit.ly/zAzPuE" target="_blank">Reddit</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yamdablam.com/2012/02/22/inventing-on-principle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Capturing echo output and storing it in a variable</title>
		<link>http://www.yamdablam.com/2011/07/06/capturing-echo-output-and-storing-it-in-a-variable/</link>
		<comments>http://www.yamdablam.com/2011/07/06/capturing-echo-output-and-storing-it-in-a-variable/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 09:33:16 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[echo]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[output buffering]]></category>
		<category><![CDATA[output control]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.yamdablam.com/?p=60</guid>
		<description><![CDATA[Working with legacy code somethings throws up little eggs that need to be cracked. For instance, I need to use a function which is generally called via the browser and instead of using return statements, it uses echo. This post shows you how to deal assign echo statements into a local variable by using output [...]]]></description>
			<content:encoded><![CDATA[<p>Working with legacy code somethings throws up little eggs that need to be cracked.<br />
For instance, I need to use a function which is generally called via the browser and instead of using return statements, it uses echo.</p>
<p>This post shows you how to deal assign echo statements into a local variable by <a title="Link to php.net on the subject" href="http://www.php.net/manual/en/ref.outcontrol.php" target="_blank">using output control</a>.</p>
<blockquote><p>ob_start();<br />
helloWorld(param1, param2);<br />
$capturedVar = ob_get_contents();<br />
ob_end_clean();</p></blockquote>
<p>The echo from the function helloWorld() is now stored in $capturedVar for use!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yamdablam.com/2011/07/06/capturing-echo-output-and-storing-it-in-a-variable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL &#8211; Removing duplicate rows from a table</title>
		<link>http://www.yamdablam.com/2011/05/19/mysql-removing-duplicate-rows-from-a-table/</link>
		<comments>http://www.yamdablam.com/2011/05/19/mysql-removing-duplicate-rows-from-a-table/#comments</comments>
		<pubDate>Thu, 19 May 2011 08:03:45 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[data manipulation]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[removing duplicate rows]]></category>

		<guid isPermaLink="false">http://www.yamdablam.com/?p=59</guid>
		<description><![CDATA[This save me loads of hassle this morning as I ran my script which populated an important table with duplicate entries which should not be there. This is a must share for those who fall into the same problem. Open up a mysql editor and paste in the following (don&#8217;t forget to edit for your [...]]]></description>
			<content:encoded><![CDATA[<p>This save me loads of hassle this morning as I ran my script which populated an important table with duplicate entries which should not be there.</p>
<p>This is a must share for those who fall into the same problem.</p>
<p>Open up a mysql editor and paste in the following (don&#8217;t forget to edit for your table names)</p>
<blockquote>
<pre><code>CREATE TABLE new_table as
SELECT * FROM old_table WHERE 1 GROUP BY [column to remove duplicates by];
</code></pre>
</blockquote>
<p>Drop the old table and rename the new one &#8211; job done!</p>
<p>Quick, easy and slightly painless.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yamdablam.com/2011/05/19/mysql-removing-duplicate-rows-from-a-table/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Rid of Distractions</title>
		<link>http://www.yamdablam.com/2011/03/22/getting-rid-of-distractions/</link>
		<comments>http://www.yamdablam.com/2011/03/22/getting-rid-of-distractions/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 12:25:19 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
				<category><![CDATA[Human]]></category>
		<category><![CDATA[distractions]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[rewards]]></category>
		<category><![CDATA[todo lists]]></category>

		<guid isPermaLink="false">http://www.yamdablam.com/?p=57</guid>
		<description><![CDATA[Here are some of my tips for dealing with distractions when trying to get work done. I hope you find them useful! Shut off the outside world Close down all rss apps, twitter, facebook , email etc.. these are not your friends when trying to get work done. They&#8217;re designed to keep you on the [...]]]></description>
			<content:encoded><![CDATA[<p>Here are some of my tips for dealing with distractions when trying to get work done. I hope you find them useful!</p>
<p><strong>Shut off the outside world</strong></p>
<p>Close down all rss apps, twitter, facebook , email etc.. these are not your friends when trying to get work done. They&#8217;re designed to keep you on the site with little popups saying there are new updates or messages to be read. Once they&#8217;re open, you will find yourself checking the page often, very often. So kill those when you need to get stuck in.</p>
<p><strong>Plan your attack</strong></p>
<p>Turn your back on the screen and take out some pen and paper and actually write down or draw what you want to achieve. This will have the effect of forcing you to think about what you need to accomplish.<br />
<strong>Create Mini Tasks</strong></p>
<p>Break down the task into mini tasks and put these into a todo list. Put this on paper as a physical list is way better than a virtual one. You&#8217;ll be able to track your progress by this. This will act as a positive feedback loop which will help with momentum.</p>
<p><strong>Impose a deadline</strong></p>
<p>Apply a strict deadline and stick to it. This will give you a sense of urgency to the tasks at hand.</p>
<p><strong>Carrot and Stick</strong></p>
<p><strong></strong>If you meet the deadlines, give yourself a reward!</p>
<p><strong>Say &#8216;No&#8217;</strong></p>
<p>If others approach you requesting some of your time, just say no.</p>
<p>Do you have any tips for getting rid of distractions in order to get work completed?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yamdablam.com/2011/03/22/getting-rid-of-distractions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Looping through a range of dates</title>
		<link>http://www.yamdablam.com/2010/09/10/php-looping-through-a-range-of-dates/</link>
		<comments>http://www.yamdablam.com/2010/09/10/php-looping-through-a-range-of-dates/#comments</comments>
		<pubDate>Fri, 10 Sep 2010 10:56:08 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[arrays]]></category>
		<category><![CDATA[date range]]></category>
		<category><![CDATA[loop]]></category>

		<guid isPermaLink="false">http://www.yamdablam.com/?p=54</guid>
		<description><![CDATA[Problem: You need to get the individual dates in a date range and store them in an arbitary data structure such as an array Solution: $endDate = date(&#8220;Y-m-d&#8221;, strtotime(&#8216;yesterday&#8217;)); $startDate = &#8217;2010-08-01&#8242;; $newDate = $startDate; $arRangeOfDates = array(); while($newDate != $endDate) { $newDate = date(&#8216;Y-m-d&#8217;,strtotime(date(&#8220;Y-m-d&#8221;, strtotime($newDate)) . &#8221; +1 day&#8221;)); $arRangeOfDates[]=$newDate; }]]></description>
			<content:encoded><![CDATA[<p>Problem:<br />
You need to get the individual dates in a date range and store them in an arbitary data structure such as an array</p>
<p>Solution:</p>
<blockquote><p>$endDate = date(&#8220;Y-m-d&#8221;, strtotime(&#8216;yesterday&#8217;));<br />
$startDate = &#8217;2010-08-01&#8242;;</p>
<p>$newDate = $startDate;<br />
$arRangeOfDates = array();<br />
while($newDate != $endDate) {<br />
$newDate = date(&#8216;Y-m-d&#8217;,strtotime(date(&#8220;Y-m-d&#8221;, strtotime($newDate)) . &#8221; +1 day&#8221;));<br />
$arRangeOfDates[]=$newDate;<br />
}</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.yamdablam.com/2010/09/10/php-looping-through-a-range-of-dates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

