<?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">
 
	<title>Adam J Wolf</title>
	<subtitle>Technical Craftsman</subtitle>
	
	<link href="http://adamjwolf.com" rel="alternate" type="text/html" />
	<id>http://adamjwolf.com</id>
	<updated>2009-11-11T21:05:19-07:00</updated>
	<author>
		<name>Adam J Wolf</name>
	</author>

	
		<link rel="self" href="http://feeds.feedburner.com/AdamJWolf" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
			<title>DISQUS Comment Fu</title>
			<link href="http://adamjwolf.com/Blogging/DISQUS-Comment-Fu/" rel="alternate" type="text/html" />
			<updated>2009-11-12T00:00:00-07:00</updated>
			<id>http://adamjwolf.com/Blogging/DISQUS-Comment-Fu</id>
			<content type="html">&lt;p&gt;&lt;a href="http://disqus.com"&gt;&lt;span class="caps"&gt;DISQUS&lt;/span&gt;&lt;/a&gt; is a cradle to grave comment management service that every blogger should look into. Why, you ask, because it has everything a user needs and none of the things an administrator hates. It&amp;#8217;s &lt;strong&gt;completely free&lt;/strong&gt; and &lt;span class="caps"&gt;SAAS&lt;/span&gt; ( Software as a Service ) enabled. No software, database or backups, only features and convenience.&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://disqus.com"&gt;&lt;span class="caps"&gt;DISQUS&lt;/span&gt;&lt;/a&gt; Comments is a comment and moderation system.&lt;/h3&gt;
&lt;p&gt;This blog, and many more, are using &lt;span class="caps"&gt;DISQUS&lt;/span&gt; because of the feature set and ease of maintenance. The people behind &lt;span class="caps"&gt;DISQUS&lt;/span&gt; have taken the best commenting features from the web and have compiled them into one outstanding service. No other blog engine has the features and or flexibility that &lt;span class="caps"&gt;DISQUS&lt;/span&gt; Comments have. None. The best part is new features when added to &lt;span class="caps"&gt;DISQUS&lt;/span&gt; will not cause you to update your blog. Maintenance free baby, I love it.&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/DISQUSModerateOptions.png"&gt;&lt;img src="/images/DISQUSModerateOptions.png" style="width:300px;" title="Moderate Options" alt="Moderate Options" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Comment Features&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;Comments&lt;/li&gt;
	&lt;li&gt;Filters&lt;/li&gt;
	&lt;li&gt;White and Blacklists&lt;/li&gt;
	&lt;li&gt;Manage comments by email&lt;/li&gt;
	&lt;li&gt;Comment Flagging&lt;/li&gt;
	&lt;li&gt;Multiple moderators&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a href="http://disqus.com"&gt;&lt;span class="caps"&gt;DISQUS&lt;/span&gt;&lt;/a&gt; Profile allows you to track and manage your comments on the web.&lt;/h3&gt;
&lt;p&gt;&lt;a href="/images/DISQUSProfile.png"&gt;&lt;img src="/images/DISQUSProfile.png" style="width:300px;" title="Profile look" alt="Profile look" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Profile features&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;Twitter and Facebook integration&lt;/li&gt;
	&lt;li&gt;Comment notifications&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Getting started, and more importantly, finishing with &lt;span class="caps"&gt;DISQUS&lt;/span&gt; is easy. Sign up, drop some html on your site and you&amp;#8217;re done. No kidding. I don&amp;#8217;t know how this could get any better. This is how &lt;span class="caps"&gt;SAAS&lt;/span&gt; products should work. Don&amp;#8217;t take my word for it, take it for a spin by commenting on this blog post.&lt;/p&gt;

&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AdamJWolf?a=wmNbmYWHk2U:samAo0izzcQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamJWolf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AdamJWolf?a=wmNbmYWHk2U:samAo0izzcQ:T-Yuy7lWIZ0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamJWolf?i=wmNbmYWHk2U:samAo0izzcQ:T-Yuy7lWIZ0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AdamJWolf/~4/wmNbmYWHk2U" height="1" width="1"/&gt;</content>
		</entry>
	
		<entry>
			<title>Fork the Technical Craftsman</title>
			<link href="http://adamjwolf.com/blogging/Fork-The-Technical-Craftsman/" rel="alternate" type="text/html" />
			<updated>2009-11-11T00:00:00-07:00</updated>
			<id>http://adamjwolf.com/blogging/Fork-The-Technical-Craftsman</id>
			<content type="html">&lt;h3&gt;The Technical Craftsman is now on &lt;a href="http://github.com/"&gt;GitHub&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;That&amp;#8217;s right, you can now fork the source of this &lt;a href="http://jekyllrb.com/"&gt;Jekyll&lt;/a&gt; generated site and all of its content straight from my public &lt;a href="http://github.com/awolf"&gt;repository&lt;/a&gt; on &lt;a href="http://github.com/"&gt;GitHub&lt;/a&gt;. This blog started out as a fork of the awesome www.appden.com blog, so it&amp;#8217;s only fair to make this blog fork-able as well. Thank you &lt;a href="http://www.appden.com"&gt;Scott Kyle&lt;/a&gt; for the Jekyll source and &lt;a href="http://ipsleung.com"&gt;Iris Leung&lt;/a&gt; for the design.&lt;/p&gt;
