<?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>andHapp</title>
	<atom:link href="http://www.andhapp.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.andhapp.com/blog</link>
	<description>Failure is yours</description>
	<lastBuildDate>Wed, 28 Mar 2012 23:11:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Extract content from gmail</title>
		<link>http://www.andhapp.com/blog/2012/03/29/extract-content-from-gmail/</link>
		<comments>http://www.andhapp.com/blog/2012/03/29/extract-content-from-gmail/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 23:11:03 +0000</pubDate>
		<dc:creator>andhapp</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.andhapp.com/blog/?p=500</guid>
		<description><![CDATA[I wrote a quick script to extract contents from my gmail account. Here&#8217;s a gist. It might be of some help to someone.]]></description>
			<content:encoded><![CDATA[<p>I wrote a quick script to extract contents from my gmail account. Here&#8217;s a <a href="https://gist.github.com/2231347">gist</a>. It might be of some help to someone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andhapp.com/blog/2012/03/29/extract-content-from-gmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What does Spring bring?</title>
		<link>http://www.andhapp.com/blog/2012/03/28/what-does-spring-bring/</link>
		<comments>http://www.andhapp.com/blog/2012/03/28/what-does-spring-bring/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 22:56:58 +0000</pubDate>
		<dc:creator>andhapp</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Timezone]]></category>

		<guid isPermaLink="false">http://www.andhapp.com/blog/?p=498</guid>
		<description><![CDATA[For non-programmers, Spring symbolises sunshine, warm breeze and holiday season. However, the story is a little bit different for Programmers. Yes, Spring brings timezone issues for Programmes. In other words, the moment of truth is upon us now and it&#8217;s &#8230; <a href="http://www.andhapp.com/blog/2012/03/28/what-does-spring-bring/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For non-programmers, Spring symbolises sunshine, warm breeze and holiday season. However, the story is a little bit different for Programmers. Yes, Spring brings timezone issues for Programmes. In other words, the moment of truth is upon us now and it&#8217;s time to check your timezone code. I spotted two obvious issues, and both are somewhat related to github. My pull request on rails are showing an hour behind the actual time, and the resque web admin retries the failed jobs an hour before the actual time.</p>
<p>Anyways, just a little Spring warning.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andhapp.com/blog/2012/03/28/what-does-spring-bring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Speed up tests in Rails</title>
		<link>http://www.andhapp.com/blog/2012/03/28/speed-up-tests-in-rails/</link>
		<comments>http://www.andhapp.com/blog/2012/03/28/speed-up-tests-in-rails/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 10:58:18 +0000</pubDate>
		<dc:creator>andhapp</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.andhapp.com/blog/?p=495</guid>
		<description><![CDATA[Testing has always been part of the Rails framework, right from the beginning. The whole TDD concept became hugely popular after Rails was adopted in the mainstream. It has been around but Web applications were tested in a different manner &#8230; <a href="http://www.andhapp.com/blog/2012/03/28/speed-up-tests-in-rails/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Testing has always been part of the Rails framework, right from the beginning. The whole TDD concept became hugely popular after Rails was adopted in the mainstream. It has been around but Web applications were tested in a different manner 10 years ago. On my first day as a Java Developer, I was told by a Senior Developer that you can&#8217;t really test a Java web app by writing unit tests. I took his advice and frankly speaking, I didn&#8217;t know better. </p>
<p>Anyways, I am not here to talk about my career. I have been doing Rails for quite a while now and on one project, test suite took about 30 minutes to run. I know, 30 minutes. Because, we didn&#8217;t fake the calls to external APIs. How silly was that? So, recently I started working on the project and every time I ran the test suite, it took 2 minutes for them to run. That kind of put me off the whole testing thing. I mean what&#8217;s the point. I can just write the code and use the good old presentation driven development, where if it works it works. If it doesn&#8217;t, then we&#8217;ll fix it. This strategy kind of works, but becomes a nightmare when one bug fix results in another regression bug.</p>
<p>I ventured out looking for solutions and I found that instead of fixing the issues around testing, community has moved to the whole client/server architecture towards testing. I started on Spork. It&#8217;s a very nice idea but I don&#8217;t want to muck about with my configs and do the setting up. The downside is that now I have to get the entire team to use Spork and set it up and all. I know it works and a lot of developers use it but I don&#8217;t want to do it. Then, accidentally, I found spin. <a href="http://jstorimer.github.com/spin/">Spin</a> is the same client/server idea but instead of a drb server, like Spork, it uses UNIX sockets for communication. There is absolutely no setup required. I have been using it on two different projects and it has worked nicely.</p>
<p>Some other solutions are to load your database in memory, easy to do with sqlite but with postgres you have to create a ram disk and load the database from there. Stop abusing machinist, factory_girl and the like as they make db calls. Instead, use mocks and stubs.</p>
<p>But, I still think these are just workarounds for the existing problem with Rails load times and testing. Is there a better solution to this problem? How can I make my application testable, follow TDD and yet never have to worry about loading rails? I guess I need to objectify my application. I will probably talk about it in my next post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andhapp.com/blog/2012/03/28/speed-up-tests-in-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shiny new bundler and my is_bot gem</title>
		<link>http://www.andhapp.com/blog/2011/11/27/shiny-new-bundler-and-my-is_bot-gem/</link>
		<comments>http://www.andhapp.com/blog/2011/11/27/shiny-new-bundler-and-my-is_bot-gem/#comments</comments>
		<pubDate>Sun, 27 Nov 2011 20:04:35 +0000</pubDate>
		<dc:creator>andhapp</dc:creator>
		
		<guid isPermaLink="false">http://www.andhapp.com/blog/?p=491</guid>
		<description><![CDATA[If you haven&#8217;t already installed the release candidate of superfast bundler, then I feel sorry for you. It&#8217;s hard to put your faith in me but here&#8217;s an article that might change your heart. It&#8217;s super simple, just do: gem &#8230; <a href="http://www.andhapp.com/blog/2011/11/27/shiny-new-bundler-and-my-is_bot-gem/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you haven&#8217;t already installed the release candidate of superfast bundler, then I feel sorry for you. It&#8217;s hard to put your faith in me but here&#8217;s an <a href="http://patshaughnessy.net/2011/10/14/why-bundler-1-1-will-be-much-faster">article</a> that might change your heart. It&#8217;s super simple, just do:</p>
<pre>
gem install bundler --pre
</pre>
<p>Last year, I released a gem called is_bot (which is just a trivial way to fool the spammers). I have been using it in several projects and keep updating it with new releases of the Rails. Few months back when <a href="http://blog.rubygems.org/2011/08/31/shaving-the-yaml-yak.html">rubygems</a> was having trouble with Syck yaml parser, I released a version (0.3.3) of my is_bot gem. As a result, this version of is_bot suffered from the same issue and it gave me error messages on subsequent installs. Since then, I have released three more versions of the gem and the current version stands at 0.3.6.</p>
<p>Now, the earlier version of bundler was quite forgiving and I could hack the cached gemspec file to install it. But the new version of bundler, simply rejects it. I was quite surprised to see the error message I get from bundler when I tried installing the current version (0.3.6). Because, it doesn&#8217;t say anything about the 0.3.6 version but complains about 0.3.3 version. I thought I was going crazy. I even specified the version of the gem to 0.3.6 in my Gemfile but still it complained about 0.3.3 version. I know, I know that bundler needs to download the &#8216;Big Index&#8217; for dependency resolution but I never had this problem with the earlier versions of bundler, then why now. Why my gem? </p>
<p>So, I did more investigation and ran the following command to see what exactly does bundler get back when it hits the <a href="http://guides.rubygems.org/rubygems-org-api/#misc">rubygems&#8217;s endpoint</a>:</p>
<pre>
ruby -ropen-uri -rpp -e \
  'pp Marshal.load(open("https://rubygems.org/api/v1/dependencies?gems=is_bot"))'
</pre>
<p>and this returns something like this:</p>
<pre>
[{:platform=>"ruby",
  :name=>"is_bot",
  :dependencies=>[["rspec", ">= 0"], ["rails", "= 3.1.1"]],
  :number=>"0.3.6"},
 {:platform=>"ruby",
  :name=>"is_bot",
  :dependencies=>[["rspec", ">= 0"], ["rails", "= 3.1.1"]],
  :number=>"0.3.5"},
 {:platform=>"ruby",
  :name=>"is_bot",
  :dependencies=>
   [["rspec", ">= 0"],
    ["rails", "#<YAML::Syck::DefaultKey:0xbd36f20> 3.1.0.rc6"]],
  :number=>"0.3.3"},
 {:platform=>"ruby",
  :name=>"is_bot",
  :dependencies=>[["rspec", "= 2.6.0"], ["rails", "= 3.1.0.rc5"]],
  :number=>"0.3.2"},
 {:platform=>"ruby",
  :name=>"is_bot",
  :dependencies=>[["rspec", "= 2.6.0"], ["rails", "= 3.1.0.rc4"]],
  :number=>"0.3.1"},
 {:platform=>"ruby",
  :name=>"is_bot",
  :dependencies=>
   [["sqlite3", "= 1.3.3"], ["rspec", "= 2.6.0"], ["rails", "= 3.1.0.rc4"]],
  :number=>"0.3.0"},
 {:platform=>"ruby",
  :name=>"is_bot",
  :dependencies=>
   [["sqlite3", "= 1.3.3"], ["rspec", "= 2.4.0"], ["rails", "= 3.0.3"]],
  :number=>"0.2.0"},
 {:platform=>"ruby", :name=>"is_bot", :dependencies=>[], :number=>"0.1.0"}]
</pre>
<p>And you can see &#8220;YAML::Syck::DefaultKey:0xbd36f20&#8243; bit that results in illformed gemspec error. I guess the earlier versions of Bundler had a fix for this issue, but the latest rc version loads up this information and straight-away complains about the illformed gemspec. That&#8217;s all good but what&#8217;s the solution for this issue. Simple! Yank the 0.3.3 version of the gem and you are good to go. Another solution would be to regenerate the gemspec for 0.3.3 again, which I hope rubygems stores uncorrupted. </p>
<p>Phew.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andhapp.com/blog/2011/11/27/shiny-new-bundler-and-my-is_bot-gem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Clearance test suite to green</title>
		<link>http://www.andhapp.com/blog/2011/04/27/getting-clearance-test-suite-to-green/</link>
		<comments>http://www.andhapp.com/blog/2011/04/27/getting-clearance-test-suite-to-green/#comments</comments>
		<pubDate>Wed, 27 Apr 2011 14:40:29 +0000</pubDate>
		<dc:creator>andhapp</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[cucumber]]></category>

		<guid isPermaLink="false">http://www.andhapp.com/blog/?p=486</guid>
		<description><![CDATA[The title could be slightly misleading but I am not talking about installing clearance in your Rails application. This post is just a small note to myself since I had considerable difficulties in getting the clearance gem&#8217;s test suite working &#8230; <a href="http://www.andhapp.com/blog/2011/04/27/getting-clearance-test-suite-to-green/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The title could be slightly misleading but I am not talking about installing clearance in your Rails application. This post is just a small note to myself since I had considerable difficulties in getting the clearance gem&#8217;s test suite working in my local environment. It&#8217;s a very trivial detail that I missed or rather overlooked whilst trying to get them working. For readers who don&#8217;t know, <a href="https://github.com/thoughtbot/clearance/">Clearance</a> is a Rails authentication engine and is developed by ThoughtBot and let me tell you that they love Cucumber. For testing the engine, Clearance uses <a href="https://github.com/aslakhellesoy/aruba">Aruba</a>, i.e. CLI steps for Cucumber.</p>
<p>The background story is that I have been quite interested in Clearance for quite a while now and am quite active in the ML and do chime in with my opinions and I just updated my local fork after a while and ran the specs and features. My preferred approach when bug fixing or adding any features or just code browsing any library is to install the dependencies in the vendor directory via bundler. I could use rvm gemsets and install the dependencies there but I usually don&#8217;t go for that approach. </p>
<p>So, I did exactly the same for clearance and installed the dependencies to vendor directory and ran the specs and features. Specs ran without any issues but with features I got a weird <strong>&#8220;bundler can&#8217;t be found&#8221;</strong> error. I was stumbled because I do have bundler installed on my machine. Anyways, after hours of debugging I figured the root of the cause. Below is the cucumber feature that does the background work in testing the engine(*taken from <a href="https://github.com/thoughtbot/clearance/blob/master/features/integration.feature">Clearance repository</a>):</p>
<pre>
When I successfully run "rails new testapp"
    And I cd to "testapp"
    And I remove the file "public/index.html"
    And I remove the file "app/views/layouts/application.html.erb"
    And I configure ActionMailer to use "localhost" as a host
    And I configure a root route
    And I add the "cucumber-rails" gem
    And I add the "capybara" gem
    And I add the "rspec-rails" gem
    And I add the "factory_girl_rails" gem
    And I add the "dynamic_form" gem
    And I add the "database_cleaner" gem
    And I add the "clearance" gem from this project
    And I add the "diesel" gem
    And I run "bundle install --local"
    And I successfully run "rails generate cucumber:install"
    And I disable Capybara Javascript emulation
    And I successfully run "rails generate clearance:features"
</pre>
<p>and you can see it creates a new rails app and installs the dependencies as part of the feature.</p>
<p>To run the test suite I used the following command:</p>
<pre>
bundle exec rake cucumber
</pre>
<p>because I installed all my dependencies in vendor and for them to be in the LOAD_PATH ran rake scoped via bundler. Now, when it came to running the CLI steps it complained about bundler&#8217;s absence because it was not installed to vendor as it was not in the Gemfile. </p>
<p>I did not use:</p>
<pre>
rake cucumber
</pre>
<p>because then bundler path would not kick in and the features would fail straight-away. So, how can we get this to work. Simple. Just create a new gemset for all the clearance development dependencies and get bundler to install it to the gemset as opposed to vendor and then run the features using:</p>
<pre>
rake cucumber
</pre>
<p>And they will be green. Phew. It took me a while to figure this out but I am so relieved I did.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andhapp.com/blog/2011/04/27/getting-clearance-test-suite-to-green/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ActiveModel API and Parameter Object design pattern</title>
		<link>http://www.andhapp.com/blog/2011/04/17/activemodel-api-and-parameter-object-design-pattern/</link>
		<comments>http://www.andhapp.com/blog/2011/04/17/activemodel-api-and-parameter-object-design-pattern/#comments</comments>
		<pubDate>Sun, 17 Apr 2011 13:39:40 +0000</pubDate>
		<dc:creator>andhapp</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rails ActiveModel DesignPatterns]]></category>

		<guid isPermaLink="false">http://www.andhapp.com/blog/?p=483</guid>
		<description><![CDATA[About 3 months ago, I was working on this piece of code which had some &#8220;virtual models&#8221;. Virtual models are the entities that are well defined models except they are never persisted to the database. They are just kept in &#8230; <a href="http://www.andhapp.com/blog/2011/04/17/activemodel-api-and-parameter-object-design-pattern/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>About 3 months ago, I was working on this piece of code which had some &#8220;virtual models&#8221;. Virtual models are the entities that are well defined models except they are never persisted to the database. They are just kept in memory and discarded. You could by all means persist them but I didn&#8217;t have to do it at the time.</p>
<p>The application had a search interface (that allowed users to search across the application). We all know any user interaction needs robust validations and it was same for this application as well.  The interface allowed users to select 4 (or 5) different filters to search across. So. the task was to capture the user supplied search filters and validate them and if valid search the and display the results based on it. There are several ways to solve this problem but I think with ActiveModel API the task at hand becomes really really easy.</p>
<p>ActiveModel API makes a <a href="http://yehudakatz.com/2010/01/10/activemodel-make-any-ruby-object-feel-like-activerecord/">ruby object feel like activerecord</a>. This essentially means creating one &#8220;Search&#8221; virtual model (object) and use ActiveModel API and add validations to it. And all the search filters are defined on the Search model itself which is in line with <a href="http://www.refactoring.com/catalog/introduceParameterObject.html">Martin Fowler&#8217;s Parameter Object design pattern</a>. Well, better designed code promotes better practices.</p>
<p>Sorry, for absence of any code in this post as I did this ages ago and was for a client project. Please leave comments if you need any clarifications.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andhapp.com/blog/2011/04/17/activemodel-api-and-parameter-object-design-pattern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What I learnt by presenting at SRUG</title>
		<link>http://www.andhapp.com/blog/2011/04/10/what-i-learnt-by-presenting-at-srug/</link>
		<comments>http://www.andhapp.com/blog/2011/04/10/what-i-learnt-by-presenting-at-srug/#comments</comments>
		<pubDate>Sun, 10 Apr 2011 19:24:40 +0000</pubDate>
		<dc:creator>andhapp</dc:creator>
				<category><![CDATA[Presentation]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[Srug]]></category>

		<guid isPermaLink="false">http://www.andhapp.com/blog/?p=480</guid>
		<description><![CDATA[I always wanted to do a technical presentation and it finally happened on 29th March 2011 at Woking. I just think putting yourself in front of 20-30 people and to respond to their queries is a courageous task and I &#8230; <a href="http://www.andhapp.com/blog/2011/04/10/what-i-learnt-by-presenting-at-srug/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I always wanted to do a technical presentation and it finally happened on 29th March 2011 at Woking. I just think putting yourself in front of 20-30 people and to respond to their queries is a courageous task and I am quite pleased to have experienced it now. Well, it all started off with a simple email from the SRUG organiser and I dived head first. Since it was my first ever presentation, I was more inclined to pick an easy topic. I am thankful there that there is a <a href="http://surreyrubyists.uservoice.com/forums/100459-what-do-you-want-to-see-at-srug-">Surrey Ruby User Group&#8217;s Uservoice page</a> with several preferred topics and I decided to go for &#8220;Creating Gems&#8221;. You can find my presentation <a href="https://github.com/andhapp/srug-presentation">&#8220;Creating Gems&#8221;</a> on github. I used <a href="https://github.com/schacon/showoff">showoff</a> gem along with a simple screencast. </p>
<p>So, now here&#8217;s what I learnt from the whole experience. This is my personal feedback on my performance:</p>
<ul>
<li>Always, always and always carry all the equipment you might need on the day. For example: I did not have a Mini DV to VGA adapter to hook up with the projector which meant I had to go second.
</li>
<li>Check your presentation on different resolutions. Projector&#8217;s resolution can spoil the whole presentation. It works on my machine would just not cut it.
</li>
<li>I am still quite new to showoff gem and I should have spent more time exploring it. It&#8217;s quite amazing and you can do a ton of stuff with it but I still need to delve into it a bit more.
</li>
<li>Use an iPad to do your presentations. Jon (the fellow presenter on the night) was using an iPad and the whole experience was just amazing. </li>
</ul>
<p>and now on the funny side:</p>
<p>There&#8217;s a twitter user called <a href="http://twitter.com/killallclients">killallclients</a>. Hilarious stories in that stream and ofcourse you know that such presentations are amazing for networking and meeting people who could offer you work in the future. I was quite disappointed by my presentation and I am working on improving it next time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andhapp.com/blog/2011/04/10/what-i-learnt-by-presenting-at-srug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trunkly Chrome extension</title>
		<link>http://www.andhapp.com/blog/2011/03/16/trunkly-chrome-extension/</link>
		<comments>http://www.andhapp.com/blog/2011/03/16/trunkly-chrome-extension/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 06:41:46 +0000</pubDate>
		<dc:creator>andhapp</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Chrome]]></category>

		<guid isPermaLink="false">http://www.andhapp.com/blog/?p=476</guid>
		<description><![CDATA[Yahoo announced quite a while ago that delicious (their bookmarking tool) will be shut down and I started looking for alternatives. There are few things I am looking for in a bookmarking tool: 1. I don&#8217;t want to pay for &#8230; <a href="http://www.andhapp.com/blog/2011/03/16/trunkly-chrome-extension/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.yahoo.com">Yahoo</a> announced quite a while ago that <a href="http://www.delicious.com/">delicious</a> (their bookmarking tool) will be shut down and I started looking for alternatives. There are few things I am looking for in a bookmarking tool:</p>
<p>1. I don&#8217;t want to pay for it.<br />
2. It should have a nice interface to work with.<br />
3. It should have a browser extension for example: delicious Firefox extension was a pleasure to use.<br />
4. It should have a nice API to I can build my own extensions (provided none exists) or may be a desktop app.<br />
5. and I don&#8217;t want to pay for it. <img src='http://www.andhapp.com/blog/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> )</p>
<p>Luckily, there is another similar bookmarking tool known as <a href="http://trunk.ly/">Trunkly</a> which ticks most of my requirements except that I could not find a browser extension for the same. So, as I said, I scratched my own itch and built one for Chrome. One thing that must be said is that writing an extension for Chrome is the easiest thing I have done in a while. The documentation is amazing and if you can read the documentation and follow the samples then writing an extension will be a walk in the park.</p>
<p>At the moment, the code is very young and it uses HTML5 localStorage to save the API key which might <a href="http://www.nczonline.net/blog/2010/04/13/towards-more-secure-client-side-data-storage/">not be secure</a> due to all sorts of reason but this is early days and I plan to change it in the later iterations or perhasp use the web database. The extension is not hosted in the Chrome store yet or anywhere else and if you do want to try it out just download the zip and load it in Chrome. The <a href="https://github.com/andhapp/trunkly-chrome">code</a> is hosted on github and if anyone wants to improve it or hack it, please go ahead.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andhapp.com/blog/2011/03/16/trunkly-chrome-extension/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fonts and copyright issues</title>
		<link>http://www.andhapp.com/blog/2011/01/30/fonts-and-copyright-issues/</link>
		<comments>http://www.andhapp.com/blog/2011/01/30/fonts-and-copyright-issues/#comments</comments>
		<pubDate>Sun, 30 Jan 2011 13:16:58 +0000</pubDate>
		<dc:creator>andhapp</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[copyright]]></category>
		<category><![CDATA[font]]></category>

		<guid isPermaLink="false">http://www.andhapp.com/blog/?p=470</guid>
		<description><![CDATA[I have always wondered what the implications are in using a font on your site. Since I own a mac can I just use any font that comes with and create an image and use it on my site. Does &#8230; <a href="http://www.andhapp.com/blog/2011/01/30/fonts-and-copyright-issues/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have always wondered what the implications are in using a font on your site. Since I own a mac can I just use any font that comes with and create an image and use it on my site. Does owning a Mac or PC or any other machine for that matter give me the right to use the system fonts? I never had to face any sort of copyright issues but I just got thinking the other day and started researching a little bit and it&#8217;s quite straight forward.</p>
<p>The person who creates the font is the rightful owner and it&#8217;s up to him to let it be used freely or license it out. Every font actually has different sorts of licenses attached to it. The fonts that come with your Mac or PC are licensed to be used on that machine. Let us say if you want to use the same fonts and put them on the server then they are not licensed to be used there which means to put them on the server requires one to buy a license for it. </p>
<p>However, if you create an image using a font on your system and then use it as your logo then are you breaking any copyright laws? Once you have created a graphic using the font you are the owner of the graphic and are using(or distributing) it as a graphic and not as a font. But, be aware that this depends from font to font and one should read the terms and conditions of the license before using it. It does get a bit complicated, I must say.  Anyways, while researching I found a really nice site with a <a href="http://www.fontsquirrel.com/fonts/list/mostdownloaded">collection of fonts</a> that one can use and majority of them do not have a hefty price tag attached to them. </p>
<p>Please make sure you consult a lawyer regarding any complex copyright issues to protect yourself from massive payouts later.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andhapp.com/blog/2011/01/30/fonts-and-copyright-issues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Designer code meet</title>
		<link>http://www.andhapp.com/blog/2011/01/07/designer-code-meet/</link>
		<comments>http://www.andhapp.com/blog/2011/01/07/designer-code-meet/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 06:47:41 +0000</pubDate>
		<dc:creator>andhapp</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Kata]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.andhapp.com/blog/?p=465</guid>
		<description><![CDATA[Do you write Designer code? Well, this was the topic of Chris Parsons&#8217;s (eden developments) talk on Thursday evening. The presentation was top-notch and so was the exercise afterwards. I was lucky enough to pair up with James Adams (from &#8230; <a href="http://www.andhapp.com/blog/2011/01/07/designer-code-meet/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Do you write Designer code? </p>
<p>Well, this was the topic of <a href="https://github.com/chrismdp">Chris Parsons&#8217;s</a> (<a href="http://edendevelopment.co.uk/">eden developments</a>) talk on Thursday evening. The presentation was top-notch and so was the exercise afterwards. I was lucky enough to pair up with <a href="https://github.com/lazyatom">James Adams</a> (from <a href="http://gofreerange.com/">Go Free Range</a>) and a ruby stalwart. We ended up refactoring some nasty piece of code into designer code pretty quickly. It was a really nice experience after all. If you would like to have a go then, it lives in Chris&#8217;s <a href="https://github.com/chrismdp/checkout-kata">checkout-kata repository</a> under <a href="https://github.com/chrismdp/checkout-kata/tree/obfuscated">obfuscated branch</a>. </p>
<p>The problem is our own <a href="http://codekata.pragprog.com/2007/01/kata_nine_back_.html">checkout problem</a>, which I am sure you have come across before.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andhapp.com/blog/2011/01/07/designer-code-meet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

