<?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>Dashifen.com</title>
	<atom:link href="http://dashifen.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dashifen.com</link>
	<description>The online musings of an unrepentant geek.</description>
	<lastBuildDate>Thu, 29 Jul 2010 21:22:35 +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>Dynamically Creating Zip Archives with PHP</title>
		<link>http://dashifen.com/dynamically-creating-zip-archives-with-php/</link>
		<comments>http://dashifen.com/dynamically-creating-zip-archives-with-php/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 21:22:35 +0000</pubDate>
		<dc:creator>David Dashifen Kees</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://dashifen.com/?p=130</guid>
		<description><![CDATA[Never having had the need to create a zip archive manually via PHP before, I was a little worried that it&#8217;d be a pain.  Not so!  In fact, it was extremely simple.  I first googled up this tutorial which set up the basics for me and working from there and with the PHP docs online, [...]]]></description>
			<content:encoded><![CDATA[<p>Never having had the need to create a zip archive manually via PHP before, I was a little worried that it&#8217;d be a pain.  Not so!  In fact, it was extremely simple.  I first googled up <a href="http://devzone.zend.com/article/2105">this tutorial</a> which set up the basics for me and working from there and with the PHP docs online, I was able to complete the project in almost no time at all.</p>
<p>One thing that was a little complicated was cleaning up after I finished.  I didn&#8217;t want to remove the zipped files and the archive before I could feel confident that the visitor to the site had downloaded everything they wanted to.  Thus, a separate process had to do the clean-up operation.  I opted to add some code to the index.php file within the same folder as all the created, temporary files.  Then, when someone visited it, that code would clean-up all the extraneous files.</p>
<p>Here&#8217;s what I did:</p>
<div class="codecolorer-container php-brief vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="php-brief codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000ff;">$now</span> <span style="color: #339933;">=</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #0000ff;">$iterator</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> RecursiveIteratorIterator<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> RecursiveDirectoryIterator<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$iterator</span> <span style="color: #b1b100;">as</span> <span style="color: #0000ff;">$file</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp;<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$file</span><span style="color: #339933;">,</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;php&quot;</span> <span style="color: #339933;">||</span> <span style="color: #0000ff;">$file</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;template.docx&quot;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$now</span> <span style="color: #339933;">-</span> <span style="color: #0000ff;">$file</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getCTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> &nbsp;<span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">300</span><span style="color: #009900;">&#41;</span> continue<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp;<span style="color: #0000ff;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span>DIRECTORY_SEPARATOR<span style="color: #339933;">,</span> <span style="color: #0000ff;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp;<span style="color: #0000ff;">$folders</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$temp</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp;<span style="color: #990000;">unlink</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #0000ff;">$folders</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_unique</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$folders</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$folders</span> <span style="color: #b1b100;">as</span> <span style="color: #0000ff;">$folder</span><span style="color: #009900;">&#41;</span> <span style="color: #990000;">rmdir</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;./$folder&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>The if-conditional just makes sure that I don&#8217;t delete php files, the template word document from which others are generated, or any files that are less than 5 minutes old.  That time constraint makes me feel like anyone who doesn&#8217;t get the files they wanted probably didn&#8217;t click the Open/Save button in the dialog after making the files and they can just re-do the work.</p>
<p>How did I use the template document to make new ones, you ask?  The <a href="http://phpword.codeplex.com/">PHPWord</a> class, that&#8217;s how!</p>
]]></content:encoded>
			<wfw:commentRss>http://dashifen.com/dynamically-creating-zip-archives-with-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pagan Newswire Collective</title>
		<link>http://dashifen.com/pagan-newswire-collective/</link>
		<comments>http://dashifen.com/pagan-newswire-collective/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 02:15:21 +0000</pubDate>
		<dc:creator>David Dashifen Kees</dc:creator>
				<category><![CDATA[Pagan]]></category>

		<guid isPermaLink="false">http://dashifen.com/?p=125</guid>
		<description><![CDATA[Great meeting tonight of the Pagan Newswire Collective.  Topics ranged from local bureaus to the tech team to how we can work with larger, &#8220;mainstream&#8221; media outlets.  I&#8217;ll give you three guesses regarding how I&#8217;ll be assisting the PNC as it moves toward a greater involvement in the larger Pagan community. I&#8217;ll update this post [...]]]></description>
			<content:encoded><![CDATA[<p>Great meeting tonight of the <a href="http://pagannewswirecollective.com">Pagan Newswire Collective</a>.  Topics ranged from local bureaus to the tech team to how we can work with larger, &#8220;mainstream&#8221; media outlets.  I&#8217;ll give you three guesses regarding how I&#8217;ll be assisting the PNC as it moves toward a greater involvement in the larger Pagan community.</p>
<p>I&#8217;ll update this post with the audio of the meeting when I get the chance!</p>
]]></content:encoded>
			<wfw:commentRss>http://dashifen.com/pagan-newswire-collective/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Belief in Question</title>
		<link>http://dashifen.com/belief-in-question/</link>
		<comments>http://dashifen.com/belief-in-question/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 04:30:33 +0000</pubDate>
		<dc:creator>David Dashifen Kees</dc:creator>
				<category><![CDATA[Religion]]></category>
		<category><![CDATA[belief in question]]></category>
		<category><![CDATA[interfaith]]></category>

		<guid isPermaLink="false">http://dashifen.com/?p=97</guid>
		<description><![CDATA[I just had a wonderful evening spent in discussion with others, mostly students but at least two others who were not, regarding the benevolence of God. The group is called Belief in Question. As far as I can tell, there&#8217;s no other web presence for the group, which is unfortunate, as I&#8217;d love to be [...]]]></description>
			<content:encoded><![CDATA[<p>I just had a wonderful evening spent in discussion with others, mostly students but at least two others who were not, regarding the benevolence of God.  The group is called <a href="http://illinois.collegiatelink.net/Community?action=getOrgHome&amp;orgID=27375">Belief in Question</a>. As far as I can tell, there&#8217;s no other web presence for the group, which is unfortunate, as I&#8217;d love to be able to continue some of the conversation we had tonight online asynchronously.  If any of the attendees from tonight somehow track this down, drop me a line!</p>
<p>While benevolence was our topic of conversation, we strayed onto well-worn paths regarding the nature of morality, justice, and love and how these interact with benevolence.  Event better:  there were those in the room who disagreed &#8212; heck, some who don&#8217;t even believe in God &#8212; and no one was treated as if the were inferior or superior simple based on the personal beliefs they brought to the table.</p>
<p>It is unfortunate, I suppose, that the primary speaker, i.e. the one who came up with the topic for discussion, seemed to have made up his mind that God is not benevolent and, in fact, that the is, in fact, malevolent and, while others in the room, ironically myself included, provided arguments in favor of His benevolence, I think that the speaker had based his position on and around his own personal view made it feel like debate where he staunchly defended it and we tried to tear it down.  Luckily, I think we moved past more competitive mode eventually, but I think he was a little perturbed that not everyone in the room was more moved by his argument.</p>
<p>It was also interesting to find myself in a debate structured within a Judeo-Christian framework.  While I was raised within those philosophies and have a great respect for them, there are many parts of the Bible (both testaments) and the materials surrounding and supporting it that I question, some on the basis of historical fact and others simply on the basis of personal philosophy and spirituality.  Being brought into a discussion framed in a philosophy that I didn&#8217;t personally share focusing on a question that, while intellectually stimulating, isn&#8217;t one that I find very personally relevant was an exciting challenge for me and one that I quite enjoyed.  I don&#8217;t know if I was very effective, but I had a good time none the less.</p>
<p>As in many cases, I think it was the after-party, so to speak, that was more valuable than the actual event.  After the group had wrapped up, those of us still engaged in the conversation remained to continue sharing our thoughts.  These smaller groups made it a little bit more interesting to share personal thoughts and feelings that were outside the framework of the larger group discussion.</p>
<p>The make up of the group was interesting.  There were probably about 15-20 people there, roughly 1/2 Christian &#8212; mostly Catholics, it seemed &#8212; and 1/2 atheist.  And me, the lonely Pagan.  Speaking with the event organizer, he had invited other faiths including Hindus, Muslims, and Bahá&#8217;í but they were either unable or uninterested in coming.  It was also a shame that some of my other friends from the <a href="http://uiucpagans.com">Pagan Students Association</a> were unable to make it, but hopefully they&#8217;ll be there to back me up in the future.</p>
<p>Unfortunately, there are no more events for the group this semester, though it sounds like they&#8217;re going to continue hosting events in the Fall.  I look forward to them; I had a wonderful time tonight and hope to have more in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://dashifen.com/belief-in-question/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Activation</title>
		<link>http://dashifen.com/activation/</link>
		<comments>http://dashifen.com/activation/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 16:59:05 +0000</pubDate>
		<dc:creator>David Dashifen Kees</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[phorum]]></category>

		<guid isPermaLink="false">http://dashifen.com/?p=75</guid>
		<description><![CDATA[I spent a while working on how I wanted to handle plugin activation for Phorum over this weekend.  I investigated using the existing WordPress tables to store the forum information but, in the end, opted to create my own custom ones for one specific reason:  it&#8217;ll be easier to clean up after myself if someone [...]]]></description>
			<content:encoded><![CDATA[<p>I spent a while working on how I wanted to handle plugin activation for Phorum over this weekend.  I investigated using the existing WordPress tables to store the forum information but, in the end, opted to create my own custom ones for one specific reason:  it&#8217;ll be easier to clean up after myself if someone uninstalls the plugin if my information isn&#8217;t strewn throughout the normal blog tables.</p>
<p>That decision made, I had to figure out the best way to handle the CREATE TABLE queries that would be required of the system when the plugin is activated (and updated).  I&#8217;ve never been a fan of the long column of SQL statements that some plugins use when creating their own tables.  I&#8217;m big stickler for code that looks pretty and is functional, so I wanted a way to store the CREATE TABLE queries in a secure fashion while also keeping them in a separate file from the main Phorum code.</p>
<p>To that end, I created a folder and in that folder I put the SQL statements.  Then, if the tables needed to be changed, I can use <a href="http://us.php.net/manual/en/function.file-get-contents.php">file_get_contents()</a> to read in the queries and then use the WordPress dbDelta() function to actually execute them.  This worked very well:</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$prefix</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">prefix</span> <span style="color: #339933;">.</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">prefix</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$dir</span> <span style="color: #339933;">=</span> WP_PLUGIN_DIR <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/phorum/sql&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$files</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> DirectoryIterator<span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$files</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">7</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">7</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;sql.php&quot;</span><span style="color: #009900;">&#41;</span>  <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #000088;">$table</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$prefix</span> <span style="color: #339933;">.</span> <span style="color: #990000;">basename</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;.sql.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp;<span style="color: #000088;">$query</span> <span style="color: #339933;">=</span> <span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$dir</span>/<span style="color: #006699; font-weight: bold;">$file</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp;<span style="color: #000088;">$query</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/&lt;\?php | \?&gt;/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$query</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp;<span style="color: #000088;">$sql</span>  <span style="color: #339933;">.=</span> <span style="color: #990000;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$query</span><span style="color: #339933;">,</span> <span style="color: #000088;">$table</span><span style="color: #339933;">,</span> DB_CHARSET<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
dbDelta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>There&#8217;s an interesting tidbit on line 7 above.  I had to add the PHP tags around my statements to avoid them being printed on-screen if someone actually browsed to the files.  If they were simply text, then browsers would show the table information to anyone who happened by.  This way, the result is a blank screen.  It&#8217;s not yet the most elegant solution but it works for my purposes of the moment but I&#8217;ll probably keep trying to think of a better solution until one presents itself.</p>
]]></content:encoded>
			<wfw:commentRss>http://dashifen.com/activation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Phorum Begins</title>
		<link>http://dashifen.com/phorum-begins/</link>
		<comments>http://dashifen.com/phorum-begins/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 03:03:59 +0000</pubDate>
		<dc:creator>David Dashifen Kees</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[phorum]]></category>
		<category><![CDATA[plugin development]]></category>

		<guid isPermaLink="false">http://dashifen.com/?p=60</guid>
		<description><![CDATA[So, as you might have noticed, my web site suddenly became all WordPress-ified this past winter.  Since then, I&#8217;ve worked on a few other sites in WordPress, too, and in general found it to be a very positive experience.  One of those sites is the site for my World of Warcraft guild, Team Venture. One [...]]]></description>
			<content:encoded><![CDATA[<p>So, as you might have noticed, my web site suddenly became all <a href="http://wordpress.com">WordPress</a>-ified this past winter.  Since then, I&#8217;ve worked on a few other sites in WordPress, too, and in general found it to be a very positive experience.  One of those sites is the site for my <a href="http://worldofwarcraft.com">World of Warcraft</a> guild, <a href="http://teamventure.info">Team Venture</a>.</p>
<p>One of the things that I ran into on a previous site was a general lack of solid forum software for WordPress.  Sure, there&#8217;s <a href="http://bbpress.org">bbPress</a> and <a href="http://simple-press.com/">Simple:Press</a> but the former seems a little light of features and fairly difficult to theme while the latter is feature rich, but almost too much so, and equally difficult to integrate within an already existing customized appearance.</p>
<p>To that end, I&#8217;m gonna try to make my own.  Yeah, yeah; I know what you&#8217;re thinking.  Shocking that a programmer would want to try and re-create the wheel.  I recognize that it&#8217;s probably not necessarily the best use of my time to do so, but I&#8217;m treating it like a learning experience and as a way to help me blog a little bit more.</p>
<p>There&#8217;s a few other forum plugins beyond bbPress and Simple:Press, but oddly no one just went for the silly name of Phorum.  So, I&#8217;m totally going to call mine that.  I did some work on it today, but I&#8217;m going to talk about what I accomplished tomorrow in a separate post.  I just wanted to slap this one together this evening to put some thoughts into words.</p>
]]></content:encoded>
			<wfw:commentRss>http://dashifen.com/phorum-begins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reins of the Green Proto-Drake</title>
		<link>http://dashifen.com/reins-of-the-green-proto-drake/</link>
		<comments>http://dashifen.com/reins-of-the-green-proto-drake/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 00:49:30 +0000</pubDate>
		<dc:creator>David Dashifen Kees</dc:creator>
				<category><![CDATA[World of Warcraft]]></category>
		<category><![CDATA[loot]]></category>

		<guid isPermaLink="false">http://dashifen.com/?p=57</guid>
		<description><![CDATA[Now, I know that some of you all play World of Warcraft but probably not all of you, so those of you that don&#8217;t will have to forgive the occasional post regarding WoW.  Tonight, I logged in to play and my Mysterious Egg had hatched.  From that egg could come one of six items, the [...]]]></description>
			<content:encoded><![CDATA[<p>Now, I know that some of you all play World of Warcraft but probably not all of you, so those of you that don&#8217;t will have to forgive the occasional post regarding WoW.  Tonight, I logged in to play and my <a href="http://www.wowhead.com/?item=39878">Mysterious Egg</a> had hatched.  From that egg could come one of six items, the coolest of which is undoubtedly the <a href="http://www.wowhead.com/?item=44707">Reins of the Green Proto-Drake</a>.  Wowhead reports that you have about a 1 in 50 chance of getting the drake when the egg hatches.</p>
<p>I got it in one.  That&#8217;s right&#8230; First egg.</p>
<p>Got to love random drops!</p>
]]></content:encoded>
			<wfw:commentRss>http://dashifen.com/reins-of-the-green-proto-drake/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 Things I Wish I Knew&#8230;</title>
		<link>http://dashifen.com/10-things-i-wish-i-knew/</link>
		<comments>http://dashifen.com/10-things-i-wish-i-knew/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 22:11:13 +0000</pubDate>
		<dc:creator>David Dashifen Kees</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[nostalgia]]></category>
		<category><![CDATA[reflection]]></category>
		<category><![CDATA[rules]]></category>

		<guid isPermaLink="false">http://dashifen.com/?p=50</guid>
		<description><![CDATA[On another programming blog today, a guy by the name of Chris wrote an article about 10 things he wish he&#8217;d known 10 years ago.  It&#8217;s pretty telling, I think, that a number of the ones he&#8217;s listed are the same that I&#8217;d list.  Anyway, here&#8217;s the list that I&#8217;d produce, which while shorter than [...]]]></description>
			<content:encoded><![CDATA[<p>On <a href="http://www.montanaprogrammer.com/php-web-programming/10-things-web-programmers-should-know/">another programming blog</a> today, a guy by the name of Chris wrote an article about 10 things he wish he&#8217;d known 10 years ago.  It&#8217;s pretty telling, I think, that a number of the ones he&#8217;s listed are the same that I&#8217;d list.  Anyway, here&#8217;s the list that I&#8217;d produce, which while shorter than his, is pretty much just supplementary to it:</p>
<ol>
<li><strong>People are stupid.</strong><br />
In essence, they&#8217;re going to use your programming in a way that you didn&#8217;t expect and didn&#8217;t account for.  Assume this and try to fail as gracefully as possible.  Granted, this is a rule from Computer Science 101, but it&#8217;s still relevant and something that&#8217;s actually rather difficult to accomplish regardless of it&#8217;s universality.</li>
<li><strong>However long you think it&#8217;s going to take, it&#8217;ll take longer!</strong><br />
Chris included this one, too.  My fudge factor is about 2.5.  If I expect something to take 2 hours, it&#8217;ll probably take 5.  I&#8217;ve begun to simply multiply my gut-level estimate by 2.5 when I talk to people.  This has an added, hidden benefit:  if I beat that estimate, they think I&#8217;m awesome!</li>
<li><strong>Learn new techniques</strong>.<br />
This is inspired by part of the other article and includes a few things therein.  When I started my current job, I didn&#8217;t know very much about some of the techniques I use heavily today.  For example, while my traditional education included object oriented programming, applying the techniques of OOP to web sites wasn&#8217;t something that I&#8217;d encountered.  Now, however, I use OOP every day (or nearly so).  Same deal with AJAX and other client-side Javascript techniques.</li>
<li><strong>Do it yourself or confirm that it&#8217;s been done.<br />
</strong>﻿Recently at my day job, I&#8217;ve been running into situations where I&#8217;ll indicate a concern about this or that and tell someone what they should do to alleviate it, and for a variety of reasons from confusion to misunderstanding to a failure to communicate those concerns remained &#8230; concerning &#8230; until <strong>after</strong> the programming was complete and released!  From these experiences, I think I have a new rule for myself:  if you&#8217;re worried about it, do what you need to do to not worry about it.  Good rule for life, too.  Whether this means that you have to handling things your self, or just confirm with people that they&#8217;re on top of things, taking on a little bit of managerial duties might help solve some problems in the long-run.  Just don&#8217;t step on people&#8217;s toes!</li>
<li><strong>It&#8217;ll never be right.<br />
</strong>You&#8217;re never going to get it right.  Never.  Not once.  There will always be bugs or problems to sort out and when you sort those out, someone will find more for you to handle.  This shouldn&#8217;t be seen as pessimism (though it is a little negative) but rather as job security (see what I did there?).  Seriously, though, eventually you have to bite the bullet and release a product that you&#8217;re happy with rather than constantly trying to improve it.  Whether you pull a Google and release it in beta for some time or you just provide incremental fixes to bugs as they come in is likely a decision that you may not be making alone (and may not be included in depending on where you work), but you&#8217;re going to have to be prepared for the fact that someone, somewhere is going to do something that&#8217;s going to cause your program to fail (see #1) and you&#8217;re going to be the person who has to fix things up.  If you let these situations get to you, burn out is likely to be the only possible result.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://dashifen.com/10-things-i-wish-i-knew/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;m a Published Missions Author</title>
		<link>http://dashifen.com/im-a-published-missions-author/</link>
		<comments>http://dashifen.com/im-a-published-missions-author/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 14:36:40 +0000</pubDate>
		<dc:creator>David Dashifen Kees</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Shadowrun]]></category>

		<guid isPermaLink="false">http://dashifen.com/?p=48</guid>
		<description><![CDATA[I&#8217;m feeling pretty good this morning.  Had a nice bagel, sipping my coffee and going through the morning routine at work when I suddenly notice this:  my Shadowrun Missions adventure is now available for purchase! This is actually very cool for me.  I&#8217;ve also contributed to the Manhattan: the Rotten Apple and an upcoming electronic [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m feeling pretty good this morning.  Had a nice bagel, sipping my coffee and going through the morning routine at work when I suddenly notice this:  my <a href="http://shadowrun4.com">Shadowrun</a> <a href="http://www.shadowrun4.com/missions/">Missions</a> adventure is now available for <a href="http://www.shadowrun4.com/wordpress/2009/11/new-mission-is-out/">purchase</a>!</p>
<p>This is actually very cool for me.  I&#8217;ve also contributed to the <a href="http://www.battlecorps.com/catalog/product_info.php?products_id=2252"><em>Manhattan: the Rotten Apple</em></a> and an upcoming electronic book, but so did a number of other people.  This time, it was all me.  And, I&#8217;m not ashamed to say I&#8217;m a little proud of that!</p>
]]></content:encoded>
			<wfw:commentRss>http://dashifen.com/im-a-published-missions-author/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oops, I did it again&#8230;</title>
		<link>http://dashifen.com/oops-i-did-it-again/</link>
		<comments>http://dashifen.com/oops-i-did-it-again/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 02:41:15 +0000</pubDate>
		<dc:creator>David Dashifen Kees</dc:creator>
				<category><![CDATA[Pagan]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[cupagan]]></category>
		<category><![CDATA[online]]></category>

		<guid isPermaLink="false">http://dashifen.com/?p=45</guid>
		<description><![CDATA[Well, I&#8217;ve gone and done it again.  I&#8217;ve volunteered myself to start up a new online community for my local area out here in Illinois.  Should probably finish up my own web site before I go volunteering to do others.  Of course, I&#8217;d be doing all the up front labor on this new site in [...]]]></description>
			<content:encoded><![CDATA[<p>Well, I&#8217;ve gone and done it again.  I&#8217;ve volunteered myself to start up a new online community for my local area out here in Illinois.  Should probably finish up my own web site before I go volunteering to do others.  Of course, I&#8217;d be doing all the up front labor on this new site in the hopes that I could then get other interested parties doing the majority of the later efforts.  But, at this rate, I&#8217;m going to have a lot on my plate for the winter break.</p>
<p>So what is this new venture, you ask?  It&#8217;ll probably be something like cupagan.com, but don&#8217;t look for anything at that address at the moment.  In fact, it&#8217;s not even mine yet so if you want to really piss me off, register it out from under me!  But, since there&#8217;s no one (that I know of) actually reading my blog at this time, it&#8217;s unlikely that will happen.</p>
<p>The goal of the site is pretty simple:  there are a number of small Pagan groups in the area and there are at least three general mailing lists as well.  It would be really, really nice if we could create an online space wherein each of those groups could advertise their events, gatherings, and goings-on without feeling like they needed to fork a single email to six hojillion lists in order to reach out to the CU Pagan community.</p>
<p>I&#8217;ll probably try to get things put together for it through December and into January.  Then it can become a resource for the area for at least a year until the subscription is up again.  Then, if it&#8217;s something that&#8217;s been useful to the local community, I&#8217;ll keep it going and, if not, it&#8217;ll only cost me about $10 and the time it takes to make it look pretty.</p>
]]></content:encoded>
			<wfw:commentRss>http://dashifen.com/oops-i-did-it-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Posterous Testing</title>
		<link>http://dashifen.com/posterous-testing/</link>
		<comments>http://dashifen.com/posterous-testing/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 02:58:22 +0000</pubDate>
		<dc:creator>David Dashifen Kees</dc:creator>
				<category><![CDATA[Other Stuff]]></category>

		<guid isPermaLink="false">http://dashifen.com/posterous-testing</guid>
		<description><![CDATA[Still putting together some of the interesting social networking features that I&#39;ve heard about recently.  For example, this post started as an email, got converted by posterous.com into a post there, and then (if everything worked out) turned into a blog post at dashifen.com, a message on facebook, and a tweet.  It&#39;s that last one [...]]]></description>
			<content:encoded><![CDATA[<p>Still putting together some of the interesting social networking features that I&#39;ve heard about recently.  For example, this post started as an email, got converted by <a href="http://posterous.com">posterous.com</a> into a post there, and then (if everything worked out) turned into a blog post at <a href="http://dashifen.com">dashifen.com</a>, a message on facebook, and a tweet.  It&#39;s that last one that I&#39;m not sure of, considering the length of the message.
<p style="font-size: 10px;">  <a href="http://posterous.com">Posted via email</a>   from <a href="http://dashifen.posterous.com/posterous-testing-10">dashifen&#8217;s posterous</a>  </p>
]]></content:encoded>
			<wfw:commentRss>http://dashifen.com/posterous-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
