<?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>The JFX</title>
	<atom:link href="http://www.thejfx.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thejfx.net</link>
	<description></description>
	<lastBuildDate>Sat, 02 Jul 2011 03:38:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Your Move, Future Me</title>
		<link>http://www.thejfx.net/2011/06/16/your-move-future-me/</link>
		<comments>http://www.thejfx.net/2011/06/16/your-move-future-me/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 04:42:58 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[chess]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[computer science]]></category>
		<category><![CDATA[data structures]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[high school]]></category>
		<category><![CDATA[norton]]></category>
		<category><![CDATA[object oriented]]></category>
		<category><![CDATA[polymorphism]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[programs]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[virus]]></category>

		<guid isPermaLink="false">http://www.thejfx.net/?p=24</guid>
		<description><![CDATA[I was going through some ancient folders on my computer, the kind of folder that gets backed up, copied, moved, nested into other folders, and eventually forgotten. The virtual attic, I suppose. Anyway, I found some old projects of mine. &#8230; <a href="http://www.thejfx.net/2011/06/16/your-move-future-me/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was going through some ancient folders on my computer, the kind of folder that gets backed up, copied, moved, nested into other folders, and eventually forgotten. The virtual attic, I suppose. Anyway, I found some old projects of mine.</p>
<p>One project I was particularly fond of was an application I wrote back in 2003 in my Junior year in High School. We were supposed to write a game for my CS class. Naturally, I picked something simple and straight forward: Chess. Despite my best efforts, I never actually implemented an AI. It&#8217;s basically the Chess &#8220;engine&#8221;, the game mechanics are all there for a two player game. You enter the moves in a &#8220;from-to&#8221; format, as in &#8220;a2-a4&#8243;, not the normal chess notation like you might expect. This was simpler. You played back and forth until checkmate. Yep, it actually looked for check and checkmate. Most simple school-project-style Chess games played until you captured the king. And at that point, you could keep going. The pawns could have an epic battle of pawnhood until only two bishops were left to dance around each other. Not mine! Mine was awesome!</p>
<div id="attachment_26" class="wp-caption alignnone" style="width: 687px"><a href="http://www.thejfx.net/wp-content/uploads/2011/06/chess.jpg" rel="lightbox[24]"><img class="size-full wp-image-26" title="Chess" src="http://www.thejfx.net/wp-content/uploads/2011/06/chess.jpg" alt="" width="677" height="342" /></a><p class="wp-caption-text">Isn&#39;t it pretty?</p></div>
<p>Looking through the old code is both exciting and horrifying. Some of the design choices, code formatting, and algorithms are making me cringe. There are so many magic numbers and strings floating around in the code! What does a &#8220;2&#8243; mean in this context? I have no idea! I am constantly harping on my coworkers about the importance of defining constants, and now I feel like yelling at myself. I just did, actually. I&#8217;m also repeatedly calling the same routines over and over again. I found this gem buried in the Piece::move() function. SimulateCheck copies the Board, moves the piece and verifies the move is valid, returning one of three(?) values. Theres no need to call it twice here! Also, again, what the hell does the &#8220;2&#8243; and &#8220;1&#8243; mean?</p>
<pre>if(brd.SimulateCheck(moveFrom,moveTo) == 2)
{
  apstring temp("illegal move, code 1");
  //cw(temp, Position(42,0));
}else {
  if(brd.SimulateCheck(moveFrom, moveTo) == 1)
  {
    apstring temp("CHECK!");
    cw (temp, Position(45, 3));
  }</pre>
<p>I also apparently missed the point of Object-Oriented programming and Polymorphism. I went out of my way to define separate classes for each piece: King, Queen, Bishop, Knight, Rook, and Pawn. I also defined a Piece class, but didn&#8217;t exactly inherit from it. Each piece did define its own list of possible moves, which served as a good utility, but I still had one monolithic move() function that had a bunch of if/else for each piece type, and duplicated most of the code inside each block.</p>
<p>The checkmate routine was a lot of fun to write. I&#8217;m actually still pretty happy about it, but I would definitely do it differently today. My approach involved a lot of needless pseudo-recursion and board copies. It basically looked at every piece of the side that was in check to see whether it could move into a space that would block the check. It then needed to verify that new board layout to see if that move caused another check.</p>
<p>I also ran into some newbie build/dependency problems with it being so heavily Object-Oriented. The Board class depends on Game, Display depends on Board, Game depends on Board, etc and so forth. Explaining it now makes me feel stupid, because it would be trivial to organize the code for me now. At the time, my brilliant solution was dump everything into a single source file titled &#8220;IHATECHESS.cpp&#8221; which neatly eliminated all of the dependency problems.</p>
<p>I have a strong urge to re-write it, but if I&#8217;m going to do that I might as well pick a newer platform. Not that there&#8217;s anything wrong with it running inside a Windows command shell. OK, well, the first problem with it is that apparently Norton decided that it was a virus when I tried to run it. I assure you that it is not. I suppose that wasn&#8217;t the pat on the back I was looking for when going down my programming memory lane. Was it really so horrible that Norton&#8217;s only reaction is &#8220;Holy shit! I have no clue what the hell this is trying to do, but it must be bad!&#8221; Apparently. Once I white-listed it, it ran just fine.</p>
<p>I&#8217;ve included the source below for others to gaze upon in morbid curiosity, as well as the working executable if you dare to try it out.</p>
<p><a title="Download" href="http://www.thejfx.net/wp-content/uploads/2011/06/Chess2.zip">Download!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thejfx.net/2011/06/16/your-move-future-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where is Facebook Calendar?</title>
		<link>http://www.thejfx.net/2011/05/27/where-is-facebook-calendar/</link>
		<comments>http://www.thejfx.net/2011/05/27/where-is-facebook-calendar/#comments</comments>
		<pubDate>Fri, 27 May 2011 05:17:56 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[calendar]]></category>
		<category><![CDATA[computer science]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[outlook]]></category>
		<category><![CDATA[scheduling]]></category>

		<guid isPermaLink="false">http://www.thejfx.net/?p=17</guid>
		<description><![CDATA[One thing that struck me recently is that Facebook has no dedicated Calendar app. It seems like it would be a perfect addition to such a ubiquitous social platform. Many parts of Facebook already have a pseudo calendar in the &#8230; <a href="http://www.thejfx.net/2011/05/27/where-is-facebook-calendar/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One thing that struck me recently is that Facebook has no dedicated Calendar app. It seems like it would be a perfect addition to such a ubiquitous social platform. Many parts of Facebook already have a pseudo calendar in the back-end. Events are heavily calendar based, but you never see the macro side of it. Each Event is its own island in the world of dates. Birthdays are prominent on the site. Groups and Pages can have their own events, which is kind of like separate/categorized Calendars. The only missing part is the centralized calendar portal to access and manage all of your events.</p>
<p>When you think about what a modern calendar is most useful for, it is for planning events. That is the bottom line. I get the impression that most people never consider having a publicly facing calendar. Their calendar is hanging on their wall, or stored in their phone, on their computer&#8230; but only accessible to them. It&#8217;s nothing more than a fancy looking notebook for dates. You schedule dentist appointments and major events for future dates, but its just a reminder for you. Only you need to know these things, nobody else, right? Maybe, but there is so much more you can do with calendars.</p>
<p>Anyone who has ever worked in an office environment that leveraged tools like Microsoft Exchange, Lotus, or Google Apps has probably seen the usefulness of a social calendar: Scheduling meetings. Instead of sending out a meeting invite by guessing a time and hoping it works for everyone, you can see everyone else&#8217;s calendar and reasonably guess that everyone will be free at that time. It isn&#8217;t perfect, but its a lot better than rescheduling a dozen times trying to find something that works for everyone.</p>
<p>The same is true outside of the office. How many times have you tried to plan a party, road trip, cookout, or a simple get together with friends only to change dates over and over before everyone can come. And then nobody shows up because there was that thing with their cousin that they forgot about. Or you send out a Facebook Event request to a bunch of friends, only to have them decline because they already have plans. If Facebook had a calendar built into it, it would solve so many of these problems.</p>
<p>The reason most people never take advantage of social calendar systems for personal use is because there is no good consumer calendar to use. Google Calendar is the closest, but there&#8217;s no incentive to use Google Calendar if you don&#8217;t already use other Google services. And lets be honest, for most people it doesn&#8217;t matter which email provider they use; Its just an email address, and they can all email each other. Google has no social platform to draw users to the platform. Facebook is different. If you&#8217;re on Facebook, chances are most (or all) of your friends are on Facebook too&#8230; thats why you use it, right? People check it like an addiction. Its on your phone, always open in a browser. If there was a calendar there, it would instantly become the most convenient calendar to use. That alone is the incentive to use it. Once people start using it, the rest is easy. Planning events would be a breeze; Add who you want to invite, and instantly see when they are free.</p>
<p>Facebooks privacy controls would be perfect here too. They&#8217;ve built up a really strong system of control for privacy settings over the past few years. Clearly you&#8217;d want to default your calendar to either completely private, or just &#8220;busy/free&#8221; mode where someone can see <em>when</em> you are busy but not <em>what</em> you are doing. But you could do so much more, tag calendar events to specific friend groups, pages, categories. Adjust the privacy for individual events. Maybe you&#8217;d want to let your roommates see all the events you have planned hosted in your apartment, but keep your calendar completely hidden from your parents. (love you mom and dad!)</p>
<p>I started this post simply because I love calendaring systems and it bugs me that there isn&#8217;t a good solution for everyone to use. I know why, though. It&#8217;s hard. <a href="http://algeri-wong.com/yishan/great-unsolved-problems-in-computer-science.html">Very hard</a>. Even harder to do correctly. I can&#8217;t say I haven&#8217;t considered trying to write my own calendar system, but have you ever sat down to start planning something like that? Oh my god is it complicated. I wouldn&#8217;t be surprised if Facebook is working on this as one of their super secret projects, but I really wish it comes soon. It would be very useful to have.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thejfx.net/2011/05/27/where-is-facebook-calendar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sorry, a book store is not a store for books</title>
		<link>http://www.thejfx.net/2011/05/23/sorry-a-book-store-is-not-a-store-for-books/</link>
		<comments>http://www.thejfx.net/2011/05/23/sorry-a-book-store-is-not-a-store-for-books/#comments</comments>
		<pubDate>Mon, 23 May 2011 15:58:43 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[appstore]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[stevejobs]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[trademarks]]></category>

		<guid isPermaLink="false">http://www.thejfx.net/?p=15</guid>
		<description><![CDATA[I&#8217;m not sure why this is even still up for debate. Apple is still trying to claim that the phrase &#8220;App Store&#8221; is not generic, and can only have one possible common meaning: Apple&#8217;s iTunes App Store. &#8220;Apple denies that, &#8230; <a href="http://www.thejfx.net/2011/05/23/sorry-a-book-store-is-not-a-store-for-books/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not sure why this is even still up for debate. <a href="http://www.pcmag.com/article2/0,2817,2385657,00.asp" target="_blank">Apple is still trying</a> to claim that the phrase &#8220;App Store&#8221; is not generic, and can only have one possible common meaning: Apple&#8217;s iTunes App Store.</p>
<blockquote><p>&#8220;Apple denies that, based on their common meaning, the words &#8216;app store&#8217; together denote a store for apps&#8221;</p></blockquote>
<p>I understand their argument, and in any other context they would be correct. If they were selling Widgets, and called it the &#8220;Hippopotamus Bonanza&#8221;, they&#8217;d have a rock solid argument. Neither &#8220;hippopotamus&#8221; nor &#8220;bonanza&#8221; has any generic meaning within the context of their store for Widgets. You put them together, and the phrase &#8220;hippopotamus bonanza&#8221; has nothing to do with actually selling widgets. Anyone uttering the phrase &#8220;Hippopotamus Bonanza!&#8221; could only possibly mean one thing.</p>
<p>However, &#8220;App Store&#8221; is different. &#8220;app&#8221; is an App. It&#8217;s 2011, and the term &#8220;App&#8221; has been in common usage to refer to computer applications for decades. I don&#8217;t think anyone debates the common meaning of the word &#8220;store&#8221;. If you put them together, the phrase &#8220;App Store&#8221; can only mean &#8220;A store for Apps&#8221;. Apple would have you believe that it can only mean &#8220;<em>Apple&#8217;s </em>store for Apps&#8221;, which was true 4 years ago, but only because they had the first store and there was no competition. But it isnt 4 years ago, and there are now many app stores. Sure, the others may be branded specific names (Android&#8217;s App Marketplace, BlackBerry&#8217;s App World), but they are still App Stores in the same way that Borders and Barnes &amp; Nobles are Book Stores. Really, Apple should have seen this coming. The first person to open a book store probably was smart enough to assume that more book stores would follow, so using a name other than &#8220;Book Store&#8221; to avoid future confusion is a good idea.</p>
<p>Even Steven Jobs can&#8217;t keep this straight. In Apple&#8217;s <a href="http://www.macworld.com/article/154980/2010/10/jobs_transcript.html" target="_blank">quarterly earnings call to investors</a> last fall, he had a few interesting quotes:</p>
<blockquote><p>&#8220;Eric Schmidt reiterated that they are activating 200,000 Android devices per day, and have around 90,000 <strong>apps </strong>in their <strong>app store</strong>&#8221;</p>
<p>&#8220;Amazon, Verizon, and Vodafone have all announced that they are creating their own <strong>app stores</strong> for Android. So there will be at least four <strong>app stores</strong> on Android&#8230;&#8221;</p></blockquote>
<p>That pretty much sums up the entire argument. Apple is trying to protect a trademarked phrase that is the only generic way to describe this category of things. Ask anyone to describe what Apple&#8217;s App Store, Android&#8217;s App Marketplace, and BlackBerry&#8217;s App World are in one phrase, and they will call them all &#8220;app stores&#8221;. There is no other word to describe them. &#8220;App Store&#8221; is a generic term.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thejfx.net/2011/05/23/sorry-a-book-store-is-not-a-store-for-books/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Camel Thorn Trees, Namibia</title>
		<link>http://www.thejfx.net/2011/05/20/camel-thorn-trees-namibia/</link>
		<comments>http://www.thejfx.net/2011/05/20/camel-thorn-trees-namibia/#comments</comments>
		<pubDate>Fri, 20 May 2011 14:25:53 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Around the Internet]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[namibia]]></category>
		<category><![CDATA[national-geographic]]></category>
		<category><![CDATA[photography]]></category>

		<guid isPermaLink="false">http://www.thejfx.net/?p=12</guid>
		<description><![CDATA[I saw this National Geographic photo of the day the other day. It is not a painting, despite what your brain is telling you. It is an amazing photo taken in Namib-Naukluft Park, Namibia of some native camel thorn trees. The &#8230; <a href="http://www.thejfx.net/2011/05/20/camel-thorn-trees-namibia/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I saw this National Geographic photo of the day the other day. It is not a painting, despite what your brain is telling you. It is an amazing photo taken in Namib-Naukluft Park, Namibia of some native camel thorn trees. The orange backdrop is a giant dune rising into the morning sun.</p>
<p style="text-align: center;"><a href="http://www.thejfx.net/wp-content/uploads/2011/05/camel-thorn-trees-namibia_35259_990x742.jpg" rel="lightbox[12]"><img class="size-medium wp-image-13 aligncenter" title="Camel Thorn Trees" src="http://www.thejfx.net/wp-content/uploads/2011/05/camel-thorn-trees-namibia_35259_990x742-300x224.jpg" alt="" width="600" height="448" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thejfx.net/2011/05/20/camel-thorn-trees-namibia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Back to the Blogosphere</title>
		<link>http://www.thejfx.net/2011/05/19/back-to-the-blogosphere/</link>
		<comments>http://www.thejfx.net/2011/05/19/back-to-the-blogosphere/#comments</comments>
		<pubDate>Thu, 19 May 2011 22:54:37 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[ibti]]></category>
		<category><![CDATA[miller]]></category>
		<category><![CDATA[servers]]></category>
		<category><![CDATA[webcomic]]></category>

		<guid isPermaLink="false">http://www.thejfx.net/?p=4</guid>
		<description><![CDATA[Hello! After a very long time I&#8217;ve brought all of my domains back online. All of the data that I had hosted has been lost, which sucks. All of my old blog posts are gone, and most of my comics &#8230; <a href="http://www.thejfx.net/2011/05/19/back-to-the-blogosphere/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hello! After a very long time I&#8217;ve brought all of my domains back online. All of the data that I had hosted has been lost, which sucks. All of my old blog posts are gone, and most of my comics seem to have up and disappeared between all of my computers.</p>
<p>The hosting went offline because I was a lazy mooch. I own my domains, but I was using Miller&#8217;s Dreamhost account to host them. He offered, and I didn&#8217;t feel like paying for hosting if I didn&#8217;t have to. The down side to that arrangement is that if Miller decides to cancel his account and forgets to mention it, the servers go offline. If you then don&#8217;t notice that the sites are down for a few weeks, and then don&#8217;t realize for another few weeks that you need the servers back online to get your data, then Dreamhosts two-month backup window flies right by and your data is gone. I don&#8217;t blame him, I really should have had my own hosting from the start.</p>
<p>I plan on continuing The JFX as my personal blog (which is what you&#8217;re reading right now), as well as putting IBrokeTheInter.net back online as my webcomic. I found a few of my old comics that I&#8217;ll put back online, but most of them seem to be lost. I also lost my custom Comic CMS that I wrote myself in PHP. It was fun to write at the time, in the same way that a 2000 mile non-stop road trip is fun. The first time. I dont really want to have to write it again, at least in PHP, because I don&#8217;t feel like gouging my eyes out any time soon. Maybe now&#8217;s a good time to learn Ruby? Or finding some open source CMS for comics, I&#8217;m sure some exist. All of that is moot if I don&#8217;t actually make some comics.</p>
<p>If you are wondering, I am using Dreamhost for hosting. Its reasonably cheap shared hosting that works perfectly for small websites and file hosting. So far I haven&#8217;t had any problems setting up my account, but I know the few times over the years that Miller&#8217;s account had issues or we had server problems Dreamhost support has been fantastic. I would recommend them if you are looking for hosting.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thejfx.net/2011/05/19/back-to-the-blogosphere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

