<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>ander's blog</title>
  <id>http://ander.heroku.com/</id>
  <updated>2008-03-21T00:00:00Z</updated>
  <author>
    <name></name>
  </author>
  <entry>
    <title>Ruby Koans</title>
    <link href="http://ander.heroku.com/2012/04/17/ruby-koans/" rel="alternate"/>
    <id>http://ander.heroku.com/2012/04/17/ruby-koans/</id>
    <published>2012-04-17T00:00:00Z</published>
    <updated>2012-04-17T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;Just went through EdgeCase&amp;rsquo;s &lt;a href="https://github.com/edgecase/ruby_koans"&gt;Ruby Koans&lt;/a&gt;.
The koans are composed of total 280 unit test like parts that you have to fix in&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;Just went through EdgeCase&amp;rsquo;s &lt;a href="https://github.com/edgecase/ruby_koans"&gt;Ruby Koans&lt;/a&gt;.
The koans are composed of total 280 unit test like parts that you have to fix in
order to learn Ruby. I did them in two days.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Simplicity</title>
    <link href="http://ander.heroku.com/2012/03/26/simplicity/" rel="alternate"/>
    <id>http://ander.heroku.com/2012/03/26/simplicity/</id>
    <published>2012-03-26T00:00:00Z</published>
    <updated>2012-03-26T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;John Maeda&amp;rsquo;s &lt;a href="http://www.amazon.co.uk/The-Laws-Simplicity-Technology-Business/dp/0262134721/"&gt;The Laws of Simplicity&lt;/a&gt;
is a nice book about simplicity in des&#237;gn,&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;John Maeda&amp;rsquo;s &lt;a href="http://www.amazon.co.uk/The-Laws-Simplicity-Technology-Business/dp/0262134721/"&gt;The Laws of Simplicity&lt;/a&gt;
is a nice book about simplicity in des&#237;gn,
technology, business, and life. I&amp;rsquo;ve had it for a while now and read it a couple
of times.&lt;/p&gt;

&lt;p&gt;The book defines ten laws and three keys of simplicity.&lt;/p&gt;

&lt;h2&gt;Ten Laws&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;REDUCE&lt;/strong&gt; The simplest way to achieve simplicity is through thoughtful reduction.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ORGANIZE&lt;/strong&gt; Organization makes a system of many appear fewer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TIME&lt;/strong&gt; Savings in time feel like simplicity.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LEARN&lt;/strong&gt; Knowledge makes everything simpler.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DIFFERENCES&lt;/strong&gt; Simplicity and complexity need each other.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CONTEXT&lt;/strong&gt; What lies in the periphery of simplicity is definitely not peripheral.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EMOTION&lt;/strong&gt; More emotions are better than less.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TRUST&lt;/strong&gt; In simplicity we trust.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FAILURE&lt;/strong&gt; Some things can never be made simple.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;THE ONE&lt;/strong&gt; Simplicity is about subtracting the obvious, and adding the meaningful.&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;Three Keys&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;AWAY&lt;/strong&gt; More appears like less by simply moving it far, far away.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OPEN&lt;/strong&gt; Openness simplifies complexity.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;POWER&lt;/strong&gt; Use less, gain more.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;All in all, it&amp;rsquo;s quite a light and entertaining read. There&amp;rsquo;s also a web site &lt;a href="http://lawsofsimplicity.com/"&gt;lawsofsimplicity.com&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Story</title>
    <link href="http://ander.heroku.com/2011/12/20/story/" rel="alternate"/>
    <id>http://ander.heroku.com/2011/12/20/story/</id>
    <published>2011-12-20T00:00:00Z</published>
    <updated>2011-12-20T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;I&amp;rsquo;ve recently read a few books about storytelling. They are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.amazon.co.uk/Story-Substance-Structure-Principles-Screenwriting/dp/0413715604/"&gt;Story&lt;/a&gt; by Robert Mckee,&lt;/li&gt;
&lt;/ul&gt;

</summary>
    <content type="html">&lt;p&gt;I&amp;rsquo;ve recently read a few books about storytelling. They are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.amazon.co.uk/Story-Substance-Structure-Principles-Screenwriting/dp/0413715604/"&gt;Story&lt;/a&gt; by Robert Mckee,&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.co.uk/Hero-Thousand-Faces-Joseph-Campbell/dp/0586085718/"&gt;The Hero with a Thousand Faces&lt;/a&gt; by Joseph Campbell,&lt;/li&gt;
