<?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"
	>

<channel>
	<title>unsaturated.com &#187; Projects</title>
	<atom:link href="http://www.unsaturated.com/category/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.unsaturated.com</link>
	<description>The personal and professional website of Matthew Crumley</description>
	<pubDate>Sun, 02 Nov 2008 00:22:12 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>SpamAssassin Changes for Dreamhost</title>
		<link>http://www.unsaturated.com/projects/spamassassin-changes-for-dreamhost/</link>
		<comments>http://www.unsaturated.com/projects/spamassassin-changes-for-dreamhost/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 16:19:47 +0000</pubDate>
		<dc:creator>matthew</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.unsaturated.com/?p=303</guid>
		<description><![CDATA[When hosting companies make changes to their network architecture, something is going to break. Dreamhost is no exception.  If your SpamAssassin installation broke as a result of their recent mail and web server split, then this tutorial is for you.]]></description>
			<content:encoded><![CDATA[<p>When hosting companies accommodate increased traffic they&#8217;re likely to make changes to the network architecture and <a href="http://www.dreamhost.com/rewards.cgi">Dreamhost</a> is no exception.  Most recently, they separated the mail and hosting servers for better performance.  On the upside my e-mail is much faster.  On the downside my SpamAssassin (SA) installation is not working.</p>
<p>One solution for this problem is to use Dreamhost&#8217;s installation of SA.  However, there&#8217;s no support for Bayesian rules.  Those rules require a per-user database.  Save whitelists, blacklists, and rule sensitivity, there&#8217;s no customization allowed.  Another annoyance is logging into webmail to do anything meaningful with false positives; it&#8217;s <a href="http://wiki.dreamhost.com/KB_/_Email_/_Spam_/_NEW!_Junk_Mail_Filter">explained further on the DH wiki</a>.</p>
<p>Another option, and the best in my opinion, is using an IMAP client of my choice.  This requires some modifications to my <a href="http://www.unsaturated.com/projects/spamassassin-for-dreamhost/">previous tutorial</a> which takes you through the entire process of installing SA.  Assuming that first tutorial is complete, you can now begin this tutorial.  Yes, you will <i>undo</i> some of the work in the original tutorial.  That&#8217;s the way it goes.</p>
<p>Because mail is being forwarded, moved, and synchronized <i>all over the place</i>, I thought a basic flowchart could simplify the end objective of this tutorial.  As you can see, everything is setup to move e-mail to and from the mail server and hosting server.<br />
<img src="http://www.unsaturated.com/wordpress/wp-content/data/sa-steps-overview.png" alt="Tutorial Overview" title="Tutorial Overview" width="454" height="363" id="centered"/></p>
<p>A few assumptions before we get started&#8230;</p>
<ul>
<li>You have a basic understanding of Linux.</li>
<li>You have an active DH account.</li>
<li>You have access to the DH Panel.</li>
<li>The <code>%&gt;</code> notation indicates what you should type at the command prompt.</li>
<li>The <code>&lt;Valid URL for: FileXYZ&gt;</code> notation indicates you need to insert a URL that points to the file in question.</li>
</ul>
<ol>
<li><b>Create a new fully hosted e-mail account.</b>  <u>All</u> of your e-mail aliases should be re-routed to this account&#8217;s address; this is now the gateway account through which everything must pass.  You&#8217;ll have to create a similar account for each user with a SpamAssassin installation.  The address doesn&#8217;t have to be user friendly, but choose something you can remember.  In this example, I&#8217;ve created a new fully hosted address called spam_checker@unsaturated.com.<br />
<br/>If you have an alias called my.cool.address@unsaturated.com which forwards to your main user account, it will have to forward to spam_checker@unsaturated.com.  <b>Do not update all your aliases now because we want the transition to be seamless.</b> Let&#8217;s keep e-mail flowing until all steps are complete.<br />
<img src="http://www.unsaturated.com/wordpress/wp-content/data/sa-step1-fullyhosted.png" alt="Fully hosted e-mail" title="Fully hosted e-mail" width="326" height="120" id="centered"/>
</li>
<li><b>Create a new forward-only e-mail address.</b>  After your mail is checked by SpamAssassin it will be forwarded to this new address, which then passes the e-mail along to your main user account, usually <i>your_user_name@yourdomain.com</i>.  This step allows your e-mail to find its way back to the mail servers from the hosting servers. In this example, I&#8217;ve created a new forward-only address called spam_checker_passed@unsaturated.com.<br />
<img src="http://www.unsaturated.com/wordpress/wp-content/data/sa-step2-forwardonly.png" alt="Forward-only" title="Forward only e-mail" width="367" height="95"  id="centered"/>
</li>
<li><b>Move the spam.rc file to your home folder.</b>  The spam.rc file was originally in a folder called procmail but it was the only file in there.  This is a matter of preference but it&#8217;s important to keep this in mind for the rest of the tutorial. If nothing else is stored in your procmail folder, then delete it. Type the following at the command prompt:
<pre>
<code>%&gt; cd ~
%&gt; mv ~/procmail/spam.rc ~
%&gt; rm -Rf procmail/</code>
</pre>
</li>
<li><b>Update the .procmailrc file in your home directory.</b>  You&#8217;ll notice several changes to this file, most notably all e-mail is forwarded to the address made in step 2 or then deleted.  Remember, the spam has already been filtered to the .Spam folder according to the spam.rc file.  <b>Don&#8217;t forget to update the forwarding address!</b>  Type the following at the command prompt and insert the text shown:
<pre>
<code>%&gt; pico .procmailrc

#=======================================
# ~/.procmailrc
#
# Uses Maildir format mail directory.

# Uncomment the following three lines to debug
#LOGFILE=$HOME/procmail.log
#VERBOSE=yes
#LOGABSTRACT=all

## Directory for storing procmail-related files 
PMDIR=$HOME 

# Message directory (Courier IMAP and mutt)
MAILDIR=$HOME/MaildirSync 

# Spam filtering rules should run last
INCLUDERC=$HOME/spam.rc 

# Forward non-spam mail to validated address
# REMEMBER TO UPDATE THIS ADDRESS!!!
:0c
! spam_checker_passed@unsaturated.com

# Everything should be filtered to the local .Spam folder 
# or forwarded to the new mail server, so go ahead and 
# delete whatever remains 
:0
/dev/null
#=======================================</code>
</pre>
</li>
<li><b>Rename the Maildir directory.</b>  Again, you might be wondering why this is necessary.  In my opinion, the typical name for Maildir is okay if you&#8217;re actually using it for reading mail.  However, this directory is now used exclusively for synchronizing mail accounts.  Type the following at the command prompt:
<pre>
<code>%&gt; mv Maildir MaildirSync
%&gt; chmod -R 700 MaildirSync</code>
</pre>
</li>
<li><b>Download and extract offlineimap.</b>  The features and speed of <a href="http://software.complete.org/software/projects/show/offlineimap">offlineimap</a> looked compelling, so I tried it and decided to keep it. You can configure the script for many different scenarios but we&#8217;re keeping the steps basic.  This step deletes the default configuration files but don&#8217;t worry because I&#8217;ll provided one later.  Type the following at the command prompt:
<pre>
<code>%&gt; cd ~
%&gt; wget &lt;Valid URL for: offlineimap_6.0.3.tar.gz&gt;
%&gt; tar xvfz offlineimap_6.0.3.tar.gz
%&gt; cd offlineimap
%&gt; rm offlineimap.conf
%&gt; rm offlineimap.conf.minimal</code>
</pre>
</li>
<li><b>Create an .offlineimaprc configuration file.</b>  Offlineimap needs to know some basic information like where to find your remote and local mail, folders to ignore, and more.  To complete this you&#8217;ll need to know your mail server&#8217;s name, which can be accessed in the panel.  You might wonder why this program is necessary.  Consider a false positive e-mail, which is incorrectly marked spam.  You could move that message to the correct folder but that change needs to be reflected on the <i>hosting</i> server where SpamAssassin can learn from the change.  <b>Remember to update all the values marked <code>YOUR_</code>.</b> Type the following at the command prompt and insert the text shown:
<pre>
<code>%&gt; cd ~
%&gt; pico .offlineimaprc

#=======================================
# ~/.offlineimaprc

[general]
accounts = MainAccount
metadata = ~/.offlineimap
ignore-readonly = no
ui = Noninteractive.Quiet

[Account MainAccount]
localrepository = Local
remoterepository = Remote

[Repository Local]
type = Maildir
localfolders = ~/MaildirSync

[Repository Remote]
type = IMAP
remotehost = YOUR_MAIL_SERVER_NAME.mail.dreamhost.com
ssl = true
remoteuser = main_account@YOUR_DOMAIN.com
remotepass = YOUR_PASSWORD
nametrans = lambda foldername: re.sub('^INBOX\.*', '.', foldername)
folderfilter = lambda foldername: foldername in ['INBOX.Spam']
maxconnections = 1
holdconnectionopen = no
#=======================================</code>
</pre>
</li>
<p></p>
<li><b>Update the salearn.bat script.</b>  The old Bayes update script is obsolete because we have to ensure spam is synchronized between your hosting account and your mail account.  This script synchronizes your .Spam folders, copies all messages (read and unread) to a single directory, tells SpamAssassin to update the Bayesian database, purges all the spam, then does a final synchronization.  Type the following at the command prompt and insert the text shown:
<pre>
<code>echo '========================================================'
TESTED=false
if [ "$1" ]
then
  if [ $1 = "spam" ]
  then
    TESTED=true
    echo '--------------------------------------------------------'
    echo Synchronizing Spam folder...

    ~/offlineimap/offlineimap.py
    mv ~/MaildirSync/.Spam/new/* ~/MaildirSync/.Spam/cur/

    echo Messages synchronized and ready for processing.
    ~/sausr/bin/sa-learn -V
    echo Learning what is spam...
    ~/sausr/bin/sa-learn --spam ~/MaildirSync/.Spam/cur
    rm -f ~/MaildirSync/.Spam/cur/*
    echo Learning complete.  All spam messages were deleted.
    echo '--------------------------------------------------------'
    echo Resynchronizing your spam folder...
    ~/offlineimap/offlineimap.py
    echo All folders are synchronized. 
  elif [ $1 = "ham" ]
  then
    TESTED=true
    ~/sausr/bin/sa-learn -V
    echo '--------------------------------------------------------'
    echo Learning what is ham...
    ~/sausr/bin/sa-learn --ham ~/MaildirSync/cur  
  fi
  
  if [ $TESTED = true ]
  then
    echo '--------------------------------------------------------'
    echo Summary statistics of Bayes database...
    ~/sausr/bin/sa-learn --dump magic
    echo '--------------------------------------------------------'
  fi
else
  echo Enter one argument:  [ham | spam]
fi
echo '========================================================'</code>
</pre>
</li>
<p></p>
<li><b>Update your cron jobs.</b>  Because some e-mail are marked as spam incorrectly (false positives), we need to ensure all mail is synchronized.  This gives you a chance to correct those false positives and move valid e-mail back into your inbox.  The first cron task runs frequently to ensure your folders are up-to-date.  Some spam systems would do this once daily but I prefer to know sooner if an important e-mail got trashed.  The second task runs the Bayes update script.  Type the following at the command prompt, acknowledge prompts for e-mail according to your preferences, and enter the text shown:
<pre>
<code>%&gt; crontab -e

30 * * * * ~/offlineimap/offlineimap.py
10 0 * * 7 ~/salearn.bat spam</code>
</pre>
</li>
<li><b>Create an e-mail filter through the panel.</b>  Remember that e-mail account you created back in step 1 (spam_checker@unsaturated.com)?  It&#8217;s time to give it a trivial filter using the panel.<br />
<img src="http://www.unsaturated.com/wordpress/wp-content/data/sa-step10a-filter.png" alt="E-mail Filter" title="E-mail Filter" width="163" height="241"  id="centered"/></a><br />
This will create a <code>.procmailrc</code> on the mail server, which you can&#8217;t see or edit via the shell.  By trivial, I mean an obvious pass.  Your rule would go something like this.<br />
<img src="http://www.unsaturated.com/wordpress/wp-content/data/sa-step10b-trivial.png" alt="Trivial filter" title="Trivial filter" width="520" height="29"  id="centered"/></p>
<p>Now once the trivial filter is establish you want to select the &#8220;<b>Forward to shell account</b>&#8221; option.  Be sure to select the matching user account from the drop-down menu.<br />
<img src="http://www.unsaturated.com/wordpress/wp-content/data/sa-step10c-forward.png" alt="Forward to shell" title="Forward to shell" width="213" height="24"  id="centered"/>
</li>
<li><b>Update all e-mail aliases.</b>  Remember that e-mail account you created back in step 1 (spam_checker@unsaturated.com)?  It&#8217;s time to update all your <i>other</i> aliases to point to that address.  With each updated alias, the system goes &#8220;live&#8221; so you might try it on an infrequently used address, then send a test message.<br />
<img src="http://www.unsaturated.com/wordpress/wp-content/data/sa-step11-aliases.png" alt="Update aliases" title="Update aliases" width="520" height="31"  id="centered"/>
</li>
<li><b>Send a test message.</b>  If everything is working properly, you can run the salearn.bat script and you should be error-free.  Send a test message and look for SA headers (X-Spam-Level, etc).  Lastly, if you find an error in my tutorial please post a comment.
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.unsaturated.com/projects/spamassassin-changes-for-dreamhost/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Barron Collier Graduation, 1997</title>
		<link>http://www.unsaturated.com/projects/barron-collier-graduation-1997/</link>
		<comments>http://www.unsaturated.com/projects/barron-collier-graduation-1997/#comments</comments>
		<pubDate>Tue, 13 May 2008 00:59:00 +0000</pubDate>
		<dc:creator>matthew</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.unsaturated.com/projects/barron-collier-graduation-1997/</guid>
		<description><![CDATA[My high school graduation was in 1997. It's also the year VHS started to look obsolete when compared to DVD.  Ten years later, before the video tape completely degraded, I converted the recording to a format that's future-ready. ]]></description>
			<content:encoded><![CDATA[<p>The worst case of format-gone-obsolete has to be my <a href="http://www.unsaturated.com/projects/fisher-price-pxl2000/">Fisher-Price PXL-2000</a>.  I was fortunate the camera still worked otherwise my movies were doomed.  What&#8217;s worse: video that you allowed to degrade, or video stuck in a proprietary format?  My VHS tapes were quickly falling into both categories.  If you&#8217;ve got tapes at home then buy a cheap VHS-to-DVD recorder ($50) and start converting.  You&#8217;ll be glad you did. </p>
<p>One of those VHS tapes was my high school graduation ceremony from 1997.  The conversion to DVD wasn&#8217;t a disaster but it had problems: wobbly sound, washed out colors, and bands of video distortion. Rather than leave the DVD sitting around, I instead copied it to my PC.  I then cropped out the distorted areas and compressed the file down to 282MB (320&#215;224 pixels).  The result is pretty good considering the source.  The video won&#8217;t degrade over time and it&#8217;s much easier to share.</p>
<blockquote><p>
<a href="http://www.unsaturated.com/video/BCHS-graduation-1997.avi">Download the graduation video</a> and relive <strong>110</strong> minutes of absolute monotony punctuated by three seconds of mortarboard tossing fun. You&#8217;ll need the Xvid video codec to watch.  It&#8217;s open source and free to download at <a href="http://www.xvid.org/">xvid.org</a>.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.unsaturated.com/projects/barron-collier-graduation-1997/feed/</wfw:commentRss>
<enclosure url="http://www.unsaturated.com/video/BCHS-graduation-1997.avi" length="282870132" type="video/x-msvideo" />
		</item>
		<item>
		<title>Tale of Two Themes</title>
		<link>http://www.unsaturated.com/projects/tale-of-two-themes/</link>
		<comments>http://www.unsaturated.com/projects/tale-of-two-themes/#comments</comments>
		<pubDate>Tue, 13 Nov 2007 05:26:38 +0000</pubDate>
		<dc:creator>matthew</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.unsaturated.com/projects/tale-of-two-themes/</guid>
		<description><![CDATA[This is my struggle to make a unifying theme for two open source applications:  Gallery and WordPress.  I quickly discovered plug-ins can work for you <i>and</i> against you.]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>Gallery organizes my vast collection of personal photos but its theme system is not easy to modify.  Although my site was redesigned three months ago, a large percentage of it remained untouched.  To complete the site and bring closure to my redesign, a consistent look and feel was absolutely necessary.  I just wanted the same colors, fonts, and formatting.  Instead, I got the Tale of Two Themes.  It&#8217;s a quick look at the complexity, usability, and costs of two open source applications and their themes.</p>
<h2>First Impressions</h2>
<p><a href="http://en.wikipedia.org/wiki/Wordpress">WordPress</a> and <a href="http://en.wikipedia.org/wiki/Gallery_Project">Gallery</a> have two distinct methods of implementing a theme system.  Both applications use CSS, HTML, and various template files but there the similarities stop.  While Gallery uses Smarty, WordPress contends with PHP at every turn.  That last difference is a big one.  These open source projects take drastically different approaches to theme development.  </p>
<p>Gallery imposes a strict regime of access to template methods.  Its selection is almost Soviet.  Meanwhile, WordPress throws caution to the wind and lets PHP rule with impunity.  It&#8217;s a broad generalization but Gallery imposes a police state form of security while WordPress trusts its developers and users to bring anything on the plane.  These two applications show software design is clearly about tradeoffs.  </p>
<p><img src='http://www.unsaturated.com/wordpress/wp-content/data/galleryredesign.png' alt='Gallery theme' /></p>
<h2>A Brief Comparison</h2>
<p>There&#8217;s no limit to lines to code.  Code can be written to impose a detailed design scheme, or permit an absurd level of extensibility.  The real question is: What&#8217;s the role of this software?  When the developers of Gallery and WordPress addressed this question they directly affected how theme developers would do their jobs. </p>
<h3>Gallery</h3>
<p>Gallery uses <a href="http://en.wikipedia.org/wiki/Smarty">Smarty</a>.  If you&#8217;re unfamiliar with this tool, then you&#8217;re not alone.  This is the first obstacle I faced when writing a Gallery theme for my site.  It takes all the PHP code out of the theme and generates it for you.  It sounds great.  Unfortunately, it imposes a lot of <i>up front</i> time investment to learn a new tool.  Productivity doesn&#8217;t climb until you can reasonably manipulate its tags.  Look forward to the following:</p>
<pre>
<code>{if isset($theme.photoFrame)}
  {g-&gt;container type="imageframe.ImageFrame"
                      frame=$theme.photoFrame
                      width=$image.width height=$image.height}
  {g-&gt;image id="%ID%" item=$theme.item image=$image
                      fallback=$smarty.capture.fallback class="%CLASS%"}
  {/g-&gt;container}
{else}
  {g-&gt;image item=$theme.item image=$image fallback=$smarty.capture.fallback}
{/if}</code>
</pre>
<p>Gallery uses plug-ins.  This is the trend for most applications these days.  It&#8217;s great for open source because it allows other developers the chance to add capabilities not originally supported.  Unfortunately, adding features means a purpose-built application can quickly devolve into a slow, bloated monster.  A Gallery plug-in integrates just enough theme customization to be useful&#8230;for <b>one</b> theme only.  </p>
<p>Each plug-in has a set of templates expressly built for theme usage.  Within each plug-in&#8217;s template directory you can create a &#8220;local&#8221; sub-directory which overrides the default template.  It sounds good, but when you apply a customization, say, to add some header text, <i>it affects every theme</i>.  Themes cannot specify <i>which</i> local template to utilize.  Thus, the designer is not truly free to make modifications.</p>
<h3>WordPress</h3>
<p>Unlike Gallery, the role of plug-ins in WordPress is diminished because the core capabilities are all I require.  Storing text, comments, and providing RSS feeds is the extent of a blog.  I only use three plug-ins in WordPress compared to over 20 in Gallery.  The plug-ins I&#8217;m using for WordPress leave the theme mostly untouched.  </p>
<p>Themes and templates in WordPress are a set of files containing CSS, HTML, and <a href="http://en.wikipedia.org/wiki/PHP">PHP</a>.  There&#8217;s nothing more to it.  The following is a sample of what you&#8217;ll see in WordPress themes:</p>
<p><code>&lt;h3 id="comments"&gt;&lt;?php comments_number('No Comments', 'One Comment', '% Comments' );?&gt; on &amp;#8220;&lt;?php the_title(); ?&gt;&amp;#8221;&lt;/h3&gt;</code></p>
<p>Template functions make repetitive tasks easier and, yes, they&#8217;re functions written in PHP. The example above uses <code>comments_number</code> and <code>the_title</code> to get the number of comments for a post and the post&#8217;s title.  Accomplishing anything via WordPress involves PHP and there are downfalls to embedded code:</p>
<ol>
<li><b>Design and code are not separated.</b>  It&#8217;s not easy to separate data, interface, and design.  WordPress attempts it but only marginally succeeds.  This is important in large software teams when the share of work <i>must</i> be divided.</li>
<li><b>Breaks from the WordPress loop are not constrained.</b>  What amount of PHP code is necessary to escape the security measures put in place?  If you allow <b>any</b> code, then you&#8217;ve already opened the possibility.</li>
<li><b>Version compatibility with PHP.</b>  This problem should <i>not</i> be caused by files on the theme-level of the site.  Your theme designer wants access to something in PHP 5 and the coder refuses to support anything beyond PHP 4.</li>
</ol>
<h2>The Path of Least Resistance</h2>
<p>My strategy was simple:  create the theme for WordPress then design the Gallery template to finalize the remainder of my site.  This is exactly how it happened but unequal weight was given to Gallery in the final effort.  It took a couple weeks here and there after work to finish the WordPress theme.  By comparison, the theme and template development for Gallery was dragging on for a month.  My Gallery theme was completely based upon my initial WordPress theme.  This sounds fine but the format was not right for displaying photos.  I was reworking multiple plug-in templates, fudging the CSS, and finally cut my sunk costs.  I looked at the long term maintenance of the modifications and could no longer rationalize my initial design.  The present Gallery theme is a derivative of the Matrix theme.  </p>
<p>When the site was finished I realized too many plug-ins complicated my experience with Gallery.  Smarty is an excellent tool and a great idea for separating work share.  However, it greatly slows development for the individual.  WordPress keeps things simple (almost simplistic) at the cost of security and stability.  Remember, developers, PHP can work <i>against you</i> as easily as <i>for you</i>.  </p>
<p>I enjoy working with code, but when too much stands in the way of my goal, it becomes frustrating and tiresome.  Do yourself and the open source community a favor and ask yourself:  Do I <i>really</i> need that extra plug-in?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unsaturated.com/projects/tale-of-two-themes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FlixLogix</title>
		<link>http://www.unsaturated.com/projects/flixlogix/</link>
		<comments>http://www.unsaturated.com/projects/flixlogix/#comments</comments>
		<pubDate>Sun, 21 Oct 2007 02:06:43 +0000</pubDate>
		<dc:creator>matthew</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.unsaturated.com/projects/flixlogix/</guid>
		<description><![CDATA[This is my attempt at the Netflix Prize.  I wrote everything in .NET, designed a GUI, and saw some SQL for the first time since college. ]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>In late 2006 the <a href="http://www.netflixprize.com">Netflix Prize</a> was inaugurated and as of this post, is still going.  The premise is simple: write software that predicts how a Netflix subscriber will rate a movie.  To win, the predictions have to be 10% better than Netflix. At stake: $1,000,000. </p>
<h2>Coding, Not Competing</h2>
<p>I have programming talent but this challenge is different; it demands specialized skills.  Database optimization and machine learning are a few areas that come to mind.  My expertise is not in either area.  Why bother to compete if my chances of winning are so small?  To put it simply, I wanted to see how far I could get.</p>
<ul>
<li>I could barely remember how to write an SQL query.  The last time I touched a database was in college when I helped design a <a href="http://www.unsaturated.com/projects/web-enabled-automated-horse-feeder/">web-enabled, automated horse feeder</a>.  I used MySQL and PHP.  This was the perfect excuse to re-learn those skills.</li>
<li>I was still using .NET 1.1 at work.  The .NET frameworks kept evolving, so it was time to try 2.0.  I could have written the software in any language but C# was most relevant to my everyday work.</li>
<li>Writing interfaces is something that takes practice.  Let me rephrase that:  writing <i>good</i> interfaces is something that takes practice.</li>
<li>Why not make this an exercise in GUI design?  I love drawing buttons.</li>
</ul>
<h2>Database</h2>
<p>The challenge supplies you with a large amount of sample data: 2GB.  Unless you&#8217;re a seasoned database administrator, this can be intimidating.  Where do you start?  Is a database even the right direction for such a project?  The problems mounted and addressing the actual challenge seemed far away. </p>
<p>I stayed up until 1AM several nights a week trying different ideas.  I waited for hours, even a <b>day</b>, as my <code>INSERT</code> statement went through the sample data line-by-line and placed it into the database tables.  Finally, a breakthrough:  I formatted the sample data into flat files that MySQL could import via <code>LOAD INFILE</code>.  Importing was reduced to minutes. </p>
<h2>GUI</h2>
<p>The problem is to know what tasks are frequently repeated.  In the beginning, formatting and importing data took the most time.  Thus, three of the four tabs are for that purpose.  I also created some basic logging features and began to think multi-threaded.  When importing data or making a prediction, such tasks would require lots of time for processing.  The worker threads provide feedback on how long they&#8217;ve taken to execute.  </p>
<p><img src='http://www.unsaturated.com/wordpress/wp-content/data/flixlogix.png' alt='FlixLogix Screen Capture' /></p>
<h2>Cooking Metaphor</h2>
<p>I estimate 10% of my time was spent on the core problem, which is generating rating predictions.  I spent so much time on the database, caching, and GUI, when I was ready to implement the algorithm to address the challenge, burnout was imminent.  Since the previous 90% of my effort addressed 100% of my goals stated above, I felt a warm sense of accomplishment.</p>
<p>Like cooking, most of my time went into preparation, not the actual cooking.  If you observe the <a href="http://www.netflixprize.com/leaderboard">leader board</a> for several weeks, you&#8217;ll see the cooking metaphor in action.  You&#8217;ll see the same teams making incremental improvements&#8230;adding a dash of salt, oregano, etc.  It&#8217;s trial and error to make the original recipe better.  The same goes for prediction algorithms and getting the RMSE just <i>slightly</i> lower. </p>
<h2>Conclusion</h2>
<p>My FlixLogix source is <a href='http://www.unsaturated.com/wordpress/wp-content/data/flixlogix.zip' title='FlixLogix Source'>available for download</a> (63KB).  I created the project and solution using Microsoft Visual C# 2005 Express Edition.  If you don&#8217;t have an ADO.NET driver for MySQL, you need to reference one in order to build.  Using this project as-is will yield an RMSE of 1.269.  Make my recipe your own.  Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unsaturated.com/projects/flixlogix/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Event Calendar for WordPress 2.3</title>
		<link>http://www.unsaturated.com/projects/eventcalendar-for-wordpress/</link>
		<comments>http://www.unsaturated.com/projects/eventcalendar-for-wordpress/#comments</comments>
		<pubDate>Sat, 29 Sep 2007 21:19:47 +0000</pubDate>
		<dc:creator>matthew</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.unsaturated.com/projects/eventcalendar-for-wordpress/</guid>
		<description><![CDATA[A compatibility fix for Event Calendar 3.1.0 and WordPress 2.3. ]]></description>
			<content:encoded><![CDATA[<p>I recently upgraded my homeowners association blog to WordPress 2.3.  The core upgrade from 2.2 to 2.3 was easy.  However, compatibility problems with plug-ins and themes are inevitable.  I&#8217;m currently using Event Calendar 3.1.0 and immediately noticed problems after upgrading.  </p>
<p>The new SQL structure introduced in 2.3 removed the <code>post2cat</code> table.  As a result you&#8217;re seeing a lot of broken SQL queries.  To fix the problem I changed all queries that referred to <code>$wpdb-&gt;post2cat</code> with <code>$wpdb-&gt;terms</code> and changed the conditions from <code>post_id</code> to <code>term_id</code>.  </p>
<p>Extract the ZIP file to your Event Calendar plug-in directory and things should work smoothly again.  I&#8217;m not a heavy user of all the Event Calendar features, so I can&#8217;t vouch for <i>full</i> WP 2.3 compatibility.   If you find any additional problems, first inform the <a href="http://wpcal.firetree.net">developer</a>.  It&#8217;s a great plug-in and worth maintaining.  </p>
<p>Download the update: <a href='http://www.unsaturated.com/wordpress/wp-content/data/eventcalendar310-wp23.zip' title='EventCalendar3.1.0-WP2.3'>EventCalendar3.1.0-WP2.3.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.unsaturated.com/projects/eventcalendar-for-wordpress/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SpamAssassin for Dreamhost</title>
		<link>http://www.unsaturated.com/projects/spamassassin-for-dreamhost/</link>
		<comments>http://www.unsaturated.com/projects/spamassassin-for-dreamhost/#comments</comments>
		<pubDate>Sun, 19 Aug 2007 12:22:02 +0000</pubDate>
		<dc:creator>matthew</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.unsaturated.com/projects/spamassassin-for-dreamhost/</guid>
		<description><![CDATA[You're using Dreamhost and tired of SPAM. I feel your pain. Here's an installation guide I wrote for version 3.1.0, which uses MySQL to store Bayes data.]]></description>
			<content:encoded><![CDATA[<p>This SpamAssassin guide is for <a href="http://www.dreamhost.com/rewards.cgi">Dreamhost</a> clients who want to run a personal copy of SpamAssassin separate from the one already provided.  This will take you step-by-step through the process of downloading, installing, and configuring SpamAssassin (SA) version 3.1.0. </p>
<p>Although DH currently supports SA, it is applied to your entire domain. To further complicate matters, DH upgraded to Debian Linux &#8220;Sarge&#8221; and it caused compatibility issues with the Bayesian database files; these are read/write files created using a Perl library. The next best alternative is to store those Bayes tokens in a MySQL database. By using SA&#8217;s Bayesian filtering you stand a <i>much</i> greater chance of eliminating your junk mail, and MySQL seems to circumvent the problem mentioned earlier.</p>
<p><b>Update: changes to Dreamhost&#8217;s network architecture require amendments to this procedure.  Please reference my <a href="http://www.unsaturated.com/projects/spamassassin-changes-for-dreamhost/">updated tutorial</a> for more information.</b></p>
<p>A few assumptions before we get started&#8230;</p>
<ul>
<li>You have a basic understanding of Linux.</li>
<li>You have an active DH account.</li>
<li>You have access to the DH Panel.</li>
<li>The <code>%&gt;</code> notation indicates what you should type at the command prompt.</li>
<li>The <code>&lt;Valid URL for: FileXYZ&gt;</code> notation indicates you need to insert a URL that points to the file in question.</li>
</ul>
<ol>
<li><b>Disable <u>all</u> keyword and junk mail filtering via the Dreamhost Panel.</b>  The Panel modifies your <code>.procmailrc</code> file and later we will be making changes to it and other files in your root directory.</li>
<p><img src='http://www.unsaturated.com/wordpress/wp-content/data/samail.png' alt='Mail Tab' id='centered'/><br />
</p>
<li><b>Log in to the account that will be using SpamAssassin.</b>  You will be doing most of the work from the shell.  Having a browser window open to the DH Panel would also be a good idea.</li>
<p></p>
<li><b>Download SpamAssassin 3.1.0.</b>  The 3.1.0 distribution can be obtained from the SA home page. Be sure to get the tar.gz format. Using this command will download it to your home directory.  Type the following:
<pre>
<code>%&gt; cd ~
%&gt; wget &lt;Valid URL for: Mail-SpamAssassin-3.1.0.tar.gz&gt;</code>
</pre>
</li>
<li><b>Extract the SpamAssassin archive.</b>  You must now extract the files to prepare for installation.  Be sure the tar.gz file is in your root directory.  Type the following:
<pre>
<code>%&gt; tar xvfz Mail-SpamAssassin-3.1.0.tar.gz
%&gt; cd Mail-SpamAssassin-3.1.0</code>
</pre>
</li>
<li><b>Make the SpamAssassin files.</b>  This step is found in the <code>INSTALL</code> file under the heading &#8220;Installing SpamAssassin for Personal Use (Not System-Wide).&#8221;  Each step takes some processing time, so please be patient. It will place your configuration files in <code>~/saetc</code> and binaries in <code>~/sausr</code>. Type the following at the command prompt:
<pre>
<code>%&gt; perl Makefile.PL PREFIX=~/sausr SYSCONFDIR=~/saetc
%&gt; make
%&gt; make install</code>
</pre>
</li>
<li><b>Create a directory for spam rules.</b>  This directory provides a location for all of your procmail-related rules. Type the following at the command prompt:
<pre>
<code>%&gt; cd ~
%&gt; mkdir procmail
%&gt; cd procmail</code>
</pre>
</li>
<li><b>Create the spam.rc file in your procmail folder.</b>  The <code>spam.rc</code> file will tell SA where to place junk mail and where to find associated rules for filtering. I have set up a rule to sort all spam into SquirrelMail&#8217;s Spam folder.  Thus, it is not downloaded by my POP3 client. Type the following at the command prompt and insert the text shown:
<pre>
<code>%&gt; pico spam.rc

#=================================================
# spam.rc should be located in ~/procmail

# Send e-mail to SpamAssassin if less than 500kB in size
:0fw
* &lt; 500000
| $HOME/sausr/bin/spamassassin

# Delete all spam with a score of 8 or higher
:0
* ^X-Spam-Level: \*\*\*\*\*\*\*\*
/dev/null

# Move suspected spam into a separate folder
:0:
* ^X-Spam-Status: Yes
.Spam/
#=================================================</code>
</pre>
</li>
<li><b>Create the .forward.postfix file in your root directory.</b>  Type the following at the command prompt and insert the text shown:
<pre>
<code>%&gt; cd ~
%&gt; pico .forward.postfix


#==========================================
#.forward.postfix should be located in ~
"| /usr/bin/procmail -t"
#==========================================</code>
</pre>
</li>
<li><b>Modify the .procmailrc file in your root directory.</b>  This step edits the file that specifies which rules are applied to your e-mail.  You want to reference the <code>spam.rc</code> file you already created.  Type the following at the command prompt and modify the file as shown:
<pre>
<code>%&gt; mv .procmailrc .procmailrc.bak
%&gt; pico .procmailrc


#=======================================
# .procmailrc should be located in ~

# Directory for procmail-related files
PMDIR=$HOME/procmail

# This is the message directory
MAILDIR=$HOME/Maildir

# procmail will use spam.rc for rules
INCLUDERC=$PMDIR/spam.rc

# Send everything else to Maildir
:0
$HOME/Maildir/
#=======================================</code>
</pre>
</li>
<li><b>Install modules necessary to enable DNS tests.</b>  Although DNS-based tests are not necessary for SA to work, it&#8217;s another great feature that helps to reduce spam.  You&#8217;ll need the Net::IP dependency before installing Net::DNS.  DH currently has this installed but the version is insufficient for SA to run correctly. Type the following at the command prompt:
<pre>
<code>%&gt; cd ~
%&gt; wget &lt;Valid URL for: Net-IP-1.24.tar.gz&gt;
%&gt; wget &lt;Valid URL for: Net-DNS-0.53.tar.gz&gt;
%&gt; tar xvfz Net-IP-1.24.tar.gz
%&gt; tar xvfz Net-DNS-0.53.tar.gz
%&gt; export PERL5LIB=/home/your_username/sausr/share/perl/5.8.4
%&gt; cd Net-IP-1.24
%&gt; perl Makefile.PL PREFIX=~/sausr
%&gt; make
%&gt; make install
%&gt; cd ~/Net-DNS-0.53
%&gt; perl Makefile.PL PREFIX=~/sausr
%&gt; make
%&gt; make install
%&gt; ln -s ~/sausr/lib/perl/5.8.4/Net/* ~/sausr/share/perl/5.8.4/Net</code>
</pre>
</li>
<li><b>Send yourself an e-mail to check the installation.</b>  Your installation should be working properly.  Be sure to check the e-mail headers for &#8220;X-Spam-Checker-Version: SpamAssassin 3.1.0&#8243;  This means your local copy of SA is working.</li>
<p></p>
<li><b>Create a MySQL database for SA.</b>  Go to the Goodies, MySQL link on the DH Panel. The username/password are examples. For security reasons, do <i>not</i> use the following. I used these only to complete the guide.  Remember these settings because you&#8217;ll be using them later.  After DH has set-up your database you will see it added to your list. Proceed to the next step. <img src='http://www.unsaturated.com/wordpress/wp-content/data/sacreatenew.png' alt='New MySQL Database' id='centered'/></li>
<p></p>
<li><b>Create the database tables necessary for SA.</b>  Doing this step will create all the necessary tables used by SA for user preferences and the Bayes tokens. I&#8217;m not currently using the database for my preferences but doing this step now would make it easier later.  Type the following at the command prompt and enter your database password as prompted:
<pre>
<code>%&gt; cd ~/Mail-SpamAssassin-3.1.0/sql
%&gt; mysql -h spam.sa.com -u spam_user -p MySpamDB &lt; userpref_mysql.sql
%&gt; mysql -h spam.sa.com -u spam_user -p MySpamDB &lt; bayes_mysql.sql
%&gt; mysql -h spam.sa.com -u spam_user -p MySpamDB &lt; awl_mysql.sql</code>
</pre>
</li>
<li><b>Modify the local.cf file.</b>  Everything is set-up to use Bayesian filtering but it&#8217;s not enabled by default. Type the following at the command prompt and add the lines indicated:
<pre>
<code>%&gt; cd ~/saetc/mail/spamassassin
%&gt; pico local.cf


#===================================================
# These lines must be in your local.cf file

# Tell SA to use Bayesian filtering
use_bayes 1

# Tell SA to use a MySQL database for tokens
bayes_store_module  Mail::SpamAssassin::BayesStore::MySQL
bayes_sql_dsn       DBI:mysql:MySpamDB:spam.sa.com
bayes_sql_username  spam_user
bayes_sql_password  itsasecret

user_scores_dsn           DBI:mysql:MySpamDB:spam.sa.com
user_scores_sql_username  spam_user
user_scores_sql_password  itsasecret

#===================================================</code>
</pre>
</li>
<li><b>Modify the user_prefs file.</b>  The user_prefs file is where you should add any white or black listed e-mail addresses. The MySQL database can store this information but I haven&#8217;t integrated it with SquirrelMail&#8230;yet. These preferences are optional but I believe they lead to greater reliability when SA assigns a score to an e-mail.  Type the following at the command prompt and add the lines indicated:
<pre>
<code>%&gt; pico ~/.spamassassin/user_prefs


#===================================================
# These lines should be in your user_prefs file

# Do not autolearn from Bayes
bayes_auto_learn 0

# Do not autowhitelist e-mail addresses
use_auto_whitelist 0

# Bayes will ignore these headers
bayes_ignore_header X-Virus-Scanned
bayes_ignore_header X-Spam-Status
bayes_ignore_header X-Spam-Level
bayes_ignore_header X-Spam-Flag

#===================================================</code>
</pre>
</li>
<li><b>Create a script for training SA.</b>  This will vastly simply your life so training SA becomes <i>almost</i> automatic.  The script is capable of training for spam or ham, depending upon the command line argument.  If training on spam, it will delete all the messages when it&#8217;s done.  Type the following at the command prompt and insert the text shown:
<pre>
<code>%&gt; echo &gt; ~/salearn.bat
%&gt; chmod 744 ~/salearn.bat&lt;br&gt;
%&gt; pico ~/salearn.bat


echo '========================================='
TESTED=false
if [ "$1" ]
then
  if [ $1 = "spam" ]
  then
    TESTED=true
    ~/sausr/bin/sa-learn -V
    echo '-----------------------------------------'
    echo Learning what is SPAM...
    ~/sausr/bin/sa-learn --spam ~/Maildir/.Spam/cur
    rm -f ~/Maildir/.Spam/cur/*
    echo All messages from your Spam folder were deleted.
  elif [ $1 = "ham" ]
  then
    TESTED=true
    ~/sausr/bin/sa-learn -V
    echo '-----------------------------------------'
    echo Learning what is HAM...
    ~/sausr/bin/sa-learn --ham ~/Maildir/cur
  fi

  if [ $TESTED = true ]
  then
    echo '-----------------------------------------'
    echo Summary statistics of Bayes database...
    ~/sausr/bin/sa-learn --dump magic
    echo '-----------------------------------------'
  fi
else
  echo Enter one argument:  [ham | spam]
fi
echo '========================================='</code>
</pre>
</li>
<li><b>Allow spam to accumulate in your Spam folder and train SA.</b>  SpamAssassin gets even better after training it with several thousand spam messages.  It assigns a statistical probability to certain words and characteristics of mail you have designated as junk.  When your Spam folder is getting full type the following at the command prompt:
<pre>
<code>%&gt; ~/salearn.bat spam
%&gt; ~/salearn.bat ham</code>
</pre>
</li>
<li><b>Create a crontab job to run your script.</b>  You have a script but you need to execute it with regularity. That&#8217;s what crontab is used to do.  You could have it doing lots of other chores like emptying the Trash folder, but I will leave the extras to you.  After the script executes you are sent an e-mail with a summary of what happened.  The script will execute 10 minutes after midnight every Sunday. Type the following at the command prompt and add the text listed:
<pre>
<code>%&gt; crontab -e

10 0 * * 7 $HOME/salearn.bat spam</code>
</pre>
</li>
<li><b>Delete the temporary SpamAssassin folder.</b>  To free up a little disk space, go back and delete the temporary folder created when we decompressed the archive. Type the following at the command prompt:
<pre>
<code>%&gt; cd ~
%&gt; rm -R -f Mail-SpamAssassin-3.1.0</code>
</pre>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.unsaturated.com/projects/spamassassin-for-dreamhost/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Fisher-Price PXL2000</title>
		<link>http://www.unsaturated.com/projects/fisher-price-pxl2000/</link>
		<comments>http://www.unsaturated.com/projects/fisher-price-pxl2000/#comments</comments>
		<pubDate>Sat, 04 Aug 2007 13:56:29 +0000</pubDate>
		<dc:creator>matthew</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.unsaturated.com/projects/fisher-price-pxl2000/</guid>
		<description><![CDATA[Some great toys came out of the 1980s. One of the forgotten toys is the Fisher-Price PXL2000. After capturing video and minimal editing, I completed my first Pixelvision movie. ]]></description>
			<content:encoded><![CDATA[<p>The Fisher-Price PXL2000 was a camcorder made for kids. I got the PXL2000 as a present way back in 1988. Using its proprietary Pixelvision technology, it really seemed ahead of its time. It records about 15 minutes of black and white video to a CrO<sub>2</sub> audio tape.</p>
<p>Unfortunately, its $100 price tag contributed to its demise; it survived two years in the market. Its departure was also hastened due to its ability to devour six AA batteries in only 30 minutes. </p>
<p>I didn&#8217;t finalize any of my video footage until 2004. The footage was recorded just after Christmas in 1988. I was really anxious to try out my new camcorder and new model rocket.  All the footage was shot at Naples Park Elementary School along with my family and a few bystanders.</p>
<p>Before Naples started to sprawl and commercialize, there was a lot more room for such activities&#8212;launching model rockets, flying model planes, etc. The huge field behind the school was perfect for rocket launches.</p>
<p>With the wind moving in a calm westerly direction, we pointed the rocket slightly east. It probably reached 1000ft before deploying the parachute. It was a long way drifting towards the west. The animated image shows a few key frames of the event.</p>
<p>One thing you might notice in the video is the loud whirring noise. The reason is because the camcorder&#8217;s motor would spin the tape so fast that it&#8217;s picked up by the microphone.</p>
<p><center><object type="application/x-shockwave-flash" data="http://www.unsaturated.com/wordpress/wp-content/plugins/pb-embedflash/swf/mediaplayer.swf?width=320&amp;height=260" width="320" height="260" class="embedflash"><param name="movie" value="http://www.unsaturated.com/wordpress/wp-content/plugins/pb-embedflash/swf/mediaplayer.swf?width=320&amp;height=260" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="flashvars" value="file=http://www.unsaturated.com/video/rocket_320x240.flv&amp;searchbar=false" /><small>(Please open the article to see the flash file or player.)</small></object></center></p>
<p>Post Mortem for the PXL2000: After reading various web pages, it seems they are rare in quantity and functioning units are even harder to find. Fortunately, mine fits into the latter category. To read about the history of the PXL2000, the technology behind Pixelvision, and various stories of its usage with independent filming, I suggest <a href="http://en.wikipedia.org/wiki/PXL-2000">Wikipedia</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unsaturated.com/projects/fisher-price-pxl2000/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Eggbomb</title>
		<link>http://www.unsaturated.com/projects/eggbomb/</link>
		<comments>http://www.unsaturated.com/projects/eggbomb/#comments</comments>
		<pubDate>Sat, 04 Aug 2007 13:40:28 +0000</pubDate>
		<dc:creator>matthew</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.unsaturated.com/projects/eggbomb/</guid>
		<description><![CDATA[The Panasonic Eggcam provided the right inspiration for my Eggbomb. I loved the irony of this project. It's a shame there's no USB version of this campy device. ]]></description>
			<content:encoded><![CDATA[<h2>Background</h2>
<p>My former roommate described an event, what he called &#8220;A god damn egg blew up in my face!&#8221;, referred to as detonation. He microwaved a normal hard-boiled egg, dashed on some salt, and took a bite.  BOOM!  Egg was everywhere.  I was curious how this happened so we tried to reproduce the effect.  I&#8217;ve never used the expression to have &#8220;egg on one&#8217;s face&#8221; but now I know it means a blunder.</p>
<h2>The Experiment</h2>
<p>The egg must first be hard-boiled. Boiling an egg in its shell for approximately seven minutes is sufficient for the albumen and yolk to solidify. Then place the eggs in the refrigerator until they cool.</p>
<p>After selecting a cool egg, carefully remove the shell. It is important that you <b>do not</b> tear the albumen while removing the shell. This will ensure proper heat retention and distribution when microwaving the egg. Now microwave the egg for 30 seconds.</p>
<p>When the egg is done microwaving, place it on a flat surface and pierce the egg yolk with a sharp object. A quick jab works best for producing the most violent reaction. The video on file doesn&#8217;t illustrate the most dramatic results we obtained but you get the point.  We chose not to use salt because we thought it was incidental, not critical to the experiment.  Your results may vary depending upon the size and/or density of the egg.</p>
<p><center><object type="application/x-shockwave-flash" data="http://www.unsaturated.com/wordpress/wp-content/plugins/pb-embedflash/swf/mediaplayer.swf?width=240&amp;height=200" width="240" height="200" class="embedflash"><param name="movie" value="http://www.unsaturated.com/wordpress/wp-content/plugins/pb-embedflash/swf/mediaplayer.swf?width=240&amp;height=200" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="flashvars" value="file=http://www.unsaturated.com/video/eggbomb_240x180.flv&amp;searchbar=false" /><small>(Please open the article to see the flash file or player.)</small></object></center></p>
<h2>Conclusion</h2>
<p>If you tried the experiment yourself you may be wondering why this happens. We determined the yolk of the egg is the energy source for the explosion. A microwave warms food from the inside outward. When the egg yolk is quickly pierced, the heat is released in all directions. What&#8217;s left are scattered remains of an egg&#8230;great for salad topping!</p>
<p>There&#8217;s a twist of irony in this experiment.  The video camera we used is actually the <a href='http://www.unsaturated.com/wordpress/wp-content/data/eggcam.gif' title='Panasonic Eggcam'>Panasonic Eggcam</a>.  I&#8217;m not sure why Panasonic associated greater sales potential with egg-shaped products.  This was before USB webcams gained dominance in the market.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unsaturated.com/projects/eggbomb/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Web-Enabled, Automated Horse Feeder</title>
		<link>http://www.unsaturated.com/projects/web-enabled-automated-horse-feeder/</link>
		<comments>http://www.unsaturated.com/projects/web-enabled-automated-horse-feeder/#comments</comments>
		<pubDate>Sat, 04 Aug 2007 12:53:23 +0000</pubDate>
		<dc:creator>matthew</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.unsaturated.com/projects/web-enabled-automated-horse-feeder/</guid>
		<description><![CDATA[Designing this web-enabled, automated horse feeder turned into a serious engineering project. Our Senior Design group consisted of six people.  Dividing the work load was not easy because the hardware could only stay with one person. ]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>This project earned my group an &#8220;A&#8221; in undergraduate Senior Design. The premise of Senior Design class is that a group of students must design and build an original product. We arrived at this unusual idea because one group member was a former horse owner and our professor&#8217;s contribution was &#8220;make it web-enabled.&#8221;  Thus, we had an idea that was truly original and we set out to build it. A little background information on horse feeders will help to clarify the project.</p>
<h2>Current Feeders</h2>
<p>Current automated horse feeders use mechanical and/or electrical timing devices to dispense feed at regular intervals. Power is usually supplied through a 12-volt battery, a 110-volt outlet, or even solar power. Generally, there are two mechanisms: one is a timer and the other a measurer. When the timing mechanism reaches the preset times, a motorized auger turns allowing grain to be dispensed. Timing mechanisms are somewhat simplistic and provide limited programming capability.</p>
<p>All feeders have override buttons to dispense grain manually. Few, if any, provide the ability to remotely control the parameters of a particular feeder. The user is limited to programming the device from the feeder itself. Every feeder that uses the current programming system must be individually programmed.</p>
<p>Current systems range in price with a low-end model selling for $285 and a high-end model for $865. No web-enabled models were found.</p>
<h2>Our Feeder</h2>
<p>The problems with current feeders centered on usability, scalability, and accessibility. After recognizing the problems/limitations of current feeders, our task was to find and implement a solution set. Our project addressed each of these concerns: </p>
<ul>
<li><b>Usability</b> &#8212; we improved the range of usability and programability with a <a href="http://www.rabbitsemiconductor.com">Z-World</a> microcontroller.  Using a multi-line LCD display, keypad, and the microcontroller, we expanded upon the usability constraints of other feeders. Users could log into the feeder using a password, program feed times, frequency, and feed quantities. Thus, the feeder could function independently from an internet connection. The microcontroller was coded in Dynamic C.</li>
<li><b>Scalabilty</b> &#8212; the server acts as the heart of the system. Users can register and control every feeder from one online location. In theory, the system can support an unlimited number of horse feeders. The only limitations are server speed and storage capacity. We also added a camera to the system. Thus, the user could see the horse (if it was near the feeder), set feed times and amounts, and view a log file of all feeder events. The server was running Red Hat Linux and a MySQL database. The microcontroller interface was coded in C and C++. The web interface was coded entirely in PHP.</li>
<li><b>Accessibility</b> &#8212; as mentioned earlier, the system allows the user to program the feeder locally (at the feeder itself) or remotely (from the web site). Although feed times will vary infrequently, the concept proves that such a system increases the horse owner&#8217;s ability to monitor what is happening.</li>
</ul>
<p>The following diagram illustrates the basic operation of our system:<br />
<img src='http://www.unsaturated.com/wordpress/wp-content/data/renodiagram.gif' alt='Feeder Operation' id="centered"/></p>
<h2>Marketing</h2>
<p>From a marketing standpoint the web-enabled, automated feeder could be sold as a service. Consider a potential customer looking for a way to fill his horse stalls. He buys several feeders and subscribes to the online service. He then distributes feeders to paying clients who want to care for their own horses. This fee provides the clients with a horse feeder and all the remote accessibility features.</p>
<h2>Conclusion</h2>
<p>This project was both fun and educational. It also proves that such a system is viable and practical for a segment of the horse-owning population. Having an excellent team also helped to make this an enjoyable experience. Our test subject, Reno, also thought highly of our project.</p>
<h2>Appendix</h2>
<p>Many of these images were created for documentation purposes. The help section of Reno Server provided these screen captures with a thorough explanation of each. The feeder itself was also well documented.</p>
<ul>
<li><a href='http://www.unsaturated.com/wordpress/wp-content/data/renofeeder.gif' title='Feeder Hardware'>Feeder Hardware</a>: The feeder hardware was donated to our group from a local horse owner and engineer located in Sanford, FL. We were very grateful because this gave us the necessary mechanical components and allowed us to focus on the computer engineering aspects of the project.</li>
<li><a href='http://www.unsaturated.com/wordpress/wp-content/data/reno.jpg' title='Reno'>Reno</a>: Our sponsor allowed us to visit his horse, which immediately became our group mascot.  It&#8217;s always good to meet the end user.</li>
<li><a href='http://www.unsaturated.com/wordpress/wp-content/data/renologin.gif' title='Login'>Login</a>: This page welcomes every user to the Reno Server.</li>
<li><a href='http://www.unsaturated.com/wordpress/wp-content/data/renoregistration.gif' title='Registration'>Registration</a>: This step is required to use the service.</li>
<li><a href='http://www.unsaturated.com/wordpress/wp-content/data/renouserpage.gif' title='User Page'>User Page</a>: Once the user has added a feeder to the system this page will display summary information.  The system allows <i>n</i> number of feeders per user, which is great for a stable. </li>
<li><a href='http://www.unsaturated.com/wordpress/wp-content/data/renofeedtimes.gif' title='Feed Times'>Feed Times</a>: Times are displayed and can be updated, deleted, or added to each feeder.  Quantity can be varied for each feeding time.</li>
<li><a href='http://www.unsaturated.com/wordpress/wp-content/data/renohistory.gif' title='Feed History'>Feed History</a>: All events are logged in the database.</li>
]]></content:encoded>
			<wfw:commentRss>http://www.unsaturated.com/projects/web-enabled-automated-horse-feeder/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Red Line Design Business Plan</title>
		<link>http://www.unsaturated.com/projects/red-line-design/</link>
		<comments>http://www.unsaturated.com/projects/red-line-design/#comments</comments>
		<pubDate>Sat, 04 Aug 2007 01:34:32 +0000</pubDate>
		<dc:creator>matthew</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.unsaturated.com/projects/red-line-design/</guid>
		<description><![CDATA[What happens if I create a company based on my fascination with logo design?  Writing this business plan during my MBA forced me to examine that idea from all angles.  Sometimes a hobby should stay a hobby, especially if it doesn't translate into a highly profitable business.]]></description>
			<content:encoded><![CDATA[<h2>I.	Executive Summary</h2>
<p><img src='http://www.unsaturated.com/wordpress/wp-content/data/redlinelogo.gif' alt='Redline Design logo' class="alignright" /></p>
<p>Red Line Design provides a professional, corporate image to individuals and businesses through creative tailored graphics, specifically, logo design.  The mission is to increase the prosperity of individuals and businesses with a corporate image that defines their identity and aspirations.  Red Line Design will support this service by starting as a part-time, home-based business.  It will operate as a sole proprietorship.</p>
<p>The graphic arts industry is full of business opportunities.  Roughly 90% are sole proprietorships or other businesses forms with less than ten people.  Orlando has 117 graphic design firms as of the 1997 Economic Census.  Florida is ranked fourth among all states with 848 firms.  Businesses of this kind are operating within a monopolistically competitive market.</p>
<p>Red Line Design will offer three services.  Basic Logo provides those services associated with logo design.  This level of service forms the core competency of Red Line Design.  Total Package provides customers all the basic logo design services and includes copyright procedures.  Total Package Plus provides all the previously mentioned features plus value-added marketing information relevant to the customer&#8217;s business and logo.  The services will be priced at $347, $415, and $519, respectively.</p>
<p>For its cost-effectiveness, the use of secondary marketing research has been the primary means of gathering information.  The objective of this research was not to obtain exact information to set-up a marketing plan.  Instead, the process is meant to avoid information that is completely wrong. The three marketing opportunities identified are (1) small businesses and individuals, (2) special interest groups, and (3) government contracts.  Through personal networking, these opportunities have had the most appeal and will be pursued by Red Line Design.</p>
<p>Trends in consumer preferences point toward simpler, minimalist logos.  This is good for an inexperienced startup, but the competition competes on a far greater range of products and services.  The promotion for Red Line Design is divided into three phases.  The first phase is a four-month pro bono period.  The second phase is focused on web site promotion and the use of Yellow Pages.  The third phase will be designed and implemented when the business has had sufficient time to mature.</p>
<p>Red Line Design will require an estimated $769 in startup expenses and capitalization.  Two sales forecasts have been created.  The best case forecast indicates revenues of $10,325 in the first year.  The worst case forecast indicates revenues of $5,341 in the first year.  This business has no plan to sell services on a credit basis.</p>
<p>Using the worst case sales forecast and calculating a twelve month profit and loss projection indicates net profit of $3,659 in the first year of operation.</p>
<h2>II.	General Company Description</h2>
<p>Red Line Design provides a professional, corporate image to individuals and businesses through creative tailored graphics.  The primary activity is logo design in a personal, yet professional manner.  The goal is to build a relationship with the customer.  By forming this relationship and &#8220;holding the customer&#8217;s hand&#8221; through the graphic design process, trust is established.  The part-time nature of Red Line Design supports these highly service-oriented activities.</p>
<p>The Red Line Design mission is to increase the prosperity of individuals and businesses with a corporate image that defines their identity and aspirations.</p>
<p>There are two goals that drive this business.  The primary goal is to build solid relationships with individuals and businesses.  This is measured by customers that are completely satisfied with their logo and the service they receive.  In the first year of business, the goal is to build these quality relationships through pro bono work and word-of-mouth.</p>
<p>The secondary goal is to expand the scope of this business.  Logos are the centerpiece of a corporate image.  Logos are on stationary, vehicles, advertisements, products, basically everywhere.  The part-time nature of this business lends itself to service-orientation where the focus is quality, not volume.  Thus, the secondary goal will be achieved by leveraging logo design into more general graphic services.</p>
<p>Marketing logo design is a process of finding relationships that will enable this business to prosper.  The key marketing strategy is to focus on long-term relationships without sacrificing short-term profits.  The target markets are small businesses and special interest groups, preferably those with good growth potential.</p>
<p>The graphic arts industry is full of business opportunities.  Roughly 90% are sole proprietorships or businesses with less than ten people.  For a complete industry analysis, refer to <a href="#APPENDIXA">Appendix A</a>. Orlando has 117 graphic design firms as of the 1997 Economic Census.  Florida is ranked fourth among all states with 848 firms.  Businesses of this kind are operating within a monopolistically competitive market.  The key is to differentiate with service, as experience is not Red Line Design&#8217;s strong suit, yet.</p>
<p>The core competency of Red Line Design will be customer service.  A key component of this will be a customer database.  It will contain a record of their transactions and archival material important to maintaining their relationship with Red Line Design, including graphics and any other design materials.  If requested, a CD-R of their delivered product can be reproduced and shipped at a moments notice.  Technology only supports the core competency.</p>
<p>Red Line Design will be established as a sole proprietorship.  This will allow the greatest flexibility in its evolution to a graphics design provider that integrates its product.</p>
<h2>III.	Products and Services</h2>
<p>Red Line Design is focused on logo design in a three-tier approach.  The first tier provides the fundamental services associated with designing a logo to fit the customer&#8217;s needs.  The second tier is focused on business needs, such as copyrighting and support materials.  The third-tier provides a bit of marketing analysis relevant to each customer&#8217;s business.  Some customers may want the minimum transactions required to obtain a unique piece of artwork.  Other customers want a &#8220;total package&#8221; of artwork and the minimum legal paperwork that supports it.  These three tiers of ervice are outlined below.</p>
<p><a href='http://www.unsaturated.com/wordpress/wp-content/data/redlinetarget.gif' title='Red Line Target'>This illustration shows the business model</a> that Red Line Design will use when starting and expanding into the graphic arts industry.  The three product tiers listed after the illustration all fit within the core of the business model.  Supporting Materials such as letterhead, business cards, web site design, and ad design round out the middle segment.  The final layer of the business model, Corporate Image, suggests that Red Line Design will have all the components necessary to provide a business a complete corporate image.  This includes all the aforementioned products and services, plus in-house printing.</p>
<p><b><u>Basic Logo</u></b><br />
This provides the customer with only those services associated with logo design.  This level of service forms the core competency of Red Line Design.  The degree of service also depends upon the expertise of the customer.  An informed customer has probably solicited artistic services before and is somewhat familiar with the design process.  An uninformed customer has minimal knowledge about what he wants and, essentially, does not know what to ask for.  However, the following process outlines the logo design process that every customer will receive.  Every logo will be created to customer&#8217;s wants and needs, but be flexible for various mediums (online, low-quality faxes, letterhead, and other print media).</p>
<ol>
<li><i>Evaluation of business identity.</i>  The customer is asked to complete a brief survey of their business which will convey critical information to the logo designer.  The most important aspect of logo design is that the image fits the unique characteristics of the customer&#8217;s business.  Successful evaluation in the first phase of design can eliminate unnecessary redesigns in later steps.  This step is part of the service focus that will differentiate Red Line Design.  Through a friendly, open dialogue and discussion, the customer becomes an active part of the process.</p>
<p>Some customers may not want this &#8220;hand holding&#8221; if they are more informed about the design process.  The focus of this process is to determine the customer&#8217;s exact needs.  It&#8217;s possible that the customer does not fully understand the scope of their business and cannot express the abstract ideas needed to form a logo.  Red Line Design will not only focus on what gets delivered to the customer, but why it&#8217;s important to their company&#8217;s image. This is time well invested because knowing the customer&#8217;s business intimately could lead to future graphic design jobs.
</li>
<li><i>Generating first-run alternatives.</i>  The designer uses the completed evaluation provided by the customer, combined with other communications (such as phone calls, e-mails, etc.) to generate a set of four alternative designs.  These designs are then sent to the customer for review and each logo is fully discussed.  Once again, the focus is on the customer needs and wants and not mere transactions (accept/reject logo).  Accompanying each logo will be a brief description of &#8220;what works.&#8221;  An example is in <a href="#APPENDIXF">Appendix F</a>.  This will convey to the customer what aspect(s) of their company is (are) being represented by the logos.
<p>The customer will select which logos he likes the best and why.  Gleaning more information similar to that in the first step will help make future revisions more in-tuned with the customer&#8217;s desires.  The dialogue now becomes more graphical oriented and shifts away from what their business does, and now focuses on what looks good.  Colors, shapes, sizes, typefaces, and layout are redesigned for the next revision.
</li>
<li><i>Generating second-run alternatives.</i>  The designer has gained important insights that will help render future designs.  The next step is to generate another set of four logos that satisfy the stated needs of the customer.  Iterations are kept to a minimum and the customer sees only a complete set of quality logos, not a vast array of low-quality sketches.
</li>
<li><i>Additional renderings and final deliverable.</i>  This step completes the process of logo design.  Colors are finalized, tweaking is completed, and the logo is prepared for delivery. A CD-R will be given to the customer containing all renderings and the final logo in various electronic formats.  Another service provided to Red Line Design customers is a secure online account with all of the transactions and deliverables mentioned above.
</li>
</ol>
<p><b><u>Total Package</b></u><br />
In addition to Basic Logo, the customer can opt for the Total Package that includes the basic logo design and copyright procedures for the designed logo.  Businesses that wish to go the next step in logo design can have their final logo registered with the United States government.  Red Line Design will act as a proxy and complete the necessary paperwork.  Ownership of the logo will be registered in the customer&#8217;s name.</p>
<p><b><u>Total Package Plus</b></u><br />
Customers seeking a more robust solution for their business will find this package attractive.  It can satisfy the needs of a startup that doesn&#8217;t have time to learn the specifics of copyright laws or procedures.  A simple, plain English paper will summarize for the customers the legal rights that they are now entitled (with their copyright) and what implications that has for their business.</p>
<p>The Total Package Plus does not provide a logo and a paper that says the customer owns the logo. The product differentiation is that each customer will receive a quality logo with copyright information specific to that customer and his business.  For example, if the customer owns an interior design business, he would receive a summary report that relates this copyright information to his specific industry and business.</p>
<p><b><u>Pricing</b></u><br />
The actual cost of goods sold cannot be determined until market testing is complete and an appropriate cost structure determined. This analysis is described in the pricing section of the marketing plan and in greater quantitative detail in <a href="#APPENDIXD">Appendix D</a>.</p>
<h2>IV.	Marketing Plan</h2>
<p>This section details the marketing research, planning, and strategies used to better understand the environment that Red Line Design will be operating.  For its cost-effectiveness, the use of secondary marketing research is the primary means of gathering information.  The objective of this research was not to obtain exact information to set-up a marketing plan.  Instead, the process is meant to avoid information that is completely wrong.</p>
<p>The objective of Red Line Design is to focus marketing on segments that will maximize profit while simultaneously upholding the marketing concept.  That is, Red Line Design will provide a service that focuses on the needs/wants of the target markets and deliver better value than the competitors.  This marketing concept leads to sustainable profits.</p>
<p><b><u>Market Opportunities</b></u></p>
<ol>
<li><i>Small businesses and individuals.</i>  This market includes small businesses that also include smaller divisions of companies that require outsourced graphics needs.  This market also includes individuals that are seeking a graphic designer for purposes unrelated to business. An example of an individual seeking this service would be a boat owner that requires a custom logotype for his boat.
</li>
<li><i>Special interest groups (SIGs).</i>  This market primarily consists of small organizations or clubs that require an image to enhance their visibility.  The density of interest groups is also higher around populated areas such as universities and colleges.  Because most interest groups have a diverse constituency, this also opens great possibilities for networking.  Political parties are another form of an interest group.  Although, the political market is highly cyclical-peaking prior to election periods.
</li>
<li><i>Government contracts.</i>  The county and city government offers another market for profit. The Orange County government makes available all requests for proposals (RFP&#8217;s) via its web site.  Winning bidders to the government make documents available that describe the scope of their work.  If this includes graphic design relevant to logos, then that work could be subcontracted.  The local government also has buying centers that may seek work without the red tape associated with formal RFP&#8217;s.
</li>
</ol>
<p><b><u>Economics</b></u><br />
The graphic arts industry is supported mainly by sole proprietors and is, thus, highly privatized. Market research was conducted on this industry to determine the broad economic factors that can influence startup business like Red Line Design.  <a href="#APPENDIXA">Appendix A</a> contains details related to conduct of firms, the structure of the industry, and performance.  Also detailed are the barriers to entry, share of market by the largest firms, and geographic distribution (domestically and locally). Another discussion which is included is the nature of competition in the graphics arts industry, investment behavior, and research and development.</p>
<p><b><u>Current Demand and Growth in Target Markets</b></u><br />
Within each market is a unique opportunity for growth and stable demand.  A large influence is the current state of the economy.  Each market has undergone changes in recent years both in demand and the opportunity for growth.</p>
<ol>
<li><i>Small businesses and individuals.</i>  This market seems to be growing faster as the turnover rate of jobs has increased.  As more people become alienated by conglomerate employers, small businesses have become more attractive.  Small businesses provide part of the demand for logos.  If smaller companies wish to compete with their larger counterparts, then a professional corporate image is necessary.  As larger businesses layoff more people, the same trend can be expected.  Individuals that seek customized logos fluctuate in demand with the market for luxury goods like boats.  Right now, the economy is floundering and demand is shrinking as a result.
</li>
<li><i>Special interest groups.</i>  This market has changed over the years.  An example is Tau Beta Pi (TBP), the National Engineering Honor Society.  TBP has recently hired a person at their national office devoted exclusively to &#8220;image.&#8221;  That is, high-profile organizations, societies, and clubs are realizing that perception (image) is a big part of their success. Procuring logos are means to achieve that end.  In fact, TBP underwent a logo redesign as the heart of their new image campaign.  Good growth is expected for this market.
</li>
<li><i>Government contracts.</i>  The government activity that demands logo design is usually associated with convention areas.  An example is the Orange County convention that recently submitted a RFP for a complete graphics design package.  The total one year contract was worth approximately $105,000. Growth is largely determined by the economy and political party, where spending on image is concerned.  There is limited growth but low, stable demand in this market.
</li>
</ol>
<p><b><u>Strengths, Weaknesses, Opportunities, and Threats</b></u><br />
The following analysis lists the unique situations relevant to Red Line Design.  Strengths and weaknesses are internal to the business, opportunities and threats are external to the business.</p>
<p><i>Strengths</i></p>
<ul>
<li>Proprietor has a bachelor&#8217;s degree in computer engineering and will soon earn an MBA</li>
<li>Total control over business operations</li>
<li>Extensive web development experience (five years)</li>
<li>Low (near zero) overhead for conducting business at home</li>
<li>Good network of persons in target markets</li>
<li>Risk of default is non-existent because no debt financing is used for startup expenses</li>
<li>Shutdown expenses are minimal because invested capital is negligible</li>
<li>Business is derived from a hobby-the goal is to first extend that hobby to test market (only cost is the time value of money), then shift focus to profit-making if test marketing is successful</li>
<li>Zero commute time to work</li>
<li>Total commitment to business; no conflicts of interest</li>
</ul>
<p><i>Weaknesses</i></p>
<ul>
<li>Negligible portfolio of logo design experience</li>
<li>No public awareness of business</li>
<li>Marketing, such as promotion and placement, may be difficult</li>
<li>Part-time businesses have a slight disadvantage over full-time businesses; operating hours may conflict with customer&#8217;s</li>
<li>No real-world experience with business startups</li>
<li>True cost of service cannot be determined until a complete logo is designed, delivered, and evaluated</li>
<li>Cost structure may not support some customers that demand higher relationship-based interaction</li>
<li>Pricing of service cannot be determined until cost of service and demand are determined</li>
<li>Final location and hours of operation are still undetermined</li>
<li>No supporting staff; a one man operation</li>
</ul>
<p><i>Opportunities</i></p>
<ul>
<li>SIGs are a growing market segment that require logo design</li>
<li>Logos are becoming more simplistic and minimal-easier to design for inexperienced startup businesses</li>
<li>Competitors will have difficulty seeing Red Line Design strategy or even its inception</li>
<li>Web site will provide a front-end comparable to much larger firms</li>
<li>Perceptions of the business can be formed as none currently exist</li>
<li>Proprietor is a current student of UCF able to capitalize on easy access and communication with other students and SIGs</li>
<li>Newspapers provide quick access to new business names and contacts</li>
</ul>
<p><i>Threats</i></p>
<ul>
<li>Demand may outstrip time allowances</li>
<li>Graphic design firms that provide a more complete solution (printing on various media)</li>
<li>Freelance artists that have extensive portfolios of logo design</li>
<li>In a tough economy customers demand unrealistic pricing, thus deemphasizing a business focused on customer relationships</li>
<li>War with Iraq could complicate an already weak economy</li>
<li>Balance of family and business activities</li>
<li>Larger design firms and professional freelance artists</li>
</ul>
<p><b><u>Trends in Consumer Preferences</b></u><br />
The evolution of logo design points to simpler, minimalist logos.  This trend translates to less &#8220;artistic&#8221; logos and to more abstraction.  One possible explanation is the diverse mediums that logos must traverse while still maintaining their identities:  facsimile, internet, print, and TV.  One possible result is homogenization of product offerings, making the industry monopolistically competitive.  This is discussed in more detail in <a href="#APPENDIXA">Appendix A</a>.  The goal is to buck the trend and provide products and services that are matched feature-for-feature but that provide a higher level of benefits.</p>
<p><b><u>Product</b></u><br />
The Products/Services section described products and services from the perspective of Red Line Design.  However, the usefulness is determining how the customer might view those services. The following section provides a <a href='http://www.unsaturated.com/wordpress/wp-content/data/redlinebenefits.gif' title='Red Line Benefits'>detailed breakdown of each product and service feature</a> and how the customer can derive greater utility (benefits) from Red Line Design than the competition.</p>
<p>Now that the features and benefits have been discussed, it is helpful to understand the post-purchase services available.  Once the sale has been completed, the customer can securely obtain his/her logo from the Red Line Design web site for up to six months from time of sale.  Anytime after the services are rendered, the customer can request another CD-R containing the original documents; this is available for $8.00, including shipping (with delivery confirmation) and handling charges.</p>
<p>Going above and beyond (offering an augmented service) is a part of Red Line Design.  If a customer is dissatisfied with the service or logo, a basic referral program will be in place to offer a suitable alternative to Red Line Design.  However, if a customer is satisfied and desires a greater level of service than Red Line Design can provide, then the referral program will strive to service these customers, too.  These different types of customers will be explained in the next section. The referral program is intended to boost associations with local graphic design/printing businesses and form networking opportunities.</p>
<p><b><u>Customers</b></u><br />
There are three customer types that Red Line Design will serve.  The characteristics they all share are based upon the minimum service structure and business model established for Red Line Design.  The basic service provided is logo design.  Depending upon the customer&#8217;s desired level of service, they are classified according to three possible outcomes, thus, three customer types. <a href='http://www.unsaturated.com/wordpress/wp-content/data/redlineflowchart.gif' title='Red Line Flowchart'>They are illustrated by this diagram</a>.  All customer segments augment the Red Line Design portfolio, the most important step for a startup design business.</p>
<ol>
<li><i>Low Networking, Portfolio Builders.</i>  These customers desire the lowest level of service, the Basic Logo.  They will be small business owners, individuals, or special interest groups that have a vested interest in simplicity.  The name of this customer type has implications for Red Line Design-offering a low level of potential networking for additional logo design jobs, while simultaneously building Red Line Design&#8217;s portfolio of work.  Special interest groups and individuals have limited interest in copyrights.  The design aspects are paramount-image is the main value.  They will most likely see the copyright as an unnecessary added expense.
</li>
<li><i>High Networking, Portfolio Builder.</i>  These customers include small businesses and government contracts.  They may consider the copyright optional but express a delayed interest.  Thus, because the customer does not have an immediate interest, the potential for networking is higher than those customers who would terminate the relationship after obtaining the logo.
</li>
<li><i>High Networking, Portfolio Builder, Additional Services.</i>  Customers that desire the full range of services are likely to request additional services such as printing.  This is commensurate with a larger graphic design firm, but not beyond the scope of Red Line Design&#8217;s service offering.  As mentioned earlier, part of the post-purchase service is a referral program that refers customers to other firms that can provide printing, and other advanced graphic design services.  The intent is to build a network of businesses that can lead to more of this type of customer.  A small business interested in building its corporate image and developing a strong presence is likely to be the most profitable type of customer.
</li>
</ol>
<p><b><u>Competition</b></u><br />
The design firms most visible to the community, with the most extensive portfolio, and with a well established business network will be the main source of competition.  As stated in Appendix A, there are approximately 117 firms within the Orlando area.  This information is six years old but is not likely to have changed drastically.</p>
<p>Red Line Design is competing with a set of businesses that provide (mainly) a diverse offering of services:  printing, web design, logo design, brochures, business cards, posters, illustration, annual reports, direct mail, photography, and various graphic-oriented documents.  A complete listing of local Orlando graphic design business is in <a href="#APPENDIXB">Appendix B</a>.</p>
<p>Most of those companies listed will compete on a far greater range of products/services.  Many of the competencies listed in the previous paragraph highlight these aspects.  However, Red Line Design will only focus on logos and, to excel at that, must focus intently on beating these jack-of-all-trade businesses.  None of the companies with larger advertisements have listed copyright registration as a unique feature.</p>
<p><b><u>Niche</b></u><br />
Red Line Design&#8217;s niche will be to serve business startups that have specific needs for a logo and want little more except a well-designed, copyrighted, original piece of artwork that identifies their business.</p>
<p><b><u>Promotion</b></u><br />
Spreading the word about Red Line Design involves a three phase plan:</p>
<ol>
<li><i>Portfolio Building with Pro Bono Design.</i>  Lawyers do it and so can designers.  The premise for Phase I is simple.  The easiest way to build a reputation among numerous people with fewer negative consequences is by volunteering time and effort.  The pro bono effort will first focus on local area special interest groups, volunteer organizations, and small businesses.  These are the main market opportunities identified earlier (government organizations may have little interest in pro bono designers with little experience).  The key is to leverage the massive network of these customer types from within UCF.  There is the small business incubator and a mass of clubs and organizations.  Building the portfolio is the key to obtaining customers willing to pay.  Advertising is simply a matter of contacting individuals directly (cold calling/e-mails) and stating my proposition quickly and succinctly.  &#8220;Free&#8221; always gets attention.  Another tactic is a one-time advertisement in the local newspaper that says Red Line Design will provide 20 free logos to help build its portfolio.  The tactic is designed to build awareness.  If a list of 20 customers is not queued, then another advertisement must be placed.  During this phase, Red Line Design is not yet declared a true business, simply a free design service.
</li>
<li><i>Yellow Pages and RedLineDesign.com.</i>  Phase II will utilize the fresh portfolio created from Phase I and build upon it.  The web site will provide a 24-hour online showcase for these original logos.  Further, the web site will emphasize the pro bono work-highlighting the entrepreneurial attitude of Red Line Design and providing a profile of each logo.  This promotional phase marks the official opening of Red Line Design.  To accompany the opening, Red Line Design will submit its small ad to the local yellow pages (including web site address and phone number).  Refer to <a href="#APPENDIXB">Appendix B</a> for a list of the current yellow page entries under &#8220;graphic designers.&#8221;  Again, costs remain a key concern for this small, part-time business.  New businesses are announced in the Sunday newspaper.  These are prime candidates for new business during Phase II of Red Line Design&#8217;s promotion strategy.  The strategy is proactive and seeks new businesses that could potentially need a professional logo combined with copyright services.  A business (and personal) network developed from Phase I will help to augment these efforts.
</li>
<li><i>Referrals and Full-time Business Opportunities.</i>  The final phase, Phase III, can only be attained if the demand for logos is exceeding the part-time hours of Red Line Design.  This promotional phase can only be accurately assessed after Phase II has begun.  There are several certainties, however, that cannot be overlooked.  The costs for promotion should increase due to increased business activity, and the referral program must actively complement any inadequacies of Red Line Design&#8217;s service.  This referral program could become part of Phase III promotions, at which time Red Line Design should investigate a diversified product/service offering comparable to other graphic design firms.
</li>
</ol>
<p><b><u>Promotional Budget</b></u></p>
<ol>
<li><i>Portfolio Building with Pro Bono Design.</i>  The costs associated with this step are only those incurred by the promotional ad in the newspaper.  Total budget should be $200 per year.
</li>
<li><i>Yellow Pages and RedLineDesign.com.</i>  Costs have increased significantly from Phase I due to the yellow pages and the costs associated with maintaining the web site.  The costs for the web site are a constant $95 per year.  Since RedLineDesign.com will be used almost exclusively for promotion and portfolio demonstration, all costs associated with web site maintenance will be allocated to the promotional budget.  Total budget should be $400 per year including web site and yellow pages.
</li>
<li><i>Referrals and Full-time Business Opportunities.</i>  This budget cannot be anticipated until Phase II is well under way.
</li>
</ol>
<p><b><u>Pricing</b></u><br />
The services offered by Red Line Design will follow a <a href='http://www.unsaturated.com/wordpress/wp-content/data/redlinepricing.gif' title='Red Line Pricing'>three-tier approach</a>.  Each level of service is incremental to the previous.  A derivation of pricing is shown in <a href="#APPENDIXD">Appendix D</a>.  The opportunity cost of running the business was weighed against several factors to determine the costs (and, therefore, prices) of doing business part-time.</p>
<p>Pricing is not critical at this stage of business development.  The key to success is to determine the true costs of these activities while developing the portfolio on a pro bono basis.  Before Phase II of promotion is launched, prices will be adjusted according to the true costs of providing service.</p>
<p><b><u>Proposed Location</b></u><br />
Location is not critical to the operations of Red Line Design.  It will start as a part-time business and consume negligible space in an apartment.</p>
<p>If the business progresses to a full-time operation then more space will be allocated from the apartment.  In the early stages of development, location will have little or no impact on customers, as most transactions will occur online, on the phone, or over fax.  This fits the image of a small, fast-moving startup.</p>
<p><b><u>Distribution Channels</b></u><br />
Services will be distributed directly to the consumer with no middle-man.  This will be accomplished through direct mail (delivering the CD-R and proof sheets), e-mail (to speed the logo review process), and fax (so the customer may communicate at any time during the day).</p>
<p><b><u>Sales Forecast</b></u><br />
<a href='http://www.unsaturated.com/wordpress/wp-content/data/redlinesales.gif' title='Red Line Sales'>These tables show the 12-month sales projections</a> for Red Line Design.  The top table shows the best case scenario.  The bottom table shows the worst case scenario.  In both situations, it is assumed that 20 logos will be produced during the Phase I promotional period.</p>
<h2>V.	Operational Plan</h2>
<p>This section explains the operations expected during a week of business.  These aspects are anticipated and may change once the business becomes fully functional (during Phase II of promotions).</p>
<p><b><u>Service</b></u><br />
Because Red Line Design is a home-based business, it will be subject to a domestic schedule.  Time will permit on the weekends and some during the evenings.  The project-oriented nature of this business lends itself to irregular hours.  Customers can expect timely delivery of logos to their fax and/or e-mail.  Reaching Red Line Design for a phone conference during daytime hours is possible.</p>
<p>A short survey will follow each successful sale, enabling a feedback loop to Red Line Design.  A continual process of improvement will be used to eliminate unnecessary aspects of conducting business and areas needing enhancement.</p>
<p><b><u>Location</b></u><br />
Only a phone, fax, computer, and internet connection are necessary.  These items consume minimal space.  Expensing the square footage used exclusively for business use would yield only a negligible tax deduction.  Part-time operations are conducive to this small scale business endeavor.</p>
<p><b><u>Legal Environment</b></u><br />
Licensing requirements are necessary when starting a business.  An occupational license can be obtained from the Orange County government for a minimal fee.  Fees for registering a fictitious business name are also required.  The name Red Line Design must be registered and announced in the Sunday newspaper as a formal business opening.</p>
<p>A copyright for Red Line Design&#8217;s logo will be obtained via the U.S. government.  Obtaining a copyright only costs $30.  This will ensure the security and longevity of Red Line Design&#8217;s original logo artwork.</p>
<p><b><u>Credit Policies</b></u><br />
Red Line Design has no plan to sell services on a credit basis.  Perhaps, if future level of operation permits, this will become a more relevant issue.</p>
<h2>VI.	Startup Expenses and Capitalization</h2>
<p><a href='http://www.unsaturated.com/wordpress/wp-content/data/redlinestartup.gif' title='Red Line Startup'>These startup expenses</a> have been estimated using current market averages for products found at online vendors.  The acquisition costs are negligible and will be paid as one-time expenses with funds provided by the sole proprietor.  The contingencies are non-specific costs that cannot be anticipated.  They are calculated by taking 20% of the total of all other startup expenses.</p>
<h2>VII.	Financial Plan</h2>
<p><b><u>Twelve Month Profit and Loss Projection</b></u><br />
This brief analysis is the twelve <a href='http://www.unsaturated.com/wordpress/wp-content/data/redlinepl.gif' title='Red Line Profit and Loss'>month profit and loss projection</a> for Red Line Design.  The first four months of revenue are blocked off because this is Phase I of promotion; everything for the first four months is pro bono.  Most expenses have been estimated.  Telephone, utilities, and web server expenses are based upon expected usage.  The sales revenue for each month is calculated from the sales forecast in the Marketing Plan section; the values are from the worst case scenario.</p>
<h2><a name="APPENDIXA"></a>VIII.	Appendix A - Industry Analysis</h2>
<p><b><u>Structure of the Graphic Arts Industry</b></u></p>
<p><i>Industry Overview</i><br />
Using the North American Industry Classification System (NAICS), the graphic design services industry is located in the 541430 subsection.  The industry name &#8220;graphic arts&#8221; is also commonly cited and will be used in this report interchangeably with the term &#8220;graphic design.&#8221;  A complete listing of indexed names is in <a href='http://www.unsaturated.com/wordpress/wp-content/data/redlinetable1.gif' title='Red Line Table 1'>Table 1</a>.  This business will focus on the &#8220;corporate identification design service.&#8221;  In short, this business will design logos for other businesses.  To quote the U.S. Census Bureau:</p>
<blockquote><p>This industry comprises establishments primarily engaged in planning, designing, and managing the production of visual communication in order to convey specific messages or concepts, clarify complex information, or project visual identities.  These services can include the design of printed materials, packaging, advertising, signage systems, and corporate identification (logos).  This industry also includes commercial artist engaged exclusively in generating drawings and illustration requiring technical accuracy or interpretative skills.<sup>1</sup></p></blockquote>
<p><i>Number of Firms (Domestic)</i><br />
The graphic arts industry has businesses spread across the entire United States.  However, the greatest concentration is in California, with over 2000 firms.  The figures in <a href='http://www.unsaturated.com/wordpress/wp-content/data/redlinetable2.gif' title='Red Line Table 2'>Table 2</a> are from the U.S. Census Bureau&#8217;s 1997 Economic Census.  The number of firms has, no doubt, increased since the census was taken.  The growth of this industry will be discussed in a later section.  The total number of U.S. firms is 14,631.  On a local note, Orlando had 117 establishments at the time of the census.<sup>2</sup></p>
<p><i>Geographic Extent</i><br />
The graphic design industry is represented in all 50 states.  Of the top-ten states with established firms, five are east coast states.  The least number of firms is in Alaska.  California, with the most design firms, has more than the bottom 29 states combined.</p>
<p><i>Nature of Competition</i><br />
This industry operates within a monopolistically competitive market.  The nature of graphic design is to convey a message.  Anyone can offer that service but firms focus on differentiating. The competitive advantage is whose firm has the most effective, creative designers to translate that message.  The ease with which businesses enter the market is also a characteristic of this form of competition.<sup>3</sup></p>
<p>There are a large number of relatively small firms.  This is another trait of monopolistic competition.  Indeed, over half of the workers in this industry are self-employed, which is seven times the proportion in other related professional occupations.<sup>4</sup></p>
<p><i>Share of Market by the Largest Firms</i><br />
The largest firms in this industry capture market in terms of quantity and the diversity of their service.  They claim market share with the range of substitutes they can provide.  If a business wants a total package (i.e. a completely new corporate image), they want everything provided by one firm.  This firm often has greater physical resources, a larger staff, and is capable of providing everything necessary.  Private businesses hark back to the old days of tradesmen and specialized skills.  They may have greater talent, but can&#8217;t provide the low-rate &#8220;chop shop&#8221; capabilities of a larger firm, which can provide high quantities of graphics at low prices, undercutting the competition.</p>
<p>Demand curves and Lerner indices are not available for this industry.  Although, specialized marketing businesses such as TrendWatch Graphic Arts provide such detailed information&#8211;at a price.  Their current report sells for a mere $20,000.<sup>5</sup>  Freelance designers and small sole proprietor businesses simply can&#8217;t obtain this information.  The small number of public graphic design firms complicates this fact.</p>
<p><i>Past or Existing Barriers to Entry</i><br />
Entering the graphic design market is relatively easy.  Most freelance designers, sole proprietors, and other small-sized businesses can set-up without the fixed costs associated with other business (such as restaurants).  The greatest barrier is the loyalty of previous customers.  In logo design, as with other graphic arts, the future clientele is based upon previous clientele.  Designers must build a portfolio.  Naturally, designers with greater skill often have larger portfolios.  They can generate business easier than an amateur.  To summarize this barrier is to say it&#8217;s all about reputation.</p>
<p><i>Extent of International Competition</i><br />
There are graphic design services across the globe.  However, the nature of graphic design lends itself to individual work.  Firms that are very large (> 1,000 employees) but do not have an in-house graphics department may seek design services internationally.</p>
<p><b><u>Conduct of Firms</u></b></p>
<p><i>Pricing Behavior</i><br />
Pricing for graphic design is largely a measure of the artist&#8217;s portfolio.  Charging by hourly rates or by project is the discretion of the designer.  Project-based pricing is more common on the Internet among design firms.  Hourly rates apply to employed workers of larger firms.  For September 2002, the average hourly rate for graphic design was $59.49/hour.  Historical rates for graphic design are found in <a href='http://www.unsaturated.com/wordpress/wp-content/data/redlinetable3.gif' title='Red Line Table 3'>Table 3</a>.  Currently, desk top publishing (DTP) is at $53.62/hour, while web site design reached $58.21/hour.<sup>6</sup></p>
<p>Mark Fertig, a professor of graphic design at James Madison University says, &#8220;The money&#8217;s not as good for me online.  I&#8217;ve had to cut my prices.&#8221;<sup>7</sup>  Finding work on freelance web sites is another method common to graphic designers.  Much like bidding on eBay, the winning contract for a logo design or other graphic design, goes to the lowest bidder.</p>
<p><i>Research and Development Activities</i><br />
The newest research in graphic design is credited mostly to the software programmers. Although, graphic designers utilize the newest graphic software, they are usually the ones to submit bug reports and other suggestions to programmers.  This feedback loop is common to most areas of design.</p>
<p>Graphics software is usually bundled with other DTP titles.  The genre of web graphics, DTP, and photo editing software titles are lending themselves to a broader population of PC/Mac users.  The progress made by software designers towards more usable software combined with lower prices, has opened the graphic design industry to more lay people.  This is opening the market to a slew of people without formal graphic design education.</p>
<p><i>Investment Behavior</i><br />
As most graphic design firms are private, investments are usually by the owners.  Since more than half of graphic designers are self-employed, startup costs are minimal, and entry barriers are minimal, the nature of the field lends itself to working at-home.  However, the word &#8220;printing&#8221; is usually found with the word &#8220;graphic design&#8221; when searching the Internet.  The two search phrases are synonymous because printing often requires skills common to graphic design.</p>
<p>The investment in printing sometimes can affect graphic design.  Robert H. Rosen of RH Rosen Associates, Inc., a graphic design consultancy, says, &#8220;Financial services providers, which only two years ago were showering the printing industry with funding options, have turned down the lending spigot.&#8221;  He adds, &#8220;While a lot of companies like lending money to printers, they&#8217;re considerably more cautious today because of the drop in resale value of equipment, the primary source of lending collateral.&#8221;<sup>8</sup></p>
<p>Lenders are more cautious of graphic design firms that require heavy machinery for printing. For other graphic arts firms with little more than creativity, the collateral is almost non-existent.</p>
<p><i>Non-Price Competition</i><br />
This form of competition is most visible in advertising.  Logo design firms and graphic arts companies commonly advertise on the Internet.  Very few graphic design firms seem to advertise in the phone book.  Thumbing through the yellow pages under the word &#8220;graphic,&#8221; yields only a few businesses.</p>
<p>In a 2000 report by the Internal Revenue Service, they classify sole proprietorship tax returns by the NAICS industries.  Those industries are then categorized with line items, including advertising.  However, the 541430 industry is only broadly referenced as &#8220;other miscellaneous services&#8221; under the broader 54 NAICS code for &#8220;professional, scientific, and technical services.&#8221; Very generally, advertising accounted for 5.2% (124,414/2,396,565) of cost of sales.<sup>9</sup></p>
<p><b><u>Performance</u></b></p>
<p><i>Profitability of Industry/Firms</i><br />
Aggregate information on profitability is not readily available.  The sheer number of private firms to public firms is enormous.  However, a national survey by howdesign.com may shed some light on the industry.  The average national salary for graphic designers in April 2002 was $45,375.  For the southern region of the U.S., including Florida, the average dropped to $40,453.<sup>10</sup>  Discerning the profitability on an industry-wide basis is not possible without more information.  However, the compensation of workers provides a tolerable insight to how well the industry is doing. The Bureau of Labor Statistics writes in its Occupational Outlook Handbook that, &#8220;artists employed by…design firms generally work a standard 40-hour week.&#8221;<sup>4</sup>
<p><i>Innovation</i><br />
Much like research and development, the innovation of an industry is dictated by the success (or failure) of new technology.  For graphic design, PC equipment that was prohibitive in price is now at reasonable levels.  Not only hardware but software has decreased in price.  Very little separates what PC technology is available to the small-business owner and a large business owner.  However, heavy metal equipment associated with printing is depreciating very rapidly; the side effect is a glut of old technology.</p>
<p><i>Growth</i><br />
According to a November 2001 article in <i>Monthly Labor Review</i>, there will be &#8220;strong employment and output growth.&#8221;  Jobs are expected to increase from 2000 to 2010 from 2.3 million to 3.3 million.<sup>11</sup>  The Bureau of Labor Statistics claims that, &#8220;Employment of artists and related workers is expected to grow as fast as the average for all occupations through the year 2010.&#8221;4 A December 2001 report by <i>Graphic Arts Monthly</i> cited that &#8220;economic conditions&#8221; was the top business challenge, adding that, &#8220;creative firms don&#8217;t seem abundantly optimistic about the future.&#8221;<sup>8</sup></p>
<h2><a name="APPENDIXB"></a>IX.	Appendix B - Omitted from Online Version</h2>
<h2><a name="APPENDIXC"></a>X.	Appendix C - Gantt Chart</h2>
<p>The <a href='http://www.unsaturated.com/wordpress/wp-content/data/redlinegantt.gif' title='Red Line Gantt Chart'>Gantt chart</a> indicates a few of the key activities of the first seven months of operation. The four-month period from July through October is Phase I of promotion, a pro bono design period used to test the market.  During that period, the business plan will be revised slightly, the web site developed, and various supporting documents will be finalized.  In fact, many aspects of the business plan will be revised over the life of the business.</p>
<p>Networking is an ongoing activity.  It&#8217;s not a scheduled event, per se, but requires sustained effort throughout the initial phases of the business.  Equally important is the final location of Red Line Design.  Being a part-time business, planning must account for daytime activities such as a full-time job.  Also, relocating from the Orlando area will require additional planning.  The post-graduation plans for the proprietor must be finalized.</p>
<h2><a name="APPENDIXD"></a>XI.	Appendix D - Pricing Structure</h2>
<p>The <a href='http://www.unsaturated.com/wordpress/wp-content/data/redlinepricing2.gif' title='Red Line Pricing 2'>total cost for each product</a> includes the wages associated with labor and the cost of materials. However, since this is used to pay the owner of the firm (the sole proprietor), it is not included as a cost when calculating the 12-month profit and loss statement; only the cost of materials is used when calculating the 12-month profit and loss (among other expenses). The 12-month profit and loss is shown in the Financial Plan section.  Demand will be predicted after the pro bono promotional period, costs better assessed, and the pricing will be adjusted accordingly.</p>
<h2><a name="APPENDIXE"></a>XII.	Appendix E - Omitted from Online Version</h2>
<h2><a name="APPENDIXF"></a>XIII.	Appendix F - Logo Portfolio Samples</h2>
<p><a href='http://www.unsaturated.com/wordpress/wp-content/data/redlineportfolio.gif' title='Red Line Portfolio'>These images</a> were selected from the <a href=http://www.unsaturated.com/category/graphics">graphics</a> page and &#8220;what works&#8221; commentary was added to discuss the effect each image achieves.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unsaturated.com/projects/red-line-design/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.316 seconds -->