&lt;p&gt;This also means that this whole site is under source control using &lt;a href="http://git-scm.com/"&gt;Git&lt;/a&gt;. I could have put my blog engine site under source control but it would have been much harder.&lt;/p&gt;




&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AdamJWolf?a=WfUhjsE8cZY:QWkjcMIK1Bw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamJWolf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AdamJWolf?a=WfUhjsE8cZY:QWkjcMIK1Bw:T-Yuy7lWIZ0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamJWolf?i=WfUhjsE8cZY:QWkjcMIK1Bw:T-Yuy7lWIZ0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AdamJWolf/~4/WfUhjsE8cZY" height="1" width="1"/&gt;</content>
		</entry>
	
		<entry>
			<title>My Problem Solving Loop</title>
			<link href="http://adamjwolf.com/opinion/My-Problem-Solving-Loop/" rel="alternate" type="text/html" />
			<updated>2009-11-10T00:00:00-07:00</updated>
			<id>http://adamjwolf.com/opinion/My-Problem-Solving-Loop</id>
			<content type="html">&lt;p&gt;There is nothing more satisfying in the world then solving a good problem. Some would say, and I would have to agree, that programming is more about solving problems, then just telling a computer what to do. If problem solving is important to programming, why do most programmers do it so badly? I think it&amp;#8217;s a lack of a systematic application of a problem solving loop.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I know what you&amp;#8217;re thinking. &amp;#8220;He&amp;#8217;s lost it, gone crazy, too much coding time, time for  reboot.&amp;#8221;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I don&amp;#8217;t think I&amp;#8217;am crazy, but if you do by the end of this post, drop me a comment and let me know.&lt;/p&gt;
&lt;h3&gt;Answer honestly and nobody gets hurt.&lt;/h3&gt;
&lt;p&gt;If you can answer all of these questions with &amp;#8220;No,&amp;#8221; then you have a great problem solving loop or no problems. Either way, you are good.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Have you ever solved a problem that someone did not have?&lt;/li&gt;
	&lt;li&gt;Have you ever beat your head against a wall for more than 8 hours trying to solve a problem?&lt;/li&gt;
	&lt;li&gt;Have you added features to a program that are never used?&lt;/li&gt;
	&lt;li&gt;Have you ever fixed a problem with some google code that broke when deployed to production?&lt;/li&gt;
	&lt;li&gt;Have you ever&amp;#8230;I think you get the point.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Here is my approach to solving problems&lt;/h3&gt;
&lt;h4&gt;Identify&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Ask yourself, do you truly have a problem and is it worth solving?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Some people see a problem and just start fixing it, immediately, without even thinking about the consequences. There are always consequences even in programming. You need to consider the pros and cons of fixing the problem. Working on problems might not be as important as working on your client&amp;#8217;s real problem.&lt;/p&gt;
&lt;h4&gt;Research&lt;/h4&gt;
&lt;p&gt;Ok, now you need to know if anyone else has solved for X or a derivative of X? Research the problem with your trusty browser and see how others have solved the same problem. Most problems are not new. Most, if not all, have been solved for at least twice. Study history and you will not repeat the same mistakes, works for programming also.&lt;/p&gt;
&lt;h4&gt;Test&lt;/h4&gt;
&lt;p&gt;Define a metric for success and automate the test. If the tests pass, you have no more problems. This eliminates the gold plating or extra features problem.&lt;/p&gt;
&lt;h4&gt;Apply&lt;/h4&gt;
&lt;p&gt;Code the solution and integrate. This, of course, would include unit testing and tracer bullet type development practices.&lt;/p&gt;
&lt;h4&gt;Confirm&lt;/h4&gt;
&lt;p&gt;Run those automated test again and see how well you&amp;#8217;ve done. You rarely get it right the first time, and if you do, I would be suspicious of your tests.&lt;/p&gt;
&lt;h4&gt;Recognize&lt;/h4&gt;
&lt;p&gt;Try to recognize the sound of your head hitting an immovable object before you waste anymore time. I have been guilty of this myself once or twice. There is nothing wrong with heading down the wrong path, as long as you recognizing it early.&lt;/p&gt;
&lt;h4&gt;Reevaluate&lt;/h4&gt;
&lt;p&gt;Is solving the problem still worth the time you have spent plus another loop around the problem solving loop?&lt;/p&gt;
&lt;h4&gt;Repeat&lt;/h4&gt;
&lt;p&gt;If the problem still needs to be solved, then spin it again, from the top.&lt;/p&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Programming takes a special kind of analytical mind that likes to solve problems, but solving every problem is a problem in itself. The better programmers know where to apply their limited resource. Do you?&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AdamJWolf?a=DgEBRoKCsqg:HjhDIrdu4Ys:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamJWolf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AdamJWolf?a=DgEBRoKCsqg:HjhDIrdu4Ys:T-Yuy7lWIZ0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamJWolf?i=DgEBRoKCsqg:HjhDIrdu4Ys:T-Yuy7lWIZ0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AdamJWolf/~4/DgEBRoKCsqg" height="1" width="1"/&gt;</content>
		</entry>
	
		<entry>
			<title>Blogging with Less</title>
			<link href="http://adamjwolf.com/blogging/Blogging-with-Less/" rel="alternate" type="text/html" />
			<updated>2009-11-08T00:00:00-07:00</updated>
			<id>http://adamjwolf.com/blogging/Blogging-with-Less</id>
			<content type="html">&lt;p&gt;A little over two years ago, I started blogging on this website as a way to help fellow developers and get my name out in the community. The experience has made me a better developer and writer. What it has also taught me is the tedious and boring tasks of maintaining and using a blog engine.&lt;/p&gt;
