<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>BlainePower</title>
  <id>http://127.0.0.1</id>
  <updated>2009-12-02T00:00:00Z</updated>
  <author>
    <name></name>
  </author>
  <entry>
    <title>I'm officially finished with jacolyte.com</title>
    <link href="http://127.0.0.1/2010/06/01/im-officially-finished-with-jacolytecom/" rel="alternate"/>
    <id>http://127.0.0.1/2010/06/01/im-officially-finished-with-jacolytecom/</id>
    <published>2010-06-01T00:00:00Z</published>
    <updated>2010-06-01T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;I&amp;rsquo;ve been working on jacolyte.com for about a year, and I&amp;rsquo;m finally finished. It&amp;rsquo;s undergone many radical changes, and will probably never be 100% finished, but I can finally call it a polished, finished product. Originally, the goal was to have a large music site with tags, categories, genres, comments, an API, an admin interface, and a lot more. With the latest iteration of jacolyte.com, I&amp;rsquo;ve simplified the goal. The goal is now just an index of music hosted on 3rd party file hosts&amp;hellip;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;I&amp;rsquo;ve been working on jacolyte.com for about a year, and I&amp;rsquo;m finally finished. It&amp;rsquo;s undergone many radical changes, and will probably never be 100% finished, but I can finally call it a polished, finished product. Originally, the goal was to have a large music site with tags, categories, genres, comments, an API, an admin interface, and a lot more. With the latest iteration of jacolyte.com, I&amp;rsquo;ve simplified the goal. The goal is now just an index of music hosted on 3rd party file hosts.&lt;/p&gt;

&lt;p&gt;Jacolyte.com was originally built on Django, then Rails, then finally Sinatra. I threw MySQL under the bus, and considered CouchDB for a moment, then realized there&amp;rsquo;s a perfectly good file store, the filesystem.&lt;/p&gt;

&lt;p&gt;The stack includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Language: Ruby&lt;/li&gt;
&lt;li&gt;Framework: Sinatra&lt;/li&gt;
&lt;li&gt;Server: Thin&lt;/li&gt;
&lt;li&gt;OS: Ubuntu&lt;/li&gt;
&lt;li&gt;Datastore: Filesystem&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;If you haven&amp;rsquo;t checked it out already, take a look at &lt;a href="http://www.jacolyte.com"&gt;jacolyte.com&lt;/a&gt;. Now, on to other projects&amp;hellip;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>The filesystem is your friend</title>
    <link href="http://127.0.0.1/2010/04/26/the-filesystem-is-your-friend/" rel="alternate"/>
    <id>http://127.0.0.1/2010/04/26/the-filesystem-is-your-friend/</id>
    <published>2010-04-26T00:00:00Z</published>
    <updated>2010-04-26T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;Sometimes all you need is to just persist some data, and not really search it or make relations with it in any way. Sometimes you just want an index of some MP3 metadata, or something of the like. Thus, you can turn to your buddy, the file system. Sometimes making your data relational, and doing advanced views with it is something that adds little value to your data, thus can be disregarded&amp;hellip;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;Sometimes all you need is to just persist some data, and not really search it or make relations with it in any way. Sometimes you just want an index of some MP3 metadata, or something of the like. Thus, you can turn to your buddy, the file system. Sometimes making your data relational, and doing advanced views with it is something that adds little value to your data, thus can be disregarded.&lt;/p&gt;

&lt;p&gt;I got the inspiration to use the filesystem more often from my job. We have an application that processes loads and loads of data that is not inherently relational. There is so much intermediate data that is processed before we actually get to the end-result, and the data is transformed so much, that with the current database-design we use now, there are countless unnecessary database transactions. This data serves well as being serialized to disk, when need be. The data that we process does not need to be shared, or distributed, or kept under any solid constraints, because it will never be used by other applications! The only thing we really need is a data store, and the filesystem is just the tool for the job.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve decided to make my &lt;a href="http://www.jacolyte.com"&gt;Jacolyte&lt;/a&gt; website filesystem based, as it is just a large index of music, and searching it I&amp;rsquo;m delegating to Google.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Considering document-oriented data-stores</title>
    <link href="http://127.0.0.1/2010/03/24/considering-document-oriented-data-stores/" rel="alternate"/>
    <id>http://127.0.0.1/2010/03/24/considering-document-oriented-data-stores/</id>
    <published>2010-03-24T00:00:00Z</published>
    <updated>2010-03-24T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;I am considering moving the database layer of one of my websites to a
