<?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>David's Forbidden Planet &#187; Web</title>
	<atom:link href="http://www.forbidden-planet.org/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.forbidden-planet.org</link>
	<description>Computers, Technology, Sci-Fi and Anime</description>
	<lastBuildDate>Fri, 26 Jun 2009 06:09:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>We should call it Treet</title>
		<link>http://www.forbidden-planet.org/2008/02/14/we-should-call-it-treet/</link>
		<comments>http://www.forbidden-planet.org/2008/02/14/we-should-call-it-treet/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 07:25:20 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.forbidden-planet.org/2008/02/14/we-should-call-it-treet/</guid>
		<description><![CDATA[I really love SPAM.  Spam musubi, spam &#038; eggs, ramen with spam&#8230;  the list goes on.  Sure it&#8217;s made from unknown parts of a pig with surely unhealthy amounts of salt and other things but it tastes good.   And millions of people throughout the world love Spam.  I never [...]]]></description>
			<content:encoded><![CDATA[<p>I really love <a href="http://www.spam.com/">SPAM</a>.  Spam musubi, spam &#038; eggs, ramen with spam&#8230;  the list goes on.  Sure it&#8217;s made from unknown parts of a pig with surely unhealthy amounts of salt and other things but it <em>tastes good</em>.   And millions of people throughout the world love Spam.  I never got why we call unwanted mail or postings &#8220;spam&#8221; when it&#8217;s such a good thing.  Shouldn&#8217;t we call it something else like <a href="http://en.wikipedia.org/wiki/Treet">Treet</a>?  Really, who eats Treet?  And why would you eat a chicken and pork product when you could have 100% pure pork and ham?  (Apologies to my kosher friends out there.)</p>
<p>Why am I talking about this?  Well, after a couple of months of minor spam comment postings, my little blog fell under attack in the last day with dozens of bogus comments advertising all kinds of gambling services.   Most got flagged as needing moderation but a lot still made it through and needed to be manually gotten rid of.   If you&#8217;ve seen the commenting area of a post, you&#8217;ll notice I&#8217;ve been using <a href="http://recaptcha.net/plugins/wordpress/">reCAPTCHA</a> to help prevent spamming.  Since it&#8217;s turned out not to be an end-all solution, I started to look at alternatives.</p>
<p>First step was to straight away ban the most common IP addresses.  Current WordPress versions have this as an option.  Since the traffic and number of comments is very light, I don&#8217;t think there&#8217;ll be much collateral damage to legitimate posters.  It&#8217;s also possible to alter the .htaccess file to totally deny access but that felt to be a bit much since I&#8217;m not really under a heavy attack.   As a longer term solution I&#8217;m looking to see what other options are out there.  A couple of notable are <a href="http://unknowngenius.com/blog/wordpress/spam-karma/">Spam Karma 2</a>, <a href="http://www.theblog.ca/anti-spam">Peter&#8217;s Custom Anti-Spam Image Plugin</a> and <a href="http://www.bad-behavior.ioerror.us/">Bad Behavior</a>.   Depending on how effective updating to the latest reCAPTCHA and just blocking annoying IP addresses turn out to be, I&#8217;ll take a look at these solutions.   </p>
<p>Thanks to <a href="http://blog.jammedph.com/how-to-completely-block-comment-spam-in-your-wordpress-blog/">a posting on Jammed</a> for some of these plugin pointers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.forbidden-planet.org/2008/02/14/we-should-call-it-treet/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>iPhone Web Apps</title>
		<link>http://www.forbidden-planet.org/2008/01/28/iphone-web-apps/</link>
		<comments>http://www.forbidden-planet.org/2008/01/28/iphone-web-apps/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 08:25:36 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Comics]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.forbidden-planet.org/2008/01/28/iphone-web-apps/</guid>
		<description><![CDATA[While I&#8217;m writing posts, I&#8217;ll update on my Comics DB web app.  I&#8217;ve started to do a mock up of a user interface for iPhone.  Not that I did a huge amount of investigation, but the most serious choice for a framework looks to be Joe Hewitt&#8217;s iUI.  It&#8217;s a combination of [...]]]></description>
			<content:encoded><![CDATA[<p>While I&#8217;m writing posts, I&#8217;ll update on my Comics DB web app.  I&#8217;ve started to do a mock up of a user interface for iPhone.  Not that I did a huge amount of investigation, but the most serious choice for a framework looks to be Joe Hewitt&#8217;s <a href="http://code.google.com/p/iui/">iUI</a>.  It&#8217;s a combination of JavaScript and CSS which neatly transforms simple HTML elements into nice iPhone-like menus.</p>
<p>I really need to put more time into this as I&#8217;d like to get it up and running in time for field use at <a href="http://www.comic-con.org/wc/">WonderCon</a> next month.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.forbidden-planet.org/2008/01/28/iphone-web-apps/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Quick Progress</title>
		<link>http://www.forbidden-planet.org/2007/11/28/quick-progress/</link>
		<comments>http://www.forbidden-planet.org/2007/11/28/quick-progress/#comments</comments>
		<pubDate>Wed, 28 Nov 2007 07:34:24 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Comics]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.forbidden-planet.org/2007/11/28/quick-progress/</guid>
		<description><![CDATA[The long Thanksgiving weekend was a good opportunity to make some progress with my comics database web application.  I was actually surprised how easy it was to get something more or less fully functional running in a few hours spread across the weekend.
I ultimately decided to just go with CakePHP.  For the reasons [...]]]></description>
			<content:encoded><![CDATA[<p>The long Thanksgiving weekend was a good opportunity to make some progress with my comics database web application.  I was actually surprised how easy it was to get something more or less fully functional running in a few hours spread across the weekend.</p>
<p>I ultimately decided to just go with <a href="http://www.cakephp.org/">CakePHP</a>.  For the reasons listed before, it ended up making to most sense based on what I&#8217;ve already had experienced with and what seemed to be installed by default with my ISP.   I just followed the <a href="http://manual.cakephp.org/appendix/blog_tutorial">Cake Blog Tutorial</a>, recasting blog postings into comic book titles with the appropriate field changes.   Some retyping of code and minor editing of values and <em>voila!</em> a complete web application was born.<br />
<span id="more-35"></span><br />
As I explained previously, my comic database has been more or less unchanged for the past two decades.   While I introduced some relational aspects in the last few years by tracking individual issues (sometimes) along with the titles, my main use has been just to catalog issue numbers.  To support my comic logging activities, I just need the following features:</p>
<ul>
<li>add, edit &#038; delete a comic title</li>
<li>browse all the comic titles
<li>browse only the &#8220;active&#8221; titles, those that I&#8217;m currently most interested in</li>
<li>search for a specific title, generally based on the comic title&#8217;s name</li>
</ul>
<p>Since I routinely see people at conventions doing similar activities with hand written lists or printouts, there isn&#8217;t much more that&#8217;s need.  Of course in the future I&#8217;ll get fancy with issue specific data and tweak the interface with AJAX features or optimized for mobile device viewing, but that&#8217;s for another time.  </p>
<p>Such a simple requirements meant my schema could be pretty simple:<br />
<code><br />
    title VARCHAR(128) UNIQUE,<br />
    publisher VARCHAR(64),<br />
    time_frame VARCHAR(64),<br />
    series_type ENUM('limited','maxi','one-shot','normal'),<br />
    main_issues TEXT,<br />
    annuals TEXT,<br />
    specials TEXT,<br />
    missing_issues TEXT,<br />
    comments TEXT,<br />
    is_active BOOLEAN,<br />
    is_complete BOOLEAN,<br />
    is_subscribed BOOLEAN<br />
</code></p>
<p>There are of course other columns for tracking and maintenance of titles, but this gives the basic idea of a comic title&#8217;s structure.   With a table based on this schema added to a little MySQL database, it was relatively painless to stitch together basic CRUD operations using CakePHP&#8217;s MVC approach and sample code.   Afterwards, I easily added in some other functionality like a dedicated link that filtered out everything except comics marked as active.   Getting more daring with my increasing confidence, I dropped in <a href="http://bakery.cakephp.org/articles/view/pagination">pagination support</a> and even  <a href="http://mho.ath.cx/~cake/exams/filter/">filter functionality</a>.  I thought I&#8217;d be slogging through data dumps to the browser and looking at SQL queries executed throughout the weekend but, given it was so trivial, it more or less worked without much debugging.  I had a few problems because I didn&#8217;t read method and function documentation and didn&#8217;t realize from the error message that some calls were expecting an array but just receiving a single object.  Easily corrected with a quick print_r call.</p>
<p>All in all it really was as easy as cake.  Next on my agenda is to tweak the UI and perform some more serious testing with larger data sets.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.forbidden-planet.org/2007/11/28/quick-progress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Managing a Comic Book Collection</title>
		<link>http://www.forbidden-planet.org/2007/11/03/managing-a-comic-book-collection/</link>
		<comments>http://www.forbidden-planet.org/2007/11/03/managing-a-comic-book-collection/#comments</comments>
		<pubDate>Sat, 03 Nov 2007 07:21:36 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Comics]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.forbidden-planet.org/2007/11/03/managing-a-comic-book-collection/</guid>
		<description><![CDATA[I&#8217;m still planning to write some additional articles on Japan, specifically on Akihabara.  Since pictures are always good, I&#8217;ve started to look through my backlog of trip photos.  Unfortunately, organizing family pics have taken precedence.   In the mean time I&#8217;m contemplating my first private programming project in a while.
I have a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m still planning to write some additional articles on Japan, specifically on Akihabara.  Since pictures are always good, I&#8217;ve started to look through my backlog of trip photos.  Unfortunately, organizing family pics have taken precedence.   In the mean time I&#8217;m contemplating my first private programming project in a while.</p>
<p>I have a lot of comic books&#8230; when I stopped counting years ago I must&#8217;ve had around 3,000 by estimate.  With many short boxes added in the last few years, the count should be over 3,500, maybe even 4,000.   Since I&#8217;ve long stopped remembering comics by issue number or cover, I&#8217;ve turned to databases over the years to keep everything organized.<br />
<span id="more-32"></span></p>
<p>My first database was a card filing application call <em>Atari Home Filing Manager</em> on my <a href="http://en.wikipedia.org/wiki/Atari_8-bit_family">Atari 800</a>.  It used a 3&#8243;x5&#8243; index card metaphor and I entered a series on each line with issues numbers following.  When my mom took me to comic conventions, I printed out the files and took a hard copy with me.</p>
<p>When I was in junior high, I got more serious and used <em>Timeworks&#8217; Data Manager</em> on my <a href="http://en.wikipedia.org/wiki/Atari_ST">Atari ST</a>.  I could dedicate whole records to a comic and set up the basic fields for information like title, publisher, issues owned, notable mission issues and so forth.  As a side note, I really liked all of Timeworks software and used their Word Writer word processor into high school until I made the jump to Windows 3.0.  The New York Times has an <a href="http://query.nytimes.com/gst/fullpage.html?res=950DEEDE103BF934A35751C0A96F948260">old article</a> on Atari computers which mentions Timeworks.</p>
<p>My longest lasting database choice has been <a href="http://www.filemaker.com/">FileMaker Pro</a>, starting with FileMaker Pro v2.  I made a couple of updates over the years before settling on FileMaker Pro v6.  One benefit of using FileMaker has been the availability of a Palm OS client, which I&#8217;ve used on various Palm compatible devices the last few years.  My standard operating procedure has been to sync up my active comic list with my <a href="http://www.palminfocenter.com/news/6162/sony-clie-peg-ux50-review/">CLIE UX50</a> before attending a convention, make updates as new comics are added and then sync back.   It works pretty well&#8230; except that it usually doesn&#8217;t remember who the FileMaker user name is requiring a reset before synchronizing.  Since I&#8217;ve waited so long, upgrading pricing isn&#8217;t available but moving to a new version is a requirement if I were to get a more modern Palm.  Since I&#8217;m undecided (or maybe slightly decided against) getting a new Palm, Treo or Centro, I&#8217;ve been looking at alternatives that would work with other devices.</p>
<p>There is comic book management software for the Mac OS.  Many like <a href="http://www.xidiar.com/comics/">xidiar Comics</a> is issue oriented and not series oriented.  This means I have to individually enter in each issue.  If I was so inclined it&#8217;s actually a really nice piece of software with fields for every detail one needs on an issue.  It&#8217;s also got a nice Mac-feeling UI.  But there doesn&#8217;t seem to be any way to import / export the data.  Others like <a href="http://books.aetherial.net/wordpress/">Books</a> are more flexible but also single issues / book oriented.   And apps like <a href="http://www.collectorz.com/comic/">Collectorz Comic Collector</a> sound like they&#8217;d work but don&#8217;t have a Mac OS version.  Gah!</p>
<p>Now I&#8217;m thinking just to write my own using MySQL with a PHP frontend.  I&#8217;ve done some &#8220;hello world&#8221; PHP applications and there&#8217;s no shortage of PHP and MySQL how-to&#8217;s available.  My database needs are simple.  I can start with a flat table and expand to add a per issue table later on, which is how my FileMaker database is.  One problem with most of the other solutions is that there&#8217;s no easy way to host on my provider, just import and export of data.  With MySQL, it&#8217;s easy enough to create the tables on my hosting provider&#8217;s server and have them run there.  With my database publicly available, I don&#8217;t need to sync with a handheld device.  Of course&#8230; my next handheld device would need a readily available network connection to be useful.   And, I&#8217;d have to figure out a solution if I wanted to have multiple copies of the database available, one on my laptop when I&#8217;m on the go and unconnected and one on the web where I can access it. Those discussions are for another time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.forbidden-planet.org/2007/11/03/managing-a-comic-book-collection/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