&lt;p&gt;This site was powered by BlogEngine.Net, but no more. I have freed myself from the need for blogging software to serve up mostly static pages. In addition, I have also jettisoned the poor &lt;span class="caps"&gt;WYSIWYG&lt;/span&gt; editors that never give you &lt;em&gt;What you see&lt;/em&gt;, and do so at the expense of horrendous &lt;span class="caps"&gt;HTML&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve begun a new journey with the help of plain text, &lt;a href="http://jekyllrb.com/"&gt;Jekyll&lt;/a&gt;, &lt;a href="http://www.textism.com/tools/textile/"&gt;Textile&lt;/a&gt;, &lt;a href="http://pygments.org/"&gt;Pygments&lt;/a&gt;, &lt;a href="http://git-scm.com/"&gt;Git&lt;/a&gt;, and &lt;a href="http://rake.rubyforge.org/"&gt;Rake&lt;/a&gt; where we go is anyones guess. Most, if not all, of these are new to me and I am guessing new to you also. Don&amp;#8217;t be alarmed, it&amp;#8217;s going to be great, trust me.&lt;/p&gt;
&lt;h3&gt;What&amp;#8217;s so great about plain text and jekyll?&lt;/h3&gt;
&lt;p&gt;I have been programming for the web a long time and whenever I wanted to change the structure of my blog I had all this infrastructure in my way. So changing the blog was just something I never did. Jekyll is different; it is a web site generator that works with templates, textile post files and Ruby code. With Jekyll and TextMate, I can change the whole site in a matter of minutes, upload the new version using a handy Rake task all before breakfast on a slow day.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I know that most of you are shocked and appalled that this M$ Kool-Aid drinker is using Ruby and serving up plain html without using a database.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The fact is, I think the less amount of software between me and a blog post the better. BlogEngine is a great &lt;span class="caps"&gt;OSS&lt;/span&gt; project, please don&amp;#8217;t take my exiting the fold as a bad review. I don&amp;#8217;t need the help or features that a blog engine provides and if you&amp;#8217;re reading my blog, I doubt you need them either.&lt;/p&gt;
&lt;h3&gt;Introductions&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://jekyllrb.com/"&gt;Jekyll&lt;/a&gt; Ruby website generator hotness.&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://pygments.org/"&gt;Pygments&lt;/a&gt; python code colorizer from Ada to Zen.&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://git-scm.com/"&gt;Git&lt;/a&gt; distributed source control.&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://rake.rubyforge.org/"&gt;Rake&lt;/a&gt; productivity and build system.&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://disqus.com"&gt;&lt;span class="caps"&gt;DISQUS&lt;/span&gt;&lt;/a&gt; comments anyone.&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.textism.com/tools/textile/"&gt;Textile&lt;/a&gt; less angle bracket tax.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;I hope you will journey with me, jekyll and company, as we explore blogging with less friction. With less infrastructure. With just less. I know that this will enable me to blog at a more regular pace while not dreading touching the site. A word of warning for you Microsofties some Ruby, Objective-C and Python are coming your way.&lt;/p&gt;





&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AdamJWolf?a=99KIyzuPAc8:yXDNeKGWmCE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamJWolf?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AdamJWolf?a=99KIyzuPAc8:yXDNeKGWmCE:T-Yuy7lWIZ0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamJWolf?i=99KIyzuPAc8:yXDNeKGWmCE:T-Yuy7lWIZ0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AdamJWolf/~4/99KIyzuPAc8" height="1" width="1"/&gt;</content>
		</entry>
	
 
</feed>