document-oriented data-store, specifically, CouchDB. I really like the idea of
schemaless databases, and it seems like it would be a lot easier to manage and&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;I am considering moving the database layer of one of my websites to a
document-oriented data-store, specifically, CouchDB. I really like the idea of
schemaless databases, and it seems like it would be a lot easier to manage and
horizontally scale. Also, CouchDB is built upon Erlang, which is known for
insanely robust concurrency, scalability, and availability.&lt;/p&gt;

&lt;p&gt;One of the features that would be extremely advantageous to me is replication.
My web application is a client/server package where many clients do work
disconnected from the main network, and need to report back to the main server
later.  I&amp;rsquo;ve been able to implement this with MySQL and Rails, but it didn&amp;rsquo;t
seem like a good solution.&lt;/p&gt;

&lt;p&gt;In Rails, I had thousands of records that I wanted to replicate to a master web
application. With ActiveResource, this can mean thousands of HTTP requests, and
I would much rather avoid that.  When using ActiveResource, I also ran into an
issue with replicating data with deeply nested associations, and ID collisions,
and unknown replication problems that caused some records to not be sent to the
master web application.&lt;/p&gt;

&lt;p&gt;So, I&amp;rsquo;m hoping to have more luck moving the responsibility of replication off
of the application layer and onto the database layer with CouchDB.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>The solution to health care woes</title>
    <link href="http://127.0.0.1/2010/03/22/the-solution-to-health-care-woes/" rel="alternate"/>
    <id>http://127.0.0.1/2010/03/22/the-solution-to-health-care-woes/</id>
    <published>2010-03-22T00:00:00Z</published>
    <updated>2010-03-22T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;The solution: stop shutting down and restricting midwives, nurses, and other lower practitioners from swabbing a few ears and checking a few throats, and requiring 10 year medical school educated doctors to oversee said swabbing of throats and ears&amp;hellip;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;The solution: stop shutting down and restricting midwives, nurses, and other lower practitioners from swabbing a few ears and checking a few throats, and requiring 10 year medical school educated doctors to oversee said swabbing of throats and ears.&lt;/p&gt;

&lt;p&gt;The majority of people just need some antibiotics or flu shots. You don&amp;rsquo;t need a 10 year trained medical professional for this.&lt;/p&gt;

&lt;p&gt;The government says they want to promote competition and drive down costs&amp;hellip; well&amp;hellip; they should stop helping overpaid doctors monopolize the health care industry. Doctors have lots of money, insurance companies have lots of money. Who likes money? The government. The government likes to help people with money. Is it not obvious that the government is doing all of the monopolizing for the already large health care companies?&lt;/p&gt;

&lt;p&gt;Government: if you want to solve all of our problems, then all you have to do is stop creating them.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Old blog articles from blog.jacolyte.com migrated to www.blainepower.com</title>
    <link href="http://127.0.0.1/2010/03/13/old-blog-articles-from-blogjacolytecom-migrated-to-wwwblainepowercom/" rel="alternate"/>
    <id>http://127.0.0.1/2010/03/13/old-blog-articles-from-blogjacolytecom-migrated-to-wwwblainepowercom/</id>
    <published>2010-03-13T00:00:00Z</published>
    <updated>2010-03-13T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;I&amp;rsquo;ve migrated all of the old articles from my old wordpress site to this one. I did it with a home-brewed Ruby script.&lt;/p&gt;

&lt;script src="http://gist.github.com/331862.js"&gt;&lt;/script&gt;

</summary>
    <content type="html">&lt;p&gt;I&amp;rsquo;ve migrated all of the old articles from my old wordpress site to this one. I did it with a home-brewed Ruby script.&lt;/p&gt;

&lt;script src="http://gist.github.com/331862.js"&gt;&lt;/script&gt;

</content>
  </entry>
  <entry>
    <title>Blogging with Heroku and Toto</title>
    <link href="http://127.0.0.1/2010/03/12/blogging-with-heroku-and-toto/" rel="alternate"/>
    <id>http://127.0.0.1/2010/03/12/blogging-with-heroku-and-toto/</id>
    <published>2010-03-12T00:00:00Z</published>
    <updated>2010-03-12T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;I just set up this blog in probably 5-10 minutes. I signed up with &lt;a href="http://www.heroku.com"&gt;Heroku&lt;/a&gt; and &lt;a href="http://cloudhead.io/toto"&gt;followed the instructions for installing Toto&lt;/a&gt;. This simplistically delicious blog you are seeing is a result of those instructions&amp;hellip;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;I just set up this blog in probably 5-10 minutes. I signed up with &lt;a href="http://www.heroku.com"&gt;Heroku&lt;/a&gt; and &lt;a href="http://cloudhead.io/toto"&gt;followed the instructions for installing Toto&lt;/a&gt;. This simplistically delicious blog you are seeing is a result of those instructions.&lt;/p&gt;

