<?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>Hashtagify The Blog</title>
	<atom:link href="http://blog.hashtagify.me/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.hashtagify.me</link>
	<description>A blog about internet technologies</description>
	<lastBuildDate>Mon, 30 Apr 2012 14:10:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>OpenVZ howto addendum: Migrating your virtual machines to a new server</title>
		<link>http://blog.hashtagify.me/2012/04/30/openvz-howto-addendum-migrating-your-virtual-machines-to-a-new-server/</link>
		<comments>http://blog.hashtagify.me/2012/04/30/openvz-howto-addendum-migrating-your-virtual-machines-to-a-new-server/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 14:08:34 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Technicalities]]></category>

		<guid isPermaLink="false">http://blog.hashtagify.me/?p=291</guid>
		<description><![CDATA[As I wrote some time ago, creating your own OpenVZ infrastructure is very easy, and it can save you a lot of money compared to the usual VPS providers. But it also has other advantages. Hashtagify uses redis to store &#8230; <a href="http://blog.hashtagify.me/2012/04/30/openvz-howto-addendum-migrating-your-virtual-machines-to-a-new-server/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p>As I wrote some time ago, <a href="http://blog.hashtagify.me/2011/07/12/openvz-how-to-your-own-free-vps-infrastructure-in-10-minutes/">creating your own OpenVZ infrastructure</a> is very easy, and it can save you a lot of money compared to the usual VPS providers. But it also has other advantages.</p>
<p><a href="http://hashtagify.me">Hashtagify</a> uses redis to store all its data in memory, which is great for performance, but&#8230; it requires a lot of RAM. So it happened that I almost finished my 24GB, right when I learned about a new great offer for a 32GB server which costs 33% less than my 24GB one. Moving to it means that I&#8217;m going to get back my 150€ of activation costs in just 5 months, while at the same time having 8GB more. Great!</p>
<p>This is why I bought a new server and decided to move all my virtual machines to it from the old one. It turned out to be quite easy, but I had to find the instructions in different places, so I&#8217;ll post here how I did it for both my future reference and for anybody else having the same problem.</p>
<p>First of all, you have to install OpenVZ: I did it just following my <a href="http://blog.hashtagify.me/2011/07/12/openvz-how-to-your-own-free-vps-infrastructure-in-10-minutes/">previous howto</a>.</p>
<p>Then, you can migrate your machines. I thought I would need to back them up and then restore them in the new server, but I found out there is a more direct and much faster way to do it: The vzmigrate command.</p>
<p>To use it, you first need to enable password-less ssh login from the old server to the new one (this is because vzmigrate uses the ssh protocol to move the files). First, generate your public and private keys if you didn&#8217;t already:</p>
<div class="code">ssh-keygen -t rsa</div>
<p>It is important that you create it with no passphrase. Then, move the public key to your new server, like this:</p>
<div class="code">scp /root/.ssh/id_rsa.pub root@XX.XX.XX.XX:./id_rsa.pub</div>
<p>Now log into the new server and do</p>
<div class="code">
cd .ssh/<br />
touch authorized_keys2<br />
chmod 600 authorized_keys2<br />
cat ../id_rsa.pub &gt;&gt; authorized_keys2<br />
rm ../id_rsa.pub
</div>
<p>After this, in the old server check that everything is ok with:</p>
<div class="code">ssh -2 -v root@XX.XX.XX.XX</div>
<p>If everything is ok, you whould be logged in without being asked for a password. You can log out</p>
<div class="code">exit</div>
<p>and start migrating your machines. For each machine, for example the one with id 101, you do:</p>
<div class="code">vzmigrate -r no XX.XX.XX.XX 101</div>
<p>This will take a pretty long time, depending on how big the virtual machine and how fast the net between the two servers are. There is no progress indicator, but you can get an idea how it is proceeding by checking the original size of the machine and the size of the copied one, by using the command</p>
<div class="code">du -hs /vz/private/101</div>
<p>on the old and the new server respectively (this of course only if you mapped the openvz data directory to /vz as shown in the original howto.</p>
<p>When the command finishes, the new machine is ready&#8230; but only if you could move the VM IP from the old to the new server. In my case that wasn&#8217;t possible, so I had to ask for new IPs on the new server. You can assign the new IP, and remove the old one, like this:</p>
<div class="code">
vzctl set 101 &#8211;ipadd NEW.NEW.NEW.NEW &#8211;save<br />
vzctl set 101 &#8211;ipdel OLD.OLD.OLD.OLD &#8211;save
</div>
<p>So, now you&#8217;re really good to go:</p>
<div class="code">vzctl start 101</div>
<p>And that&#8217;s it!</p>
<p>Cheers</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="tall" count="1" href="http://blog.hashtagify.me/2012/04/30/openvz-howto-addendum-migrating-your-virtual-machines-to-a-new-server/"></g:plusone></div>
 <img src="http://blog.hashtagify.me/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=291" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.hashtagify.me/2012/04/30/openvz-howto-addendum-migrating-your-virtual-machines-to-a-new-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hashtags on Google Plus too!</title>
		<link>http://blog.hashtagify.me/2012/01/18/hashtags-on-google-plus-too/</link>
		<comments>http://blog.hashtagify.me/2012/01/18/hashtags-on-google-plus-too/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 09:05:09 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Hashtags]]></category>
		<category><![CDATA[Roadmap]]></category>

		<guid isPermaLink="false">http://blog.hashtagify.me/?p=286</guid>
		<description><![CDATA[As pointed out by Chris Messina, the &#8220;inventor of Twitter hashtags&#8221; (rather, the one who pushed for their adoption on Twitter, which is no little feat), Google just rolled out hashtags autocompleting on Google Plus, thus giving their official support &#8230; <a href="http://blog.hashtagify.me/2012/01/18/hashtags-on-google-plus-too/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p>As <a href="https://plus.google.com/u/0/102034052532213921839/posts/TA9BuiyPago">pointed out by Chris Messina</a>, the &#8220;inventor of Twitter hashtags&#8221; (rather, the one who pushed for their adoption on Twitter, which is no little feat), Google just rolled out hashtags autocompleting on Google Plus, thus giving their official support for hashtags there.</p>
<p>This is very good news, because hashtags are a really easy way to tell what your posts are about. And because hashtagify.me could add Google Plus hashtags data too in the future&#8230; would you like that?</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="tall" count="1" href="http://blog.hashtagify.me/2012/01/18/hashtags-on-google-plus-too/"></g:plusone></div>
 <img src="http://blog.hashtagify.me/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=286" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.hashtagify.me/2012/01/18/hashtags-on-google-plus-too/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Hashtagify Pro: Would you like it to be from Hashtagify, ltd?</title>
		<link>http://blog.hashtagify.me/2011/12/29/hashtagify-pro-would-you-like-it-to-from-hashtagify-ltd/</link>
		<comments>http://blog.hashtagify.me/2011/12/29/hashtagify-pro-would-you-like-it-to-from-hashtagify-ltd/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 09:40:54 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.hashtagify.me/?p=276</guid>
		<description><![CDATA[The beta of Hashtagify Pro is going well, and I&#8217;m going to release it officially soon enough. I have to decide if I should incorporate as Hashtagify Ltd. before launching: Would you trust Hashtagify Ltd. more than Daniele Mazzini? Please &#8230; <a href="http://blog.hashtagify.me/2011/12/29/hashtagify-pro-would-you-like-it-to-from-hashtagify-ltd/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p>The beta of <a href="http://pro.hashtagify.me">Hashtagify Pro</a> is going well, and I&#8217;m going to release it officially soon enough.</p>
<p>I have to decide if I should incorporate as Hashtagify Ltd. before launching: Would you trust Hashtagify Ltd. more than Daniele Mazzini? Please vote here: <a href="http://news.ycombinator.com/item?id=3403065">http://news.ycombinator.com/item?id=3403065</a></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="tall" count="1" href="http://blog.hashtagify.me/2011/12/29/hashtagify-pro-would-you-like-it-to-from-hashtagify-ltd/"></g:plusone></div>
 <img src="http://blog.hashtagify.me/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=276" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.hashtagify.me/2011/12/29/hashtagify-pro-would-you-like-it-to-from-hashtagify-ltd/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Hashtagify Pro private beta</title>
		<link>http://blog.hashtagify.me/2011/12/23/hashtagify-pro-private-beta/</link>
		<comments>http://blog.hashtagify.me/2011/12/23/hashtagify-pro-private-beta/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 06:54:57 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[About us]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[Roadmap]]></category>

		<guid isPermaLink="false">http://blog.hashtagify.me/?p=273</guid>
		<description><![CDATA[Lately I&#8217;ve been hard at work on Hashtagify Pro, a new tool that lets you track a specific campaign or subject (not limited to hashtags) on Twitter and analyze which influencers are impacting it and how. Today is a big &#8230; <a href="http://blog.hashtagify.me/2011/12/23/hashtagify-pro-private-beta/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p>Lately I&#8217;ve been hard at work on Hashtagify Pro, a new tool that lets you track a specific campaign or subject (not limited to hashtags) on Twitter and analyze which influencers are impacting it and how.</p>
<p>Today is a big day: We are ready to start a private beta!</p>
<p>You can go to <a href="http://pro.hashtagify.me">pro.hashtagify.me</a> and take a look at the new website, where you can also find a Demo/Tour that shows the kind of analysis you can do with Hashtagify Pro.</p>
<p>If what you see interests you, you can apply for a free beta account using the link in the home page. Beta accounts will be activated as soon as there are free resources on the server.</p>
<p>We&#8217;re also very interested in your feedback: Comments, glitches, ideas, suggestions. Hashtagify Pro is still in evolution and your suggestions now can have an important impact.</p>
<p>So, let us know what you think!</p>
<p>PS: Hashtagify Pro works best with a recent browser. IE only works with version 9.</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="tall" count="1" href="http://blog.hashtagify.me/2011/12/23/hashtagify-pro-private-beta/"></g:plusone></div>
 <img src="http://blog.hashtagify.me/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=273" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.hashtagify.me/2011/12/23/hashtagify-pro-private-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update CSS rules with 5 lines of CoffeeScript</title>
		<link>http://blog.hashtagify.me/2011/12/08/update-css-rules-with-5-lines-of-coffeescript/</link>
		<comments>http://blog.hashtagify.me/2011/12/08/update-css-rules-with-5-lines-of-coffeescript/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 12:53:02 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Technicalities]]></category>

		<guid isPermaLink="false">http://blog.hashtagify.me/?p=265</guid>
		<description><![CDATA[I recently (ie, today) had to find a way to update a CSS rule dynamically in javascript. jQuery, my library of choice, doesn&#8217;t offer this functionality &#8211; and I really wonder why &#8211; so I looked around a little and &#8230; <a href="http://blog.hashtagify.me/2011/12/08/update-css-rules-with-5-lines-of-coffeescript/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p>I recently (ie, today) had to find a way to update a CSS rule dynamically in javascript. jQuery, my library of choice, doesn&#8217;t offer this functionality &#8211; and I really wonder why &#8211; so I looked around a little and found how to do it with plain javascript.</p>
<p>As I&#8217;m actually using CoffeeScript, I decided to rewrite it in that language and make it a generic function; it could be useful to others, so, there you go:</p>
<pre class="code">@updateCSS = (selector, styles) -&gt;
  for sheet in document.styleSheets
      for rule in sheet.cssRules || sheet.rules || []
        if rule.selectorText == selector
          for style, value of styles
            rule.style[style] = value</pre>
<p>You can also find an usage example (and play with it yourself) <a href="http://jsfiddle.net/danmaz74/C7dv4/1/" target="_blank">on jsfiddle</a>. Enjoy <img src='http://blog.hashtagify.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="tall" count="1" href="http://blog.hashtagify.me/2011/12/08/update-css-rules-with-5-lines-of-coffeescript/"></g:plusone></div>
 <img src="http://blog.hashtagify.me/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=265" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.hashtagify.me/2011/12/08/update-css-rules-with-5-lines-of-coffeescript/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>The European Tech Scene in Blogging</title>
		<link>http://blog.hashtagify.me/2011/11/22/the-european-tech-scene-in-blogging/</link>
		<comments>http://blog.hashtagify.me/2011/11/22/the-european-tech-scene-in-blogging/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 14:17:11 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.hashtagify.me/?p=257</guid>
		<description><![CDATA[I&#8217;ve been too focused on my work on hashtagify pro lately &#8211; the first beta isn&#8217;t far, by the way &#8211; to notice it when it came out, but this article about the European tech blogging scene is very interesting. &#8230; <a href="http://blog.hashtagify.me/2011/11/22/the-european-tech-scene-in-blogging/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p>I&#8217;ve been too focused on my work on hashtagify pro lately &#8211; the first beta isn&#8217;t far, by the way &#8211; to notice it when it came out, but <a href="http://eu.techcrunch.com/2011/11/09/european-bloggers-are-getting-angry-and-why-thats-awesome/">this article</a> about the European tech blogging scene is very interesting.</p>
<p>The long and the short of it is that we in Europe should blog more in English, to make it easier to create a European tech community and a more interesting scene to report on. Incidentally, that&#8217;s why I started blogging in English for hashtagify, so I just have to agree. I&#8217;m also seeing more conversations in English between Europeans, eg on Google+, so I hope we&#8217;re headed in the right direction.</p>
<p>Writing in English isn&#8217;t as easy as I&#8217;d like it to be, but the good signals &#8211; both those cited in the article, and those which I can see for myself &#8211; make me even more resolute. Let&#8217;s all keep our efforts up.</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="tall" count="1" href="http://blog.hashtagify.me/2011/11/22/the-european-tech-scene-in-blogging/"></g:plusone></div>
 <img src="http://blog.hashtagify.me/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=257" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.hashtagify.me/2011/11/22/the-european-tech-scene-in-blogging/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Is the open source/internet singularity coming?</title>
		<link>http://blog.hashtagify.me/2011/11/02/is-the-open-sourceinternet-singularity-coming/</link>
		<comments>http://blog.hashtagify.me/2011/11/02/is-the-open-sourceinternet-singularity-coming/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 12:47:44 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Opinions]]></category>

		<guid isPermaLink="false">http://blog.hashtagify.me/?p=223</guid>
		<description><![CDATA[Many have heard about the idea, popularized by Ray Kurzweil, that a technological singularity is coming. In a nutshell, the idea is that as the power of computers is growing exponentially, at some point it will bring about an artificial &#8230; <a href="http://blog.hashtagify.me/2011/11/02/is-the-open-sourceinternet-singularity-coming/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p>Many have heard about the idea, popularized by Ray Kurzweil, that a <a href="http://en.wikipedia.org/wiki/Technological_singularity">technological singularity</a> is coming. In a nutshell, the idea is that as the power of computers is growing exponentially, at some point it will bring about an artificial intelligence that will overtake human intelligence, reinforce itself and change everything beyond any (human) imagination.</p>
<p>I personally don&#8217;t believe that the creation of an AI able to compete (let alone surpass) with human intelligence is near at all. But while working on my latest web project, <strong>I noticed just how easier it has become to create incredibly powerful and attractive new software</strong> than just a few years ago. And all this thanks to Open Source and the internet.</p>
<p>Increasingly, we see amazing new software libraries, frameworks, programming environments being released as (Free) Open Source on the internet. This makes it progressively easier for other people, even solo developers working from home in their free time, to create great software, and often give something back to the Open Source community.</p>
<p>Not just that; the internet is making it easier and easier to find the best new pieces of software, to get answers to the most difficult programming questions, to circulate ideas and to publish the end results of it all. And to bring this all to even the most isolated programmers, in the remotest parts of the world.</p>
<p>Isn&#8217;t this all it&#8217;s needed to create an <strong>exponential growth of software innovation?</strong> I guess it is. And I don&#8217;t know what this will bring about, but it is a fact that information technology is disrupting lots of industries, with consequences that are harder and harder to predict &#8211; as unfortunately the current economic crisis is showing.</p>
<p>I don&#8217;t know if this could be the real technological singularity, even without artificial intelligence in the mix, but it could come damn close.</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="tall" count="1" href="http://blog.hashtagify.me/2011/11/02/is-the-open-sourceinternet-singularity-coming/"></g:plusone></div>
 <img src="http://blog.hashtagify.me/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=223" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.hashtagify.me/2011/11/02/is-the-open-sourceinternet-singularity-coming/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Javascript async testing tutorial: Jasmine + Rails 3.1 + Coffeescript</title>
		<link>http://blog.hashtagify.me/2011/10/28/javascript-async-testing-tutorial-jasmine-rails-3-1-coffeescript/</link>
		<comments>http://blog.hashtagify.me/2011/10/28/javascript-async-testing-tutorial-jasmine-rails-3-1-coffeescript/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 08:35:12 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Technicalities]]></category>

		<guid isPermaLink="false">http://blog.hashtagify.me/?p=234</guid>
		<description><![CDATA[I recently wanted to create automated testing for coffeescript code in Rails 3.1, including some async (ajax) code. I had to dig around quite a lot, so I&#8217;m writing here what I ended up doing for future reference for myself &#8230; <a href="http://blog.hashtagify.me/2011/10/28/javascript-async-testing-tutorial-jasmine-rails-3-1-coffeescript/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p>I recently wanted to create automated testing for coffeescript code in Rails 3.1, including some async (ajax) code. I had to dig around quite a lot, so I&#8217;m writing here what I ended up doing for future reference for myself and others who might need it.</p>
<p>There are many test frameworks for javascript, and the one I chose is <a href="http://pivotal.github.com/jasmine/">Jasmine</a>. Reason why: It is one of the two most used frameworks, and the other one is dependent on jQuery. I&#8217;m using jQuery in this project, but I&#8217;ll be able to use Jasmine for future projects without jQuery too, so I chose it &#8211; I also like its syntax.</p>
<p>You can integrate Jasmin in Rails 3.1 yourself just using the Jasmine gem, but to simplify things with Coffeescript I decided to use a specific gem for the latest version of Rails and its assets pipeline. I couldn&#8217;t really choose between <a href="https://github.com/quickleft/test_track">test_track</a> and <a href="https://github.com/bradphelan/jasminerice">jasminerice</a>, which are both very young, so I went with the first one just based on intuition. Using the other one shouldn&#8217;t be very different.</p>
<p>So, I added to my gemfile:</p>
<pre class="code">gem "jasmine"

gem "test_track"</pre>
<p>and installed the new gems with &#8220;bundle&#8221;</p>
<p>I then created a spec/javascripts and spec/javascripts/helpers folder in the project tree. As I wanted to be able to easily test jQuery, I downloaded jasmine-jquery.js from <a href="https://github.com/velesin/jasmine-jquery">github</a> and copied it into spec/javascripts/helpers.</p>
<p>At this point I created the following jasmine.js file om spec/javascripts:</p>
<pre class="code">// SUITE :: Jasmine
// SUITE MANIFEST :: spec/javascripts/jasmine.js
// TEST SRC DIR :: spec/javascripts
//
//= require helpers/jasmine-jquery
//
//= require JsonDataSpec</pre>
<p>JsonDataSpec is the coffeescript spec file that I was going to create and that will be executed in the test. See the following example</p>
<p>spec/javascripts/JsonDataSpec.js.coffee:</p>
<pre class="code">describe "JsonData", -&gt;
  it 'should should have the correct format', -&gt;
    answer = null
    $.getJSON(
      "/controller/get_my_data/",
      (data) -&gt;
        answer = data
    )

    waitsFor -&gt;
      answer

    runs -&gt;
      expect(typeof answer.string).toEqual('string')
      expect(typeof answer.number).toEqual('number')</pre>
<p>The secret here is <span class="code">waitsFor -&gt; answer</span>, which will wait until the answer variable gets a non null value &#8211; that is, when the ajax call is complete. Only after that the actual test is run.</p>
<p>Last thing, I configured the test_track engine adding this code to routes.rb:</p>
<pre class="code">mount TestTrack::Engine =&gt; "test"</pre>
<p>And that&#8217;s it! To use my tests, I just run the server using <span class="code">rails s</span> and access the tests opening http://localhost:3000/test/jasmine in the browser. Smooth and easy.</p>
<p>Happy testing!</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="tall" count="1" href="http://blog.hashtagify.me/2011/10/28/javascript-async-testing-tutorial-jasmine-rails-3-1-coffeescript/"></g:plusone></div>
 <img src="http://blog.hashtagify.me/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=234" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.hashtagify.me/2011/10/28/javascript-async-testing-tutorial-jasmine-rails-3-1-coffeescript/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Bootstrapping hashtagify pro: How I doubled my workweek productivity</title>
		<link>http://blog.hashtagify.me/2011/10/23/bootstrapping-hashtagify-pro-how-i-doubled-my-workweek-productivity/</link>
		<comments>http://blog.hashtagify.me/2011/10/23/bootstrapping-hashtagify-pro-how-i-doubled-my-workweek-productivity/#comments</comments>
		<pubDate>Sun, 23 Oct 2011 11:14:41 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Roadmap]]></category>
		<category><![CDATA[Startup]]></category>

		<guid isPermaLink="false">http://blog.hashtagify.me/?p=228</guid>
		<description><![CDATA[Creating a startup while working a full time job has its pros and cons. Among the pros, you don&#8217;t have to use a lot of your time minding your investors (or looking for them), and you can devote your energies &#8230; <a href="http://blog.hashtagify.me/2011/10/23/bootstrapping-hashtagify-pro-how-i-doubled-my-workweek-productivity/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p>Creating a startup while working a full time job has its pros and cons. Among the pros, you don&#8217;t have to use a lot of your time minding your investors (or looking for them), and you can devote your energies to just make the best possible product. Among the cons, progress is slower and it is very difficult to be productive on workdays, when you already spend 8 hours or more on your day job.</p>
<p>But a week ago I read a comment on <a href="http://news.ycombinator.com/" target="_blank">HN</a> (<em>edit: thanks to raju in the comments for pointing me to the exact <a href="http://news.ycombinator.com/item?id=3110632">link</a></em>) that inspired me to rethink how I&#8217;m organizing myself , and with one simple change I doubled my productivity on workdays. How? Instead of working on hashtagify at nights, after getting home from my day job,<strong> I&#8217;m starting my day two hours earlier, and doing 2 hours of programming in the morning, before going to work</strong>.</p>
<p>I&#8217;m usually a night person, and have always been very productive at nights, since when I was just a student. But after eight hours of work, it is difficult to have that kind of focus that you need to program, and the two (or two and a half) hours in the morning have been much more productive than the equivalent time in the evening.</p>
<p>After coming home I still do some lighter work, and don&#8217;t go to bed without having scheduled a task to do the next morning; this way when I wake up I don&#8217;t have to think what to do and I can be immediately productive.</p>
<p>So, the bottom line is that work on <a href="http://blog.hashtagify.me/2011/10/04/evaluating-a-twitter-campaign/" target="_blank">hashtagify pro</a> is proceeding very well: now I&#8217;m making as much progress during the workweek as I usually make during weekends, while before I only made major progress outside workdays. This means that soon enough I&#8217;ll be able to release the first beta. Stay tuned!</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="tall" count="1" href="http://blog.hashtagify.me/2011/10/23/bootstrapping-hashtagify-pro-how-i-doubled-my-workweek-productivity/"></g:plusone></div>
 <img src="http://blog.hashtagify.me/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=228" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.hashtagify.me/2011/10/23/bootstrapping-hashtagify-pro-how-i-doubled-my-workweek-productivity/feed/</wfw:commentRss>
		<slash:comments>45</slash:comments>
		</item>
		<item>
		<title>Evaluating a Twitter Campaign</title>
		<link>http://blog.hashtagify.me/2011/10/04/evaluating-a-twitter-campaign/</link>
		<comments>http://blog.hashtagify.me/2011/10/04/evaluating-a-twitter-campaign/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 21:42:11 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[Roadmap]]></category>

		<guid isPermaLink="false">http://blog.hashtagify.me/?p=215</guid>
		<description><![CDATA[If you&#8217;re doing a marketing campaign on Twitter, how can you measure its real impact? And, specifically, how can you evaluate the individual contribution of single campaign participants? This is something that has been asked to us, and we think &#8230; <a href="http://blog.hashtagify.me/2011/10/04/evaluating-a-twitter-campaign/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p>If you&#8217;re doing a marketing campaign on Twitter, how can you measure its real impact? And, specifically, <strong>how can you evaluate the individual contribution of single campaign participants</strong>?</p>
<p>This is something that has been asked to us, and we think we&#8217;ve found an interesting solution to visually show this information by leveraging the hashtagify technology. So, if you&#8217;re interested in this kind of analysis, stay tuned. And, if you have specific suggestions or requests related to this, don&#8217;t hesitate to contact me writing to @hashtagify . First come, first served&#8230;</p>
<p>Be seeing you!</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="tall" count="1" href="http://blog.hashtagify.me/2011/10/04/evaluating-a-twitter-campaign/"></g:plusone></div>
 <img src="http://blog.hashtagify.me/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=215" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.hashtagify.me/2011/10/04/evaluating-a-twitter-campaign/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