&lt;li&gt;and &lt;a href="http://www.amazon.co.uk/Writers-Journey-Mythic-Structure/dp/193290736X/"&gt;The Writer&amp;rsquo;s Journey&lt;/a&gt; by Christopher Vogler.&lt;/li&gt;
&lt;/ul&gt;

</content>
  </entry>
  <entry>
    <title>Seven Languages in Seven Weeks</title>
    <link href="http://ander.heroku.com/2011/09/16/seven-languages-in-seven-weeks/" rel="alternate"/>
    <id>http://ander.heroku.com/2011/09/16/seven-languages-in-seven-weeks/</id>
    <published>2011-09-16T00:00:00Z</published>
    <updated>2011-09-16T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;Just got my copy of &lt;a href="http://www.amazon.co.uk/Seven-Languages-Weeks-Programming-Programmers/dp/193435659X"&gt;Seven Languages in Seven Weeks&lt;/a&gt; from Amazon. The languages it features are Ruby, Io, Prolog, Scala, Erlang, Clojure, and Haskell. I&amp;rsquo;m sure I&amp;rsquo;ll learn a lot&amp;hellip;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;Just got my copy of &lt;a href="http://www.amazon.co.uk/Seven-Languages-Weeks-Programming-Programmers/dp/193435659X"&gt;Seven Languages in Seven Weeks&lt;/a&gt; from Amazon. The languages it features are Ruby, Io, Prolog, Scala, Erlang, Clojure, and Haskell. I&amp;rsquo;m sure I&amp;rsquo;ll learn a lot.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Ignore Everybody and Anything You Want</title>
    <link href="http://ander.heroku.com/2011/07/06/ignore-everybody-and-anything-you-want/" rel="alternate"/>
    <id>http://ander.heroku.com/2011/07/06/ignore-everybody-and-anything-you-want/</id>
    <published>2011-07-06T00:00:00Z</published>
    <updated>2011-07-06T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;I just read these two books:
&lt;a href="http://www.amazon.co.uk/Ignore-Everybody-Hugh-MacLeod/dp/159184259X"&gt;Ignore Everybody&lt;/a&gt;
by &lt;a href="http://gapingvoid.com"&gt;Hugh McLeod&lt;/a&gt; and&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;I just read these two books:
&lt;a href="http://www.amazon.co.uk/Ignore-Everybody-Hugh-MacLeod/dp/159184259X"&gt;Ignore Everybody&lt;/a&gt;
by &lt;a href="http://gapingvoid.com"&gt;Hugh McLeod&lt;/a&gt; and
&lt;a href="http://www.amazon.co.uk/Anything-You-Want-Derek-Sivers/dp/1936719118"&gt;Anything You Want&lt;/a&gt;
by &lt;a href="http://sivers.org"&gt;Derek Sivers&lt;/a&gt;. Both are quite quick and interesting reads.&lt;/p&gt;

&lt;p&gt;They go right beside &lt;em&gt;A Whole New Mind&lt;/em&gt; and &lt;em&gt;Linchpin&lt;/em&gt; in my bookshelf.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>A nice stack of books</title>
    <link href="http://ander.heroku.com/2011/01/02/a-nice-stack-of-books/" rel="alternate"/>
    <id>http://ander.heroku.com/2011/01/02/a-nice-stack-of-books/</id>
    <published>2011-01-02T00:00:00Z</published>
    <updated>2011-01-02T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;&lt;img src="/images/02012011.jpg" alt="A nice stack of books" /&gt;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;&lt;img src="/images/02012011.jpg" alt="A nice stack of books" /&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Concerns in Rails 3</title>
    <link href="http://ander.heroku.com/2010/12/14/concerns-in-rails-3/" rel="alternate"/>
    <id>http://ander.heroku.com/2010/12/14/concerns-in-rails-3/</id>
    <published>2010-12-14T00:00:00Z</published>
    <updated>2010-12-14T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;A pattern you see around in Rails 3 source code is&lt;/p&gt;

&lt;pre name="code" class="brush: ruby"&gt;
module Foo
  extend ActiveSupport::Concern
  # ...
end
&lt;/pre&gt;

</summary>
    <content type="html">&lt;p&gt;A pattern you see around in Rails 3 source code is&lt;/p&gt;

&lt;pre name="code" class="brush: ruby"&gt;
module Foo
  extend ActiveSupport::Concern
  # ...
end
&lt;/pre&gt;