&lt;p&gt;It even has Disqus comments. Freakin' sweet.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>How I&amp;#8217;ve become a better programmer</title>
    <link href="http://127.0.0.1/2009/12/27/how-iand8217ve-become-a-better-programmer/" rel="alternate"/>
    <id>http://127.0.0.1/2009/12/27/how-iand8217ve-become-a-better-programmer/</id>
    <published>2009-12-27T00:00:00Z</published>
    <updated>2009-12-27T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;I&amp;#8217;ve been programming for about 3 years. I&amp;#8217;ve learned quite a lot just from working on personal projects. Perhaps the most important thing I&amp;#8217;ve learned is to not start over from scratch.&lt;/p&gt;&lt;p&gt;I used to feel like rewriting my projects at times and starting all over again. I used to feel like my code was messy and poorly written, and that it needed a rewrite. Eventually I thought, &amp;#8220;I will probably need to rework code at some point, even if it&amp;#8217;s sloppy, so I might as well learn to rework the code rather than trash it.&amp;#8221; So I did. I fought the urge to rewrite my code whenever I felt stuck. I learned so many things from just being patient with what I was working on. I learned the importance of test suites, version control, documentation, password management (so I don&amp;#8217;t have to waste time getting development environments set up again simply because I forgot a password), bookmarking, and asking questions (&lt;a href="http://stackoverflow.com" onclick="javascript:pageTracker._trackPageview('/outgoing/stackoverflow.com');"&gt;stackoverflow&lt;/a&gt;) when feeling stuck.&lt;/p&gt;&lt;p&gt;The most valuable lesson I&amp;#8217;ve learned from not starting over from scratch is: There is nothing wrong with my code. It is only an illusion. My code looks messy because reading code is harder than writing code, and starting over from scratch is a huge time consumer.&lt;/p&gt;&lt;p&gt;Last but not least, I&amp;#8217;ve become keen to the idea of &lt;a href="http://gettingreal.37signals.com/ch10_Manage_Debt.php" onclick="javascript:pageTracker._trackPageview('/outgoing/gettingreal.37signals.com/ch10_Manage_Debt.php');"&gt;code debt&lt;/a&gt;. Before I understood code debt, I used to be a perfectionist. I wanted everything to work perfectly on the first attempt, and if it didn&amp;#8217;t, I would get discouraged, and as a result I&amp;#8217;d want to throw my code away and start from scratch.&lt;/p&gt;

</summary>
    <content type="html">&lt;p&gt;I&amp;#8217;ve been programming for about 3 years. I&amp;#8217;ve learned quite a lot just from working on personal projects. Perhaps the most important thing I&amp;#8217;ve learned is to not start over from scratch.&lt;/p&gt;&lt;p&gt;I used to feel like rewriting my projects at times and starting all over again. I used to feel like my code was messy and poorly written, and that it needed a rewrite. Eventually I thought, &amp;#8220;I will probably need to rework code at some point, even if it&amp;#8217;s sloppy, so I might as well learn to rework the code rather than trash it.&amp;#8221; So I did. I fought the urge to rewrite my code whenever I felt stuck. I learned so many things from just being patient with what I was working on. I learned the importance of test suites, version control, documentation, password management (so I don&amp;#8217;t have to waste time getting development environments set up again simply because I forgot a password), bookmarking, and asking questions (&lt;a href="http://stackoverflow.com" onclick="javascript:pageTracker._trackPageview('/outgoing/stackoverflow.com');"&gt;stackoverflow&lt;/a&gt;) when feeling stuck.&lt;/p&gt;&lt;p&gt;The most valuable lesson I&amp;#8217;ve learned from not starting over from scratch is: There is nothing wrong with my code. It is only an illusion. My code looks messy because reading code is harder than writing code, and starting over from scratch is a huge time consumer.&lt;/p&gt;&lt;p&gt;Last but not least, I&amp;#8217;ve become keen to the idea of &lt;a href="http://gettingreal.37signals.com/ch10_Manage_Debt.php" onclick="javascript:pageTracker._trackPageview('/outgoing/gettingreal.37signals.com/ch10_Manage_Debt.php');"&gt;code debt&lt;/a&gt;. Before I understood code debt, I used to be a perfectionist. I wanted everything to work perfectly on the first attempt, and if it didn&amp;#8217;t, I would get discouraged, and as a result I&amp;#8217;d want to throw my code away and start from scratch.&lt;/p&gt;

