<?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>BluHelix Studios &#187; Studio Announcement</title>
	<atom:link href="http://www2.bluhelix.com/category/studio-announcement/feed/" rel="self" type="application/rss+xml" />
	<link>http://www2.bluhelix.com:81</link>
	<description>The Official BluHelix Home Page</description>
	<lastBuildDate>Wed, 01 Sep 2010 02:34:50 +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>MySQL database class</title>
		<link>http://www2.bluhelix.com:81/2010/08/mysql-database-class/</link>
		<comments>http://www2.bluhelix.com:81/2010/08/mysql-database-class/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 02:12:56 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Inside BluHelix]]></category>
		<category><![CDATA[Studio Announcement]]></category>

		<guid isPermaLink="false">http://www.bluhelix.com/?p=305</guid>
		<description><![CDATA[Developers should always be vigil for XSS and SQL injection attacks. Data from POST and GET should never be trusted. It is trivial to submit arbitrary values to a web page. When it comes to database insertion, strings should always be purged of unsafe entities. PHP&#8217;s MySQL extension offers a good solution. Once a link [...]]]></description>
			<content:encoded><![CDATA[<p>Developers should always be vigil for XSS and SQL injection attacks.  Data from POST and GET should never be trusted.  It is trivial to submit arbitrary values to a web page.  When it comes to database insertion, strings should always be purged of unsafe entities.  PHP&#8217;s MySQL extension offers a good solution.</p>
<p>Once a link identifier ($link) to a database is opened, PHP strings can be cleaned up using
<code>$safe_string = mysql_real_escape_string($unsafe_string, $link);</code></p>
<p>This is simple and convenient.  Below is a similar function to get a feel for what mysql_real_escape_string() is doing.
<code>function escape($str)
{
  $search=array("\\","\0","\n","\r","\x1a","'",'"');
  $replace=array("\\\\","\\0","\\n","\\r","\Z","\'",'\"');
  return str_replace($search,$replace,$str);
}</code><br />
source: <a href="http://php.net/manual/en/function.mysql-escape-string.php">http://php.net/manual/en/function.mysql-escape-string.php</a></p>
<p>I have written a wrapper class for PHP&#8217;s mysql functions that can help with escaping data using mysql_real_escape_string() for safe database insertions.  Additionally, it generally reduces the clutter that PHP&#8217;s built in query functions can cause.</p>
<p>The basic idea is that the class can be instantiated with
<code>$query = new MySqlDB($hostname, $database, $username, $password);</code></p>
<p>And then queries can be executed and an array containing the results can be easily captured like so
<code>$query-&gt;executeQuery('SELECT * FROM `Table` WHERE `Field1` = %s AND `Field2` = %d', 'string', 12);

while ($row = $query-&gt;fetchArray())
{
  $field3 = $row['Field3'];
  // do something amazing
}</code></p>
<p>The query parameter is treated as a format string of sorts where %s is cast as a string and %d is cast as an integer from the provided list of arguments.  A query string and arguments can also be provided directly into the fetchArray() call for a single line return of the first row.  There are also methods to return a single value returned by the query and one to return all rows in a single array.</p>
<p>Some other cool things you can do
<code>// Inserts a row into 'Table' where Field1 = 'string' and Field2 = 12
$insert = array('Field1' =&gt; 'string', 'Field2' =&gt; 12);

$query-&gt;insertAssoc('Table', $insert);

// Updates row where Field3 = 10
$update = array('Field1 =&gt; 'string', 'Field2' =&gt; 12);

$query-&gt;updateAssoc('Table', $update, 'Field3 = %d', 10);</code></p>
<p>You can download MySqlDB on my in my <a href="/snippets/">snippets</a> page or <a href="/pub/classes/mysqldb.zip">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2010/08/mysql-database-class/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>&#8230; And we&#8217;re back</title>
		<link>http://www2.bluhelix.com:81/2010/08/and-were-back/</link>
		<comments>http://www2.bluhelix.com:81/2010/08/and-were-back/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 13:58:14 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Studio Announcement]]></category>

		<guid isPermaLink="false">http://www.bluhelix.com/?p=301</guid>
		<description><![CDATA[Last night Ben at benford.bluhelix.com helped me get this site back up and running on the BCIS web server. We&#8217;ve been forced to use a :81 port for some time do to technical issues at the Berglund Center.]]></description>
			<content:encoded><![CDATA[<p>Last night Ben at <a href="http://benford.bluhelix.com/">benford.bluhelix.com</a> helped me get this site back up and running on the BCIS web server.  We&#8217;ve been forced to use a :81 port for some time do to technical issues at the <a href="http://bcis.pacificu.edu/">Berglund Center</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2010/08/and-were-back/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This week at BluHelix Studios</title>
		<link>http://www2.bluhelix.com:81/2009/01/this-week-at-bluhelix-studios/</link>
		<comments>http://www2.bluhelix.com:81/2009/01/this-week-at-bluhelix-studios/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 05:47:25 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Studio Announcement]]></category>

		<guid isPermaLink="false">http://www.bluhelix.com/?p=280</guid>
		<description><![CDATA[With the main site now off the hokey forum integration I finally got around to upgrading it. The forum is now running on phpBB3 (hurray!). While I was at it I also upgraded the photo gallery application to Gallery 2.3. Unfortunately, there are still some hiccups to tend to (plugins page is a big white [...]]]></description>
			<content:encoded><![CDATA[<p>With the main site now off the hokey forum integration I finally got around to upgrading it.  The forum is now running on phpBB3 (hurray!).  While I was at it I also upgraded the photo gallery application to Gallery 2.3.  Unfortunately, there are still some hiccups to tend to (plugins page is a big white page ugh!).  I also tweaked the blog theme a little.  Cheers.</p>
<p><strong>Update:</strong> Found the fix for Gallery 2.3 at <a href="http://gallery.menalto.com/node/83597">http://gallery.menalto.com/node/83597</a>.  Evidently the plugins repository is bugged and deleting the cache allows one to access the page again.</p>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2009/01/this-week-at-bluhelix-studios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ContentNegotiator updates</title>
		<link>http://www2.bluhelix.com:81/2009/01/contentnegotiator-updates/</link>
		<comments>http://www2.bluhelix.com:81/2009/01/contentnegotiator-updates/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 07:34:18 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Studio Announcement]]></category>

		<guid isPermaLink="false">http://www.bluhelix.com/?p=242</guid>
		<description><![CDATA[I&#8217;ve revisited a class I wrote last year and made a few updates. You can find the new version on my Snippets page. Updates on 1/13/2009 ContentNegotiator is now a singleton.  You may only instantiate one instance of the class. Constructor no longer kicks off output buffering.  I decided this was a &#8220;side-effect&#8221; and should [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve revisited a class I wrote last year and made a few updates.  You can find the new version on my Snippets page.</p>
<p><strong>Updates on 1/13/2009</strong></p>
<ul>
<li>ContentNegotiator is now a singleton.  You may only instantiate one instance of the class.</li>
<li>Constructor no longer kicks off output buffering.  I decided this was a &#8220;side-effect&#8221; and should be moved to a separate method.</li>
<li>prolog() method no longer emits content-type headers.  The prolog() method now echoes only the XML prolog and DOCTYPE.</li>
<li>sendHeaders() added to emit content-type headers to the browser.</li>
<li>negotiate() added to begin output buffering for source code negotiation.</li>
<li>close() method added to flush output buffering.  I found some issues with relying on PHP to close buffering at the end of the page execution.  It is better to close the buffer manually at the end of the page.</li>
</ul>
<p><strong>Updates on 1/14/2009</strong></p>
<ul>
<li>Broke up the constructor a little bit more.</li>
<li>Chooses a document type better.  It now falls down the big if statement before content type is selected and again if it needs to be changed. This fixes a bug where it sometimes picked a slightly different document type then it guessed it would.</li>
<li>The $version and $flavor properties now reflect the actual document type chosen.  ContentNegotiator does not use these after it picks the document type, but at least they&#8217;re there in case someone wants to dump them.</li>
<li>Implemented a way to specify the fallback document type.  If you pass the first parameter as an array, it will pick the first index if the browser accepts it and fallback on the second.  Using this it is now possible to send IE XHTML 1.1 even though IE does not accept the XHTML content type.<br />
Use: <em>$contneg-&gt;getInstance(array(&#8216;XHTML 1.1&#8242;, &#8216;XHTML 1.1&#8242;));</em></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2009/01/contentnegotiator-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Same BluHelix, now on WordPress</title>
		<link>http://www2.bluhelix.com:81/2009/01/same-bluhelix-now-on-wordpress/</link>
		<comments>http://www2.bluhelix.com:81/2009/01/same-bluhelix-now-on-wordpress/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 07:09:27 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Studio Announcement]]></category>

		<guid isPermaLink="false">http://unknown8063.homeip.net:88/www/?p=236</guid>
		<description><![CDATA[I&#8217;m beginning to wrap up the migration to WordPress. There are still a few style sheet modifications I need to get around to so don&#8217;t be surprised if things keep changing periodically for the next few weeks. With the migration complete I have moved the forum back to its original location of http://forums.bluhelix.com/. Recall that [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m beginning to wrap up the migration to WordPress.  There are still a few style sheet modifications I need to get around to so don&#8217;t be surprised if things keep changing periodically for the next few weeks.</p>
<p>With the migration complete I have moved the forum back to its original location of <a href="http://forums.bluhelix.com">http://forums.bluhelix.com/</a>.  Recall that it was a sub folder for over a year due to the session sharing between the main site and forum.  I am also planning to upgrade the forum after I complete the main site.</p>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2009/01/same-bluhelix-now-on-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hamachi Web Status Indicator Classes</title>
		<link>http://www2.bluhelix.com:81/2008/10/hamachi-web-status-indicator-classes/</link>
		<comments>http://www2.bluhelix.com:81/2008/10/hamachi-web-status-indicator-classes/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 03:36:24 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Studio Announcement]]></category>

		<guid isPermaLink="false">http://blog.bluhelix.com/?p=156</guid>
		<description><![CDATA[It&#8217;s been about a year since I last released something, so I am going to throw these little utility classes up. A long time ago I downloaded some PHP script that demonstrated parsing LogMeIn&#8217;s Hamachi web status indicator to build a little Hamachi list for a web site. I cannot for the life of me [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been about a year since I last released something, so I am going to throw these little utility classes up.</p>
<p>A long time ago I downloaded some PHP script that demonstrated parsing LogMeIn&#8217;s Hamachi web status indicator to build a little Hamachi list for a web site.  I cannot for the life of me find the little script &#8211; I suspect it was just a forum post I found.  Anyway, over the years I rewrote the damn thing three times over, trying to get it into a more generalized form.  Thus I introduce my two Hamachi status classes.</p>
<p>HamachiClient &#8211; represents an individual Hamachi client.  Basically, just instantiate one of these buggers with a 5.x.x.x IP and then ask it what its state is.  Pretty simple I hope.</p>
<p>HamachiList &#8211; can contain multiple HamachiClient classes.  You can instantiate this class without any parameters and add the IP addresses later. or you can feed it one array of IP addresses and aliases in the beginning.  Then either ask it for the state of each client, or have it return the complete array.  I also included a method to output an HTML list that can be formatted with CSS.</p>
<p>Note: I also got annoyed with the fact that only clients version 1.0.x can enable the web status indicator.  The obvious implications are that Linux and Mac versions of Hamachi are left in the cold.  I included the possibility of pinging these clients if the web indicator doesn&#8217;t work.  That&#8217;s an advanced parameter and you&#8217;ll have to look in the code to figure out what to do <img src='http://www2.bluhelix.com:81/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Please visit the snippets section to download&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2008/10/hamachi-web-status-indicator-classes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moving</title>
		<link>http://www2.bluhelix.com:81/2008/08/moving/</link>
		<comments>http://www2.bluhelix.com:81/2008/08/moving/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 00:40:21 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Studio Announcement]]></category>

		<guid isPermaLink="false">http://blog.bluhelix.com/?p=152</guid>
		<description><![CDATA[All our servers will be shutting down on Saturday, August 30th. I will try to get them back up on Sunday, but it might take until Monday to be back online.]]></description>
			<content:encoded><![CDATA[<p>All our servers will be shutting down on Saturday, August 30th.  I will try to get them back up on Sunday, but it might take until Monday to be back online.</p>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2008/08/moving/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cuotl Offline</title>
		<link>http://www2.bluhelix.com:81/2008/03/cuotl-offline/</link>
		<comments>http://www2.bluhelix.com:81/2008/03/cuotl-offline/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 16:42:34 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Studio Announcement]]></category>

		<guid isPermaLink="false">http://blog.bluhelix.com/?p=148</guid>
		<description><![CDATA[I&#8217;ve been having technical issues with my main laptop for a month or so and recently learned it is the result of overheating. I&#8217;ve decided to regularly turn off the computer when I am not using it (*gasp* I must be insane!). This is hopefully temporary until I can come up with a good air [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been having technical issues with my main laptop for a month or so and recently learned it is the result of overheating.  I&#8217;ve decided to regularly turn off the computer when I am not using it (*gasp* I must be insane!).  This is hopefully temporary until I can come up with a good air flow solution, but in the meantime it means my Windows HFS server will be offline during much of the weekday hours as well as during the night.  I apologize for the inconvenience this may cause.  Please be sure to notify me if you want to access the server and have trouble doing so during the <strong>evening</strong> when I am not at work &#8211; I probably forgot to turn it on.</p>
<p>Again, this is regarding the Cuotl File Server.  My Linux server that this site, the forums, and member sites are hosted on is unaffected.</p>
<p>Thank you for your understanding,<br />
8063</p>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2008/03/cuotl-offline/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Of WordPress and RPG&#8217;s</title>
		<link>http://www2.bluhelix.com:81/2008/02/of-wordpress-and-rpgs/</link>
		<comments>http://www2.bluhelix.com:81/2008/02/of-wordpress-and-rpgs/#comments</comments>
		<pubDate>Fri, 15 Feb 2008 00:00:11 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Inside BluHelix]]></category>
		<category><![CDATA[Studio Announcement]]></category>

		<guid isPermaLink="false">http://blog.bluhelix.com/?p=146</guid>
		<description><![CDATA[Hey all, It has been awefully quiet at BluHelix, and I appologize.  Lots and lots of things have been creeping into my to-do list but only a handfull of things are actually progressing at the moment. Among the changes I&#8217;m tossing around are a number of site upgrades, including a overhall of the sub-domain mechanics [...]]]></description>
			<content:encoded><![CDATA[<p>Hey all,</p>
<p>It has been awefully quiet at BluHelix, and I appologize.  Lots and lots of things have been creeping into my to-do list but only a handfull of things are actually progressing at the moment.</p>
<p>Among the changes I&#8217;m tossing around are a number of site upgrades, including a overhall of the sub-domain mechanics (consolidation and streamlining, with a possible extension to allow users to access their own settings!), as well as, duh duh duh, WordPress integration.  Ben at <a href="http://benford.bluhelix.com/">http://benford.bluhelix.com/</a> has successfully deployed a WordPress engine already on the Czin server and I have been considering doing the same.  This would do away with the sometimes clunky forum integration and ease the transition to phpBB3.  I&#8217;m not sure if there would be any historical postings.  Perhaps there will.  Anyway this might be a long ways off, but it&#8217;s something on the list.</p>
<p>Also on the list &#8211; Kevin has given me a copy of RPG Maker XP that is Vista compatible!  The question is: Resurrect my current project or start anew.  It&#8217;s a question I&#8217;m continuously debating and would like to hear feedback on.  My former project made the increadible milestone of 50% maps complete (which is not to be confused with 50% complete).  Any thoughts?  If this spurs interest I might post the old projects page on this from last year.  Currently, only the screen shots are accessible.</p>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2008/02/of-wordpress-and-rpgs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Welcome to our new design</title>
		<link>http://www2.bluhelix.com:81/2008/01/welcome-to-our-new-design/</link>
		<comments>http://www2.bluhelix.com:81/2008/01/welcome-to-our-new-design/#comments</comments>
		<pubDate>Thu, 31 Jan 2008 01:57:02 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Studio Announcement]]></category>

		<guid isPermaLink="false">http://blog.bluhelix.com/?p=144</guid>
		<description><![CDATA[Welcome back.  The BCIS server is back online so our address is back to normal.  There are a few minor glitches that need sorting but overall things are going very well. The first thing you will probably notice is that BluHelix Studios has received a face lift.  I hope everyone enjoys our new look and [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome back.  The BCIS server is back online so our address is back to normal.  There are a few minor glitches that need sorting but overall things are going very well.</p>
<p>The first thing you will probably notice is that <strong>BluHelix Studios</strong> has received a face lift.  I hope everyone enjoys our new look and expect to see more features added as time goes on.</p>
<p>As mentioned earlier, the calendar has been axed.  However I am working on a Google integration so it might just be resurrected.</p>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2008/01/welcome-to-our-new-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
