<?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>SimianLogic Studios &#187; heroku</title>
	<atom:link href="http://www.simianlogicstudios.com/tag/heroku/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.simianlogicstudios.com</link>
	<description>indie game developer, web tinkerer, and transplanted Southerner living in Silicon Valley</description>
	<lastBuildDate>Thu, 18 Feb 2010 16:38:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Microsites as Ad Filters: Meet Stockmoose 2.0</title>
		<link>http://www.simianlogicstudios.com/2008/07/25/microsites-as-ad-filters-meet-stockmoose-20/</link>
		<comments>http://www.simianlogicstudios.com/2008/07/25/microsites-as-ad-filters-meet-stockmoose-20/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 18:53:19 +0000</pubDate>
		<dc:creator>SimianLogic</dc:creator>
				<category><![CDATA[advertising]]></category>
		<category><![CDATA[heroku]]></category>
		<category><![CDATA[web tinkering]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://simianlogic3d.com/blog/2008/07/25/microsites-as-ad-filters-meet-stockmoose-20/</guid>
		<description><![CDATA[(Image lost in the Great Update of 2009)
When I originally tossed the Stockmoose up a couple of months ago, it was mostly a prototype&#8211;one that had taken a single evening to produce, and one that was based on a single request to my artist girlfriend: &#8220;Can you draw me a moose with a tie?&#8221;  [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">(Image lost in the Great Update of 2009)</p>
<p>When I originally tossed the <a title="StockMoose!" href="http://www.stockmoose.com" target="_blank">Stockmoose</a> up <a title="Meet the StockMoose" href="http://simianlogicstudios.com/2008/05/06/meet-the-stockmoose/">a couple of months ago</a>, it was mostly a prototype&#8211;one that had taken a single evening to produce, and one that was based on a single request to my artist girlfriend: &#8220;Can you draw me a moose with a tie?&#8221;  Well, now it&#8217;s finally back with a new coat of paint, some basic anti-gaming measures, and a few other things to spice it up. The &#8220;borrowed&#8221; Yahoo stock charts have been replaced with our own proprietary charts, and each stock now has a sort of miniature info card so the choice isn&#8217;t based solely on name-recognition. We also created a list of 25 Silicon Valley stocks that most people around here have probably heard of&#8211;just to make it a little more engaging. Some of the early results are actually a little surprising.  In our SV25, TiVo is actually pretty close to the bottom while Netflix is near the top. Based on what I know of the two, I would&#8217;ve actually assumed this to be the opposite of what would happen.</p>
<p><span id="more-106"></span>The most interesting result, though, has been the clickthroughs. As an experiment, I tossed $50 into <a title="Project Wonderful" href="http://www.projectwonderful.com" target="_blank">Project Wonderful</a> to point some traffic at the moose. PW grew up around web-comics, and you pay for time instead of clicks. The resultant CPC is incredibly low ($0.04-$0.05), but it&#8217;s extremely low quality traffic&#8211;totally untargeted, and often times people just click on the ads because they think it supports the comics they like. Roughly 1 in 8 unique visitors visiting the Stockmoose have been clicking through to <a title="www.piqqem.com" href="htttp://www.piqqem.com" target="_blank">Piqqem</a>, meaning the $0.05 CPC for the StockMoose turns into a $0.40 CPC for Piqqem itself. Because our niche is in the financial sector, most CPC ads on Google cost anywhere from $.60 to $1.20 for even moderately relevant keywords.</p>
<p>It gets better. The bounce rate for traffic coming off of the Adwords was in the neighborhood of 70%, while those coming in off of Stockmoose are closer to 40%. I don&#8217;t know if we have enough data to be statistically significant or not, but the concept seems sound. Instead of trusting Google to target our ads to relevant &#8220;customers&#8221; (they&#8217;re good at what they do, but there&#8217;s thousands of people out there who make a living scamming AdSense), we instead cast a much wider net and do the targeting ourselves. Those that are interested in the stock market, interested perhaps in the wisdom of the crowd, click through to the main site. Those that don&#8217;t either bounce or hang out and pick a few stocks in the Stockmoose game. Either way&#8211;our &#8220;crowd&#8221; results get better and we have an opportunity to pitch the main site.  Win win.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simianlogicstudios.com/2008/07/25/microsites-as-ad-filters-meet-stockmoose-20/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meet the StockMoose</title>
		<link>http://www.simianlogicstudios.com/2008/05/06/meet-the-stockmoose/</link>
		<comments>http://www.simianlogicstudios.com/2008/05/06/meet-the-stockmoose/#comments</comments>
		<pubDate>Tue, 06 May 2008 20:35:05 +0000</pubDate>
		<dc:creator>SimianLogic</dc:creator>
				<category><![CDATA[heroku]]></category>
		<category><![CDATA[web tinkering]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://simianlogic3d.com/blog/2008/05/06/meet-the-stockmoose/</guid>
		<description><![CDATA[(Image lost in the Great Update of 2009)
Another day, another kooky web idea.  This time, it&#8217;s the Stock Moose.  We&#8217;ve had a lot of debate at work on how to gather data, how to present that data, and how to make that collection/presentation process engaging enough that someone might actually enjoy doing it [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">(Image lost in the Great Update of 2009)</p>
<p>Another day, another kooky web idea.  This time, it&#8217;s the <a title="The Stock Moose" href="http://www.stockmoose.com" target="_blank">Stock Moose</a>.  We&#8217;ve had a lot of debate at work on how to gather data, how to present that data, and how to make that collection/presentation process engaging enough that someone might actually enjoy doing it just for the sake of doing it (rather than tying it to some future promise of &#8220;Oh, we&#8217;ll give you an edge on the trading room floor&#8221;).  Back when the college football season was in full swing, Yahoo! introduced what they called the Team Ranker.  The concept is incredibly simple: pick two teams out of a hat and display them both (with perhaps a few bits of useful info such as a win-loss record or&#8230; a stock chart).  The user simply has to click on the one they think is better.  Period.</p>
<p>Whichever team (or in this case, stock) has the best win percent is rated as #1, and the rest are sorted accordingly.  The system was far too simple to game, at least for football.  What this usually meant is that earlier in the day (when the East Coast is awake and voting) highly ranked teams in the SEC and other eastern conferences dominated the rankings.  When it got later in the afternoon, teams with East Coast fan bases slipped in the rankings while PAC-10 teams rose into the top spots.  This is unavoidable for something like football, where fans are fiercely loyal to their own teams over all others&#8211;but is the same true for stocks?</p>
<p>Would users on the East coast sway the list towards East-coast stalwarts like Coke and Home Depot while the West coast might favor silicon valley darlings over all others?  It&#8217;s hard to say&#8211;especially considering that I limited the field to the Nasdaq 100, which is primarily dominated by tech stocks.<span id="more-88"></span></p>
<p>The beauty of today&#8217;s technology, though, is that these debates don&#8217;t have to remain purely academic.  The Stock Moose is thin.  It&#8217;s very, very thin.  But rather than spend a few hours swapping emails back and forth with my bosses on whether or not something like that would even work, tools like Heroku make it possible to just go build it.  I spent a grand total of around four hours kicking that thing out, and probably half of that time was spent trying to decide on a name for it (and then trying to explain to my girlfriend why I needed her to draw me a moose with a tie).  The other half was spent cooking up the round-robin logic, which is probably way too complicated.  Building something like this within our own code base&#8211;or even hosting it on our own servers without asking permission&#8211;would be unthinkable.</p>
<p>If we ultimately decide it&#8217;s a failure (which most little web projects are), what&#8217;s the cost?  There&#8217;s always a chance, though, that something so simple (and arguably, so ugly) might go viral.  If that happens&#8211;and that&#8217;s a big IF&#8211;what do we get?  A little free advertising.  If it doesn&#8217;t happen, we&#8217;ve still profited: we can now cross something else off our list and move towards a more targeted product.</p>
<p>Besides, Stock Moose has a nice ring to it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simianlogicstudios.com/2008/05/06/meet-the-stockmoose/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Insoshi, Meet Heroku</title>
		<link>http://www.simianlogicstudios.com/2008/04/30/insoshi-meet-heroku/</link>
		<comments>http://www.simianlogicstudios.com/2008/04/30/insoshi-meet-heroku/#comments</comments>
		<pubDate>Thu, 01 May 2008 01:36:34 +0000</pubDate>
		<dc:creator>SimianLogic</dc:creator>
				<category><![CDATA[heroku]]></category>
		<category><![CDATA[insoshi]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[web tinkering]]></category>

		<guid isPermaLink="false">http://simianlogic3d.com/blog/2008/04/30/insoshi-meet-heroku/</guid>
		<description><![CDATA[(Images lost in the Great Update of 2009)
When I read about insoshi on Mashable and TechCrunch this morning, it got my mind buzzing&#8230; and immediately my thoughts turned to another Y Combinator startup&#8211;Heroku.  I&#8217;ve been using Heroku for quite awhile now, and both my fondness for Ruby on Rails and my disdain (so far) [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">(Images lost in the Great Update of 2009)</p>
<p>When I read about <a title="insoshi" href="http://simianlogic3d.com/blog/insoshi.com" target="_blank">insoshi</a> on <a title="Mashable" href="http://mashable.com/2008/04/30/insoshi/" target="_blank">Mashable</a> and <a title="TechCrunch" href="http://www.techcrunch.com/2008/04/29/social-networking-goes-open-source-with-insoshi/" target="_blank">TechCrunch</a> this morning, it got my mind buzzing&#8230; and immediately my thoughts turned to another Y Combinator startup&#8211;Heroku.  I&#8217;ve been using Heroku for quite awhile now, and both my fondness for Ruby on Rails and my disdain (so far) for Google&#8217;s Big Table make it my prototyping engine of choice for the time being.  The integration is not perfect by any stretch of the imagination, but here&#8217;s a quick and dirty way to get an insoshi install running on Heroku (assuming you have an acccount):</p>
<p><strong> First Steps</strong></p>
<ol>
<li>Download the insoshi tarball</li>
<li>Create a new heroku app</li>
<li>Import the insoshi tarball (how convenient is it that the heroku app importer wants a tarball!)</li>
<li>Run rake db:migrate (this will run a ton of migrations&#8230; once complete you can press escape to close the little popup)</li>
<li>Run rake install (this will create the default preferences file and the default forum.</li>
</ol>
<p><span id="more-87"></span><strong>Hiccup #1</strong>The session variable in Heroku is enormous&#8230; so jamming it into the pageviews table causes the app to choke.  Solution: well, we&#8217;ll just toss out that data for now.  I&#8217;ll try to come up with a more elegant solution later, but for now the goal is simply getting the app to run.  The stack trace points you to Line #30 of app/controllers/application.rb, where the page_view is inserted.  Comment out Line #32 (<span class="comment"><span class="symbol">&#8220;:session</span> =&gt; session,&#8221;) and save.  If you refresh the app, you should now get a totally blank screen.</span></p>
<p><strong>Hiccup #2</strong></p>
<p>There seems to be some sort of conflict between the Heroku toolbar and the css of the stock insoshi install.  Luckily, this is fixable.  Go into your config directory and create a new file, &#8220;heroku.yml&#8221;. Add two variables and save the file:</p>
<blockquote>
<div id="canvas">
<div><span class="css_property_name">toolbar_collaborators</span>: false</div>
<div><span class="css_property_name">toolbar_public</span>: false</div>
</div>
</blockquote>
<p>Refresh the app again and you will now see the blank install of insoshi!  We&#8217;re not quite out of the woods yet, though.</p>
<div><strong>Hiccup #3</strong></div>
<p>Log in to your default account.  The email address will be &#8220;admin@example.com&#8221; and the password will be &#8220;admin&#8221;.  Insoshi will immediately prompt you to change these away from the defaults.</p>
<p>Changing anything on the profile-edit page and pressing submit will take you straight to another rails crash&#8230; but this one is a little misleading.  Your edits actually went through fine, it&#8217;s the redirect that&#8217;s crashing.  There&#8217;s a SQL call on Line #310 of  app/models/person.rb that needs to be modified to be compatible.  What was originally:</p>
<blockquote><p><em>sql = %(SELECT connections.*, COUNT(contact_id) FROM `connections`<br />
WHERE ((person_id = ? OR person_id = ?)<br />
AND status=?)<br />
GROUP BY contact_id<br />
HAVING count(contact_id) = 2)</em></p></blockquote>
<p>Should be changed to:</p>
<blockquote><p><em>sql = %(SELECT contact_id, COUNT(contact_id) FROM connections<br />
WHERE ((person_id = ? OR person_id = ?)<br />
AND status=?)<br />
GROUP BY contact_id<br />
HAVING count(contact_id) = 2)</em></p></blockquote>
<p>Note that actually TWO changes have been made.  First change &#8220;connections.*&#8221; to &#8220;contact_id&#8221;.  Second, get rid of the goofy ` characters surrounding the word connections in the FROM clause.  Refresh the page and you should now be good to go on viewing user pages.  You may need to kick your Heroku app to get it to restart (I usually just change a single character in the config/routes.rb file and save for lack of a reset button).</p>
<p><strong>Hiccup #4</strong></p>
<p>This one&#8217;s a little obscure.  Sign out of your account and click on the &#8220;People&#8221; tab.  Click on the one user (&#8221;admin&#8221;), and rails will complain once more.  I haven&#8217;t quite figured out WHY this one is breaking, but I did trace it back and toss in a workaround.  The error occurs on Line #42 of app/views/people/show.html.erb.  If you call Connection.connected?(SOME_PERSON, nil) in the Heroku console, the app will correctly return false.  Though you are not logged in, the current_user variable is actually set to &#8220;false&#8221; as well.  Calling Connection.connected?(SOME_PERSON, false) causes it to choke, which is why Rails is throwing errors.  Rather than trace backwards further to see why the app was setting current_user to false, I took the shortcut: I installed an  block surrounding that block of code&#8230; Voila!  Did I mention this was a quick &amp; dirty install?</p>
<p>As far as I can tell, that&#8217;s it!  You should now have a working install of insoshi to go play around with.  The session logging is a little broken, but it&#8217;s really all you need to start tinkering.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simianlogicstudios.com/2008/04/30/insoshi-meet-heroku/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