</content>
  </entry>
  <entry>
    <title>A new job as a Ruby programmer</title>
    <link href="http://127.0.0.1/2009/12/27/a-new-job-as-a-ruby-programmer/" rel="alternate"/>
    <id>http://127.0.0.1/2009/12/27/a-new-job-as-a-ruby-programmer/</id>
    <published>2009-12-27T00:00:00Z</published>
    <updated>2009-12-27T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;I&amp;#8217;ve landed a new job as a Ruby programmer, and have put in my two weeks working with my current employer. I am extremely excited by the idea of doing that which I love. I&amp;#8217;ve managed to land this job without a degree, because I&amp;#8217;ve been independently programming for years, and my technical interview proved this.&lt;/p&gt;&lt;p&gt;My advice to people who are looking to get a job as a programmer: Start a serious project. Don&amp;#8217;t just make a toy application that is trivial, but build an application that you actually want to use.&lt;/p&gt;

</summary>
    <content type="html">&lt;p&gt;I&amp;#8217;ve landed a new job as a Ruby programmer, and have put in my two weeks working with my current employer. I am extremely excited by the idea of doing that which I love. I&amp;#8217;ve managed to land this job without a degree, because I&amp;#8217;ve been independently programming for years, and my technical interview proved this.&lt;/p&gt;&lt;p&gt;My advice to people who are looking to get a job as a programmer: Start a serious project. Don&amp;#8217;t just make a toy application that is trivial, but build an application that you actually want to use.&lt;/p&gt;

</content>
  </entry>
  <entry>
    <title>The Git Community Book</title>
    <link href="http://127.0.0.1/2009/12/25/the-git-community-book/" rel="alternate"/>
    <id>http://127.0.0.1/2009/12/25/the-git-community-book/</id>
    <published>2009-12-25T00:00:00Z</published>
    <updated>2009-12-25T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;I remember when I first started using Git. The documentation was full of terminology I&amp;#8217;ve never heard, and the glossary wasn&amp;#8217;t any help either. It has now dawned on me that I haven&amp;#8217;t been using Git to its fullest potential.&lt;/p&gt;&lt;p&gt;I&amp;#8217;ve been reading &lt;a href="http://book.git-scm.com/" onclick="javascript:pageTracker._trackPageview('/outgoing/book.git-scm.com/');"&gt;The Git Community Book&lt;/a&gt; and having epiphanies left and right. Version control is an essential tool to software development, and like any tool, should be thoroughly understood when using it.&lt;/p&gt;&lt;p&gt;I highly recommend reading it if you use it.&lt;/p&gt;

</summary>
    <content type="html">&lt;p&gt;I remember when I first started using Git. The documentation was full of terminology I&amp;#8217;ve never heard, and the glossary wasn&amp;#8217;t any help either. It has now dawned on me that I haven&amp;#8217;t been using Git to its fullest potential.&lt;/p&gt;&lt;p&gt;I&amp;#8217;ve been reading &lt;a href="http://book.git-scm.com/" onclick="javascript:pageTracker._trackPageview('/outgoing/book.git-scm.com/');"&gt;The Git Community Book&lt;/a&gt; and having epiphanies left and right. Version control is an essential tool to software development, and like any tool, should be thoroughly understood when using it.&lt;/p&gt;&lt;p&gt;I highly recommend reading it if you use it.&lt;/p&gt;

</content>
  </entry>
  <entry>
    <title>Learning the importance of test suites</title>
    <link href="http://127.0.0.1/2009/12/23/learning-the-importance-of-test-suites/" rel="alternate"/>
    <id>http://127.0.0.1/2009/12/23/learning-the-importance-of-test-suites/</id>
    <published>2009-12-23T00:00:00Z</published>
    <updated>2009-12-23T00:00:00Z</updated>
    <author>
      <name></name>
    </author>
    <summary type="html">&lt;p&gt;I changed the name of a column in my database, but the old column name was still being referenced in a view, and I pushed this into my production environment, thus learning the importance of a test suite.&lt;/p&gt;&lt;p&gt;I&amp;#8217;ve also come to understand that testing doesn&amp;#8217;t mean you have to change the way you write code, but you should at least write tests so you can automatically know when something is broken.&lt;/p&gt;

</summary>
    <content type="html">&lt;p&gt;I changed the name of a column in my database, but the old column name was still being referenced in a view, and I pushed this into my production environment, thus learning the importance of a test suite.&lt;/p&gt;&lt;p&gt;I&amp;#8217;ve also come to understand that testing doesn&amp;#8217;t mean you have to change the way you write code, but you should at least write tests so you can automatically know when something is broken.&lt;/p&gt;

</content>
  </entry>
</feed>
