<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ChangeLog - Jon Chase&#039;s blog &#187; everysingleshot</title>
	<atom:link href="http://www.juliesoft.com/tag/everysingleshot/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.juliesoft.com</link>
	<description>solve niche problems, make users happy</description>
	<lastBuildDate>Sun, 18 Jul 2010 06:56:43 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ChangeLog #1: hacking, branding, and EC2</title>
		<link>http://www.juliesoft.com/2010/02/changelog-1-hacking-branding-and-ec2/</link>
		<comments>http://www.juliesoft.com/2010/02/changelog-1-hacking-branding-and-ec2/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 13:00:14 +0000</pubDate>
		<dc:creator>Jon Chase</dc:creator>
				<category><![CDATA[ChangeLog]]></category>
		<category><![CDATA[Every Single Shot]]></category>
		<category><![CDATA[everysingleshot]]></category>

		<guid isPermaLink="false">http://www.juliesoft.com/?p=271</guid>
		<description><![CDATA[Total earnings as of February 1, 2010: $0
I&#8217;ve been busy the last few weeks working on many of the things it takes to turn Every Single Shot from an idea into an actual product.  
The last few weeks of work have been really, really fun.  Not only have I been coding Every Single [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.juliesoft.com%2F2010%2F02%2Fchangelog-1-hacking-branding-and-ec2%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.juliesoft.com%2F2010%2F02%2Fchangelog-1-hacking-branding-and-ec2%2F" height="61" width="51" /></a></div><h3><strong>Total earnings as of February 1, 2010: $0</strong></h3>
<p>I&#8217;ve been busy the last few weeks working on many of the things it takes to turn <a href="http://www.everysingleshot.com">Every Single Shot</a> from an idea into an actual product.  </p>
<p>The last few weeks of work have been really, really fun.  Not only have I been coding Every Single Shot, I&#8217;ve also worked on branding and setting up hosting.  Every day is a different job and I&#8217;m really digging the variety.  Here&#8217;s what I&#8217;ve been working on lately&#8230;</p>
<h3>Development</h3>
<p>Where would a web app be without code, right?  I&#8217;ve spent a fair amount of time in <a href="http://www.grails.org/STS+Integration">my IDE</a> hacking away to get a basic app up and running (ESS is written in <a href="http://groovy.codehaus.org/">Groovy</a> and <a href="http://grails.org/">Grails</a>).  Here&#8217;s what I&#8217;ve got so far:</p>
<ul>
<li>Public facing marketing site: home page, tour, sign up, contact us</li>
<li>App pages: photo browser, photo uploader, account settings, and a few others</li>
</ul>
<p><strong>I&#8217;ve still got lots of functionality and features to add in &#8211; lots.</strong>  Security is going to be a big one coming up.  Another is integration with <a href="http://aws.amazon.com/s3/">Amazon&#8217;s S3</a> (more on that below).  Oh, and I also need to remember to add in actual features that users care about as well. <img src='http://www.juliesoft.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Here&#8217;s the current LOC (Lines of Code) count for ESS (from running <a href="http://grails.org/doc/latest/ref/Command%20Line/stats.html">grails stats</a>):</p>
<pre>+----------------------+-------+-------+
| Name                 | Files |  LOC  |
+----------------------+-------+-------+
| Controllers          |    14 |   803 |
| Domain Classes       |    15 |   266 |
| Jobs                 |     2 |    59 |
| Services             |     3 |   105 |
| Tag Libraries        |     4 |   205 |
| Groovy Helpers       |     3 |   116 |
| Java Helpers         |     3 |    81 |
| Unit Tests           |    29 |   374 |
| Integration Tests    |     1 |    40 |
+----------------------+-------+-------+
| Totals               |    74 |  2049 |
+----------------------+-------+-------+</pre>
<p>ESS&#8217;s code base is surprisingly small right now &#8211; that&#8217;s part of the beauty of Grails.  </p>
<h3>Branding with a graphic designer</h3>
<p><strong>This marks the first time that I&#8217;ve paid someone to help me with my business, and I couldn&#8217;t be happier</strong> with the job Christine did (and is still doing).  And it was fun.  Really, really fun.  To see an idea go from floating around in my head to something real was a very rewarding experience.  I&#8217;m so glad I decided to pony up the money and pay a professional to help with the branding and UI &#8211; I can guarantee that any design I would have come up with would have scared away any potential customers. <img src='http://www.juliesoft.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   Given my target market (young fiancés), I knew the design for ESS needed to look <em>good</em>.  Mission accomplished!</p>
<p>Here&#8217;s the final logo for ESS that Christine created:</p>
<p><a href="http://www.juliesoft.com/wp-content/uploads/2010/01/esslogo.png"><img src="http://www.juliesoft.com/wp-content/uploads/2010/01/esslogo.png" alt="Every Single Shot logo" title="Every Single Shot logo" width="400" height="198" class="size-full wp-image-274" /></a></p>
<p>See if you can figure out why I didn&#8217;t want to do the graphic design myself from the example below.  </p>
<p>I needed to put up one page at <a href="http://www.everysingleshot.com">www.everysingleshot.com</a> just to collect email addresses for my mailing list.  It needed to be simple, quick, and get the job done.  Here&#8217;s my take (click images for full size screenshots):</p>
<p><a href="http://www.juliesoft.com/wp-content/uploads/2010/01/homebefore.png"><img src="http://www.juliesoft.com/wp-content/uploads/2010/01/homebefore-300x196.png" alt="Before a graphic designer&#039;s touch" title="Before a graphic designer&#039;s touch" width="300" height="196" class="alignnone size-medium wp-image-275" /></a></p>
<p>And here&#8217;s the version I made after some help from Christine:</p>
<p><a href="http://www.juliesoft.com/wp-content/uploads/2010/01/homeafter.png"><img src="http://www.juliesoft.com/wp-content/uploads/2010/01/homeafter-300x223.png" alt="After a graphic designer&#039;s touch" title="After a graphic designer&#039;s touch" width="300" height="223" class="alignnone size-medium wp-image-276" /></a></p>
<p>But Christine didn&#8217;t just whip up some nice graphics, <strong>she also did great work with helping me define and focus ESS&#8217;s brand and marketing message</strong>.  As a developer first and a marketer last, I can&#8217;t understate how important it was to have a creative branding person helping me with this aspect of ESS.  I&#8217;ve been <a href="http://www.juliesoft.com/2009/11/marketing-books-for-small-businesses/">doing a lot of reading on branding and marketing</a> and I recognize their importance in creating a successful product, so I&#8217;m really thankful that Christine was able to help me so much with them.</p>
<p>Contact me (jon at juliesoft dot com) if you&#8217;re interested in having Christine do some work for you (I don&#8217;t want to plaster her email address on here) &#8211; I&#8217;ll forward your contact info to her.</p>
<h3>Hosting on Amazon&#8217;s cloud</h3>
<p>I used a combination of cloud (<a href="http://aws.amazon.com/ec2/">Amazon&#8217;s EC2</a>) and traditional (<a href="http://www.eapps.com/">eApps</a>) hosting platforms for <a href="http://www.sendalong.com">SendAlong</a>.  It worked well enough, but I didn&#8217;t like having to manage the two different environments.  Plus, the apps on the different platforms needed to talk to each other, and getting them to communicate reliably all the time was kind of difficult.  </p>
<p>This time I decided that I wanted to keep the hosting platform homogenous.  I also decided that there were at least a couple of different &#8220;cloud&#8221; services that ESS was going to use such as storage (like <a href="http://aws.amazon.com/s3/">Amazon&#8217;s S3</a>) and a CDN (like <a href="http://aws.amazon.com/cloudfront/">Amazon&#8217;s CloudFront</a>).  I researched a few different cloud hosting providers including <a href="http://aws.amazon.com/ec2/">Amazon EC2</a>, <a href="http://www.slicehost.com/">Slicehost</a>, <a href="http://www.rackspace.com/">Rackspace</a>, and <a href="http://www.joyent.com/">Joyent</a>.  I also found a great <a href="http://journal.uggedal.com/vps-performance-comparison">performance comparison of some cloud hosting providers</a>.  </p>
<p>Amazon and Joyent were the front runners, but I decided to go with Amazon mainly because <a href="http://status.aws.amazon.com/">they&#8217;re stable</a>, they&#8217;ve been around the block a few times, they&#8217;ve got good documentation, they&#8217;re fairly easy to use, the nice integration between all of their services&#8230;the list goes on.  I&#8217;m not saying Amazon&#8217;s services are right for everyone, but they suit my needs for Every Single Shot really well.  </p>
<p>After choosing a hosting provider, I needed to get a server set up.  That&#8217;s where the real fun came in.  (If you didn&#8217;t know I was a geek, the last two sentences are all the proof you need.)  </p>
<p>I&#8217;ve dabbled in Linux and the bulk of my command line experience has been in MS-DOS.  I&#8217;ve had a Mac for the last year and have gotten a little more comfortable with using a real command line, but all of <strong>that experience was nothing when stacked up to what I learned in the last two weeks while trying to build out a server with all the goodies ESS would need on EC2</strong>.  I wouldn&#8217;t have said that I was a command line n00b before two weeks ago, but now I think I can back it up.  Where have <a href="http://en.wikipedia.org/wiki/Pipeline_(Unix)">pipes</a>, <a href="http://www.computerhope.com/unix/ugrep.htm">grep</a>, and shell scripts been all of my life?</p>
<p>While I was working on configuring an Amazon EC2 <a href="http://docs.amazonwebservices.com/AWSEC2/2009-11-30/DeveloperGuide/index.html?ComponentsAMIs.html">AMI</a> to my liking (Apache, Tomcat, MySQL, etc.) I came across a <a href="http://alestic.com/">fantastic EC2 resource</a>.  If you&#8217;re running <a href="http://www.ubuntu.com/">Ubuntu</a> on EC2, or are trying to figure out what OS to use for your EC2 set up, <strong>have a long look at <a href="http://alestic.com">Eric Hammond&#8217;s alestic site</a></strong>.  Not only has Eric provided some top notch Ubuntu server AMIs, but the Canonical team (the people behind Ubuntu) has really embraced Amazon EC2 and provides several <a href="https://help.ubuntu.com/community/EC2StartersGuide#Getting the images">&#8220;official&#8221; Ubuntu AMIs</a> to get started with.  <strong>I feel completely comfortable using these things in production</strong> &#8211; it&#8217;s obvious that the Canonical team has put in a lot of work on their Ubuntu AMIs.  </p>
<p>The coolest thing about these Ubuntu images (I&#8217;m using ami-1515f67c on an EC2 small instance, btw) is that you don&#8217;t have to <a href="http://docs.amazonwebservices.com/AWSEC2/2009-11-30/DeveloperGuide/index.html?PreparingAndCreatingAMIs.html">rebundle</a> your own AMI on top of them (if you&#8217;ve worked with EC2 in the past you know what I&#8217;m talking about, and if you haven&#8217;t, then just trust me that this is a good thing).  This is where I learned about the wonderful world of <a href="http://en.wikipedia.org/wiki/Advanced_Packaging_Tool">apt-get</a>, which handles installing a lot of common software for you.  Having used Windows most of my life, I&#8217;m still not used to this, but <a href="http://en.wikipedia.org/wiki/Package_management_system">package managers</a> are one of the best things about the Linux platform.  Need to install Apache2?  sudo apt-get install apache2.  Need to install Tomcat6?  sudo apt-get install tomcat6.  Of course you&#8217;ll need to customize the installs sometimes, but that&#8217;s just a matter of writing a shell script.  </p>
<p>Since there&#8217;s no need to rebundle your own AMI, there must be a way to configure the base AMI easily, right?  Indeed, and of course <a href="http://alestic.com/2009/08/runurl">Eric Hammond has already taken care of that for me</a>.  <strong>With literally one command</strong>, I can launch an EC2 instance (for test or prod), attach a <a href="http://aws.amazon.com/about-aws/whats-new/2008/03/26/announcing-elastic-ip-addresses-and-availability-zones-for-amazon-ec2/">static IP address</a> to it, <a href="http://alestic.com/2009/05/mysql-ec2-ebs-apparmor-update">attach a persistent EBS volume to it</a> (for storing MySQL data), install every software package I need (Apache, Tomcat, MySQL, etc), check out ESS from source control and build it, and have it up in running in about 5 to 10 minutes.  This means that when I&#8217;m ready to test a new version of ESS, I can issue a command to do all of the above, plus run through all of my <a href="http://seleniumhq.org/">automated tests</a>.  As long as testing takes me less than 60 minutes, <strong>total cost out of pocket is 10 cents</strong>.  </p>
<p>Yes, I&#8217;ve heard that Amazon&#8217;s EC2 isn&#8217;t as fast as some of its competitors.  I&#8217;m willing to live with that for now, especially considering that I can run a new server with <a href="http://aws.amazon.com/ec2/instance-types/">10 times the RAM and CPU power</a> with a single command if I need to.  </p>
<p>(I&#8217;m going to write another post about EC2 and the other Amazon web services in the future that will have lots more helpful information &#8211; so remember to <a href="http://feeds.feedburner.com/changelog_jonchase">subscribe to my blog</a> if you haven&#8217;t already.)</p>
<h3>Timeline and goals</h3>
<p>I need to get a beta out soon.  <strong>I&#8217;ve been developing in a vacuum for too long.</strong>  My goal is for a February 15th beta release, then rapid iterations based on user feedback (<a href="http://www.everysingleshot.com">sign up if you want to help</a>), and then a 1.0 release on April 1st.  That should give ESS some time to get a bit of marketing traction before the heavy wedding season starts in May.</p>
<p>I&#8217;ve got big plans for ESS, so I&#8217;ve set some stretch goals.</p>
<ul>
<li>Goal #1: <strong>10% of income will go straight to charitable causes</strong> (that&#8217;s pre-tax, pre-expense income)</li>
<li>Goal #2: <strong>100 new paying customers per month by July 1st, 2010</strong> </li>
</ul>
<p>Do you have a suggestion on how I can improve these goals?  Leave a comment and help me out!</p>
<p>See you next week!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.juliesoft.com/2010/02/changelog-1-hacking-branding-and-ec2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Time for a change</title>
		<link>http://www.juliesoft.com/2009/12/time-for-a-change/</link>
		<comments>http://www.juliesoft.com/2009/12/time-for-a-change/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 06:38:55 +0000</pubDate>
		<dc:creator>Jon Chase</dc:creator>
				<category><![CDATA[ChangeLog]]></category>
		<category><![CDATA[Every Single Shot]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[everysingleshot]]></category>
		<category><![CDATA[juliesoft]]></category>
		<category><![CDATA[SendAlong]]></category>

		<guid isPermaLink="false">http://www.juliesoft.com/?p=242</guid>
		<description><![CDATA[The past
I&#8217;ve been blogging here since December, 2006.  In that time, I&#8217;ve covered lots of random topics, including building my first product.  I haven&#8217;t (yet) blogged about shutting it down, but that topic is on the short list to cover soon.  The last three years have been good, but things are about [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.juliesoft.com%2F2009%2F12%2Ftime-for-a-change%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.juliesoft.com%2F2009%2F12%2Ftime-for-a-change%2F" height="61" width="51" /></a></div><h3>The past</h3>
<p>I&#8217;ve been blogging here <a href="http://www.juliesoft.com/2006/12/starting-up/">since December, 2006</a>.  In that time, I&#8217;ve covered <a href="http://www.juliesoft.com/2007/10/measure-the-marketing-effectiveness-of-your-website/">lots</a> <a href="http://www.juliesoft.com/2007/10/non-invasive-captcha/">of</a> <a href="http://www.juliesoft.com/2007/11/trying-to-decide-on-a-payment-processor-for-credit-cards-on-web-site/">random</a> <a href="http://www.juliesoft.com/2007/07/better-hibernate-logging-with-log4j/">topics</a>, including building <a href="http://www.juliesoft.com/2007/08/ground-control-to-major-tom-close-to-lift-off/">my</a> <a href="http://www.juliesoft.com/2008/02/sendalong-10-is-out-more-info-coming-soon/">first</a> <a href="http://www.juliesoft.com/2008/02/sendalong-got-picked-up/">product</a>.  I haven&#8217;t (yet) blogged about <a href="http://www.sendalong.com">shutting it down</a>, but that topic is on the short list to cover soon.  The last three years have been good, but things are about to change.</p>
<p>During the 3+ years I&#8217;ve been blogging I&#8217;ve never had a plan for the blog.  If something <a href="http://www.juliesoft.com/2007/12/video-games-in-3d/">caught my attention</a>, I wrote about it.  There was no such thing as &#8220;off topic&#8221;, because there was also no such thing as &#8220;on topic&#8221;.  Although it&#8217;s been fun for me to write the blog, the quality of the content has  suffered for want of editorial direction.  </p>
<p>That&#8217;s changing as of now, and here&#8217;s why.  </p>
<h3>The present</h3>
<p>I&#8217;m working full time on a <a href="http://www.everysingleshot.com">new web app</a>.  <a href="http://www.everysingleshot.com">Every Single Shot</a> isn&#8217;t a side project.  Among other things, it&#8217;s my <strong>full time</strong> job.  Some might call this kind of set up a <a href="http://www.ericsink.com/bos/Micro_ISV.html">microISV</a>, some might call it a <a href="http://answers.onstartups.com">start up</a>, some might even call it a mom and pop joint (ok, no one would ever call it that).  I realize that I&#8217;m very, very lucky to have the luxury to be able to work on my business &#8211; my dream &#8211; full time.  I also realize that this is just the kind of thing that a lot of other hackers dream about on a daily basis while they&#8217;re <a href="http://www.imdb.com/title/tt0151804/">stuck at their dead end jobs</a>.  This is why I&#8217;ll be sharing the details of my adventures from now on.  </p>
<p class="aligncenter"><a href="http://www.juliesoft.com/wp-content/uploads/2009/12/797px-Monarch_Butterfly_Cocoon_2.jpg"><img src="http://www.juliesoft.com/wp-content/uploads/2009/12/797px-Monarch_Butterfly_Cocoon_2.jpg" alt="797px-Monarch_Butterfly_Cocoon_2" title="797px-Monarch_Butterfly_Cocoon_2" width="500" height="376" class="aligncenter size-full wp-image-244" /></a></p>
<h3>The future</h3>
<p>I&#8217;ll be chronicling my journey on a weekly basis, talking about what I&#8217;ve been working on, ideas I&#8217;ve had, and changes that have happened.  That&#8217;s why I&#8217;ve renamed the blog to <a href="http://www.juliesoft.com"><strong>ChangeLog</strong></a>.  (Actually, I&#8217;m not renaming it, I&#8217;m naming it.  It hasn&#8217;t had a name until now because it hasn&#8217;t had any direction until now.)  Just as a stereotypical <a href="http://en.wikipedia.org/wiki/Changelog">changelog</a> is to code, this blog is to me and my business: a place to record changes and happenings of interest.</p>
<p>It will be more than just a ChangeLog, though.  I&#8217;ll still be talking about <a href="http://groovy.codehaus.org/">Groovy</a> / <a href="http://grails.org/">Grails</a> (Grails is hands down the best web framework out there IMO, and I&#8217;ll have words with anyone who says otherwise).  I&#8217;ll be talking about small business, <a href="http://www.juliesoft.com/category/marketing/">marketing</a> (lots of marketing), branding, site optimization and testing, e-commerce&#8230;the list goes on.  But instead of talking about this or that with no context, I&#8217;ll filter future posts through the lens of my business and its products.  Less noise, more insight &#8211; that&#8217;s what I&#8217;m shooting for.</p>
<p>Since this post is meant to be a turning point in my blogging journey, I thought I&#8217;d finish by linking to one blog that has influenced me greatly up to this point.  This blog is one of my absolute favorites &#8211; the kind I where I read every post from start to finish, regardless of content, because invariably I learn something.  You should be reading this blog.</p>
<p><a href="http://www.balsamiq.com/blog/">Balsamiq blog</a> &#8211; <strong>READ THIS BLOG!</strong></p>
<p>(I use <a href="http://www.google.com/reader">Google Reader</a> to manage all of my blog subscriptions.  If you&#8217;re not using an RSS reader to keep updated on blogs, I suggest you <a href="http://www.google.com/reader">check out Reader</a>.)</p>
<p>If you haven&#8217;t already, please consider subscribing to the <a href="http://feeds.feedburner.com/changelog_jonchase">ChangeLog RSS feed</a> and/or following me on Twitter (<a href="http://www.twitter.com/jonchase">@jonchase</a>).</p>
<p><strong>Do you prefer blogs that have a specific focus, or those that are a bit more random?  What do you think of the direction I&#8217;m going to take my blog?  Leave a comment below and let me know.</strong></p>
<p class="citation">Cocoon picture courtesy of Greyson Orlando via <a href="http://commons.wikimedia.org/wiki/File:Monarch_Butterfly_Cocoon_2.jpg">Wikimedia</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.juliesoft.com/2009/12/time-for-a-change/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->