&lt;p&gt;&lt;code&gt;Concern&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;solves a problem of module dependencies piling up on the host, and&lt;/li&gt;
&lt;li&gt;provides a pattern for extending the host.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Piling up dependencies becomes a problem when you have a module &lt;code&gt;A&lt;/code&gt; and module &lt;code&gt;B&lt;/code&gt;,
and &lt;code&gt;B&lt;/code&gt; uses methods provided by &lt;code&gt;A&lt;/code&gt; &lt;strong&gt;at include time&lt;/strong&gt;.
Usually, host class &lt;code&gt;C&lt;/code&gt; needs to include module &lt;code&gt;A&lt;/code&gt; before module &lt;code&gt;B&lt;/code&gt; so
that needed methods are available at include time, i.e. piling up dependencies.&lt;/p&gt;

&lt;p&gt;With &lt;code&gt;ActiveSupport::Concern&lt;/code&gt; you can include &lt;code&gt;A&lt;/code&gt; to &lt;code&gt;B&lt;/code&gt; and just &lt;code&gt;B&lt;/code&gt; to host &lt;code&gt;C&lt;/code&gt;,
cascading dependencies.&lt;/p&gt;

&lt;pre name="code" class="brush: ruby"&gt;
module A
  extend ActiveSupport::Concern
  # ...
end

module B
  extend ActiveSupport::Concern
  include A
  
  included do
    # use methods provided by A
  end
end

class C
  include B
end
&lt;/pre&gt;


&lt;p&gt;A concern module has a modified &lt;code&gt;Module#included&lt;/code&gt; which can be passed a block
to be evaluated. It also automatically extends its &lt;code&gt;ClassMethods&lt;/code&gt; module
and includes its &lt;code&gt;InstanceMethods&lt;/code&gt; module to host, if present.&lt;/p&gt;

&lt;p&gt;See also documentation &lt;a href="https://github.com/rails/rails/blob/master/activesupport/lib/active_support/concern.rb"&gt;in the source code&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Habits</title>
    <link href="http://ander.heroku.com/2010/12/13/habits/" rel="alternate"/>
    <id>http://ander.heroku.com/2010/12/13/habits/</id>
    <published>2010-12-13T00:00:00Z</published>
    <updated>2010-12-13T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;&lt;code&gt;Habits&lt;/code&gt; is an experimental habit tracker.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Habits&lt;/code&gt; tracks habits in weekly cycles (i.e. status of each habit is cleared weekly).
Each habit has a day or days associated with it. &lt;code&gt;Habits&lt;/code&gt; expects activity on the habit on those days. If no activity is registered, habit goes first into yellow zone (e.g. 20 hours before deadline), then into red zone (e.g. 6 hours before), and finally into missed state. Transfer into each zone/state can be used to trigger commands&amp;hellip;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;&lt;code&gt;Habits&lt;/code&gt; is an experimental habit tracker.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Habits&lt;/code&gt; tracks habits in weekly cycles (i.e. status of each habit is cleared weekly).
Each habit has a day or days associated with it. &lt;code&gt;Habits&lt;/code&gt; expects activity on the habit on those days. If no activity is registered, habit goes first into yellow zone (e.g. 20 hours before deadline), then into red zone (e.g. 6 hours before), and finally into missed state. Transfer into each zone/state can be used to trigger commands.&lt;/p&gt;

&lt;p&gt;To install &lt;code&gt;Habits&lt;/code&gt;, first &lt;code&gt;gem install habits&lt;/code&gt;. After that, you need to call &lt;code&gt;habits whip&lt;/code&gt; regularly every hour to
update status of each habit. You can do this by adding line&lt;/p&gt;

&lt;pre&gt;
'0   *   *   *   *   /usr/bin/habits whip'
&lt;/pre&gt;


&lt;p&gt;to your crontab. Just put that line in a file and call &lt;code&gt;crontab &amp;lt;your_crontab_file&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Here&amp;rsquo;s a list of commands:&lt;/p&gt;

&lt;pre style="font-size: 75%"&gt;
gammak:~ ander$ habits ?

Usage: habits {command} arg1 arg2 ...

Command        Args                                Description
  create       TITLE DAYS                          Create a new habit.
  delete       TITLE                               Delete habit.
  do           TITLE [HOURS]                       Add activity to habit, hours optional.
  hold         TITLE                               Put a habit on hold.
  join         TITLE [OTHER_TITLE]                 Join habits. First one is kept.
  list                                             List habits.
  rename       TITLE NEW_TITLE                     Rename habit.
  show         TITLE                               Show activity of habit.
  split        TITLE                               Split a habit into days.
  unhold       TITLE                               Unhold a habit.
  whip                                             Use the whip.
  zones        TITLE YELLOW_ZONE RED_ZONE          Set habit's yellow and red zones.
