<?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; Interest</title>
	<atom:link href="http://www2.bluhelix.com/category/interest/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>Forget the includes, let PHP autoload it</title>
		<link>http://www2.bluhelix.com:81/2009/01/forget-the-includes-let-php-autoload-it/</link>
		<comments>http://www2.bluhelix.com:81/2009/01/forget-the-includes-let-php-autoload-it/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 07:04:01 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Interest]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.bluhelix.com/?p=249</guid>
		<description><![CDATA[If you&#8217;re a PHP developer who breaks up their classes into separate files, you&#8217;re probably aware of the annoyance of having to setup the proper includes at the beginning of every script.  There is also careful management of class dependencies to be considered, whereby one class will have to include those classes it uses itself [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re a PHP developer who breaks up their classes into separate files, you&#8217;re probably aware of the annoyance of having to setup the proper includes at the beginning of every script.  There is also careful management of class dependencies to be considered, whereby one class will have to include those classes it uses itself to guarantee they exist when needed.</p>
<p>Starting in PHP5 we were given a better way.  PHP5 introduces a new magic function called __autoload().  If this function is defined in the PHP script, it is called whenever an attempt is made to use a class that has not been defined yet.  After __autoload() is called PHP will attempt to use the class again, giving the developer one last chance to get the class setup in between.</p>
<p>__autoload() has one parameter, the name of the class or interface (in a string) that the script attempted to use.  A simple implementation that includes a class classname saved as classname.php from the include path would be
<code>__autoload($classname)
{
    if (is_readable($classname.'php'))
    {
        include $classname.'php';
        if (!class_exists($classname, false) &amp;&amp; !interface_exists($classname, false))
            trigger_error('Could not load '.$classname, E_USER_ERROR);
    }
}</code></p>
<p>Note I used include instead of include_once.  This is because __autoload() will only be called if the class has not already been defined, i.e. the include file has not been included.  Feel free to use include_once however, to be sure.</p>
<p>Also note the false parameter I passed to class_exists().  This parameter disables an autoload check for that class &#8211; it wouldn&#8217;t make sense to autoload the class again if the first autoload failed.  With the default true parameter, class_exists will attempt to autoload the class if it doesn&#8217;t exist.</p>
<p>__autoload() is a great way to manage a library of classes because you can write your own implementation that knows how to load up your classes when they are needed.  Instead of including everything at the top of your scripts, just include the autoloader and it&#8217;ll take care of the rest.  __autoload() also provides an incentive to write all of your library code as classes (and interfaces) because functions cannot be autoloaded.</p>
<p>Now for some bad news.  __autoload() is a bad idea!  Why? Because if you were to use it and then add a 3rd party application to your project that also used it you&#8217;d get a nasty PHP error stating that __autoload cannot be declared twice.  What a bummer!  Fortunately in PHP5.1.x the developers solved this problem by giving us the spl_autoload* functions.  These behave the same as __autoload() but constitute a stack were your implementation can exist simultaneously with the one belonging to the 3rd party application you just added.</p>
<p>Simply write your own function, call it anything you like, and register it using
<code>spl_autoload_register('my_autoload_function');</code></p>
<p>Even better, we can also set the autoloader to a method in a class using an array form.  Static methods can be used like so
<code>spl_autoload_register(array('My_Static_Class', 'myStaticMethod'));</code></p>
<p>Dynamic methods can also be used
<code>spl_autoload_register(array(&amp;$class, 'myDynamicMethod'));</code></p>
<p>Two important things to keep in mind when using spl_autoload* are</p>
<ol>
<li>spl_autoload* functions cannot be used in combination with __autoload() &#8211; it&#8217;s one or the other</li>
<li>Your implementation of an spl_autoload* autoloader should not error if the class cannot be found, since its possible a second autoloader can find it.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2009/01/forget-the-includes-let-php-autoload-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Super Mario Kart FTW</title>
		<link>http://www2.bluhelix.com:81/2007/11/super-mario-kart-ftw/</link>
		<comments>http://www2.bluhelix.com:81/2007/11/super-mario-kart-ftw/#comments</comments>
		<pubDate>Sun, 11 Nov 2007 06:48:10 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Interest]]></category>

		<guid isPermaLink="false">http://blog.bluhelix.com/?p=134</guid>
		<description><![CDATA[Last spring, Micheal, Willy and I made a stop motion animation for our final project in the Intro to Animation class. Armed with nothing but a consumer grade digital still camera, a borrowed tripod, rechargeable batteries, random stuff from our room, and too many hours of playing Mario Kart, we combined our efforts into making [...]]]></description>
			<content:encoded><![CDATA[<p>Last spring, Micheal, Willy and I made a stop motion animation for our final project in the Intro to Animation class.<br />
Armed with nothing but a consumer grade digital still camera, a borrowed tripod, rechargeable batteries, random stuff from our room, and too many hours of playing Mario Kart, we combined our efforts into making something nifty: a parody of Nintendo&#8217;s Mario Kart racing series.</p>
<p>After months of not having access to the proper video editing equipment, my friend Steve showed me how the new version of iMovie had a feature which allowed the upload of videos to youtube, complete with proper compression settings.</p>
<p>Without further introduction, I present Super Maniro Kart:</p>
<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/v/BDvxH2fewL0&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/BDvxH2fewL0&#038;fs=1" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2007/11/super-mario-kart-ftw/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebMD</title>
		<link>http://www2.bluhelix.com:81/2007/10/webmd/</link>
		<comments>http://www2.bluhelix.com:81/2007/10/webmd/#comments</comments>
		<pubDate>Sat, 20 Oct 2007 17:12:53 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Interest]]></category>

		<guid isPermaLink="false">http://blog.bluhelix.com/?p=124</guid>
		<description><![CDATA[Recall my entry two days previous where I mentioned my activities at the Berglund Center were under severe time pressure.  The reason was that I had been offered a position at WebMD! So as you can imagine, I was not only busy with packing up from the Berglund Center but also adjusting to my new [...]]]></description>
			<content:encoded><![CDATA[<p>Recall my entry two days previous where I mentioned my activities at the Berglund Center were under severe time pressure.  The reason was that I had been offered a position at <a href="http://www.webmd.com/">WebMD</a>!</p>
<p>So as you can imagine, I was not only busy with packing up from the Berglund Center but also adjusting to my new career in Portland, Oregon.  Before anyone asks, no I do not know when I will be moving to Portland but I have no doubt that it will eventually happen.  On average, it seems to take me about an hour to get there in the morning and about as long to come back in the evening.  It&#8217;s not the longest commute that people there take each day, but it is about twice as long as I am used to.  Of course it&#8217;s all the traffic &#8211; driving there without traffic only takes 30 minutes.</p>
<p>At this point I am still being trained by various members of our group and occasionally people in neighboring groups.  I think I&#8217;ll like the job, but there is a lot of stuff to get used to &#8211; a lot of new tools I have to learn and technical procedures.  Without diving into details, there is a lot more going on than what we did at ILN.  I&#8217;m certainly not discouraged, everyone there seems very helpful.</p>
<p>My role is an <strong>Integrations Developer</strong>, and as the title suggests, I will be in charge of integrating new functionality into our core platform.  Essentially we have a core development team that creates our platform software and then we have integrations developers who customize these standard tools to fit the individual needs of our clients.  Some of these customizations are as easy as setting a flag in some field in some record in the database while others require completely overriding core code.  Of course others still involve building tools not in the core code at all.</p>
<p>Although, to start things off, among my first assignments will be to move some of our clients from our old tools to the new ones WebMD has since created.</p>
<p>Aside from the commute, I am rather excited about the job and hope to see were it goes.  Being in the health business themselves, they offer great benefits (particularly compared to my previous zero!) and even have a graduate school program which I might look into after I get settled in.</p>
<p>Anyway, I once again apologize for not posting about this earlier.  However, I assure you there is at least one more entry in my back-log queue.  Expect to hear yet another announcement either tomorrow or early next week, this time regarding <strong>BluHelix Studios</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2007/10/webmd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Leaving Berglund (a little late at posting!)</title>
		<link>http://www2.bluhelix.com:81/2007/10/leaving-berglund-a-little-late-at-posting/</link>
		<comments>http://www2.bluhelix.com:81/2007/10/leaving-berglund-a-little-late-at-posting/#comments</comments>
		<pubDate>Fri, 19 Oct 2007 05:04:15 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Interest]]></category>

		<guid isPermaLink="false">http://blog.bluhelix.com/?p=120</guid>
		<description><![CDATA[This is old news for many (just you wait for the next entry I am about to post!) but I have to start somewhere. So the last three weeks have been incredibly busy for two things.  You&#8217;ll have to wait until my next entry to learn about the second, but the first was Willi and [...]]]></description>
			<content:encoded><![CDATA[<p>This is old news for many (just you wait for the next entry I am about to post!) but I have to start somewhere.</p>
<p>So the last three weeks have been incredibly busy for two things.  You&#8217;ll have to wait until my next entry to learn about the second, but the first was Willi and I each initiated our own massive projects at the Berglund Center about four weeks ago.  Willi elected to re-design the <a href="http://bcis.pacificu.edu/journal/">BCIS <em>Interface on the Internet</em></a> while I volunteered to re-design the older, more horribly coded <a href="http://mcel.pacificu.edu/jahc/">JAHC</a> site.  Let&#8217;s recall that Willi is more of a <em>web designer</em> than a <em>web developer</em> so it was pretty much understood I would be in charge of the underlying technology and content migrations for both re-design projects.  Scratch that, for both online journals ranging in age from six to almost ten years running.  Both projects were pretty ambitious.</p>
<p>But that&#8217;s why we decided to do it in the first place.  Between the two of us we had re-designed six Berglund/MCEL web sites previous to these two.  We were speeding through these re-designs, perfecting the art of rapid web site deployment &#8211; and we were hooked.</p>
<p>Unfortunately we were also in a hurry.  Suddenly it became clear I had to push as much work as I could in two weeks as possible because after that it was over.  I was out.</p>
<p>So the journals.  Unlike a certain <a href="http://www.raybobindustries.com/"><em>someone</em></a>, I will not release things into the wild &#8211; even my own creations &#8211; prior to them being officially published.  So you will have to wait until the new <em>Interface</em> and <em>JAHC</em> sites go live to view them.  However, I would like to spend some time discussing the back-end code I developed.</p>
<p>Those I worked with in the Berglund Center are probably familiar with the template system I designed during the summer.  It is a very simple, almost transparent, system that enables a site to pull in two <em>and only two</em> includes files: the header and footer.  The magic is that these includes <em>know</em> the specific title for the page, the tabs that should be selected, the heading to place at the top of the page, and even the breadcrumb path.   All of this is achieved through one easy to use PHP variable that is defined at the top of each content page.  Additionally, a second PHP variable is declared on each content page to tell the system the relative path back to root &#8211; so that the entire site can be freely moved anywhere on the server without breaking links.  This system worked for our site really well in my opinion and succeeds in completely separating layout from content.  All in all, seven web sites on the Berglund servers utilize the exact same core functions.</p>
<p>So the idea was we needed another set of functions to power an online journal.  This time instead of separating content from layout, the goal was to reduce redundancy as much as possible while at the same time actually expanding and proliferating the display of content information.  What an objective!</p>
<p>At first I considered using a simple, straight forward, no thrills include containing the raw HTML list of articles and reviews in each issue.  Such a list could be used on both the issue content page and in the side menu of every page associated with that issue.  With CSS it would be easy to re-use HTML content in this manner.  But I was more ambitious than this!</p>
<p>No, we needed a database!  But, at the same time, we needed something that going to be simple for newbies to maintain.  An administrative center would have been required to support a MySQL implementation and I felt this would be too much.  Instead I decided upon an XML database.  Essentially, instead of the old method of hard coding <em>everywhere</em> (JAHC) or adding entries to various text files pulled by the index pages (<em>Interface</em>) &#8211; all the information needed to list articles and reviews was consolidated into a single XML file &#8211; one XML file per issue.  Essentially the development process is maintained as our developers would still simply copy over the existing folder system to a new issue but instead of updating 2-4 files they just update that one XML file.</p>
<p>Additionally, the information in the XML file can be pulled directly to create an RSS feed on the fly or all XML files in the entire journal can be consolidated into one massive collection to make a journal-wide index page.  In fact I considered the index page the greatest bonus of this system because it is a useful feature that has been long-neglected on JAHC and never even existed on <em>Interface</em>.</p>
<p>And also Jeff has assigned me the task of making the book reviews database public and I never got around to it.  But now a very similar system will be public.  Instead of users getting direct access to the thorough MySQL books review database they can page through the auto-updating book review index pages &#8211; the same books, just not as searchable nor exhaustive in publisher information.  Small price to pay for something that will literally update itself, I&#8217;d say.</p>
<p>Anyway, as long as that description was, this system did not actually take me too long to get running.  Only 2 days to build the core code, and then it evolved over the next two weeks as I added new features as I needed them and/or as they were requested.</p>
<p>The truly time consuming part was moving the content from the old design to the new design.  At first I was making the conversions with great care, attempting to update the code to my personal standards.  I actually got quite far doing this &#8211; about three years of issues.  However, the end of my employment started to become more ominous and I realize I had to speed things up or risk a newbie finishing off the journal (&#8216;finishing off&#8217; left to the imagination).  And so I turned to my old friend the bulk Search and Replace utility.  Already, this project seemed to challenge my grasp on regular expressions and I explored more and more advanced techniques to automate the conversion process.  But now I simply faced reality and attempted to chew as much content as possible through Search and Replace.</p>
<p>Unfortunately it only sort of worked.  The problem is this: The further back in time one travels on JAHC the more articles there were, the longer each article is, and the worse the underlying code becomes.  It&#8217;s a viscous cycle which depressingly enough meant that my new &#8220;speeding through&#8221; techniques simply made the older issues take about the same amount of time as the most recent 2007 issues!  I think I made it through all but 2 years.</p>
<p>Luckily the <em>Interface</em> was a different issue (ha!) all together.  The old interface for <em>Interface</em> (okay I promise to stop) used includes for a similar manner as the redesign.  Plus, even more helpful still, the folder layout for this journal was  &#8220;flat&#8221; &#8211; meaning all articles existed on the same &#8220;level&#8221; in the folder system.  This gave Search and Replace unparalleled success in automating the content conversion.  In face it is my understanding that about 90% of our articles &#8220;just worked&#8221; in the new template without any intervention at all once the XML files were in place.  That&#8217;s pretty impressive and I am sure my comrades in the center appreciate the time I was able to spend making the content conversion happen.</p>
<p>I miss my time at the Berglund Center.  I really enjoyed being the &#8220;expert&#8221; on the web site and managing, what ended up being, a fairly considerable team.  It was a lot of fun.  The cool thing is that many of the people still working there are my friends so if they fail to bug me about my code I will assuredly continue to prod them for updates!</p>
<p>Expect daily updates until I get this place caught up again.  I apologize for being absent so long.  I was actually working on the journals outside of work as well these past weeks.  It certainly was not slavery &#8211; I actually took a lot of ownership in the project and had fun trying to make a system that I truly felt would improve the quality of our journals.</p>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2007/10/leaving-berglund-a-little-late-at-posting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>June</title>
		<link>http://www2.bluhelix.com:81/2007/06/june/</link>
		<comments>http://www2.bluhelix.com:81/2007/06/june/#comments</comments>
		<pubDate>Fri, 29 Jun 2007 05:26:32 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Interest]]></category>

		<guid isPermaLink="false">http://blog.bluhelix.com/?p=104</guid>
		<description><![CDATA[Alright, I hate these once a month updates.  But at least it&#8217;s something, right? Activity at work has been steadily increasing.  After a brief slump towards the end last month I have been tasked to several projects, many of which are actually *gasp* interesting. Site Map generation and broken link testing One of the projects [...]]]></description>
			<content:encoded><![CDATA[<p>Alright, I hate these once a month updates.  But at least it&#8217;s something, right?</p>
<p>Activity at work has been steadily increasing.  After a brief slump towards the end last month I have been tasked to several projects, many of which are actually *gasp* interesting.</p>
<h3>Site Map generation and broken link testing</h3>
<p>One of the projects I came up with for <em>other people to do</em> was build a site map for each of our two servers &#8211; I suppose the name <em>server map</em> would be more appropriate.  After I realized the task was being avoided simply because the term was not as well known as I assumed I decided to scrummage for a way to do it myself.  Or rather a program to do it for me.</p>
<p>Behold, these things are everywhere.  Sure some cost a hundred dollars, but many are free and just as competent.  The beautiful thing about automated site map generators is that they also double as broken link detectors and reporters.  Who would have thought that two critical tasks &#8211; both potentially time consuming &#8211; could all be done by a single free application?  Note, there are also a lot of programs that generate a Google site map (which is an XML file I believe).  This was not what I did, I wanted something visual and printable, but a Google map is our next step as you can make it accessible it to a particular search engine&#8230;</p>
<p>Anyway, this was a rather cool find as (a) our boss was having people manually find broken links and (b) it produced a lot of easy tasks for the less experienced.</p>
<h3>Great Firewall of China</h3>
<p>For those not in the know, the government of China has built a <a href="http://en.wikipedia.org/wiki/Internet_censorship_in_the_People%27s_Republic_of_China">massive proxy firewall</a> and subjugates its population to its censorship.</p>
<p>One of the major themes of this year in the Berglund Center is Internet censorship, so you can imagine how this fits in.  My boss tasked me to make a program that monitors how accessible our material is from China.  To do this you use sites like <a href="http://www.greatfirewallofchina.org/">this</a> and <a href="http://www.websitepulse.com/help/testtools.china-test.html">this</a>.  So I wrote a program that actually goes to the later page automatically and literally clicks through the site and fills in forms to check each URL and then  collects the results and writes it to a little XML database.  This was really cool for me because I essentially learned how to control a web page from a C# program.</p>
<p>Back in the day I used to play stupid little text-based MMO&#8217;s that depended on clicking through pages to buy armor and weapons and programs called &#8220;auto-buyers&#8221; which literally automatically purchased items so that people couldn&#8217;t steal your money while you sleep were really powerful.  So now I could easily write one those! (although I wouldn&#8217;t know why).</p>
<p>Oh, and the final piece of the application I wrote is a PHP page that reads the XML database and outputs a simple table with the information.  The page is nothing spectacular nor is it large, but it is also the first time I ever had PHP read from XML.  Normally I use MySQL.</p>
<h3>Culturally Appropriate Materials</h3>
<p>This is the big one.  And I can&#8217;t write a whole lot about it because (a) my boss has a dream that this application becomes commercially viable and (b) I only started it today.</p>
<p>Basically we want a database driven application that prompts a user when the content about to be viewed has potentially &#8220;culturally objectionable material.&#8221;  The ideal deployment would be a search-engine or browser extension that compares search terms and the page in question to generate the message.  Because of the before-mentioned commercial aspect it must be portable (i.e. not physically connected to our site) and scalable.  I can&#8217;t go into too much details because I only started the research phase but our current idea is to write a Firefox extension that interacts with a MySQL database.</p>
<p>Because Firefox extensions are really just JavaScript programs this leads into an interesting side-effect:  I will be learning how to write <a href="http://en.wikipedia.org/wiki/Ajax_%28programming%29">AJAX</a> scripts.  Wait, did I mention I will try to write a Firefox extension?  So, evidently, there are two cool new things I will be doing in this initial phase.  Even if these strategies don&#8217;t end up working, AJAX is definitely something I want to learn how to do.  Right now I have already written a simple AJAX page and am excited to continue.</p>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2007/06/june/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Last day of May</title>
		<link>http://www2.bluhelix.com:81/2007/05/last-day-of-may/</link>
		<comments>http://www2.bluhelix.com:81/2007/05/last-day-of-may/#comments</comments>
		<pubDate>Fri, 01 Jun 2007 02:46:33 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Interest]]></category>
		<category><![CDATA[Studio Announcement]]></category>

		<guid isPermaLink="false">http://blog.bluhelix.com/?p=102</guid>
		<description><![CDATA[Rocket Lander I already released my flash game on my last post, but I thought I would start this off by going into the game a little bit more.  Rocket Lander is my final project for CS205 Multimedia Programming &#8211; well it started as my final project, I have taken it well beyond the scope [...]]]></description>
			<content:encoded><![CDATA[<h3><a href="http://unknown8063.homeip.net:88/www/entertainment/rocketlander/">Rocket Lander</a></h3>
<p>I already released my flash game on my last post, but I thought I would start this off by going into the game a little bit more.  <em>Rocket Lander</em> is my final project for CS205 Multimedia Programming &#8211; well it started as my final project, I have taken it well beyond the scope of the class with online high scores and such.</p>
<p>Rocket Lander is basically a clone of <em>Moon Lander</em>, but made to be much more sinister.  In this game you cannot just move the vehicle from side to side, but you must rely on the tilt and rotation caused by using the side thrusters.  Additionally, the rocket must land on a special landing zone randomly placed on the ground &#8211; some levels contain two, others just one.  The challenge is in the way the rocket moves and the specific way it must be landed.  Additionally, a few other evil easter eggs have been thrown in to keep things interesting.  As a reward for completing all 20 levels you may enter your name to be placed on the high score list.  Only the top 20 scores are presented in the game, for the complete list you can go to the <strong><a href="http://unknown8063.homeip.net:88/www/entertainment/rocketlander/fame.php">Rocket Lander Hall of Fame</a></strong></p>
<p>The game really began as a continuation of <em>Rocket Launcher</em>, a silly little flash game we went over in class.  Dan and I were responsible for the physics engine which I took to the next the level.  The physics engine in <em>Rocket Lander</em> has been completely rebuilt without any recognition to the original one I made for <em>Rocket Launcher</em>, but that is were the idea came from.</p>
<h3>Berglund Center</h3>
<p>For the summer I am working at the Berglund Center for Internet Studies&#8230; which happens to be in the cozy basement of the University I graduated from.  It is a fun job where I get to hang out with several of my college friends.  It is a bit unsettleing though &#8211; going to school every day just like when I actually attended it.  I guess it also serves to prevent the realization that I&#8217;m a graduate now.</p>
<p>Nonetheless today was interesting.  Those working on site today rallied up and we toured the new Berglund Center under construction in the&#8230; yes you guessed it&#8230; in the basement of the new business department building on the edge of campus.  I will probably (hopefully?) never see the building in use, but we put on some hard hats and toured the place with an engineer.  We made notes of the layout of the new office, the electrical outlets and data lines and ensured things were in order, especially in the new server closet.  After that my boss treated us for lunch yay!</p>
<h3>New computer</h3>
<p>What we have all been waiting for, right?  For several months now I have been considering upgrading to a new computer.  My desktop has served me well since I purchased it back in December of my freshmen year.  I have heard all the horrible things said about Dell, but my computers seem to last just fine&#8230; unlike Kevin currently on his fourth hard drive and slowly loosing the keys on his keyboard.  My desktop still works, mind you, but the P4 processor is scoring mighty low on the Vista rating system and I can feel it.  I am surprised in a way it is not the graphics card grinding to a halt, since for the last few years it has always been a battle to keep my graphics card up to date. I have not decided yet if I will be selling any of my older computers.  Ideally, when I move into a place of my own I can begin spreading things out and employ one of the P4 systems as a media center.</p>
<p>But about my new system.  For a week I played on DELL&#8217;s, Alienware&#8217;s, and Toshiba&#8217;s sites trying to make a new computer I wanted.  I really wanted my next system to be a notebook computer.  Moreever, I wanted it to be a capable notebook computer that could be my primary system for some time&#8230; unlike the Toshiba I bought after graduating from High School which I had to upgrade far too quickly.  I also wanted a gaming rig&#8230; easily the hardest thing to fit in my budget.  Try as I might I was not able to taylor what I wanted into my price range.  So I after much deliberation I purchased what I wanted anyway!</p>
<p>I got a sleak new XPS notebook complete with a 512MB Nvidea 7950GTX graphics card, one of the best cards I could find in a notebook.  It hasn&#8217;t arrived in the mail yet, but keep your fingers crossed everything works.</p>
<p>The decision to get an XPS was practicarly hard because DELL had an unbelievable 23% off sale on the Inspiron notebooks.  Ugg, I hated passing on that oppertunity, but I wanted an XPS <img src='http://www2.bluhelix.com:81/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Hope you&#8217;re off to a great summer!</p>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2007/05/last-day-of-may/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upcoming events&#8230;</title>
		<link>http://www2.bluhelix.com:81/2007/03/upcoming-events/</link>
		<comments>http://www2.bluhelix.com:81/2007/03/upcoming-events/#comments</comments>
		<pubDate>Fri, 16 Mar 2007 17:55:34 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Interest]]></category>
		<category><![CDATA[Observance]]></category>

		<guid isPermaLink="false">http://blog.bluhelix.com/?p=96</guid>
		<description><![CDATA[One more week and then it&#8217;s spring break.  It probably wont be that much of a break because I will be working on my CS Capstone project, but it should be nice nonetheless.  Maybe I&#8217;ll finally get to that PS2 game I purchased months ago! Senior presentations are quickly approaching, only a bit more than [...]]]></description>
			<content:encoded><![CDATA[<p>One more week and then it&#8217;s spring break.  It probably wont be <em>that much</em> of a break because I will be working on my CS Capstone project, but it should be nice nonetheless.  Maybe I&#8217;ll finally get to <em>that</em> PS2 game I purchased months ago!</p>
<p>Senior presentations are quickly approaching, only a bit more than a month away.  There will also be a practice run of my Math presentation a week after spring break, on Tuesday, April 10th.  For those of you curious for more information about my projects I&#8217;m posting my two abstracts below.</p>
<h3>Wavelets and Filters</h3>
<p>Wavelets, which are localized waves, are an exciting new alternative to Fourier series to analyze mathematical signals.  Some emerging applications of wavelets include data compression and feature extraction in sound and image processing, including the new JPEG2000 standard.  We will specifically explore the Haar Wavelet, which is a pulse of 1 and -1 over a finite range.  The Haar Wavelet is just one of many wavelets to have the important property of orthogonality and we will show how this can be used to establish a basis from a collection of wavelets.</p>
<h3>Path Finding with Computer Vision</h3>
<p>Computer vision is an exciting field in computer science with many practical applications in both civilian and military settings.  Unfortunately, images are a complicated form of data for a computer system to interpret; but with computer vision, an application can be programmed to extract the desired information.  The application I developed enables a LEGO MINDSTORMS rover to navigate a path, avoiding obstacles while moving towards a user-provided destination.  Such automated responses are important when precise movement and quick reactions are required or when human guided movement is impractical. Images are gathered from an overhead camera and sent to a computer vision system where they are analyzed with a <em>canny edge map</em> to detect possible obstacles.  The rover is then sent updated movement orders through an infrared transmitter to detour around the obstacles without human intervention.  I will discuss the design of the application, the object detection algorithms that I implemented, and provide a demonstration of the rover in action.</p>
<p>Hope to see you in April!</p>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2007/03/upcoming-events/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Current progress</title>
		<link>http://www2.bluhelix.com:81/2006/12/current-progress/</link>
		<comments>http://www2.bluhelix.com:81/2006/12/current-progress/#comments</comments>
		<pubDate>Mon, 18 Dec 2006 08:07:38 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Interest]]></category>

		<guid isPermaLink="false">http://blog.bluhelix.com/?p=82</guid>
		<description><![CDATA[Today I explored some ways into the Goron mines before shutting off for the night. So far I&#8217;m rather impressed with the level design.  Although the Forest Temple felt a lot like the forest level in Wind Waker but with the boomerang and magic leaf fused into a single item: Gale Boomerang.  Still, I liked [...]]]></description>
			<content:encoded><![CDATA[<p>Today I explored some ways into the Goron mines before shutting off for the night.</p>
<p>So far I&#8217;m rather impressed with the level design.  Although the Forest Temple felt a lot like the forest level in Wind Waker but with the boomerang and magic leaf fused into a single item: Gale Boomerang.  Still, I liked Wind Waker, and for the first level it wasn&#8217;t bad.</p>
<p>The Goron mines is impressive.  The rooms are very open, often outdoor maps, and filled with machinery.  While the puzzles aren&#8217;t really new, the combinations of puzzles are.  The iron boots bring in a style more commonly seen in a water dungeon but used in ways more complex then simply sinking to the bottom of the water (though, yes, that&#8217;s there too!).  They included magnetic stuff in the dungeon.  Like the Stone Temple in Majora&#8217;s Mask, you can walk along the ceiling of some places &#8211; but you can also walk anywhere the magnetic stuff is.  And there is some interesting interaction with the equipment in some rooms.</p>
<h3>Good things</h3>
<p>Actually, I don&#8217;t know if this is a good thing or not.  But I&#8217;ve found Midna surprisingly helpful.  She is remarkably observant of the current puzzle and has provided much needed clues on several occasions. It&#8217;s also a slap in the face when her only response is that we should hurry and find what we&#8217;re looking for.  Thanks Midna, I needed help with that!</p>
<h3>Complaints</h3>
<p>Well, it had to be said, that I have a few complaints.</p>
<p>The overflowing wallet is frustrating.  The idea certainly comes from the right place, but they should have given the player a choice of whether or not the rupee should be returned or discarded.  For example, we all moan at the screen when we find that sweet 100 rupee chest but happen to be already maxed out and wish we could save the loot for another day &#8211; but no one really cares about that 20 rupee chest, it makes more sense to throw it in the lava to avoid unnecessary backtracking.</p>
<p>Something was not right about the fight with the enemy rider on the bridge in Hyrule field.  The controls seemed to change unannounced.  Also, when charging at the enemy, control explanations would appear on the screen but disappeared too quickly to be read.  This battle confused me way more than it should have.</p>
<p>Two item slots?  To me, this feels like an unfair punishment for playing the GameCube version.  I&#8217;m pretty certain Ray had the standard three item slots on the Wii version.  So far this has not been a big deal &#8211; particularly because it is sans musical instrument.  But come on, only two slots?</p>
<h3>Other comments</h3>
<p>Heart pieces are hidden in dungeons?  Ocarina had a few pieces in the sub-dungeons, and Wind Waker had one in the Forbidden Fortress, but it&#8217;s been awhile since they appeared inside conventional dungeons.</p>
<p>The warp bird-thing is weird.  I like having it around, but it just doesn&#8217;t feel as good as the warp magic in Ocarina of Time or the magic cauldrons in Wind Waker.</p>
<p>I recall reading some hostile complaints about how slow the beginning was on the Joystiq forums.  Did I miss something?  I didn&#8217;t experience any slowdown prior to the action.  I remember the frustration being specifically pegged on the goat herding and fishing exercises.  But these were both lightening quick.  The goat herding thing is done twice, and you really can&#8217;t fail during it.  I&#8217;m thinking that some people didn&#8217;t figure out the point of the fishing quest immediately &#8211; because all I did was set up shop right in front of the cat, and caught one fish for the book, and a second for the cat.</p>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2006/12/current-progress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The gods say &#8220;NO&#8221;</title>
		<link>http://www2.bluhelix.com:81/2006/12/the-gods-say-no/</link>
		<comments>http://www2.bluhelix.com:81/2006/12/the-gods-say-no/#comments</comments>
		<pubDate>Sun, 17 Dec 2006 08:23:27 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Interest]]></category>
		<category><![CDATA[Rant]]></category>

		<guid isPermaLink="false">http://blog.bluhelix.com/?p=80</guid>
		<description><![CDATA[When the first Fred Meyers I stopped at and the one I had the clerk call were both sold out of Twilight Princess, GameCube &#8211; but the third Fred Meyers in the area had two games in stock &#8211; I thought that was the worst of it. Silly me. The gods in the Zelda universe [...]]]></description>
			<content:encoded><![CDATA[<p>When the first Fred Meyers I stopped at and the one I had the clerk call were both sold out of Twilight Princess, GameCube &#8211; but the third Fred Meyers in the area had two games in stock &#8211; I thought that was the worst of it.</p>
<p>Silly me.</p>
<p>The gods in the Zelda universe must be at war with each other, unable to decide if they want me playing the game or not.  Because tonight went something like this:</p>
<p>For probably two hours or so I was being annoying to my mom, trying to get her off of the big screen TV so that I could continue my game on the big screen.  Since regular TV programming has been terrible lately, it looked like it was finally my turn.  So I power up the console, move my character 5 steps forward, and a set of twilight pillars fall from the sky.  Still a bit shaky with the canine control scheme I dispatch the onslaught and decide to save the game (Yes, for whatever reason I really did save my game just 5 minutes after loading it).</p>
<p>Two steps forward and everything goes dark.  It&#8217;s not like I was sucked into the twilight realm or anything &#8211; since I was already there.  With the kitten biting me on my leg and my inability to see said leg came the realization that this darkness spread further than just Hyrule.</p>
<p>Great, so much for that idea.  The rest of the evening involved finding flashlights, then upgrading to candles.  Finally we tried to watch a DVD on a laptop, and when the battery of that system ran out we popped the disk out and put it in another laptop.  Ray, I want to see you try this with your VHS collection! Muhahaha.</p>
<p>Anyway, the electricity did come back on before we had to swap in a third laptop to complete the DVD movie*.  I did end up getting some time on Twilight Princess, but ultimately not as much as I had hoped.</p>
<p>* My own laptop, the &#8220;third&#8221; laptop, would not have been very useful since  the battery is on its last leg of life (~about 10 minutes of computer time at full charge and max LCD brightness, probably about 15 minutes at a reasonable LCD brightness).</p>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2006/12/the-gods-say-no/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Path Finding with Computer Vision (Presentation I)</title>
		<link>http://www2.bluhelix.com:81/2006/10/path-finding-with-computer-vision-presentation-i/</link>
		<comments>http://www2.bluhelix.com:81/2006/10/path-finding-with-computer-vision-presentation-i/#comments</comments>
		<pubDate>Fri, 06 Oct 2006 06:56:56 +0000</pubDate>
		<dc:creator>Unknown8063</dc:creator>
				<category><![CDATA[Interest]]></category>
		<category><![CDATA[Observance]]></category>

		<guid isPermaLink="false">http://blog.bluhelix.com/?p=62</guid>
		<description><![CDATA[Senior Project By Matthew Rose Strain CS Lab on October 10, 2006 at 4:30pm Computer vision is an exciting field in computer science with many practical applications in both civilian and military settings.  Join us as we explore the basic steps to give a computer the ability to interpret its own surroundings in a visual [...]]]></description>
			<content:encoded><![CDATA[<p><em>Senior Project<br />
By Matthew Rose</em></p>
<p><em>Strain CS Lab on October 10, 2006 at 4:30pm</em></p>
<p>Computer vision is an exciting field in computer science with many practical applications in both civilian and military settings.  Join us as we explore the basic steps to give a computer the ability to interpret its own surroundings in a visual way.  We will then investigate how to build an automated system to navigate a robotic vehicle through unknown terrain guided only by a camera with an overhead view of the environment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www2.bluhelix.com:81/2006/10/path-finding-with-computer-vision-presentation-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
