<?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>Tim Kelleher</title>
	<atom:link href="http://timkelleher.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://timkelleher.com</link>
	<description></description>
	<lastBuildDate>Fri, 20 Aug 2010 20:33:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>TextFile Class for PHP</title>
		<link>http://timkelleher.com/2010/06/23/textfile-class-for-php/</link>
		<comments>http://timkelleher.com/2010/06/23/textfile-class-for-php/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 06:10:05 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://timkelleher.com/?p=186</guid>
		<description><![CDATA[The following class is plays]]></description>
			<content:encoded><![CDATA[<p>The following class is plays a big part in the framework I use for each of my web sites.  It wraps around PHP&#8217;s default functions for handling files.  It is specifically made to deal with text files.  Its main feature is to create separate states for dealing with text files&#8211;a file starts out as unopened, can then be opened, closed, and deleted.  You can download it <a href="http://www.timkelleher.com/scripts/textfile/textfile-class.tar.gz">here</a>, or click &#8220;Read More&#8221; for some documentation.  <span id="more-186"></span></p>
<p>Here is an example on how to use the textfile class:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$loTextFile</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> TextFile<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;test.txt&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fileExists</span><span style="color: #009900;">&#40;</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;The text file does not exist!&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">createFile</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Creating text file &quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getFileName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fileExists</span><span style="color: #009900;">&#40;</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;File exists!&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">isFileOpened</span><span style="color: #009900;">&#40;</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;The file is not opened!&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">openFile</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Opening text file &quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getFileName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">isFileOpened</span><span style="color: #009900;">&#40;</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;Text file output: &quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">readFile</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Writing data to text file &quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getFileName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">writeToFile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Line 1&lt;br /&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">readFile</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Appending to text file &quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getFileName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">appendToFile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Line 2&lt;br /&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">readFile</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Prepending to text file &quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getFileName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">prependToFile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Line 0&lt;br /&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">readFile</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Deleting text file &quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getFileName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">deleteFile</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$loTextFile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">isFileDeleted</span><span style="color: #009900;">&#40;</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;Cannot modify text file because it is deleted!&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Your output should look like this:</p>
<p><code>The text file does not exist!<br />
Creating text file test.txt<br />
File exists!Text file output:<br />
Writing data to text file test.txt<br />
Line 1</code></p>
<p><code>Appending to text file test.txt<br />
Line 1<br />
Line 2</code></p>
<p><code>Prepending to text file test.txt<br />
Line 0<br />
Line 1<br />
Line 2</code></p>
<p><code>Deleting text file test.txt<br />
Cannot modify text file because it is deleted!</code></p>
<p>The demo can be viewed <a href="http://www.timkelleher.com/scripts/textfile/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://timkelleher.com/2010/06/23/textfile-class-for-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Variable Naming in PHP</title>
		<link>http://timkelleher.com/2010/06/17/variable-naming-in-php/</link>
		<comments>http://timkelleher.com/2010/06/17/variable-naming-in-php/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 17:55:47 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://timkelleher.com/?p=42</guid>
		<description><![CDATA[PHP is a loosely typed]]></description>
			<content:encoded><![CDATA[<p>PHP is a loosely typed language, meaning any variable can be <em>any</em> type.  You could be using your variable as an integer one minute and then declare it as an array the next.</p>
<p>There are long-term repercussions  for avoiding to take care of your code.  Say you return to a project a year later to fix a bug.  You&#8217;re not going to have the crystal-clear understanding you had when writing it.  You&#8217;ll see all these variables and not know what is what until you go and debug your whole script to figure out what to change.  Variable naming schemes won&#8217;t eliminate this problem, but it&#8217;s going to save the first step by identifying what variables are which type.</p>
<p><span id="more-42"></span></p>
<p>I use the xyVariable method, which involves using characters, x, to denote the scope of the variable, and y, denoting the type.  The different type and scope representations can be as thorough as you want them to be.</p>
<p>For scope, I use these:</p>
<ul>
<li> Global variables &#8211; <strong>g</strong></li>
<li>Local variables -<strong> l</strong></li>
<li>Variables passed by parameter &#8211; <strong>p</strong></li>
<li>Class member variables &#8211; <strong>c</strong></li>
</ul>
<p>Types of type:</p>
<ul>
<li>Number &#8211; <strong>n</strong></li>
<li>String &#8211; <strong>s</strong></li>
<li>Boolean<strong> &#8211; l<br />
</strong></li>
<li>Object &#8211; <strong>o</strong></li>
<li>Array &#8211; <strong>a</strong></li>
</ul>
<p>You could obviously swap out the <em>n</em> type for<em> i</em> and <em>d</em> (integer and double) if you wanted to get more in-depth.  Here are some examples of variables you&#8217;d commonly see throughout my code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$lcSQLQuery</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SELECT * FROM `table`&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$loSQLResult</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$lcQuery</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$lnNumRows</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_num_rows</span><span style="color: #009900;">&#40;</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: #000088;">$laRow</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_fetch_assoc</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$loSQLResult</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: #000088;">$laRow</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;data&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://timkelleher.com/2010/06/17/variable-naming-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter Trending Topics History</title>
		<link>http://timkelleher.com/2010/05/14/twitter-trending-topics-history/</link>
		<comments>http://timkelleher.com/2010/05/14/twitter-trending-topics-history/#comments</comments>
		<pubDate>Fri, 14 May 2010 04:11:56 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://timkelleher.com/?p=109</guid>
		<description><![CDATA[I became really curious about]]></description>
			<content:encoded><![CDATA[<p>I became really curious about the trending topics feature on Twitter.  It would be very useful to actually record which trends make it to the top 10 list, and for how long they stay in that list.  So I decided to find out.  I wrote a script that records what the top 10 trends are each minute, noting when a topic falls off the list and when new topics emerge.  The results are pretty interesting.</p>
<p><span id="more-109"></span>The following data set was taken over the period of five days.  During which, several topics dominated the list.  Specifically, two topics: #NowPlaying, and Justin Bieber.  #NowPlaying was <em>always </em>trending.  It looks like it only fell off the top ten once, which makes it the only trend that has done that.  Justin Bieber on the other hand, was constantly off and on the top ten list.  It still managed to get just as much time too.</p>
<p>What&#8217;s even more interesting to think about is what does this data mean in the big picture?  Will these trends continually do well, or are they just hot topics? That&#8217;s what this script could help answer.</p>
<h3>Demonstration</h3>
<p>Click <a href="http://www.timkelleher.com/scripts/twitter/index.php" target="_blank">here</a> for a demo of the script.  There are four modes:</p>
<ul>
<li><strong>Current</strong> &#8211; the current trends in the top 10 list in real-time</li>
<li><strong>Longest Running</strong> &#8211; trends sorted by how long they have been on the top trend list</li>
<li><strong>Most Frequent</strong> &#8211; trends sorted by how many times they have been on the top trend list</li>
<li><strong>History</strong> &#8211; trends listed in chronological order based on when they first appeared on the top trend list</li>
</ul>
<h3>Pitfalls</h3>
<p>There a few issues with the script.  The first is: what to do when Twitter goes down?  This one seems pretty easy though.  I just don&#8217;t record that there was any top ten at all.  It gives the current top trends a free pass though.</p>
<p>The second is that my script initially treated &#8220;#FF&#8221; and &#8220;#ff&#8221; as two different topics.  Those trends should be considered the same.  Therefore, you&#8217;ll see all trends in the Longest Running and Most Frequent  modes in all lowercase.</p>
<p>Lastly, it seems the script does not like certain characters.  Seeing how I don&#8217;t really intend on using this script for any professional purposes, I&#8217;m willing to live with it.</p>
]]></content:encoded>
			<wfw:commentRss>http://timkelleher.com/2010/05/14/twitter-trending-topics-history/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Backing up Data</title>
		<link>http://timkelleher.com/2010/04/28/backing-up-data/</link>
		<comments>http://timkelleher.com/2010/04/28/backing-up-data/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 00:55:36 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Computing]]></category>

		<guid isPermaLink="false">http://timkelleher.com/blog/?p=29</guid>
		<description><![CDATA[I reformatted my computer last]]></description>
			<content:encoded><![CDATA[<p>I reformatted my computer last night and started thinking about the setup I have for backing up my data.  It&#8217;s not a new phrase by any means, but I&#8217;ll still say it: backing up your data is the most important thing in computing.  Before I get into it, I should mention that this post is going to be geared onto a personal level.  I don&#8217;t expect to provide a backup solution on any professional scale.</p>
<p><span id="more-29"></span></p>
<p>First, I want to list the reasons that I back up my data:</p>
<ul>
<li>Obviously, as a fail-safe.  If your computer crashes, your data should be separated from the system so that it is recoverable.</li>
<li>Organization.  At this point, I have a lot of stuff.  By having a plan to back up my data, all my data is easy-to-access when I am just using my computer.</li>
</ul>
<p>On my main system I&#8217;ve got two external hard drives.  I use a program called <a href="http://www.2brightsparks.com/downloads.html" target="_blank">SyncBack</a> to sync the data from one to the other.  This provides a solution to the problem of if my main external drive ever fails.  So now my system can fail and I&#8217;ll be okay, and one of my external hard drives can fail and I&#8217;ll be okay.</p>
<p>It doesn&#8217;t necessarily have to be external drives.  There are a number of reasons why you&#8217;d want internal drives instead of external.  They are faster.  They don&#8217;t require additional power.  I believe I originally got the externals so that I could move the drives between different computers.  Now I just use <a href="http://www.sharpened.net/helpcenter/answer.php?92" target="_blank">network sharing</a>.</p>
<p>The next level is my backup server that has an extra internal drive.  For this, I mirror everything from the main external hard drive on my main system to this drive.  In addition, I set up SSH on this machine so I can access this data from anywhere.  I use SyncBack to mirror the data from my main external drive to this internal drive through the network.  Now I have my data in two places, which is definitely important when it comes to backing up your data.  There are other ways to ensure your data is in multiple places that doesn&#8217;t involve buying a server.  There are online solutions such as <a href="http://mozy.com/" target="_blank">Mozy</a> that will back up your data to their servers for you for a pretty decent price.</p>
<p>On a side note it is ideal to try to get syncing to occur automatically.  SyncBack has this feature.  I set my backups to occur once a day and occasionally check to make sure everything is still running according to the rules I&#8217;ve set up.</p>
<p>Also, Microsoft has a backup/syncing utility as well that is free.  It is called <a href="http://www.microsoft.com/downloads/details.aspx?familyid=c26efa36-98e0-4ee9-a7c5-98d0592d8c52&#038;displaylang=en" target="_blank">SyncToy</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://timkelleher.com/2010/04/28/backing-up-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Strategy for Heads-up Deep No Blind Increases Sit &amp; Gos</title>
		<link>http://timkelleher.com/2010/04/21/strategy-for-heads-up-deep-no-blind-increases-sit-gos/</link>
		<comments>http://timkelleher.com/2010/04/21/strategy-for-heads-up-deep-no-blind-increases-sit-gos/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 00:35:36 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Poker]]></category>

		<guid isPermaLink="false">http://timkelleher.com/blog/?p=31</guid>
		<description><![CDATA[Today I decided to play]]></description>
			<content:encoded><![CDATA[<p>Today I decided to play in a quick heads up SNG on PokerStars.  Well, I wasn&#8217;t exactly paying attention to all of the details when I made my selection.  I accidentally registered for a 200 BB deep game where the blinds do not increase.  My brother had talked about his experience playing one of these.  He said something to the effect of &#8220;I went all in 46 times before the other guy finally called.&#8221; I suspect my brother was exaggerating, but his quote does describe a certain type of play style that I think is really effective for this type of game: super tight with the purpose of &#8220;time-tilting&#8221; your opponent.  In other words, boring your opponent to death.</p>
<p><span id="more-31"></span></p>
<p>I would describe my style of heads up play as super trappy.  This strategy works really well against bad players who will overplay big pocket pair type hands or bluff at really bad times.  My opponent in this deep no blind increase game took this style to an absolutely extreme level.  In almost 400 hands of play, his VPIP was a  mere 31 and his PFR was only 8, which is really low in a heads up game!  He played a fit-or-fold game, meaning he folded a lot to preflop raises, would slow play strong hands such as top pair, and often times would check down two pair or straights where there might have been three cards to a flush on the board.  In hands that went to showdown, it appeared as though he only played the nuts.  In non-showdown hands, he either folded or would 3bet my raise preflop and bet every street.  I believe his reasoning to be pretty simple, he wanted to create the illusion that when he was betting, he had a hand, and that he never bluffed.  It definitely worked.  I always gave him credit when he bet for two reasons: he did it so infrequently and also because I never had a hand when he did this.  At first I wondered how someone could play so poorly, so predictably.  I folded to every 3bet he made.  I probably won at least 60% of the pots, a lot of times just from betting the flop with any two cards and shut down if he called.  Then I wondered if I was playing a bot.  I checked up on what other games he was playing&#8211;more deep heads up sit &amp; gos in which he was applying the same style.  After playing him for a while, I realized this was indeed a very good strategy because of the two elements that make this sit &amp; go unique: we were playing deep and the blinds do not go up.</p>
<p>This style essentially means that he will never be putting in his money bad.  It means that the match could go on indefinitely.  At 200 BB deep, you could fold 266 hands straight before you&#8217;d be out of chips.  While you would never want to do that, it means that you could play extremely tight and never really be at a huge chip disadvantage at any point.  By keeping the pots small too, you ensure that the chips really don&#8217;t go in either direction very quickly.  After about 30 minutes of playing I had him at a 2500-1500 chip advantage.  This seems like a lot, but it isn&#8217;t.  All it would take would be one big pot for him to get us back to even.  Of course, that&#8217;s what happened.  I raised from the button with JTs, he 3bet, and I called.  The flop gave me a flush draw and I chased till the river, whereupon I missed and had to fold.  Probably pretty dumb of me, but I knew that if he did indeed have a big hand, I&#8217;d have to have one too in order to get any big money out of him.  So then we were back where we started in chips, except that it was really clear now there was no end in sight.  That was his plan.</p>
<p>I should have been tilted.  He has me stuck playing this game until he decides he wants it to be over.  This should make me play wild and crazy, going all in at the sight of any ace or king.  Then he has me where he wants me.  He can get it all in with a great hand against a wide open shoving range.  Even if he&#8217;s down to 70% of his starting stack, doubling up pretty much secures him the game, provided he makes some adjustments.  And there it is, a way to tilt your opponent by giving them no way to end the game.  Once I figured out what he was trying to do, I decided to keep trying to win small pots off of him.  I focused on doing the same thing he was trying to do, wait for the nuts. In the back of my mind I realized though, that there would be no way to end the game without giving up some sort of edge. We&#8217;d either have to get into a situation where one of us has the nuts vs. a second-nut type hand, which would be extremely rare and that means that either one of us could lose. The other option would be to try to play bigger pots with him. This will increase the variance of the match , but I don&#8217;t think I necessarily win more often by doing this.</p>
<p>It took roughly two hours and 15 minutes (so much for wanting to play a &#8220;quick&#8221; match) to get it all in with this hand:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="240" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="bgcolor" value="#FFFFFF" /><param name="quality" value="high" /><param name="allowScriptAccess" value="always" /><param name="scale" value="Exactfit" /><param name="allowFullScreen" value="true" /><param name="src" value="http://www.pokerhandreplays.com/flash/replayer.swf?pokerhandid=1816661" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="400" height="240" src="http://www.pokerhandreplays.com/flash/replayer.swf?pokerhandid=1816661" allowfullscreen="true" scale="Exactfit" allowscriptaccess="always" quality="high" bgcolor="#FFFFFF"></embed></object></p>
<p>So what was I thinking?  I had a pretty decent hand, but it ends up being a bluff catcher.  He either has a flush there or a complete bluff.  So why did I call, given that I had never caught him bluffing and I didn&#8217;t even think he ever did bluff?  Simply put, I actually was tilted. Even if it was a subconscious level, I still think I wanted it to be over. How often was I going to flop top set and get action for it, anyway? I didn&#8217;t think I had him beat, but I was tired if playing.  He bluffed, and it was over.  In short, this was bound to happen.  Eventually I was going to put my money in, probably out of frustration.  He should have waited to have a strong hand in that spot.  He&#8217;s never going to win by losing all of those small pots to me, so he should never be bluffing in a big pot like that.</p>
<p>Overall, I think his strategy works pretty well.  He was multitabling a few of these games and therefore could play a super nitty game.  This even works in his favor because that style in itself was pretty tilt inducing to never be getting paid off for big hands.  I would not expect most games to last as long as mine did, but either way, they&#8217;ll probably last longer than the average sit &amp; go.  Having said that though, I doubt I will be playing another one.  They are really boring.</p>
]]></content:encoded>
			<wfw:commentRss>http://timkelleher.com/2010/04/21/strategy-for-heads-up-deep-no-blind-increases-sit-gos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Viewing Poker as a Profession</title>
		<link>http://timkelleher.com/2010/04/16/viewing-poker-as-a-profession/</link>
		<comments>http://timkelleher.com/2010/04/16/viewing-poker-as-a-profession/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 08:16:07 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Poker]]></category>

		<guid isPermaLink="false">http://timkelleher.com/blog/?p=4</guid>
		<description><![CDATA[For as long as I]]></description>
			<content:encoded><![CDATA[<p>For as long as I can remember there has always been a separation between my poker online presence and my professional online presence.  I have always kept two blogs, one for all things poker and one for topics relevant to my professional career, such as my resume, information about various projects, and a place for people to contact me.  There are several reasons why such a separation makes sense, the first and foremost reason being that playing poker is not my profession.  I&#8217;m going to school to get a degree in Information Systems with the intent on having a career within that field.  So poker ends up being a much lower priority.  It&#8217; something I do on the side.  In my case it would be more appropriate to categorize poker as a hobby.  Looking back, I don&#8217;t think that I have treated it as such.  I&#8217;ve studied the game, invested my money into it and even seen money as a result of playing.  The very fact that I have a blog dedicated to poker means I see it as more than just a mere hobby.  That blog was a place to discuss my profits and losses and to reflect on the emotional highs and lows that a poker player must endure.   It allowed me to think on an objective level.  I could get a better view of the big picture by seeing that I wasn&#8217;t just <em>in the moment</em> after a losing session, but that it&#8217;s just one session, and I can always play another tomorrow.  (Maintaining a blog happens to be a great way of reducing tilt.)  I could plan goals for the month and for the year.  That level of dedication probably kept me from going broke.  It allowed me to see poker in the same light as real poker professionals do: as a job.</p>
<p><span id="more-4"></span></p>
<p>The other reason to separate poker from my professional world is to hide it.  Let&#8217;s face it, people have many misconceptions about the game of poker.  It&#8217;s so easy for people who do not play to just write it off as gambling, as a game of luck.  (While this clearly isn&#8217;t true, the topic could be a whole post unto itself!)  The truth is that it comes down to how you choose to play the game.  If you do not study, do not analyze, do not try to see past it only being a card game, then it <em>is</em> a game of luck.  It is only with a lot of experience in practicing the combination of mathematics, psychology and logic that makes poker a skill-based game.  If you&#8217;re not relatively good at these skills, then you&#8217;re going to lose.  And if you are good at them&#8211;better than your opponents, at least&#8211;you&#8217;re going to win.  This idea applies to pretty much any job in any field.  The better you are, the better the job you&#8217;ll be likely to get, and subsequently the more money you will receive.  Of course, there are a lot of variables that I am intentionally leaving out, but that should not negate the truth of the statement.</p>
<p>Even though it is not my primary profession, poker is a very good secondary profession.  Subjects dealt with in poker (and in many other games) can almost directly translate to the world of business.  Bluffing, pot odds, implied odds, bankroll management, EV (expectation value)&#8211;all of them are useful outside of a poker context.   The point is that a person who views poker as a game of skill&#8211;a person who treats poker as a profession&#8211;will find that their poker experiences are obviously not a detriment in any sense.  They&#8217;re assets that will apply to many other situations found in the world.</p>
<p>Finally, I&#8217;m merging my two blogs because poker is simply a large portion of my life.  A day doesn&#8217;t pass where I don&#8217;t find myself playing or thinking about it.  When somebody visits my site I don&#8217;t want them to see something I have <em>prepared</em>.  This is the reason i included a link to my Twitter account as well.  Most of what I say on Twitter is by no means professional, but it doesn&#8217;t matter.  I want people to know what I actually enjoy doing and most importantly what I am thinking, whether it looks professional or not.  I&#8217;ve decided to let the site be an expression of who I am, not just a summary of what I have done.</p>
]]></content:encoded>
			<wfw:commentRss>http://timkelleher.com/2010/04/16/viewing-poker-as-a-profession/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resume</title>
		<link>http://timkelleher.com/2010/04/15/resume/</link>
		<comments>http://timkelleher.com/2010/04/15/resume/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 08:09:09 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Resume]]></category>

		<guid isPermaLink="false">http://timkelleher.com/?p=46</guid>
		<description><![CDATA[Contact Information Timothy Kelleher Email:]]></description>
			<content:encoded><![CDATA[<h3>Contact Information</h3>
<p>Timothy Kelleher<br />
Email: <a href="mailto:tim@timkelleher.com">tim@timkelleher.com</a><br />
Phone: (657) 464-3306<br />
Website: <a href="http://www.timkelleher.com/">timkelleher.com</a></p>
<h3>Work Experience</h3>
<ul>
<li><strong>Assistant Systems Administrator at UC Riverside  Electrical  Engineering Department</strong><br />
May 2008 &#8211; Present<br />
I troubleshoot technical problems faced by professors and graduate   students.  In addition, I maintain the Electrical Engineering web site.</li>
<li><strong>Web Developer at Everchanging Productions</strong><br />
April 2007 &#8211; January 2008<br />
I built the web site from scratch with completely custom PHP code,   implementing such features as a login system integrated with the   vBulletin forum system, dynamic URLs with Apache mod_rewrite, an upload   system that could upload images, word documents, and PDF files, and a   content management system wherein the administrator could write custom   news and tutorials for the site.</li>
<li><strong>Web Developer at TWAComm Inc.</strong><br />
Summer 2004 &#8211; Spring 2006<br />
I was hired by TWAComm, Inc, an internet-based company, to  completely  rewrite their web site, which was in programmed in ASP.  I  redesigned  the site from scratch in PHP. The whole process took about a  year.  After that, my job consisted of adding new features to the web  site,  particularly to the backend code.</li>
</ul>
<h3>Education</h3>
<ul>
<li>Currently working toward a Bachelor&#8217;s of Science degree in Information Systems at <a href="http://ucr.edu">University of California at Riverside</a></li>
<li>Degree highlights:
<ul>
<li>Computer Networking
<ul>
<li>Instant Message client</li>
<li>Spanning Tree Protocol demonstration</li>
</ul>
</li>
<li>Artificial Intelligence
<ul>
<li>Nearest Neighbor algorithm</li>
</ul>
</li>
<li>Introduction to Software Engineering
<ul>
<li>Board Game Creator</li>
</ul>
</li>
<li>Database Management Systems
<ul>
<li>Restaurant Application</li>
</ul>
</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://timkelleher.com/2010/04/15/resume/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LC3 Help</title>
		<link>http://timkelleher.com/2010/04/15/lc3-help/</link>
		<comments>http://timkelleher.com/2010/04/15/lc3-help/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 02:20:34 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[LC3 Help]]></category>

		<guid isPermaLink="false">http://timkelleher.com/?p=84</guid>
		<description><![CDATA[Purpose One of the classes]]></description>
			<content:encoded><![CDATA[<h3>Purpose</h3>
<p>One of the classes I have studied at UCR in 2006 dealt with a fictitious assembly language known as LC-3.  After finding no online resource for LC-3, I decided to make one for myself which covers how to download the software simulator and program in LC-3 competently.</p>
<p>LC3-Help continues to be a source of information for students at UCR and several other universities that teach with the LC-3 assembly language.</p>
<h3>Features</h3>
<ul>
<li>Search feature</li>
<li>Javascript pop-up which provided definition for relevant terms</li>
<li>PHPBB forum integration with the frontend site</li>
</ul>
<h3>Design</h3>
<p style="text-align: center;"><img class="aligncenter" title="LC3" src="http://www.timkelleher.com/files/images/LC3.png" alt="" width="500" /><a href="http://www.lc3help.com">LC3 Help</a></p>
]]></content:encoded>
			<wfw:commentRss>http://timkelleher.com/2010/04/15/lc3-help/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Banana Stand</title>
		<link>http://timkelleher.com/2010/04/15/the-banana-stand/</link>
		<comments>http://timkelleher.com/2010/04/15/the-banana-stand/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 01:11:44 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[The Banana Stand]]></category>

		<guid isPermaLink="false">http://timkelleher.com/?p=79</guid>
		<description><![CDATA[Purpose The Banana Stand was]]></description>
			<content:encoded><![CDATA[<h3>Purpose</h3>
<p>The Banana Stand was my first database-driven web site written in 2005.  I wanted to create a fan site for the canceled television show, Arrested Development.</p>
<h3>Features</h3>
<ul>
<li>Tracks how many hits each image receives</li>
<li>Displays random quotes from the show at the bottom of the page</li>
<li>Any errors are stored for later administrator review</li>
</ul>
<h3>Design</h3>
<p style="text-align: center;"><img class="aligncenter" title="The Banana Stand" src="http://www.timkelleher.com/files/images/TBS.png" alt="" width="500" /><a href="http://thebananastand.net">The Banana Stand</a></p>
]]></content:encoded>
			<wfw:commentRss>http://timkelleher.com/2010/04/15/the-banana-stand/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->