&lt;/pre&gt;


&lt;p&gt;Habits is currently tuned to be used with OS X, but you can use it on any platform by
changing the &lt;code&gt;dialog&lt;/code&gt; method in your &lt;code&gt;whip_config&lt;/code&gt; (&lt;code&gt;$HOME/.habits/whip_config.rb&lt;/code&gt;)
to alarm properly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ander/habits"&gt;Repo&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>PKD</title>
    <link href="http://ander.heroku.com/2010/11/13/pkd/" rel="alternate"/>
    <id>http://ander.heroku.com/2010/11/13/pkd/</id>
    <published>2010-11-13T00:00:00Z</published>
    <updated>2010-11-13T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;I&amp;rsquo;m a big fan of &lt;a href="http://en.wikipedia.org/wiki/Philip_K._Dick"&gt;Philip K. Dick&lt;/a&gt; (a.k.a. PKD), the science-fiction writer.
He has written the original stories behind movies like &lt;a href="http://www.imdb.com/title/tt0181689/"&gt;Minority Report&lt;/a&gt; and &lt;a href="http://www.imdb.com/title/tt0083658/"&gt;Blade Runner&lt;/a&gt;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;I&amp;rsquo;m a big fan of &lt;a href="http://en.wikipedia.org/wiki/Philip_K._Dick"&gt;Philip K. Dick&lt;/a&gt; (a.k.a. PKD), the science-fiction writer.
He has written the original stories behind movies like &lt;a href="http://www.imdb.com/title/tt0181689/"&gt;Minority Report&lt;/a&gt; and &lt;a href="http://www.imdb.com/title/tt0083658/"&gt;Blade Runner&lt;/a&gt;
(based on &amp;ldquo;Do Androids Dream of Electric Sheep&amp;rdquo;). There&amp;rsquo;s also the movie
&lt;a href="http://www.imdb.com/title/tt0405296/"&gt;A Scanner Darkly&lt;/a&gt;, but I didn&amp;rsquo;t like it so much.&lt;/p&gt;

&lt;p&gt;IO9 had a &lt;a href="http://io9.com/5688720/books-by-frederik-pohl-and-philip-k-dick-available-as-free-downloads"&gt;nice post&lt;/a&gt; today pointing to some of PKD&amp;rsquo;s &lt;a href="http://www.gutenberg.org/browse/authors/d#a33399"&gt;works&lt;/a&gt; available on project Gutenberg. I know what I&amp;rsquo;ll be reading for a while.&lt;/p&gt;

&lt;p&gt;I also own the &lt;a href="http://www.amazon.co.uk/Five-Great-Novels-Gollancz-S-F/dp/0575084634/ref=sr_1_1?ie=UTF8&amp;amp;qid=1289638614&amp;amp;sr=1-1"&gt;5 Great Novels&lt;/a&gt; compilation and follow the &lt;a href="http://totaldickhead.blogspot.com"&gt;Total Dick-Head blog&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Portable Fretboard</title>
    <link href="http://ander.heroku.com/2010/11/03/portable-fretboard/" rel="alternate"/>
    <id>http://ander.heroku.com/2010/11/03/portable-fretboard/</id>
    <published>2010-11-03T00:00:00Z</published>
    <updated>2010-11-03T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;I&amp;rsquo;d like to have a portable guitar fretboard (standard Stratocaster would be ok) with following features.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Selectable samples per &amp;ldquo;string&amp;rdquo;. There would be no actual strings, just&lt;/li&gt;
&lt;/ul&gt;

</summary>
    <content type="html">&lt;p&gt;I&amp;rsquo;d like to have a portable guitar fretboard (standard Stratocaster would be ok) with following features.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Selectable samples per &amp;ldquo;string&amp;rdquo;. There would be no actual strings, just
some sort of button for each fret/string combo.&lt;/li&gt;
&lt;li&gt;Stored strum and arpeggio patterns&lt;/li&gt;
&lt;li&gt;Beats per second and time selection&lt;/li&gt;
&lt;li&gt;Alternative tunings (in samples)&lt;/li&gt;
&lt;li&gt;Save after play&lt;/li&gt;
&lt;li&gt;Rechargeable battery&lt;/li&gt;
&lt;li&gt;Output to headphones&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Basically, you could just try different chords and tunings with different strum or
arpeggio patterns with a highly portable device. It would probably need some sort of
right hand wrist band to attach the high end of fretboard to.&lt;/p&gt;
</content>
  </entry>
</feed>
