<?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>Brian Ortiz &#187; Programming</title>
	<atom:link href="http://blog.ortz.org/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ortz.org</link>
	<description>The blog of Brian Ortiz aka Ortzinator, developer, artist, and the nicest guy you know.</description>
	<lastBuildDate>Sat, 27 Mar 2010 16:58:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>A Post</title>
		<link>http://blog.ortz.org/2010/03/27/a-post/</link>
		<comments>http://blog.ortz.org/2010/03/27/a-post/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 16:54:06 +0000</pubDate>
		<dc:creator>Ortzinator</dc:creator>
				<category><![CDATA[OrtzIRC]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[noise]]></category>
		<category><![CDATA[procedural]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.ortz.org/?p=274</guid>
		<description><![CDATA[I get mad when people don&#8217;t blog so I&#8217;d better set a good example!
I&#8217;ll be honest, I haven&#8217;t worked on OrtzIRC much. It needs more work that I&#8217;d first thought. The source is a mess and needs a lot of refactoring. I haven&#8217;t given up though, just taken a break!
In place of OrtzIRC, I&#8217;ve been [...]]]></description>
			<content:encoded><![CDATA[<p>I get mad when people don&#8217;t blog so I&#8217;d better set a good example!</p>
<p>I&#8217;ll be honest, I haven&#8217;t worked on OrtzIRC much. It needs more work that I&#8217;d first thought. The source is a mess and needs a lot of refactoring. I haven&#8217;t given up though, just taken a break!</p>
<p>In place of OrtzIRC, I&#8217;ve been working on the game I may have mentioned in the past. Hopefully the concept doesn&#8217;t turn out to be too unrealistic.</p>
<p>I&#8217;m planning on a space sim in the vein of Wing Commander, except it will be 2D top-down and not constrained to pre-determined &#8220;systems&#8221;. Everything will procedurally generated and the player will get around by &#8220;jumping&#8221; with an FTL drive to a set of coordinates, which may take you to something interesting, or take you to some empty space in the middle of nowhere.</p>
<p>Generating systems (at least visually) will be pretty easy. I think the challenge will be making those systems interesting and worth exploring. Another problem I can see is combat. In a 3D space sim, you fly the ship from a first-person perspective. But when it&#8217;s 2D to-down, you can&#8217;t do that. And so when you&#8217;re flying next to, or attacking, a ship much bigger than yours, you&#8217;d have to zoom out to see the other ship, at which point your ship would get very small on the screen and possibly make things difficult for you.</p>
<p>So many things to consider!</p>
<p>In the mean time, here are some screenshots:</p>
<p><img class="alignnone" title="Prcedural star field" alt="" src="http://dl.dropbox.com/u/313489/sshot6.png" width="667" height="521"></p>
<p><img class="alignnone" title="Generated planet test" alt="" src="http://dl.dropbox.com/u/313489/sshot.jpg" width="667" height="522"></p>
<p>The planet is still in the testing phase and is not yet &#8220;procedural&#8221;. The textures are generated with <a href="http://www.big-black-block.com/index.php?option=com_content&amp;view=article&amp;id=25&amp;Itemid=21">LibNoise.XNA</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ortz.org/2010/03/27/a-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mercurial</title>
		<link>http://blog.ortz.org/2009/10/14/mercurial/</link>
		<comments>http://blog.ortz.org/2009/10/14/mercurial/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 01:15:46 +0000</pubDate>
		<dc:creator>Ortzinator</dc:creator>
				<category><![CDATA[OrtzIRC]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Mercurial]]></category>

		<guid isPermaLink="false">http://blog.ortz.org/?p=262</guid>
		<description><![CDATA[Updated 10/31: You don&#8217;t need a pass for the repo anymore.
I was on mid-term break the past two days. (Yeah only two. ugh.) I had been looking at Mercurial the past few days so I took the opportunity to switch OrtzIRC over to use Mercurial!
I really like Mercurial. I like how simple it is, even [...]]]></description>
			<content:encoded><![CDATA[<p><em>Updated 10/31: You don&#8217;t need a pass for the repo anymore.</em></p>
<p>I was on mid-term break the past two days. (Yeah only two. ugh.) I had been looking at <a href="http://mercurial.selenic.com/wiki/">Mercurial </a>the past few days so I took the opportunity to switch OrtzIRC over to use Mercurial!</p>
<p>I really like Mercurial. I like how simple it is, even compared to SVN. Whenever I did something with SVN I felt like I was walking through a minefield. And I did manage to get my legs blown off a few times. (I looked at Git but it made me <a href="http://www.ericsink.com/entries/git_index.html">bleed from the ears</a>.)</p>
<p>The switch was ridiculously easy. The only hard part was the fact that the hook for my CIA bot didn&#8217;t work, which should&#8217;ve been an easy fix, except I don&#8217;t know Python that well and Mercurial doesn&#8217;t have any docs for writing hooks that I could find. So I spent most of the day yesterday and part of this morning crawling through Mercurial&#8217;s changelogs and source.</p>
<p>Anyway, here&#8217;s the repo <a href="http://hg.ortzirc.com/ortzirc/">http://hg.ortzirc.com/ortzirc/</a>.</p>
<p>I&#8217;m keeping the SVN repo up for now, but I&#8217;ll probably delete it pretty soon.</p>
<p>I also switched my issue tracking to <a href="http://www.fogcreek.com/FogBugz/">FogBugz</a>, which I&#8217;m also liking so far. (Free for up to two users) I may post more on that when I&#8217;ve used it more.</p>
<p>And as a result of all this, Trac is no longer useful to me. Can&#8217;t say I&#8217;ll miss it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ortz.org/2009/10/14/mercurial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic Command Plugins</title>
		<link>http://blog.ortz.org/2009/04/12/dynamic-command-plugins/</link>
		<comments>http://blog.ortz.org/2009/04/12/dynamic-command-plugins/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 18:13:26 +0000</pubDate>
		<dc:creator>Ortzinator</dc:creator>
				<category><![CDATA[OrtzIRC]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://blog.ortz.org/?p=222</guid>
		<description><![CDATA[I finished a major feature of OrtzIRC recently, so I thought I would write a bit about how it works.
First of all, a big thanks to Max for being the grease when my gears wouldn&#8217;t turn, so to speak.   And for talking me into doing commands this way instead of mine, which would [...]]]></description>
			<content:encoded><![CDATA[<p>I finished a major feature of OrtzIRC recently, so I thought I would write a bit about how it works.</p>
<p>First of all, a big thanks to <a href="http://maxschmeling.blogspot.com/">Max</a> for being the grease when my gears wouldn&#8217;t turn, so to speak. <img src='http://blog.ortz.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  And for talking me into doing commands this way instead of mine, which would not have worked out as well.</p>
<p>One of the goals with OrtzIRC is extensibility. OrtzIRC will have many categories of plugins which you write with your favorite .NET language, compile, and place in the plugins folder, much like Paint.NET. (Unlike Paint.NET, OrtzIRC will stay open source. wink wink) The first plugin category is commands.</p>
<p>Here&#8217;s what the &#8220;say&#8221; command looks like:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">namespace</span> OrtzIRC.<span style="color: #0000FF;">Commands</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">using</span> <span style="color: #008080;">OrtzIRC.Common</span><span style="color: #008000;">;</span>
    <span style="color: #0600FF;">using</span> <span style="color: #008080;">OrtzIRC.PluginFramework</span><span style="color: #008000;">;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// Parts a channel</span>
    <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span>
    <span style="color: #000000;">&#91;</span>Plugin<span style="color: #000000;">&#93;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> Say <span style="color: #008000;">:</span> ICommand
    <span style="color: #000000;">&#123;</span>
        <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span>
        <span style="color: #008080; font-style: italic;">/// Sends a message to the current channel</span>
        <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span>
        <span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;channel&quot;&gt;&lt;/param&gt;</span>
        <span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;message&quot;&gt;&lt;/param&gt;</span>
        <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> Execute<span style="color: #000000;">&#40;</span>Channel channel, <span style="color: #FF0000;">string</span> message<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            channel.<span style="color: #0000FF;">Say</span><span style="color: #000000;">&#40;</span>message<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Like with most IRC clients, &#8220;say&#8221; is the only command called automatically (when you type into the command box without specifying a command).</p>
<p>Commands must follow these rules to work properly:</p>
<ol>
<li>The class must implement the <tt>ICommand</tt> interface. At the moment this interface just lets the plugin loader know that it&#8217;s a command.</li>
<li>The class must also have the <tt>Plugin</tt> attribute. <tt>Plugin</tt> takes an optional string parameter to specify the name of the plugin (in this case the name of the command you type to execute the command, ie &#8220;/say&#8221;) otherwise the plugin&#8217;s name is the name of the class.</li>
<li>The command class must have at least one public <tt>Execute</tt> method. This method is what OrtzIRC calls when you type in a command.</li>
<li>The type of the first parameter in each of the Execute methods must be one of the following:
<ul>
<li><tt>Channel</tt></li>
<li><tt>Server</tt></li>
<li><tt>PrivateMessageSession</tt></li>
</ul>
<p>This parameter represents the context in which the command was executed, in other words, the window. (A channel window, PM window&#8230;)</li>
<li>The type of each of the remaining parameters must be either <tt>string</tt> or <tt>ChannelInfo</tt>. The <tt>ChannelInfo</tt> object is simply to let the command know that the user specified a channel name, ie &#8220;#luahelp&#8221;.</li>
<li>If you want autocomplete support the <tt>Execute</tt> methods must each have proper XML docs. (This has not yet been implemented, I will discuss it in more detail when it is)</li>
</ol>
<p>If these rules are not followed, the command will either not be loaded or not called when the user attempts to execute it. When a user types in a command, the plugin system looks through the commands it has loaded and looks for one that meets all these requirements and whose parameters match the parameters given by the user.</p>
<p>This command system is much more dynamic and easier on the programmer than other systems I have seen, which usually require the programmer to manage arguments manually and add a lot of redundant code.</p>
<p>Questions, comments, suggestions welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ortz.org/2009/04/12/dynamic-command-plugins/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OrtzIRC Progress</title>
		<link>http://blog.ortz.org/2009/04/08/ortzirc-progress-2/</link>
		<comments>http://blog.ortz.org/2009/04/08/ortzirc-progress-2/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 03:44:40 +0000</pubDate>
		<dc:creator>Ortzinator</dc:creator>
				<category><![CDATA[OrtzIRC]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://blog.ortz.org/?p=220</guid>
		<description><![CDATA[&#8216;Bout time for a quick update!
OrtzIRC&#8217;s first (major) feature is in; Drop-In Commands.  I&#8217;ll post more detail in the future but basically you write some commands in C#, compile it, plop it in the plugins directory, and restart OrtzIRC. The command code is dynamically called when you enter an IRC command. I haven&#8217;t decided on [...]]]></description>
			<content:encoded><![CDATA[<p>&#8216;Bout time for a quick update!</p>
<p>OrtzIRC&#8217;s first (major) feature is in; Drop-In Commands.  I&#8217;ll post more detail in the future but basically you write some commands in C#, compile it, plop it in the plugins directory, and restart OrtzIRC. The command code is dynamically called when you enter an IRC command. I haven&#8217;t decided on scripting support but it&#8217;s not out of the question.</p>
<p>Just a few more core functionality features to put in like server settings and favorite channels and I&#8217;ll be ready to call it &#8220;alpha&#8221; and get ahold of some testers!</p>
<p>I&#8217;ll try to twitter about progress with OrtzIRC more. Also, I&#8217;d use hashtags if hashtags.org worked&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ortz.org/2009/04/08/ortzirc-progress-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>4 Free Installers</title>
		<link>http://blog.ortz.org/2009/02/05/4-free-installers/</link>
		<comments>http://blog.ortz.org/2009/02/05/4-free-installers/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 03:52:46 +0000</pubDate>
		<dc:creator>Ortzinator</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://blog.ortz.org/?p=214</guid>
		<description><![CDATA[Via a wiki answer on StackOverflow:
WiX

Very powerful and flexible.
Can produce MSI packages (Microsoft deployment format of choice)
Almost no documentation
Very steep learning curve.
XML-based.
Recommended for very complex installators.

InnoSetup

Cannot produce MSI packages.
Based on INI files (less powerful but very low learning curve)
Possible to inject Pascal procedures for extra flexibility.
Probably the best choice for 90% of programs.

NSIS

Cannot produce MSI [...]]]></description>
			<content:encoded><![CDATA[<p>Via <a href="http://stackoverflow.com/questions/137657/free-install-wizard-software">a wiki answer</a> on <a href="http://stackoverflow.com">StackOverflow</a>:</p>
<blockquote><p><strong><a rel="nofollow" href="http://wix.sourceforge.net/">WiX</a></strong></p>
<ul>
<li><strong>Very powerful and flexible</strong>.</li>
<li>Can produce MSI packages (Microsoft deployment format of choice)</li>
<li><strong>Almost no documentation</strong></li>
<li><strong>Very steep learning curve.</strong></li>
<li>XML-based.</li>
<li>Recommended for very complex installators.</li>
</ul>
<p><strong><a rel="nofollow" href="http://www.innosetup.com/isinfo.php">InnoSetup</a></strong></p>
<ul>
<li>Cannot produce MSI packages.</li>
<li><strong>Based on INI files (less powerful but very low learning curve)</strong></li>
<li>Possible to inject Pascal procedures for extra flexibility.</li>
<li><strong>Probably the best choice for 90% of programs.</strong></li>
</ul>
<p><strong><a rel="nofollow" href="http://nsis.sourceforge.net/Main_Page">NSIS</a></strong></p>
<ul>
<li>Cannot produce MSI packages.</li>
<li>Fully scripted, very powerful but at cost of high learning curve.</li>
<li><strong>Recommened if WiX is too much and InnoSetup not enough.</strong></li>
</ul>
<p><strong><a rel="nofollow" href="http://www.advancedinstaller.com/">AdvancedInstaller</a></strong></p>
<ul>
<li>Basic version is free.</li>
<li>Can produce MSI packages.</li>
<li><strong>Very good user-interface, almost no learning curve to get things done.</strong></li>
<li>XML-based (but schema is not very user-friendly, doesn&#8217;t really matter as you would use GUI editor anyway)</li>
<li>The best option if you have only basic installer requirements and don&#8217;t have time to learn something new.</li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.ortz.org/2009/02/05/4-free-installers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making HTML Purifier Work With CodeIgniter</title>
		<link>http://blog.ortz.org/2008/12/30/making-html-purifier-work-with-codeigniter/</link>
		<comments>http://blog.ortz.org/2008/12/30/making-html-purifier-work-with-codeigniter/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 02:34:42 +0000</pubDate>
		<dc:creator>Ortzinator</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[HTML Purifier]]></category>

		<guid isPermaLink="false">http://blog.ortz.org/?p=191</guid>
		<description><![CDATA[There&#8217;s a post here about getting it to work, but it&#8217;s old. Since then, the include statements for HTML Purifier were moved to their own file. In a normal script you would include the HTMLPurifier.includes.php file, but this isn&#8217;t in line with how CodeIgniter loads libraries, so it requires some hacking to get working.

 Download [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a post <a href="http://mindloop.be/htmlpurifier-and-the-codeigniter-framework/">here</a> about getting it to work, but it&#8217;s old. Since then, the include statements for <a href="http://htmlpurifier.org/">HTML Purifier</a> were moved to their own file. In a normal script you would include the HTMLPurifier.includes.php file, but this isn&#8217;t in line with how CodeIgniter <a href="http://codeigniter.com/user_guide/general/creating_libraries.html">loads libraries</a>, so it requires some hacking to get working.</p>
<ol>
<li> <a href="http://htmlpurifier.org/download.html">Download</a> HTML Purifier and put the contents of the library folder into your codeigniter /system/application/libraries folder.</li>
<li>Open HTMLPurifier.includes.php and change

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">require</span> <span style="color: #0000ff;">'HTMLPurifier.php'</span><span style="color: #339933;">;</span></pre></div></div>

<p> to</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//require 'HTMLPurifier.php';</span></pre></div></div>

</li>
<li>Open HTMLPurifier.php and add this just under &lt;?php

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTMLPurifier.includes.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

</li>
</ol>
<p>And that&#8217;s all! Load with</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">library</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTMLPurifier'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><a href="http://htmlpurifier.org">HTML Purifier</a></p>
<p><a href="http://htmlpurifier.org/docs.html">HTML Purifier Docs</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ortz.org/2008/12/30/making-html-purifier-work-with-codeigniter/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>XNA Youtube Playlist</title>
		<link>http://blog.ortz.org/2008/04/24/xna-youtube-playlist/</link>
		<comments>http://blog.ortz.org/2008/04/24/xna-youtube-playlist/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 23:10:44 +0000</pubDate>
		<dc:creator>Ortzinator</dc:creator>
				<category><![CDATA[XNA]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://blog.ortz.org/?p=67</guid>
		<description><![CDATA[I&#8217;ve been collecting XNA videos on Youtube into a playlist for a while now. Check it out. I&#8217;ve got about 40 videos as of this posting.
If you have a video you would like me to add, feel free to contact me or leave a comment.
I also idle in #xna on EFNet. If you have a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been collecting XNA videos on Youtube into a playlist for a while now. <a href="http://www.youtube.com/view_play_list?p=D9913D5F016785FD" target="_blank">Check it out</a>. I&#8217;ve got about 40 videos as of this posting.</p>
<p>If you have a video you would like me to add, feel free to <a href="http://www.ortz.org/contact.php">contact me</a> or leave a comment.</p>
<p>I also idle in #xna on EFNet. If you have a video you would like added, feel free to PM me. I&#8217;ll add it when I&#8217;m around.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ortz.org/2008/04/24/xna-youtube-playlist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TFH Recode</title>
		<link>http://blog.ortz.org/2008/04/14/tfh-recode/</link>
		<comments>http://blog.ortz.org/2008/04/14/tfh-recode/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 16:43:28 +0000</pubDate>
		<dc:creator>Ortzinator</dc:creator>
				<category><![CDATA[Flaming Head]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[the flaming head]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://blog.ortz.org/?p=63</guid>
		<description><![CDATA[Been a while since my last post&#8230; Seems like I can never think of anything to blog about. TFH is The Flaming Head, in case you&#8217;re confused.
I&#8217;m currently in the process of rewriting my entire site using the CodeIgniter framework. Not counting my blog and the forums, that is. Actually, I&#8217;m not sure if I [...]]]></description>
			<content:encoded><![CDATA[<p>Been a while since my last post&#8230; Seems like I can never think of anything to blog about. TFH is The Flaming Head, in case you&#8217;re confused.</p>
<p>I&#8217;m currently in the process of rewriting my entire site using the <a href="http://codeigniter.com/" target="_blank">CodeIgniter </a>framework. Not counting my blog and the forums, that is. Actually, I&#8217;m not sure if I want to keep the forums up. Nobody uses them, and frankly there&#8217;s no reason anyone would want to. And now that I think about it, some sort out shoutbox would probably work just as well. I&#8217;ll have to think about it. I&#8217;d appreciate any suggestions too.</p>
<p>CodeIgniter has been really fun to work with. This is my first experience with a web framework (apart from Ruby on Rails, which didn&#8217;t go so well&#8230; something about &#8220;convention over configuration&#8221; seems a bit communist) and MVC is really awesome. For the first time, I have a feeling like I really know what I&#8217;m doing and I&#8217;m not just a noob anymore. I think it might be because MVC was sort of an epiphany for me as a programmer.</p>
<p>I&#8217;ve decided to be more proactive with learning PHP; trying to learn the sort of things that didn&#8217;t really interest/concern me when I was just doing it for fun. Design patterns, for instance. I want to eventually get ZCE (Zend Certified Engineer). Which means I may end up starting on my own framework in the near future. I want to start doing doing freelance online. My biggest obstacle right now is a lack of real experience and, unfortunately, confidence.</p>
<p>As far as non-web programming is concerned, I&#8217;ve recently become interested in GUIs, both designing them and implementing them. Usability issues have always interested me because psychology has always interested me as well, and the two seem to go hand-in-hand. I mentioned before that I wanted to mess around with WPF a bit, which I still haven&#8217;t gotten around to, unfortunately.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ortz.org/2008/04/14/tfh-recode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PunBB Simple API</title>
		<link>http://blog.ortz.org/2007/12/29/punbb-simple-api/</link>
		<comments>http://blog.ortz.org/2007/12/29/punbb-simple-api/#comments</comments>
		<pubDate>Sat, 29 Dec 2007 18:26:38 +0000</pubDate>
		<dc:creator>Ortzinator</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[punbb]]></category>

		<guid isPermaLink="false">http://blog.ortz.org/2007/12/29/punbb-simple-api/</guid>
		<description><![CDATA[Integrating PunBB with other scripts is something that has always been a major pain for me. So, when I found this I thought I would share it.
PunSAPI allows you to do everything related to PunBB that you could do just by including common.php, like checking the cookie to determine if the user is logged in, [...]]]></description>
			<content:encoded><![CDATA[<p>Integrating <a href="http://punbb.org/" target="_blank">PunBB</a> with other scripts is something that has always been a major pain for me. So, when I found this I thought I would share it.</p>
<p>PunSAPI allows you to do everything related to PunBB that you could do just by including common.php, like checking the cookie to determine if the user is logged in, except it&#8217;s Object Oriented and it doesn&#8217;t interfere with other scripts. For instance, lately I&#8217;ve been using <a href="http://codeigniter.com/" target="_blank">CodeIgniter</a>, which, as most full-featured PHP apps do, has a <code>redirect</code> function. If you simply included common.php into you app, you get a PHP error about the function already being declared. PunSAPI avoids problems like this.</p>
<p><a href="http://punbb.org/forums/viewtopic.php?id=15854" target="_blank">http://punbb.org/forums/viewtopic.php?id=15854 </a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ortz.org/2007/12/29/punbb-simple-api/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>XNA and OOP</title>
		<link>http://blog.ortz.org/2007/10/29/xna-and-oop/</link>
		<comments>http://blog.ortz.org/2007/10/29/xna-and-oop/#comments</comments>
		<pubDate>Mon, 29 Oct 2007 17:07:59 +0000</pubDate>
		<dc:creator>Ortzinator</dc:creator>
				<category><![CDATA[Rant]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[newbies]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.ortz.org/2007/10/29/xna-and-oop/</guid>
		<description><![CDATA[I have a simple question about XNA tutorials. Why is everyone sparing newbies OO? Nearly every article and tutorial I see uses very little, if any, Object Orientation. They&#8217;re going to have to learn it anyway. In fact, game programming in XNA is a perfect opportunity to learn it.
Yes, they&#8217;re new, but you don&#8217;t need [...]]]></description>
			<content:encoded><![CDATA[<p>I have a simple question about XNA tutorials. Why is everyone sparing newbies OO? Nearly every article and tutorial I see uses very little, if any, Object Orientation. They&#8217;re going to have to learn it anyway. In fact, game programming in XNA is a perfect opportunity to learn it.</p>
<p>Yes, they&#8217;re new, but you don&#8217;t need to dumb things down. XNA has already been simplified. That is, in fact, what XNA is all about. Because XNA has already made it easier, I think we need to concentrate on making the newbies good programmers instead of making it even easier for them to program. I can understand making the most basic &#8220;putting a sprite on the screen&#8221; tutorials as simple as possible to just get them started, but in order for them to really take off and get to the point where they no longer rely on tutorials, they HAVE to learn OOP.</p>
<p>Articles need to have OOP. This is even more confusing to me. Even the more advanced articles contain little OOP. Is this just how people program? Maybe it&#8217;s just me. When I program, I am obsessed with making everything as OO as possible.</p>
<p>Maybe I&#8217;m totally wrong. Maybe I&#8217;m just looking at the wrong tutorials. If I am, tell me.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ortz.org/2007/10/29/xna-and-oop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
