<?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>iohelix &#187; programming</title>
	<atom:link href="http://iohelix.net/blog/category/play/geek/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://iohelix.net/blog</link>
	<description>the blog with the best tagline ever</description>
	<lastBuildDate>Wed, 14 Dec 2011 02:30:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>36 Cube</title>
		<link>http://iohelix.net/blog/2011/01/36-cube/</link>
		<comments>http://iohelix.net/blog/2011/01/36-cube/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 22:09:24 +0000</pubDate>
		<dc:creator>benjam</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[puzzle]]></category>

		<guid isPermaLink="false">http://iohelix.net/blog/?p=2829</guid>
		<description><![CDATA[So I&#8217;ve been geeking out over a puzzle that I got for Christmas this year. The puzzle is called 36 Cube. &#160;If you have this puzzle, and haven&#8217;t solved this cube, or would like to in the future, or have any other reservations about reading spoilers, PLEASE STOP READING. This is not a hints post, [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve been geeking out over a puzzle that I got for Christmas this year. The puzzle is called <a href="http://www.thinkfun.com/36cube">36 Cube</a>. &nbsp;If you have this puzzle, and haven&#8217;t solved this cube, or would like to in the future, or have any other reservations about reading spoilers,</p>
<p><strong>PLEASE STOP READING.</strong></p>
<p>This is not a hints post, and I do not ease you into a solution slowly. This is a post about how I solved the puzzle and some interesting facts about the puzzle I found out afterwards when I began to dive deeper into the solution set. As well as the programming that went with it.</p>
<p>If you would like some proper hand-holding, please see <a href="http://daniel.hepper.net/blog/2010/01/how-to-solve-the-36-cube-puzzle/">How to solve the 36 Cube puzzle – hints &#038; solution</a> for hints (and samples of the program that got me started down my path).</p>
<p><strong>AGAIN, IF YOU DON&#8217;T WANT SPOILERS, PLEASE STOP READING!</strong><br />
<span id="more-2829"></span></p>
<p>Apparently you either don&#8217;t care, or have already solved the puzzle&#8230;</p>
<p>So when I first got this puzzle, it seemed moderately easy, contrary to the warning on the box. My brother was actually the one to take the first whack at it, and he did pretty well, getting 34 of the 36 pieces on the puzzle, but those last two were giving him issues and he was unable to solve the puzzle before he had to leave. Later that night, I took my first stab at it, and also got 34 of the 36, and after an hour or so of fiddling, and trying to brute force my way into a solution, I looked it up online. Not for a solution, but for more information on the puzzle and what kind of math was involved in solving it, so I could give it a more educated attempt. After reading the wiki page on <a href="http://en.wikipedia.org/wiki/Graeco-Latin_square">Graeco-Latin squares</a>, I noticed that Euler had conjectured that there was actually no solution to the order 6 square (of which this puzzle is).</p>
<p>This blew my mind. I could not understand how there could be a puzzle with a solution to which there was (now) mathematical proof that there was no solution. I thought either the proof was wrong (highly unlikely), the inventor had found a solution to the age old problem (also not likely), or the wiki page was wrong (more likely, but still not very). &nbsp;I then found other wiki pages relating to the puzzle where the inventor said about the order 6 problem, &#8220;It struck me as the basis for a potentially great 3-D puzzle, and what eventually became 36 Cube.&#8221; &nbsp;And this is when I became suspicious of the puzzle.</p>
<p>I remembered that when I was initially inspecting the puzzle, I had noted that some of the bases were not the same, even when the base was for the same height piece. I thought this was odd, but thought nothing more of it, chalking it up to manufacturing issues. After become suspicious, I went back to the puzzle and inspected it further. It occurred to me that there might be some chicanery going on, so I placed a few of the smaller, more innocuous-looking pieces on the board (to have a height measuring stick of sorts) and proceeded to try the height 6 pieces on all of the larger piece bases, including the height 5 bases. And lo and behold, when I placed a particular piece of height 6 on a particular base of height 5, it fit. I also tried the height 5 pieces on all of the height 6 bases, and one of them fit as well. This is the trick to the puzzle. Instead of solving the impossible, the inventor modified the puzzle to allow it to &#8220;cheat&#8221; it&#8217;s way to a solution. Once I had the first few trick pieces in place, it was simply a matter of logic to solve the rest, and I had the solution within the hour.</p>
<p>But I couldn&#8217;t stop there. I wanted to know how many actual solutions there were to the puzzle, so I sat down with a few example programs and began to pound out my own program to solve the puzzle.</p>
<p><a href="http://36cube.pastebin.com/VEAgnbkE">My Program</a> (some functions ported from script written by Daniel Hepper, who wrote the hints post above)<br />
(<a href="http://36cube.pastebin.com/qBYVWxxY">Full unedited script</a>)</p>
<p>It&#8217;s not the most elegant program around, nor does it use the most elegant algorithm, but it works, and it works fairly well. I started out by trying to solve a single color for each row [function solve_color( )], but I soon figured out that this would be difficult to make work for finding all solutions, so I abandoned it. I then wrote a function to iteratively solve each piece size in succession, finding all possible locations for that size, and then iterating further along each solution path until all the pieces were placed, or it failed for whatever reason [function solve_color_by_pieces( )]. &nbsp;If it succeeded in finding a solution, I tacked the solution array on the end, and continued down the next path. If it failed, I deleted the current solution path and continued on with the next one.</p>
<p>When I first ran the function, solving for yellow (which has one of the &#8220;trick&#8221; pieces), it gave me two solutions. Both of which I had manually proven earlier, which is a good sign for the program. I then added orange into the solution (the other &#8220;trick&#8221; piece), and it gave me one orange solution for each of the yellow solutions. The odd thing is, both of the yellow-orange solution sets have the same footprint. What this means is, I only have to continue solving for one of the two yellow-orange solutions, and they will both work. I just multiply the total number of solutions I end up with by two, and I have my grand total of solutions.</p>
<p>As I continued, I first tried solving for the whole puzzle, just to see what came out. What came out was an &#8220;out of memory&#8221; error (I told you it wasn&#8217;t the most elegant). &nbsp;Apparently my program could do with some optimizing. I increased the allowed memory to 2GB(!), and ran it again. I again got the &#8220;out of memory&#8221; error.</p>
<p>Wow.</p>
<p>Ok, looks like I need to do this with some manual intervention. So I ran it with just the red color. And it quickly spit out 8 solutions. I added those constraints to the initialization one by one, and ran it again for each, this time solving for green (the colors are arbitrary). &nbsp;It came up with 3 solutions for each of the 8 red solutions for a total of 24 solutions so far. As I was looking at the solutions, I noticed that a lot of them were the same, so I threw them in a lump and sorted them. As I was going through the sorted list, I noticed that there were 3 duplicates of each green solution, which brings my unique green solutions down to 8. I also noticed that there were similarities between the 8 red solutions and the 8 green solutions, so I threw them all in lump again, and sorted that group, and guess what&#8230; they were all the same. Each red solution was repeated in the unique green solutions. This struck me as odd when I saw it, but now that I think about it, it makes sense. They are the same solutions, they just move around each other.</p>
<p>This pattern continued with the remaining two colors (blue and purple), blue had 2 solutions for each of the 8 unique red-green solutions, but only 8 of them were unique, and they were the same 8 as the previous red and green. And purple only had one solution for each of the 8 red-green-blue solutions (which makes sense, since it&#8217;s the final color and really only has one place to go), and again, they were the same 8 patterns. But when I looked at the final 8 solutions, I noticed that they had similarities within them, so I labeled each of the 8 solutions, and put them together, and it basically ended up being 2 unique solutions, with various permutations and color switching for the others.</p>
<p>So with my final 2 solutions, multiplied by my initial 2 yellow-orange solutions, that&#8217;s a grand total of 4 solutions.</p>
<p>I don&#8217;t know why, but I assumed that a puzzle of this size would have more than just 4 unique solutions. But I guess that&#8217;s part of the game, false assumptions and trickery.</p>
<p><strong>UPDATE</strong>: After feeling like my program was incomplete due to it&#8217;s inelegance and inability to calculate a complete solution, I went back to it, and tweaked it a bit to get it to properly calculate all the valid solutions.</p>
<p>I finally got it to output all the solutions after initializing it with one of the yellow-orange solutions. It cranked for a couple of minutes, and spit out 48 solutions. I knew that these 48 solutions were just the various color switching permutations of the unique 2 solutions, but I really wanted the program to crank out those unique 4 solutions, and nothing more. So I added the bare minimum of initial parameters (the two &#8220;trick&#8221; pieces) and set it up so that after the program found each solution, I converted it to an unambiguous state and compared it with any previous solution, and if that solution had already been found, it disposed of that solution and continued on. What I got at the end after the program cranked for a couple of minutes were 4 unique solutions. This not only made me pleased with my program, but pleased with my previous manual calculations.</p>
<p>And just to clean things up, I removed all of the debugging output from the program, and guess what&#8230; the program cranked out all 4 solutions in less than a second.</p>
<p>Wow. My program went from taking over 5 minutes to throw an &#8220;out of memory&#8221; error, to calculating all 4 unique solutions in under a second. I was actually pretty shocked about that, and pleased at the same time.</p>
<p>So I give you the 4 unique solutions:</p>
<ol>
<li>B O G Y P R<br />R G Y P O B<br />G R P O B Y<br />P B O R Y G<br />O Y R B G P<br />Y P B G R O
<p></li>
<li>B Y G O P R<br />R G Y P O B<br />G R P Y B O<br />P B O R Y G<br />Y O R B G P<br />O P B G R Y
<p></li>
<li>B O P Y G R<br />P B Y R O G<br />G R B O P Y<br />R G O P Y B<br />O Y G B R P<br />Y P R G B O
<p></li>
<li>B Y P O G R<br />P B Y R O G<br />G R B Y P O<br />R G O P Y B<br />Y O G B R P<br />O P R G B Y
<p></li>
</ol>
<p>Here is my updated and optimized program:<br />
<a href="http://36cube.pastebin.com/KiJMjzTa">http://36cube.pastebin.com/KiJMjzTa</a></p>
<p>That is all, I&#8217;m happy with this program and the solutions it calculated and (probably) won&#8217;t be messing with it anymore.</p>]]></content:encoded>
			<wfw:commentRss>http://iohelix.net/blog/2011/01/36-cube/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>new browser</title>
		<link>http://iohelix.net/blog/2008/09/new-browser/</link>
		<comments>http://iohelix.net/blog/2008/09/new-browser/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 20:11:52 +0000</pubDate>
		<dc:creator>benjam</dc:creator>
				<category><![CDATA[web development]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.iohelix.net/blog/?p=409</guid>
		<description><![CDATA[being a web developer, i try to keep up with what&#8217;s going on in the browser realm of the interwebs. today saw the release of the new Google browser: Chrome.  a new browser release is nothing new, but the fact that Google has, for quite some time, been the main &#8216;internet&#8217; company, providing everything from [...]]]></description>
			<content:encoded><![CDATA[<p>being a web developer, i try to keep up with what&#8217;s going on in the browser realm of the interwebs. today saw the release of the new <a href="http://www.google.com/chrome">Google browser: Chrome</a>.  a new browser release is nothing new, but the fact that Google has, for quite some time, been the main &#8216;internet&#8217; company, providing everything from search engine and page cache, to email, web documents, and calendar, all online, makes this browser release something to look at.</p>
<p><span id="more-409"></span></p>
<p>i downloaded my copy, started it up, and was immediately impressed, and being somewhat of a Firefox fanatic, that&#8217;s saying a lot.</p>
<p>it takes no time at all to load, and after reviewing the comic that was released (by accident) a few days ago, it&#8217;s easy to see why: every page is it&#8217;s own process.  for those of you who don&#8217;t know what a &#8216;process&#8217; is, it&#8217;s basically it&#8217;s own running copy of the program.  each page is it&#8217;s own entity on the computer, so if one page crashes, you don&#8217;t have to take down the whole browser to fix it, just close that one tab.  but Google being Google, took it one step further, and made every portion of the webpage rendering it&#8217;s own process.  so basically, if you have javascript running on the page you are viewing&#8211;it&#8217;s in it&#8217;s own process; flash running? it&#8217;s it&#8217;s own process;  quicktime?  own process;  any other plugin? own process.  so if at any time, any of these pieces crashes or slows way down while working on something, it doesn&#8217;t freeze the whole system.</p>
<p>this way of doing things also makes it really easy to block malware from infecting your computer.</p>
<p>Google Chrome was basically built for the internet as it stands today, in all it&#8217;s multi-media, web 2.0, watch-your-back-for-malware goodness.</p>
<p>the only thing missing from Google Chrome is a Firefox-esque plugin architecture&#8230;</p>
<p>because in order for me to switch from Firefox, I&#8217;m gonna need to take my Web Developer toolbar and mouse gestures with me.</p>
<p>but if you spend any decent amount of time on the internet, and do most of your browsing in the more modern web 2.0 sites: give Google Chrome a try.</p>
<p>the only thing that sucks about it is that it&#8217;s yet another browser that web developers have to code workarounds for.</p>]]></content:encoded>
			<wfw:commentRss>http://iohelix.net/blog/2008/09/new-browser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>webhost issues</title>
		<link>http://iohelix.net/blog/2006/09/webhost-issues/</link>
		<comments>http://iohelix.net/blog/2006/09/webhost-issues/#comments</comments>
		<pubDate>Thu, 07 Sep 2006 04:44:18 +0000</pubDate>
		<dc:creator>benjam</dc:creator>
				<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.iohelix.com/wordpress/?p=77</guid>
		<description><![CDATA[my site went down about a week and a bit ago, so i tried to contact my hosting company and find out what was going on. I went to the website, no notices there, went to the forum which has been removed, tried to submit a service ticket which i couldn&#8217;t do due to lack [...]]]></description>
			<content:encoded><![CDATA[<p>my site went down about a week and a bit ago, so i tried to contact my hosting company and find out what was going on.<br />
I went to the website, no notices there, went to the forum which has been removed, tried to submit a service ticket which i couldn&#8217;t do due to lack of a password for the system, and finally tried to call the 800 number which was blocked from my area code. all this took about 2-3 days, all of which saw no return of my website.</p>
<p>i finally found a regular number that i called and got in touch with an actual person and found out that 16 of the servers that this company owned got hacked and had all the data erased. no backups, no data, no nothing.</p>
<p>they finally got in touch with us (4 days later) and let us know what had happened.</p>
<p>i finally got a password for the support ticket system and submitted a support ticket for my website to be reinstated.<br />
i must admit it was a very prompt reply, but the information they had given me was completely wrong, it was for another user and another site. I let them know they had messed up and they never replied. i told them again&#8230; &nbsp; nothing. i finally wrote them a nasty little note and they promptly responded in kind.</p>
<p>i finally got my corrected information and got my site uploaded, but whenever i tried ta access it it would redirect to another website totally unrelated to my own.</p>
<p>it is still having issues, but my site is back up (thanks to backups i had made a week before the attack), my mail is finally working, but there are still some small issues with the site.</p>
<p>so&#8230; &nbsp;long story short&#8230; &nbsp; don&#8217;t host your site through webhostplus. their service sucks.</p>]]></content:encoded>
			<wfw:commentRss>http://iohelix.net/blog/2006/09/webhost-issues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>damn my a.d.d.</title>
		<link>http://iohelix.net/blog/2006/08/damn-my-add/</link>
		<comments>http://iohelix.net/blog/2006/08/damn-my-add/#comments</comments>
		<pubDate>Fri, 18 Aug 2006 20:57:19 +0000</pubDate>
		<dc:creator>benjam</dc:creator>
				<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.iohelix.com/wordpress/?p=76</guid>
		<description><![CDATA[so i&#8217;m trying to make a php game (commanders) from scratch and it&#8217;s not going quite as fast or as easy as i&#8217;d hoped. there are a lot of little things that you have to plan for when coding an application from scratch, no matter what it is, that will bite you in the ass. [...]]]></description>
			<content:encoded><![CDATA[<p>so i&#8217;m trying to make a php game (commanders) from scratch and it&#8217;s not going quite as fast or as easy as i&#8217;d hoped. there are a lot of little things that you have to plan for when coding an application from scratch, no matter what it is, that will bite you in the ass.</p>
<p>when i first got the idea for this game, i thought &#8220;i&#8217;ll get the game part of the script working and the rest will be easy&#8221;. &nbsp;nope. first off, i have to get the game part working&#8230; &nbsp;it&#8217;s not. not quite. secondly, i get distracted by other things <em>WAY</em> too easily. and thirdly, i really have no idea where i&#8217;m trying to take this.</p>
<p>i started off with an overly simplistic plan. not on purpose, but because i have no experience coding anything from scratch, after writing a preliminary few hundred lines of code, and trying to test that code, i began to realize that my storage methods (both within the database, and during code execution) were grossly underestimated. it took an almost complete rewrite of the existing methods and all the code that goes with it to get to a point where the game will actually progress the way that i want it to.</p>
<p>but now that i&#8217;ve got the game almost working, there are other issues that are creeping in that i wasn&#8217;t ready for. for instance, the game that i am creating is actually a port from a real life board game (Power). &nbsp;the trouble with this is that issues that are trivially easy for a person to deal with are intricately difficult for a computer to deal with. i&#8217;ll spare you the details, sufice to say that my code is becoming much longer than i had planned. porting form a real board game also has the added benefit of having the rules already written, or at least most of them, but the ones that aren&#8217;t written are the ones giving me the troubles. what should i do if this situation happens? &nbsp;what about this other situation?</p>
<p>another issue i have to deal with is myself. when i get in one of those moods, as i&#8217;m sure most of you have, where the juices just aren&#8217;t flowing, we&#8217;ll call it &#8220;coders block&#8221;, i turn to other items that may not be necessary to the project. i&#8217;ve also started another (albeit much smaller, simpler) game (battleship) from scratch which is progressing much faster and therefore holds my interest better. this is bad. even though the new project is nearing completion, i know that i am the type of person who will never think of anything as &#8220;completed&#8221;.</p>
<p>and on top of all this i am still working on webchess 2.0 (which finally had a beta release not too long ago).</p>
<p>so i now have three projects i&#8217;m actively working on, my job, and a freaking network+ test to take on monday.</p>
<p>and i have to spend more time with my wife, who is probably feeling pretty left out at the moment.</p>
<p>so here&#8217;s my time division:</p>
<ul>
<li>my job (30%)</li>
<li>my projects (30%)</li>
<li>eating and sleeping (30%)</li>
<li>studying (10%)</li>
<li>my wife (110%)</li>
</ul>
<p>if it weren&#8217;t for my a.d.d., i&#8217;d think i have a real problem.</p>
<p>(note: i&#8217;m not officially diagnosed with a.d.d., but most everybody i know would love some ritalin)</p>]]></content:encoded>
			<wfw:commentRss>http://iohelix.net/blog/2006/08/damn-my-add/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP scripts and games</title>
		<link>http://iohelix.net/blog/2006/06/php-scripts-and-games/</link>
		<comments>http://iohelix.net/blog/2006/06/php-scripts-and-games/#comments</comments>
		<pubDate>Mon, 19 Jun 2006 17:52:59 +0000</pubDate>
		<dc:creator>benjam</dc:creator>
				<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.iohelix.com/wordpress/?p=75</guid>
		<description><![CDATA[So I&#8217;ve been adding a few RPGs and other games to the site and have had to edit those scripts quite a lot more than I should have to to get them to work on my site. Don&#8217;t get me wrong (especially if you happen to be a creator of one of those scripts), I [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve been adding a few <acronym title="Role Playing Game">RPG</acronym>s and other games to the site and have had to edit those scripts quite a lot more than I should have to to get them to work on my site. Don&#8217;t get me wrong (especially if you happen to be a creator of one of those scripts), I love the games, and they have MANY good features in them, but it amazes me how much people code to their own setup. One example (and the most annoying because it breaks the script immediately), is the use of <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> short tags ( <code>&lt;?</code> ). These little things are the bane of my existance.</p>
<p>There are four ways that you can let the server know that you are about to use <acronym title="Pre-Hypertext Processing">PHP</acronym>.</p>
<ul>
<li><acronym title="Pre-Hypertext Processing">PHP</acronym> Long tags ( <code>&lt;?php ...code... ?&gt;</code> )</li>
<li><acronym title="Pre-Hypertext Processing">PHP</acronym> Short tags ( <code>&lt;? ...code... ?&gt;</code> )</li>
<li><acronym title="Active Server Pages">ASP</acronym> style tags ( <code>&lt;% ...code... %&gt;</code> )</li>
<li>Script tags ( <code>&lt;script language="text/php"&gt; ...code... &lt;/script&gt;</code> )</li>
</ul>
<p>Lucky for me, I&#8217;ve never seen the <acronym title="Active Server Pages">ASP</acronym> tags, and have only rarely seen the Script tag, but the short tags are almost as popular as the long tags. Especially when using the shorthand notation for the echo command ( <code>&lt;?=</code> ).</p>
<p>My server at home is set up to be very strict in it&#8217;s handling of tags, it only allows the <acronym title="Pre-Hypertext Processing">PHP</acronym> long tags, and for good reason. When using a <acronym title="Pre-Hypertext Processing">PHP</acronym> script with <acronym title="eXtesible Markup Language">XML</acronym>, the <acronym title="eXtensible Markup Language">XML</acronym> tag ( <code>&lt;?xml</code> ) confuses the <acronym title="Pre-Hypertext Processing">PHP</acronym> parser into thinking it&#8217;s a <acronym title="Pre-Hypertext Processing">PHP</acronym> short tag with the unknown entity &#8216;xml&#8217; following it.</p>
<p>Another thing I see people use often, is Registered Globals. These are extremely handy at saving yourself some keystrokes, but that&#8217;s about the only thing they are good for. Registered Globals take variables from a SuperGlobal and place it in the normal variable scope. An example would be an <acronym title="HyperText Markup Language">HTML</acronym> form with a field called &#8216;name&#8217;. &nbsp;When you send this form, a variable in <acronym title="Pre-Hypertext Processing">PHP</acronym> called either _POST or _GET is created based on which method is used to send the data. To get at the data the user sent, one must call <code>$_POST['name']</code>. &nbsp;If Registered Globals is turned on, all one needs to do is call the variable <code>$name</code> and there ya go. This practice is not very safe and causes more headaches then they save in keystrokes.</p>
<p>All of these issues, plus some more obscure ones, are why people should not code to their own particular setup, but should code with certain standards that are applicable everywhere.</p>
<ul>
<li><acronym title="Pre-Hypertext Processing">PHP</acronym> Long tags are ALWAYS accepted by the server.</li>
<li>The _POST and _GET variables are ALWAYS available to the script.</li>
<li>The HTTP_XXXXX_VARS are NOT always available, as of PHP5 they can be disabled.</li>
<li>Even the _ENV and _SERVER vars are not always enabled.</li>
</ul>
<p>So when you go out to write your first bit of code, or even continue work on a project you&#8217;ve been working on for years, think of the other people who may be using your script who may not have the same setup as you, and they may not have access to their php.ini file to change those settings. And don&#8217;t try to skirt your way around it by running the ini_set function either. That&#8217;s almost like putting a virus on someone else&#8217;s computer. Just don&#8217;t do it.</p>]]></content:encoded>
			<wfw:commentRss>http://iohelix.net/blog/2006/06/php-scripts-and-games/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>new job and web standards</title>
		<link>http://iohelix.net/blog/2005/09/new-job/</link>
		<comments>http://iohelix.net/blog/2005/09/new-job/#comments</comments>
		<pubDate>Sun, 11 Sep 2005 03:52:21 +0000</pubDate>
		<dc:creator>benjam</dc:creator>
				<category><![CDATA[web development]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.iohelix.com/wordpress/?p=73</guid>
		<description><![CDATA[so i got a new job working for a local independent graphic designer / printer and its pretty nice. i get to work when i want, at my own pace, from home, doing what i love, and get paid for it. the only thing about it that really sucks is that i&#8217;m doing web design [...]]]></description>
			<content:encoded><![CDATA[<p>so i got a new job working for a local independent graphic designer / printer and its pretty nice. i get to work when i want, at my own pace, from home, doing what i love, and get paid for it. the only thing about it that really sucks is that i&#8217;m doing web design and as any semi-serious web designer that works for clients will tell you, coding for cross-browser compatibility SUCKS !!</p>
<p>i mean, why can&#8217;t all the browsers stop the damn browser wars and come to an agreement on what will and will not be supported? &nbsp;it seems that the <acronym title="World Wide Web Consortium"><a href="http://www.w3c.org">w3c</a></acronym> has been doing a good job with stating what should be standard and what should not be standard, and most browsers do a pretty god job following those standards.</p>
<p>except one. microsoft&#8217;s internet explorer, the number one used browser on the planet. it works the way it wants to work, and getting your site to look the way you want it to in internet explorer is like trying to teach a four year old how to fly a plane. they may get some things right, but most of the time, they budge things up so bad, you have no idea what they are trying to do. and then all of a sudden, they don&#8217;t want to do anything anymore. it is the most annoying thing on the planet, because fixing one thing breaks another and when you get it all looking good in internet explorer and then go back and open up the same page in firefox (my personal favorite and most likely the favorite browser of any self-respecting web designer / aficionado) it looks totally whacked and nothing is where it is supposed to be.</p>
<p>and that&#8217;s not even considering the dinosaurs out there, who just absolutely have to have thier netscape communicator 4.75, which has almost no current standards support and what it does support (obsolete and completely annoying things like &#8216;blink&#8217;) it supports badly or is no longer a web standard.</p>
<p>but that&#8217;s okay, i figure anybody using web browsers older than the wheel are probably used to things looking all messed up, or they are too computer illiterate to care.</p>
<p>i eagerly await the release of internet explorer 7 (which has taken several years, because microsoft, in all thier wisdom, thought, &#8220;we have the monopoly on web browsers, why fuck with it?&#8221;. that is, until firefox started taking thier precious users and microsoft just HAS to have the monopoly) because that will mean (hopefully) that interent explorer will finally have decent web standards and png support and i won&#8217;t have to keep writing several versions of the same page just to get it to look right everywhere. (but hopefully it will still be subject to the same <acronym title="Cascading Style Sheets">css</acronym> hacks, so in case it does mess something up, i wont have to rewrite everything to fix it.)</p>
<p>now all we need is to kill off the dinosaurs and we&#8217;ll be all set.</p>]]></content:encoded>
			<wfw:commentRss>http://iohelix.net/blog/2005/09/new-job/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>moonshine skin finished</title>
		<link>http://iohelix.net/blog/2005/02/moonshine-skin-finished/</link>
		<comments>http://iohelix.net/blog/2005/02/moonshine-skin-finished/#comments</comments>
		<pubDate>Sun, 27 Feb 2005 20:47:24 +0000</pubDate>
		<dc:creator>benjam</dc:creator>
				<category><![CDATA[internet]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.iohelix.com/wordpress/?p=57</guid>
		<description><![CDATA[now you have no excuses for not using my skin on your desktop. the skin has a clock with the background of the clock being the current phase of the moon. the skin works on both light and dark backgrounds, and is super easy (no editing required) to install. so there ya go, no excuses. [...]]]></description>
			<content:encoded><![CDATA[<p>now you have no excuses for not using my skin on your desktop.</p>
<p>the skin has a clock with the background of the clock being the current phase of the moon. the skin works on both light and dark backgrounds, and is super easy (no editing required) to install. so there ya go, no excuses.</p>
<p>you can still download rainmeter from rainy&#8217;s site: <a href="http://www.ipi.fi/~rainy/legacy.html">download</a><br />
and you can get my new skin from here: <a href="http://www.iohelix.net/moon/MoonShine.zip">download</a></p>
<p><del datetime="2008-08-08T06:34:29+00:00">here is a preview image of the clock</del></p>]]></content:encoded>
			<wfw:commentRss>http://iohelix.net/blog/2005/02/moonshine-skin-finished/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>moonlite skin images</title>
		<link>http://iohelix.net/blog/2005/02/moonlite-skin-images/</link>
		<comments>http://iohelix.net/blog/2005/02/moonlite-skin-images/#comments</comments>
		<pubDate>Fri, 18 Feb 2005 18:12:32 +0000</pubDate>
		<dc:creator>benjam</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.iohelix.com/wordpress/?p=55</guid>
		<description><![CDATA[i recieved an e-mail from jer, who downloaded my moonlite skin, and he had updated the images to work on both light and dark backgrounds as well as increase the size and add a nice gloss over the front and a shadow. when i first saw it it blew me away. it looks so good. [...]]]></description>
			<content:encoded><![CDATA[<p>i recieved an e-mail from jer, who downloaded my moonlite skin, and he had updated the images to work on both light and dark backgrounds as well as increase the size and add a nice gloss over the front and a shadow.</p>
<p>when i first saw it it blew me away. it looks so good. it will be added to the zip file as soon as i get a chance, but it will be worth it.</p>
<p>i&#8217;ll keep you posted here.</p>
<p><del datetime="2008-08-08T06:37:03+00:00">sample image:</del></p>]]></content:encoded>
			<wfw:commentRss>http://iohelix.net/blog/2005/02/moonlite-skin-images/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>election day aggravation</title>
		<link>http://iohelix.net/blog/2004/11/election-day-aggrivation/</link>
		<comments>http://iohelix.net/blog/2004/11/election-day-aggrivation/#comments</comments>
		<pubDate>Thu, 04 Nov 2004 05:12:08 +0000</pubDate>
		<dc:creator>benjam</dc:creator>
				<category><![CDATA[iohelix]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.iohelix.com/wordpress/?p=41</guid>
		<description><![CDATA[well&#8230; &#160; it&#8217;s official&#8230; &#160;Utah politics sucks my ass. I can&#8217;t believe that that many people are willing to throw away the rights of other people based on the sole fact that thier (the other people) way of life makes them (the stupid ones) uncomfortable. election day was yesterday and on the ballot was a [...]]]></description>
			<content:encoded><![CDATA[<p>well&#8230; &nbsp; it&#8217;s official&#8230; &nbsp;Utah politics sucks my ass. I can&#8217;t believe that that many people are willing to throw away the rights of other people based on the sole fact that thier (the other people) way of life makes them (the stupid ones) uncomfortable.</p>
<p>election day was yesterday and on the ballot was a constitutional amendment (#3) that changed the definition of marraige to being the union of a man and a woman. it also took away the rights of any other such union. here is the actual text of that ammendment:</p>
<p>(1) Marriage consists only of the legal union between a man and a woman.<br />
(2) No other domestic union, however denominated, may be recognized as a marriage or given the same or substantially equivalent legal effect.</p>
<p>now, the first part in itself is severly fucked up. why? &nbsp;because. who are we to say that two people who aren&#8217;t a man and woman can&#8217;t get married? &nbsp;why does it make you so uncomfortable? &nbsp;and why do you think that by taking away thier rights it&#8217;s going to make you feel better about yourself? &nbsp;i mean, while we&#8217;re at it, why don&#8217;t we take away women&#8217;s rights, and the rights of blacks, too? &nbsp;what makes a gay marraige so threataning? &nbsp;is it the fact that some book says it&#8217;s a sin and therefore it must be true? &nbsp;or is it something to do with the safety of children? &nbsp;because lord knows that gay people can&#8217;t love a child the way straight people can *end sarcasm*.<br />
the second part of this little two line atrosity is even worse. look at it closely. it takes away the rights of common law marraiges, for ALL PEOPLE, not just same sex couples, who now, by law, can&#8217;t get married, visit each other in the hospital, make desicions in times of emergency, and determine what is best for the person with whom they&#8217;ve shared their whole life and love with because a single sentence that just got added to the utah constitution says so. how fucked up is that?<br />
and don&#8217;t even get me started on the damn presidential election. i mean, if i hear one more person say they hate bush, AND THEN NOT VOTE FOR KERRY?!! &nbsp;wtf? &nbsp;i hear it all over the place&#8230; that bush is stupid and bush is lame, and bush sucks at this and bush sucks at that&#8230; &nbsp;blah blah blah&#8230; &nbsp;well, you just had your chance to fix it and what did you do? &nbsp;sat on your ass and moaned about it. i voted. but only two of the things i voted for passed because the rest of the people in this closed-minded, bigoted state can&#8217;t see past thier own narrow feelings.</p>
<p>*end venting*</p>
<p>sorry about that, i&#8217;m just so frustrated, and it&#8217;s not just utah, like 12 states passed similar amendments. i mean, seriously.</p>
<p>&#8211; insert huge topic change here &#8211;</p>
<p>so&#8230; &nbsp;i got engaged a little while ago, kinda excited, kinda nervous, kinda swamped with school, work, and now planning for a wedding (ok, not really &#8216;planning&#8217;, but saying &#8216;okay, sure&#8217; to ideas my fiance throws out). &nbsp;it&#8217;s not like i&#8217;m super stressed right now, but there are times when i&#8217;m not quite sure where to start and it gets to me a little bit.</p>
<p>also just got back from disneyland where my niece had her fourth birthday, got to hang out with my sister, and my niece for a day while at California Adventure, which is way cool. Tower of Terror is awesome, i recommend it to anybody, except for you wussies out there.</p>
<p>i&#8217;m also working on the new corporate intranet and public site for <acronym title="Energy &amp; Geoscience Institute">EGI</acronym>, which is pretty dang huge for a guy who only designs websites as a hobby. the site uses <a href="http://www.macromedia.com/software/coldfusion/">ColdFusion</a>, which is a server side script not unlike <acronym title="PHP: Hypertext Preproccessor formerly Personal Home Page">php</acronym> and perl. although it does have its pros and cons. pro is its simplicity, theres no distinguising between the code and the <acronym title="HyperText Markup Language">html</acronym> while coding, the code merely consists of specific <acronym title="HyperText Markup Language">html</acronym> &#8216;tags&#8217; (for instance &lt;cfif&gt; &lt;/cfif&gt;), but because of it&#8217;s simplicity, it&#8217;s also a little harder to do complex things without a superfluous amount of code.</p>
<p>i also designed a site for a friend of mine (soon to be brother-in-law through two marriages) at <a href="http://www.photmillard.com">www.photmillard.com</a>. &nbsp;i really like the way the site turned out for him, i&#8217;m actually quite proud of it. it&#8217;s simple, but the backend is custom coded in <acronym title="PHP: Hypertext Preproccessor formerly Personal Home Page">php</acronym> to select a different random picture from each of the various photo albums and display it as a rollover on the main page every time it is refreshed. i also re-skinned the photo album that he uses (the same php script as mine), and created all new graphics, edited <acronym title="Cascading Style Sheets">css</acronym>, and code.</p>
<p>anywho&#8230; &nbsp; it&#8217;s been a while, sorry to keep everybody in the dark about what&#8217;s going on, but i been busy.<br />
<acronym title="Peace Love Unity Respect">plur</acronym>, lates</p>
<p>p.s.- you may also notice (if you frequent my blog) that the look (and script) has changed, i was forced to do this by some weinie that kept comment spamming my blog. why do people feel they have to be dickheads? &nbsp;what happened to respect?</p>]]></content:encoded>
			<wfw:commentRss>http://iohelix.net/blog/2004/11/election-day-aggrivation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>feel goods</title>
		<link>http://iohelix.net/blog/2003/09/feel-goods/</link>
		<comments>http://iohelix.net/blog/2003/09/feel-goods/#comments</comments>
		<pubDate>Fri, 12 Sep 2003 23:38:52 +0000</pubDate>
		<dc:creator>benjam</dc:creator>
				<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.iohelix.com/wordpress/?p=20</guid>
		<description><![CDATA[i don&#8217;t know why, but i am so excited today&#8230; &#160;it could be the airsoft game we&#8217;re playing tomorrow, or the party tomorrow night, or the sense of achievement i have at moddin the crap out of my board today&#8230; &#160;i dunno, but it&#8217;s there. i kinda like moddin my board, it&#8217;s fun, except when [...]]]></description>
			<content:encoded><![CDATA[<p>i don&#8217;t know why, but i am so excited today&#8230; &nbsp;it could be the airsoft game we&#8217;re playing tomorrow, or the party tomorrow night, or the sense of achievement i have at moddin the crap out of my board today&#8230; &nbsp;i dunno, but it&#8217;s there.</p>
<p>i kinda like moddin my board, it&#8217;s fun, except when it doesn&#8217;t work. then it sucks, but today&#8230; it worked, so it&#8217;s good.</p>
<p>have a great day! &nbsp;mine&#8217;s goin pretty dang good.</p>
<p>plur, peace-love-unity-respect (<a href="http://www.plur.com">www.plur.com</a>)</p>]]></content:encoded>
			<wfw:commentRss>http://iohelix.net/blog/2003/09/feel-goods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

