<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en-US" xml:base="http://halotis.com/wp-atom.php">
	<title type="text">HalOtis</title>
	<subtitle type="text">Entrepreneurship in the 21st Centruy</subtitle>

	<updated>2013-05-13T23:25:15Z</updated>

	<link rel="alternate" type="text/html" href="http://halotis.com" />
	<id>http://halotis.com/feed/atom/</id>
	

	<generator uri="http://wordpress.org/" version="3.5.1">WordPress</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/HalotisBlog" /><feedburner:info uri="halotisblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
		<author>
			<name>Matt Warren</name>
						<uri>http://www.mattwarren.name</uri>
					</author>
		<title type="html"><![CDATA[Fermenter Built]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HalotisBlog/~3/uzBmmBXAOpA/" />
		<id>http://halotis.com/?p=1480</id>
		<updated>2013-05-13T23:25:15Z</updated>
		<published>2013-05-13T16:30:43Z</published>
		<category scheme="http://halotis.com" term="Python" /><category scheme="http://halotis.com" term="Software" />		<summary type="html"><![CDATA[Finished the build for the Fermenter over the weekend. Here&#8217;s a video going over the physical components for the project: The chamber itself is based on the Son of a Fermentation Chiller. with the only modification being that I made mine a bit smaller than their plans. The django based web app is all open-source. [...]]]></summary>
		<content type="html" xml:base="http://halotis.com/2013/05/13/fermenter-built/">&lt;p&gt;Finished the build for the Fermenter over the weekend.  Here&amp;#8217;s a video going over the physical components for the project:&lt;/p&gt;
&lt;p&gt;&lt;iframe width="480" height="360" src="http://www.youtube.com/embed/_0rAs0FFvbw" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;The chamber itself is based on the &lt;a href="http://home.roadrunner.com/~brewbeer/chiller/chiller.PDF"&gt;Son of a Fermentation Chiller&lt;/a&gt;. with the only modification being that I made mine a bit smaller than their plans.&lt;/p&gt;
&lt;p&gt;The django based web app is all open-source. The code &amp;#038; instructions for building it are available on GitHub. &lt;a href="https://github.com/mfwarren/Fermenter"&gt;https://github.com/mfwarren/Fermenter&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The Pi will run a django based web interface that will provide simple and minimal control and logs of the brewing process.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://halotis.com/wp-content/uploads/2013/05/Screenshot_2013-05-01_9_38_PM-3.png"&gt;&lt;img class="aligncenter  wp-image-1475" alt="Screenshot_2013-05-01_9_38_PM-3" src="http://halotis.com/wp-content/uploads/2013/05/Screenshot_2013-05-01_9_38_PM-3.png" width="482" height="362" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The electronics are fairly simple, and as soon as I figure out how to generate a circuit diagram I&amp;#8217;ll add instructions for how to solder together the prototype board.
&lt;p&gt;&lt;script src="http://feeds.feedburner.com/~s/HalotisBlog?i=&lt;?php the_permalink() ?&gt;" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;

&lt;!-- start wp-tags-to-technorati 1.02 --&gt;

&lt;!-- end wp-tags-to-technorati --&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=uzBmmBXAOpA:T6uUTXv6xfY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=uzBmmBXAOpA:T6uUTXv6xfY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=uzBmmBXAOpA:T6uUTXv6xfY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=uzBmmBXAOpA:T6uUTXv6xfY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=uzBmmBXAOpA:T6uUTXv6xfY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=uzBmmBXAOpA:T6uUTXv6xfY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=uzBmmBXAOpA:T6uUTXv6xfY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=uzBmmBXAOpA:T6uUTXv6xfY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=uzBmmBXAOpA:T6uUTXv6xfY:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HalotisBlog/~4/uzBmmBXAOpA" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://halotis.com/2013/05/13/fermenter-built/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://halotis.com/2013/05/13/fermenter-built/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://halotis.com/2013/05/13/fermenter-built/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Matt Warren</name>
						<uri>http://www.mattwarren.name</uri>
					</author>
		<title type="html"><![CDATA[Fermenter Project]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HalotisBlog/~3/05RG7QdFqFM/" />
		<id>http://halotis.com/?p=1471</id>
		<updated>2013-05-02T03:42:15Z</updated>
		<published>2013-05-01T20:26:59Z</published>
		<category scheme="http://halotis.com" term="Business" />		<summary type="html"><![CDATA[With so many possibilities, I finally decided on a worthy project for my Raspberry Pi. This summer I&#8217;m hoping to brew my first lager beer and brewing lagers is quite a bit tricker than ales, especially when it comes to controlling the temperature of the fermentation. There are a number of existing projects out there [...]]]></summary>
		<content type="html" xml:base="http://halotis.com/2013/05/01/fermenter-project/">&lt;p&gt;With so many possibilities, I finally decided on a worthy project for my Raspberry Pi.&lt;/p&gt;
&lt;p&gt;This summer I&amp;#8217;m hoping to brew my first lager beer and brewing lagers is quite a bit tricker than ales, especially when it comes to controlling the temperature of the fermentation.&lt;/p&gt;
&lt;p&gt;There are a number of existing projects out there for creating a computer controlled fermentation chamber.  The most notable one is called &lt;a href="http://brewpi.com/"&gt;BrewPi&lt;/a&gt;, which I looked at but it seemed to be designed with unnecessary complexity.  I wanted something simpler on the electronics that dropped the Arduino components and relied on just a web interface for control.&lt;/p&gt;
&lt;p&gt;The project starts with the components for a DIY Lagerator made out of insulating foam boards.  And adds to that a temperature sensor, the Raspberry Pi  and a few other bits and pieces.&lt;/p&gt;
&lt;p&gt;The Pi will run a django based web interface that will provide simple and minimal control and logs of the brewing process.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://halotis.com/wp-content/uploads/2013/05/Screenshot_2013-05-01_9_38_PM-3.png"&gt;&lt;img class="aligncenter  wp-image-1475" alt="Screenshot_2013-05-01_9_38_PM-3" src="http://halotis.com/wp-content/uploads/2013/05/Screenshot_2013-05-01_9_38_PM-3.png" width="482" height="362" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m hoping for a quick turn around on this project so I can start brewing with it before summer temperatures kick in.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;
&lt;p&gt;&lt;script src="http://feeds.feedburner.com/~s/HalotisBlog?i=&lt;?php the_permalink() ?&gt;" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;

&lt;!-- start wp-tags-to-technorati 1.02 --&gt;

&lt;!-- end wp-tags-to-technorati --&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=05RG7QdFqFM:PgkExzqK6-8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=05RG7QdFqFM:PgkExzqK6-8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=05RG7QdFqFM:PgkExzqK6-8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=05RG7QdFqFM:PgkExzqK6-8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=05RG7QdFqFM:PgkExzqK6-8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=05RG7QdFqFM:PgkExzqK6-8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=05RG7QdFqFM:PgkExzqK6-8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=05RG7QdFqFM:PgkExzqK6-8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=05RG7QdFqFM:PgkExzqK6-8:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HalotisBlog/~4/05RG7QdFqFM" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://halotis.com/2013/05/01/fermenter-project/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://halotis.com/2013/05/01/fermenter-project/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://halotis.com/2013/05/01/fermenter-project/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Matt Warren</name>
						<uri>http://www.mattwarren.name</uri>
					</author>
		<title type="html"><![CDATA[Exercise for Programmers]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HalotisBlog/~3/mf5gaan4L64/" />
		<id>http://halotis.com/?p=1467</id>
		<updated>2013-04-22T15:38:08Z</updated>
		<published>2013-04-22T15:38:08Z</published>
		<category scheme="http://halotis.com" term="Business" />		<summary type="html"><![CDATA[Staying on top of your game is best accomplished by continuously learning and by ensuring you are mentally and physically at your best.  As a desk jokey it can be difficult to get enough exercise in a day so you have to be pro-active about staying in shape outside the office. For several years I [...]]]></summary>
		<content type="html" xml:base="http://halotis.com/2013/04/22/programmer-exercise/">&lt;p&gt;Staying on top of your game is best accomplished by continuously learning and by ensuring you are mentally and physically at your best.  As a desk jokey it can be difficult to get enough exercise in a day so you have to be pro-active about staying in shape outside the office.&lt;/p&gt;
&lt;p&gt;For several years I did a lot of running, 4-5 times per week I would run between 5km and 30km. Running is a great exercise because:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="line-height: 13px;"&gt;it&amp;#8217;s intense &amp;#8211; you can always push yourself to run faster/further.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Very little equipment required &amp;#8211; just running shoes&lt;/li&gt;
&lt;li&gt;Local fun runs and races to keep you motivated&lt;/li&gt;
&lt;li&gt;Great way to see your neighbourhood from a different perspective&lt;/li&gt;
&lt;li&gt;it engages your entire body&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;After moving to a new city running became  less enjoyable due to poorly maintained sidewalks and the only walking paths close by are along a noisy highway.  So I discovered something else to focus on.  Strength training.&lt;/p&gt;
&lt;p&gt;Strength training has a number of key benefits to health.  It makes you prepared for those few days a year that require lifting and moving heavy furniture or equipment.  The last thing you want to have happen is to throw out your back when doing some chores around the house.  When it comes to strength training the classics seem to be the most effective: deadlifts, squats, and bench press.&lt;/p&gt;
&lt;p&gt;Regardless of if you choose to do running, strength training, cycling, swimming, walking or yoga it would be wise to trade some evening TV time for some physical activity.
&lt;p&gt;&lt;script src="http://feeds.feedburner.com/~s/HalotisBlog?i=&lt;?php the_permalink() ?&gt;" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;

&lt;!-- start wp-tags-to-technorati 1.02 --&gt;

&lt;!-- end wp-tags-to-technorati --&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=mf5gaan4L64:Xr0O-VHGMwU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=mf5gaan4L64:Xr0O-VHGMwU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=mf5gaan4L64:Xr0O-VHGMwU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=mf5gaan4L64:Xr0O-VHGMwU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=mf5gaan4L64:Xr0O-VHGMwU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=mf5gaan4L64:Xr0O-VHGMwU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=mf5gaan4L64:Xr0O-VHGMwU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=mf5gaan4L64:Xr0O-VHGMwU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=mf5gaan4L64:Xr0O-VHGMwU:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HalotisBlog/~4/mf5gaan4L64" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://halotis.com/2013/04/22/programmer-exercise/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://halotis.com/2013/04/22/programmer-exercise/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://halotis.com/2013/04/22/programmer-exercise/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Matt Warren</name>
						<uri>http://www.mattwarren.name</uri>
					</author>
		<title type="html"><![CDATA[Cockiness of Programmers]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HalotisBlog/~3/YkAKLQl-mDA/" />
		<id>http://halotis.com/?p=1462</id>
		<updated>2013-04-10T15:55:06Z</updated>
		<published>2013-04-10T15:55:06Z</published>
		<category scheme="http://halotis.com" term="Advice" /><category scheme="http://halotis.com" term="Books" />		<summary type="html"><![CDATA[There&#8217;s no doubt that programmers are lazy people.  Anything that can be automated is, copy/paste code &#8211; you got it! There is another trait of programmers that they assume because they can program in one language well, and have touched a few other languages over the years they can quickly learn a new language on [...]]]></summary>
		<content type="html" xml:base="http://halotis.com/2013/04/10/cockiness-of-programmers/">&lt;p&gt;There&amp;#8217;s no doubt that programmers are lazy people.  Anything that can be automated is, copy/paste code &amp;#8211; you got it!&lt;/p&gt;
&lt;p&gt;There is another trait of programmers that they assume because they can program in one language well, and have touched a few other languages over the years they can quickly learn a new language on the job.&lt;/p&gt;
&lt;p&gt;Programmers are arrogant about their own skills.&lt;/p&gt;
&lt;p&gt;The article &lt;a href="http://highscalability.com/blog/2013/1/16/what-if-cars-were-rented-like-we-hire-programmers.html"&gt;What If Cars Were Rented Like We Hire Programmers?&lt;/a&gt; exemplifies the problem though their analogy is not accurate.  A programmers job is more like the mechanic or factory worker building the car.  If you had built or fixed only Subaru Imprezas for 10 years then you are not amazingly qualified to fix Fords.  If Ford is looking to hire, they know that there are 1000&amp;#8242;s of mechanics more experienced on their cars in the pool.&lt;/p&gt;
&lt;p&gt;I say this because after several years of writing Javascript, learning on the job, I finally decided to pick up a book.  The first thing I learned was just how much I didn&amp;#8217;t know.&lt;/p&gt;
&lt;p&gt;More programmers need to read books to master the skills they need on the job instead of relying on Stack Overflow and Google to solve all their problems when they arrise.&lt;/p&gt;
&lt;p&gt;The thing to watch out for is the situation where you read someone else&amp;#8217;s code and say to yourself &amp;#8220;I have no idea how this works, or what it does&amp;#8221;.  As a programmer that should be a red flag &amp;#8211; you don&amp;#8217;t completely grasp the language syntax.&lt;/p&gt;
&lt;p&gt;If you don&amp;#8217;t have a complete handle on the syntax of a language chances are you also don&amp;#8217;t know how to write idiomatic code.  Without those two things mastered the code you do write will be poorly organized and buggy. The next programmer to come along to work on your code will hate you.  You will be that guy who everyone bitches about for writing bad code.&lt;/p&gt;
&lt;p&gt;Bite the bullet, read a book from time to time.  Always be Learning.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;!-- start wp-tags-to-technorati 1.02 --&gt;

&lt;!-- end wp-tags-to-technorati --&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=YkAKLQl-mDA:f22htVulfbI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=YkAKLQl-mDA:f22htVulfbI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=YkAKLQl-mDA:f22htVulfbI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=YkAKLQl-mDA:f22htVulfbI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=YkAKLQl-mDA:f22htVulfbI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=YkAKLQl-mDA:f22htVulfbI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=YkAKLQl-mDA:f22htVulfbI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=YkAKLQl-mDA:f22htVulfbI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=YkAKLQl-mDA:f22htVulfbI:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HalotisBlog/~4/YkAKLQl-mDA" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://halotis.com/2013/04/10/cockiness-of-programmers/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://halotis.com/2013/04/10/cockiness-of-programmers/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://halotis.com/2013/04/10/cockiness-of-programmers/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Matt Warren</name>
						<uri>http://www.mattwarren.name</uri>
					</author>
		<title type="html"><![CDATA[Produce as Much as You Can]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HalotisBlog/~3/mHjYfLc5f7U/" />
		<id>http://halotis.com/?p=1454</id>
		<updated>2013-04-02T15:40:28Z</updated>
		<published>2013-04-02T15:40:28Z</published>
		<category scheme="http://halotis.com" term="Business" />		<summary type="html"><![CDATA[It took a long time to really  fully appreciate the feeling you get from producing something new in this world and letting it go for sale or for free. There&#8217;s a lot of apprehension that comes with those first few products you release.  You worry about the bugs that are still there, the features you [...]]]></summary>
		<content type="html" xml:base="http://halotis.com/2013/04/02/produce-as-much-as-you-can/">&lt;p&gt;&lt;a href="http://halotis.com/wp-content/uploads/2013/04/Productivity.jpg"&gt;&lt;img class="alignleft size-medium wp-image-1456" alt="Productivity" src="http://halotis.com/wp-content/uploads/2013/04/Productivity-300x196.jpg" width="300" height="196" /&gt;&lt;/a&gt;It took a long time to really  fully appreciate the feeling you get from producing something new in this world and letting it go for sale or for free.&lt;/p&gt;
&lt;p&gt;There&amp;#8217;s a lot of apprehension that comes with those first few products you release.  You worry about the bugs that are still there, the features you didn&amp;#8217;t have time to implement and the competition that is fierce.&lt;/p&gt;
&lt;p&gt;Until you release something to the public for consumption it can be as perfect as you imagine in your mind.  Real life users never match up to your expectations &amp;#8211; they don&amp;#8217;t know how to use it. where are the features are, what it&amp;#8217;s for etc.&lt;/p&gt;
&lt;p&gt;You put a lot of time and effort into building a new product.  Much of the skill that goes into creation is learned through school and books.  The things you learn from the first release of your product to the public can really only be learned by doing it.  The only way to get better at releasing your work to the public is to do it often enough to gain experience.&lt;/p&gt;
&lt;p&gt;So create as much new stuff as you can in this world.  Get it out there for others to use.  Learn as much as you can.  And then do it again.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s the most addictive thing I know.
&lt;p&gt;&lt;script src="http://feeds.feedburner.com/~s/HalotisBlog?i=&lt;?php the_permalink() ?&gt;" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;

&lt;!-- start wp-tags-to-technorati 1.02 --&gt;

&lt;!-- end wp-tags-to-technorati --&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=mHjYfLc5f7U:FMQx8yNFz4k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=mHjYfLc5f7U:FMQx8yNFz4k:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=mHjYfLc5f7U:FMQx8yNFz4k:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=mHjYfLc5f7U:FMQx8yNFz4k:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=mHjYfLc5f7U:FMQx8yNFz4k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=mHjYfLc5f7U:FMQx8yNFz4k:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=mHjYfLc5f7U:FMQx8yNFz4k:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=mHjYfLc5f7U:FMQx8yNFz4k:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=mHjYfLc5f7U:FMQx8yNFz4k:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HalotisBlog/~4/mHjYfLc5f7U" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://halotis.com/2013/04/02/produce-as-much-as-you-can/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://halotis.com/2013/04/02/produce-as-much-as-you-can/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://halotis.com/2013/04/02/produce-as-much-as-you-can/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Matt Warren</name>
						<uri>http://www.mattwarren.name</uri>
					</author>
		<title type="html"><![CDATA[6 Tips For a Successful Project Plan]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HalotisBlog/~3/k3XF68K2omg/" />
		<id>http://halotis.com/?p=1447</id>
		<updated>2013-03-26T02:38:50Z</updated>
		<published>2013-03-26T02:38:50Z</published>
		<category scheme="http://halotis.com" term="Business" />		<summary type="html"><![CDATA[The difference between a successful project and one that is a dismal failure can often come down to the project plan.  There are different approaches to planning from ad hoc planning to full on gantt charts in MS Project.  I think there are some universals for developing a plan that results in a project that [...]]]></summary>
		<content type="html" xml:base="http://halotis.com/2013/03/25/6-tips-successful-project-plan/">&lt;p&gt;The difference between a successful project and one that is a dismal failure can often come down to the project plan.  There are different approaches to planning from ad hoc planning to full on gantt charts in MS Project.  I think there are some universals for developing a plan that results in a project that works as expected.&lt;/p&gt;
&lt;h3&gt;1. Have a Vision&lt;/h3&gt;
&lt;p&gt;It&amp;#8217;s not smart to just be reactionary &amp;#8211; someone asks for a feature, you add it.  That just results in a mess over time.  SpaceX the private rocket company run by Elon Musk, runs every decision through their goal question. &amp;#8220;Will this help us get to Mars?&amp;#8221;  By running every decision through this one question it helps to make sure that they don&amp;#8217;t detour  slowly over time.  Figure out the end goal.&lt;/p&gt;
&lt;h3&gt;2. Set Waypoints&lt;/h3&gt;
&lt;p&gt;Figure out a series of releases that you could hit along the way to your final vision.  Ideally have things that can be done in less than a month.  Quick releases helps keep the momentum and allows you to test assumptions early, as well as build skills necessary for a better final project.&lt;/p&gt;
&lt;h3&gt;3. Trust the Numbers&lt;/h3&gt;
&lt;p&gt;You will make mistakes, misunderstand the market, have difficulty finding an appropriate sales strategy and have UI designs that your customers don&amp;#8217;t understand or features they don&amp;#8217;t want.  You will.  Be sure to have the analytics in place early to determine what actually works, and re-adjust your plan for the realities of the market as you discover them.&lt;/p&gt;
&lt;h3&gt;4. Budget, Scope, Schedule&lt;/h3&gt;
&lt;p&gt;If the project you want to finish cannot be done on time, on budget, or with all the minimum features then you have to face the real problem of re-evaluating the project or deciding to find something else.  Of course accurately knowing the costs of a project before hand is impossible.&lt;/p&gt;
&lt;h3&gt;5. Talk to people&lt;/h3&gt;
&lt;p&gt;You can&amp;#8217;t create a a successful business in a vacuum.   You need customers.  They may not know what they want, but you definitely need to communicate with them.&lt;/p&gt;
&lt;h3&gt;6. Track progress&lt;/h3&gt;
&lt;p&gt;When you don&amp;#8217;t track progress towards hitting your waypoints it is inevitable that deadlines will slip and scopes will balloon.  Tracking deadlines provides a bit of extra motivation to you and your team to work harder and more focused.
&lt;p&gt;&lt;script src="http://feeds.feedburner.com/~s/HalotisBlog?i=&lt;?php the_permalink() ?&gt;" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;

&lt;!-- start wp-tags-to-technorati 1.02 --&gt;

&lt;!-- end wp-tags-to-technorati --&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=k3XF68K2omg:o5ufewkfB8c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=k3XF68K2omg:o5ufewkfB8c:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=k3XF68K2omg:o5ufewkfB8c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=k3XF68K2omg:o5ufewkfB8c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=k3XF68K2omg:o5ufewkfB8c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=k3XF68K2omg:o5ufewkfB8c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=k3XF68K2omg:o5ufewkfB8c:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=k3XF68K2omg:o5ufewkfB8c:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=k3XF68K2omg:o5ufewkfB8c:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HalotisBlog/~4/k3XF68K2omg" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://halotis.com/2013/03/25/6-tips-successful-project-plan/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://halotis.com/2013/03/25/6-tips-successful-project-plan/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://halotis.com/2013/03/25/6-tips-successful-project-plan/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Matt Warren</name>
						<uri>http://www.mattwarren.name</uri>
					</author>
		<title type="html"><![CDATA[How to SOA an existing project]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HalotisBlog/~3/i6JuQ4wtU8Y/" />
		<id>http://halotis.com/?p=1443</id>
		<updated>2013-03-11T19:45:16Z</updated>
		<published>2013-03-11T19:45:16Z</published>
		<category scheme="http://halotis.com" term="Business" />		<summary type="html"><![CDATA[SOA or service oriented architecture is a way of building a complex project so that each individual unit can stand alone with a documented API.  There are many benefits to taking an SOA approach to designing a complex software system. To those familiar with programming, SOA provides the same sorts of benefits as OOP but [...]]]></summary>
		<content type="html" xml:base="http://halotis.com/2013/03/11/how-to-soa-an-existing-project/">&lt;p&gt;SOA or service oriented architecture is a way of building a complex project so that each individual unit can stand alone with a documented API.  There are many benefits to taking an SOA approach to designing a complex software system.&lt;/p&gt;
&lt;p&gt;To those familiar with programming, SOA provides the same sorts of benefits as OOP but at a higher level of abstraction and with a network interface rather than a code interface.  The benefits of providing encapsulated logical units that can hide the complexities is well understood by most experienced programmers.&lt;/p&gt;
&lt;p&gt;For a business taking a SOA approach to building a complex project makes a lot of sense.  It allows teams to be divided into smaller groups to reduce the communication load and help limit the scope of the problems that any one developer has to concern themselves with.&lt;/p&gt;
&lt;p&gt;So how do you take a monolithic piece of existing software and change it to SOA?&lt;/p&gt;
&lt;p&gt;The first and perhaps most critical decision to make is where to cut your application into pieces which can become isolated services.  The most obvious first approach might be to cut between the GUI and the business logic.  That is usually NOT the best thing to do for any real complex project.  Deep coupling of the UI usually makes this division much to big for an initial undertaking.&lt;/p&gt;
&lt;p&gt;Likewise starting with something too small can lead to an abandoned project.  A simplistic project that can be &amp;#8216;finished&amp;#8217; such that no developer ever has to be familiar with how it was built can lead to problems down the road when it breaks and no one knows how to fix it.&lt;/p&gt;
&lt;p&gt;So an SOA unit should be logical,  it should be not too big that it is destined to fail, and not too small that it can be forgotten.&lt;/p&gt;
&lt;p&gt;A further guide to finding an aspect of the code to pull into a service is whether it will have more than 1 customer or could have more than 1 if it was a service.  By customer I mean anything that might want to call into it&amp;#8217;s API.  For a HR system the customers might be the GUI used by HR department, tools used by managers, excel spreadsheets used by the CFO and a business intelligence dashboard for the CEO.  With that many potential customers of an API there is a strong benefit to having an SOA approach compared to asking HR for quarterly reports or sending them emails to update an employees phone number.&lt;/p&gt;
&lt;p&gt;One further option to consider is to wrap your entire application in an API so that it can be leveraged somewhere new.&lt;/p&gt;
&lt;p&gt;On one project I worked on we had a complex requirement for managing encryption keys. We needed a way to expire old keys, provide redundancy against server failures, and have a nuclear missile style 2 person/2 password login process.  It made sense to develop this as a stand alone service.   It paid off with a project that gives us confidence that some newbie programmer can&amp;#8217;t easily create a critical security hole in an application that uses it.&lt;/p&gt;
&lt;p&gt;Amazon is perhaps the best case study for a successful SOA deployment.  Their SOA approach has spawned entirely new billion dollar businesses (AWS).  One of the benefits they&amp;#8217;ve seen is that because of their highly used SOA APIs the requirement for testing is greatly reduced.  Incremental updates get slowly rolled out providing time to listen for errors.  On these highly exercised APIs regressions can found quickly before any harm is done.  The actual use of the service provides a much more complete test of it than any test suite could possibly perform.&lt;/p&gt;
&lt;p&gt;Perhaps the best place to start on an SOA conversion project is to see if there is already some natural divisions in the developers knowledge and experience within the existing code base.  Creating SOA services based on these natural lines will ensure that the new teams will already have an expertise in their service and reduce the learning/ramp up time.  Domain knowledge is the biggest hurdle for any programmer (ie it take a lot more time to switch from enterprise software to video games than it does to switch from Javascript to C#).&lt;/p&gt;
&lt;p&gt;So you&amp;#8217;ve got an idea for where to start.  The next thing to decide is what the API should look like.  I prefer RESTful interfaces because of the lower barrier required over something like SOAP for clients.  SOAP would make things like a bash shell script difficult to do.  I also prefer JSON over XML for similar reasons but also because XML allows for some style inconsistencies between developers such as should something be an attribute or child.  Should authentication be done with simple username/password or are there requirements for something like OAuth?&lt;/p&gt;
&lt;p&gt;Your team should probably develop a couple of libraries in some key target languages for their API.  This hides things like URLs and encodings behind a more obvious code API.&lt;/p&gt;
&lt;p&gt;Documentation is also very important.  An undocumented API will probably never be used by anyone.  Both the raw API and any libraries should be documented with examples.  If it&amp;#8217;s a public API, put your libraries up on github.com so that other developers can easily find them and keep up to date.&lt;/p&gt;
&lt;p&gt;Work in some analytics if you can for the new API.  Tracking usage and performance of your service is fascinating and can provide some key insights into where improvements could be made.&lt;/p&gt;
&lt;p&gt;Lastly, a new SOA project will include some new infrastructure and deployment requirements.  You&amp;#8217;ll need to decide on server requirements, uptime and redundancy for this new service.  As well as write any new deployment scripts for it.&lt;/p&gt;
&lt;p&gt;So an SOA conversion is not a trivial task.  It does come with some overhead which is usually made up for by growth of the service as it finds new customers and new use cases.  Reducing the scope of a large project into separate services provides less easily measurable benefits such as reducing communication costs, reducing the scope of future changes and making the project easier to understand.
&lt;p&gt;&lt;script src="http://feeds.feedburner.com/~s/HalotisBlog?i=&lt;?php the_permalink() ?&gt;" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;

&lt;!-- start wp-tags-to-technorati 1.02 --&gt;

&lt;!-- end wp-tags-to-technorati --&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=i6JuQ4wtU8Y:tmWw8mZognY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=i6JuQ4wtU8Y:tmWw8mZognY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=i6JuQ4wtU8Y:tmWw8mZognY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=i6JuQ4wtU8Y:tmWw8mZognY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=i6JuQ4wtU8Y:tmWw8mZognY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=i6JuQ4wtU8Y:tmWw8mZognY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=i6JuQ4wtU8Y:tmWw8mZognY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=i6JuQ4wtU8Y:tmWw8mZognY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=i6JuQ4wtU8Y:tmWw8mZognY:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HalotisBlog/~4/i6JuQ4wtU8Y" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://halotis.com/2013/03/11/how-to-soa-an-existing-project/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://halotis.com/2013/03/11/how-to-soa-an-existing-project/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://halotis.com/2013/03/11/how-to-soa-an-existing-project/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Matt Warren</name>
						<uri>http://www.mattwarren.name</uri>
					</author>
		<title type="html"><![CDATA[Next Gen Websites]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HalotisBlog/~3/js1RbOwOzWs/" />
		<id>http://halotis.com/?p=1428</id>
		<updated>2013-02-22T02:57:22Z</updated>
		<published>2013-02-22T02:57:22Z</published>
		<category scheme="http://halotis.com" term="Business" />		<summary type="html"><![CDATA[the web 1.0 was defined by static html pages and simple cgi scripts.  Web 2.0 was marked by improvements in CSS and HTML capabilities, as well as growing influence of Javascript especially with AJAX to make things a bit more interactive. The next significant shift in the development of websites is moving a lot more [...]]]></summary>
		<content type="html" xml:base="http://halotis.com/2013/02/21/next-gen-websites/">&lt;p&gt;the web 1.0 was defined by static html pages and simple cgi scripts.  Web 2.0 was marked by improvements in CSS and HTML capabilities, as well as growing influence of Javascript especially with AJAX to make things a bit more interactive.&lt;/p&gt;
&lt;p&gt;The next significant shift in the development of websites is moving a lot more of the page layout and generation to the client side and implemented in javascript.  The web server won&amp;#8217;t be generating full pages anymore, only snippets and raw JSON for CRUD operations.&lt;/p&gt;
&lt;p&gt;Web 3.0 is enabled through several MVC frameworks such as &lt;a href="http://backbonejs.org/"&gt;Backbone.js&lt;/a&gt; which encourage application logic to be moved client side to the browser and the server serves up the raw data and persists anything required to the cloud.  These next gen websites give the developer a more clear line between UI code vs server side persistance.&lt;/p&gt;
&lt;p&gt;It makes sense to move control of the HTML layout and rendering over to Javascript because that&amp;#8217;s what it was designed to do.  Adding a template language and renderer on the server side only to further manipulate the DOM client side is a bit of a duplication of responsibility.&lt;/p&gt;
&lt;p&gt;The learning curve for this change is a bit steep.  Check out &lt;a href="http://todomvc.com/"&gt;ToDoMVC&lt;/a&gt; for a review of the javacript libraries/frameworks available.
&lt;p&gt;&lt;script src="http://feeds.feedburner.com/~s/HalotisBlog?i=&lt;?php the_permalink() ?&gt;" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;

&lt;!-- start wp-tags-to-technorati 1.02 --&gt;

&lt;!-- end wp-tags-to-technorati --&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=js1RbOwOzWs:hqlZM9Dom9w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=js1RbOwOzWs:hqlZM9Dom9w:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=js1RbOwOzWs:hqlZM9Dom9w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=js1RbOwOzWs:hqlZM9Dom9w:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=js1RbOwOzWs:hqlZM9Dom9w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=js1RbOwOzWs:hqlZM9Dom9w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=js1RbOwOzWs:hqlZM9Dom9w:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=js1RbOwOzWs:hqlZM9Dom9w:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=js1RbOwOzWs:hqlZM9Dom9w:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HalotisBlog/~4/js1RbOwOzWs" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://halotis.com/2013/02/21/next-gen-websites/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://halotis.com/2013/02/21/next-gen-websites/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://halotis.com/2013/02/21/next-gen-websites/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Matt Warren</name>
						<uri>http://www.mattwarren.name</uri>
					</author>
		<title type="html"><![CDATA[Lines of Code Per Day Performance]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HalotisBlog/~3/7OSx8zd3Qlc/" />
		<id>http://halotis.com/?p=1424</id>
		<updated>2013-02-13T18:03:51Z</updated>
		<published>2013-02-14T04:39:55Z</published>
		<category scheme="http://halotis.com" term="Business" />		<summary type="html"><![CDATA[There are few arguments with programmers that can elicit such passionate hatred as a debate about measuring a programmer&#8217;s performance by tracking the number of lines of code they write per day. There are far too many variables at play which can affect a programmers ability to type code &#8211; how well they understand the [...]]]></summary>
		<content type="html" xml:base="http://halotis.com/2013/02/13/lines-of-code-per-day-performance/">&lt;p&gt;There are few arguments with programmers that can elicit such passionate hatred as a debate about measuring a programmer&amp;#8217;s performance by tracking the number of lines of code they write per day.&lt;/p&gt;
&lt;p&gt;There are far too many variables at play which can affect a programmers ability to type code &amp;#8211; how well they understand the problem, the language being used, familiarity with libraries, and distractions in the workplace.  Because of these extra variables it becomes unfair to compare LOC productivity between programmers or between projects.&lt;/p&gt;
&lt;p&gt;However I do believe it has merit as a personal metric.&lt;/p&gt;
&lt;p&gt;I am a believer in mastery through practice.  You deliberately practice a musical instrument by playing the same song over and over until the performance is good.  You learn your multiplication tables by practicing on 1000&amp;#8242;s of example problems in primary school.  You master Jujitsu by repeatedly doing the same throws over and over until they become instinct.&lt;/p&gt;
&lt;p&gt;For mastery to occur the practice must be deliberate and focused on improvement.  You wouldn&amp;#8217;t get better at playing piano if you just mash keys &amp;#8211; no matter how many hours you did it for.&lt;/p&gt;
&lt;p&gt;Software programming is a skill like these others which takes experience to become proficient with.  For the vast majority of programmers I&amp;#8217;ve met proficiency comes naturally through years of 9-5 coding.  I&amp;#8217;m not happy with that level of performance for myself.&lt;/p&gt;
&lt;p&gt;Measuring yourself in terms of time to code a solution to a given problem is a valuable metric to have to identify what areas you need to focus on.&lt;/p&gt;
&lt;p&gt;For example if you took a standard example such as implement a merge sort algorithm &amp;#8211; and tested yourself on that over time and against different languages you would be able to measure a meaningful change in your programming performance.&lt;/p&gt;
&lt;p&gt;You might first find that you don&amp;#8217;t know the algorithm well enough to type it out off the top of your head and turn to Google for a description of it (a detour that takes valuable time).  If it&amp;#8217;s a new language you may find points that the syntax throw you back to a book.  Over time if you continued to learn you could reduce the time it takes to type out a solution.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s not that typing out merge sort once per week is going to be code that you would even want to keep.  Just like you don&amp;#8217;t record your drum practice and post it up in an album on iTunes.  The point is to identify places in your process for improvement by asking could I have typed out this code better or faster if I was more familiar with the syntax, or knew of some extra libs to use that would cut down on lines of code.&lt;/p&gt;
&lt;p&gt;Then once you&amp;#8217;ve perfected that song (algorithm) move onto something new.  Practice it until there is no room for improvement in your time to solve or code quality.&lt;/p&gt;
&lt;p&gt;I believe that practice like this should improve your personal day to day Lines of Code Per Day metric to be 2x to 5x what it would have been without the deliberate practice.
&lt;p&gt;&lt;script src="http://feeds.feedburner.com/~s/HalotisBlog?i=&lt;?php the_permalink() ?&gt;" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;

&lt;!-- start wp-tags-to-technorati 1.02 --&gt;

&lt;!-- end wp-tags-to-technorati --&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=7OSx8zd3Qlc:hW0rjPwQbG8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=7OSx8zd3Qlc:hW0rjPwQbG8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=7OSx8zd3Qlc:hW0rjPwQbG8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=7OSx8zd3Qlc:hW0rjPwQbG8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=7OSx8zd3Qlc:hW0rjPwQbG8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=7OSx8zd3Qlc:hW0rjPwQbG8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=7OSx8zd3Qlc:hW0rjPwQbG8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=7OSx8zd3Qlc:hW0rjPwQbG8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=7OSx8zd3Qlc:hW0rjPwQbG8:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HalotisBlog/~4/7OSx8zd3Qlc" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://halotis.com/2013/02/13/lines-of-code-per-day-performance/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://halotis.com/2013/02/13/lines-of-code-per-day-performance/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://halotis.com/2013/02/13/lines-of-code-per-day-performance/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Matt Warren</name>
						<uri>http://www.mattwarren.name</uri>
					</author>
		<title type="html"><![CDATA[Great App Challenge of 2013]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HalotisBlog/~3/dPqOdPxMvIQ/" />
		<id>http://halotis.com/?p=1418</id>
		<updated>2013-02-08T18:42:26Z</updated>
		<published>2013-02-08T18:38:53Z</published>
		<category scheme="http://halotis.com" term="Business" />		<summary type="html"><![CDATA[This year myself and a friend have taken up the challenge of releasing a new iPhone/iPad game every 2 weeks to hopefully have 20-25 finished games by the end of the year. The strategy is to build upon 3 different game platforms for all the games.  Each game will add one new feature to the [...]]]></summary>
		<content type="html" xml:base="http://halotis.com/2013/02/08/great-app-challenge-of-2013/">&lt;p&gt;&lt;a href="http://halotis.com/wp-content/uploads/2013/02/wecandoit.jpg"&gt;&lt;img class="alignleft size-medium wp-image-1421" alt="wecandoit" src="http://halotis.com/wp-content/uploads/2013/02/wecandoit-229x300.jpg" width="229" height="300" /&gt;&lt;/a&gt;This year myself and a friend have taken up the challenge of releasing a new iPhone/iPad game every 2 weeks to hopefully have 20-25 finished games by the end of the year.&lt;/p&gt;
&lt;p&gt;The strategy is to build upon 3 different game platforms for all the games.  Each game will add one new feature to the platform and completely replace all the art assets to create a unique and fun game.&lt;/p&gt;
&lt;p&gt;The first game was submitted to Apple last week.  It was an update to the first game I did for iPhone called UFO Invader.  It will form the base platform for the next 8-10 games.  The second game, called Air Barons, was finished up and submitted to Apple last night.  The next game is an 8-bit styled space fighter and will add tile-mapped levels and designed coin/power-up layouts to the platform.&lt;/p&gt;
&lt;p&gt;The goal of this challenge is 4 fold:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="line-height: 13px;"&gt;Learn how to create better and better games through fast iteration of the entire process &amp;#8211; design, art, programming,  and marketing&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Reduce the risk of focusing on one big game by producing many games that each may resonate with different players&lt;/li&gt;
&lt;li&gt;Start generating a small cash flow quickly that will grow with each game release&lt;/li&gt;
&lt;li&gt;Build out a network of games to cross promote each other&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It is not going to be easy to do working just in the evenings and weekends but 2013 is the year to do it!&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll be blogging about the work I&amp;#8217;m doing here on this site as I go.
&lt;p&gt;&lt;script src="http://feeds.feedburner.com/~s/HalotisBlog?i=&lt;?php the_permalink() ?&gt;" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;

&lt;!-- start wp-tags-to-technorati 1.02 --&gt;

&lt;!-- end wp-tags-to-technorati --&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=dPqOdPxMvIQ:hEujtEX1LmM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=dPqOdPxMvIQ:hEujtEX1LmM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=dPqOdPxMvIQ:hEujtEX1LmM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=dPqOdPxMvIQ:hEujtEX1LmM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=dPqOdPxMvIQ:hEujtEX1LmM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=dPqOdPxMvIQ:hEujtEX1LmM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=dPqOdPxMvIQ:hEujtEX1LmM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?i=dPqOdPxMvIQ:hEujtEX1LmM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/HalotisBlog?a=dPqOdPxMvIQ:hEujtEX1LmM:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/HalotisBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HalotisBlog/~4/dPqOdPxMvIQ" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://halotis.com/2013/02/08/great-app-challenge-of-2013/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://halotis.com/2013/02/08/great-app-challenge-of-2013/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://halotis.com/2013/02/08/great-app-challenge-of-2013/</feedburner:origLink></entry>
	</feed>
