<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments for Full Of Caffeine</title>
	<atom:link href="http://www.fullofcaffeine.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fullofcaffeine.com</link>
	<description>Enlightenment through high doses of caffeine</description>
	<lastBuildDate>Fri, 20 Aug 2010 21:11:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Pick anything with Peepopen on emacs by Geoffrey Grosenbach</title>
		<link>http://www.fullofcaffeine.com/2010/05/27/pick-anything-with-peepopen-on-emacs/comment-page-1/#comment-4472</link>
		<dc:creator>Geoffrey Grosenbach</dc:creator>
		<pubDate>Fri, 20 Aug 2010 21:11:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.fullofcaffeine.com/?p=259#comment-4472</guid>
		<description>Very useful! Someone was asking for just this feature. I&#039;ll add it to the next release of the app.

Thanks!</description>
		<content:encoded><![CDATA[<p>Very useful! Someone was asking for just this feature. I&#8217;ll add it to the next release of the app.</p>
<p>Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Making Culerity play along well with Capybara by patrick c</title>
		<link>http://www.fullofcaffeine.com/2010/06/09/making-culerity-work-with-capybara/comment-page-1/#comment-4019</link>
		<dc:creator>patrick c</dc:creator>
		<pubDate>Fri, 09 Jul 2010 03:30:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.fullofcaffeine.com/?p=276#comment-4019</guid>
		<description>Thanks...this fixed a weird problem for me.

Everything worked fine for me except when the tests were run by Integrity (constant integration server).  But after installing celerity for the standard ruby distribution, it is now working under Integrity as well.  It doesn&#039;t make any sense to me, but...</description>
		<content:encoded><![CDATA[<p>Thanks&#8230;this fixed a weird problem for me.</p>
<p>Everything worked fine for me except when the tests were run by Integrity (constant integration server).  But after installing celerity for the standard ruby distribution, it is now working under Integrity as well.  It doesn&#8217;t make any sense to me, but&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Emacs or TextMate? Both! by Geoffrey Grosenbach</title>
		<link>http://www.fullofcaffeine.com/2010/01/06/emacs-or-textmate-both/comment-page-1/#comment-1961</link>
		<dc:creator>Geoffrey Grosenbach</dc:creator>
		<pubDate>Wed, 27 Jan 2010 01:54:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.fullofcaffeine.com/?p=159#comment-1961</guid>
		<description>Spot on! Photographers often own (or even carry) several cameras so it&#039;s not unusual for a programmer to use different text editors for different tasks.

I even tried Panic&#039;s Coda a few days ago. It has some nice features.</description>
		<content:encoded><![CDATA[<p>Spot on! Photographers often own (or even carry) several cameras so it&#8217;s not unusual for a programmer to use different text editors for different tasks.</p>
<p>I even tried Panic&#8217;s Coda a few days ago. It has some nice features.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Less is more: Sinatra &amp; Ruby &#8211; a web swiss-knife! by hcabbos</title>
		<link>http://www.fullofcaffeine.com/2009/11/27/less-is-more-will-sinatra-save-my-website/comment-page-1/#comment-1903</link>
		<dc:creator>hcabbos</dc:creator>
		<pubDate>Fri, 22 Jan 2010 19:16:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.fullofcaffeine.com/?p=109#comment-1903</guid>
		<description>Interesting post. Enjoyed reading it. Have you had any more thoughts since you posted it?</description>
		<content:encoded><![CDATA[<p>Interesting post. Enjoyed reading it. Have you had any more thoughts since you posted it?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The TextMate Temptation by Aliaksey Kandratsenka</title>
		<link>http://www.fullofcaffeine.com/2009/12/10/the-textmate-temptation/comment-page-1/#comment-1465</link>
		<dc:creator>Aliaksey Kandratsenka</dc:creator>
		<pubDate>Thu, 24 Dec 2009 07:17:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.fullofcaffeine.com/?p=129#comment-1465</guid>
		<description>I have good news for you. gpicker now builds and runs on OSX. It has some issues on OSX yet. But that&#039;ll be fixed soon.</description>
		<content:encoded><![CDATA[<p>I have good news for you. gpicker now builds and runs on OSX. It has some issues on OSX yet. But that&#8217;ll be fixed soon.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Emacs backup files and Rails woes by Marcelo de Moraes Serpa</title>
		<link>http://www.fullofcaffeine.com/2009/04/27/emacs-backup-files-and-rails-woes/comment-page-1/#comment-1272</link>
		<dc:creator>Marcelo de Moraes Serpa</dc:creator>
		<pubDate>Fri, 11 Dec 2009 04:01:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.fullofcaffeine.com/?p=10#comment-1272</guid>
		<description>Hey Brian, 

Indeed, crazy stuff, I was bited by it more than once, and I lost precious time. I found out how to setup emacs to save the backup files in a different folder instead of saving it in the same level as the file, which causes these kind of problems. I will be postin about this soon. 

Thanks for visting my place :)

Marcelo.</description>
		<content:encoded><![CDATA[<p>Hey Brian, </p>
<p>Indeed, crazy stuff, I was bited by it more than once, and I lost precious time. I found out how to setup emacs to save the backup files in a different folder instead of saving it in the same level as the file, which causes these kind of problems. I will be postin about this soon. </p>
<p>Thanks for visting my place <img src='http://www.fullofcaffeine.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Marcelo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Are we underestimating Object Orientation? by Marcelo de Moraes Serpa</title>
		<link>http://www.fullofcaffeine.com/2009/12/10/are-we-underestimating-object-orientation/comment-page-1/#comment-1270</link>
		<dc:creator>Marcelo de Moraes Serpa</dc:creator>
		<pubDate>Fri, 11 Dec 2009 02:36:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.fullofcaffeine.com/?p=125#comment-1270</guid>
		<description>Hi Jonathan,

I agree, OO is language-agnostic, and that was what I tried to communicate in this post, even though I ended up speaking about the common fact that people often underestimate OO skills/knowledge.

However, people get so overwhelmed about Duck Typing, Meta-programming, TDD, BDD that they think OO is just a necessary evil, which is not true (Take for example the bad press about Java frameworks and Design Patterns in the Ruby community, they all sum up to the equation).

TDD/BDD books don&#039;t give enough importance to OO while they teach you about tests. They just say you will find about concepts as you go, but they don&#039;t dig down into the subject.

And here&#039;s what I want to do in my next essays: Analyse BDD (Cucumber and rSpec) and OO design, and how one can get the most out of both worlds -- following TDD/BDD and still have a good OO architecture and how to keep the balance (avoid over-engineering, which is common when you don&#039;t follow a TDD/BDD approach).

Take a look at this short post of mine, where I elaborate a little bit on this: http://www.fullofcaffeine.com/2009/10/23/are-tests-tdd-more-important-than-architecture/.

This comes from my experience. Many say BDD is the way to enlightenment, and I&#039;m a believer. However, I&#039;ve seen code well-backed by tests (Cucumber &amp; rSpec) that was still spaghetti and not OO whatsoever.

I think there&#039;s an area of opportunity there for some additional study and improvement -- How to be true agile but still care enough for the OO architecture.

Let me know what you think!

Marcelo.</description>
		<content:encoded><![CDATA[<p>Hi Jonathan,</p>
<p>I agree, OO is language-agnostic, and that was what I tried to communicate in this post, even though I ended up speaking about the common fact that people often underestimate OO skills/knowledge.</p>
<p>However, people get so overwhelmed about Duck Typing, Meta-programming, TDD, BDD that they think OO is just a necessary evil, which is not true (Take for example the bad press about Java frameworks and Design Patterns in the Ruby community, they all sum up to the equation).</p>
<p>TDD/BDD books don&#8217;t give enough importance to OO while they teach you about tests. They just say you will find about concepts as you go, but they don&#8217;t dig down into the subject.</p>
<p>And here&#8217;s what I want to do in my next essays: Analyse BDD (Cucumber and rSpec) and OO design, and how one can get the most out of both worlds &#8212; following TDD/BDD and still have a good OO architecture and how to keep the balance (avoid over-engineering, which is common when you don&#8217;t follow a TDD/BDD approach).</p>
<p>Take a look at this short post of mine, where I elaborate a little bit on this: <a href="http://www.fullofcaffeine.com/2009/10/23/are-tests-tdd-more-important-than-architecture/" rel="nofollow">http://www.fullofcaffeine.com/2009/10/23/are-tests-tdd-more-important-than-architecture/</a>.</p>
<p>This comes from my experience. Many say BDD is the way to enlightenment, and I&#8217;m a believer. However, I&#8217;ve seen code well-backed by tests (Cucumber &#038; rSpec) that was still spaghetti and not OO whatsoever.</p>
<p>I think there&#8217;s an area of opportunity there for some additional study and improvement &#8212; How to be true agile but still care enough for the OO architecture.</p>
<p>Let me know what you think!</p>
<p>Marcelo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Are we underestimating Object Orientation? by Jonathan Locke</title>
		<link>http://www.fullofcaffeine.com/2009/12/10/are-we-underestimating-object-orientation/comment-page-1/#comment-1268</link>
		<dc:creator>Jonathan Locke</dc:creator>
		<pubDate>Fri, 11 Dec 2009 01:24:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.fullofcaffeine.com/?p=125#comment-1268</guid>
		<description>Besides breaking down concepts, I find this thought pattern helpful:

If objects are nouns and methods are verbs...
Don&#039;t mix your nouns and verbs.
Your verbs should involve as few nouns as possible (this means fewer parameters, but also fewer nouns in method names).
Keep your eyes open for missing nouns.  If you omit concepts, you will start to see your verbs getting polluted by more and more nouns.

For example, if you&#039;ve got:

new HttpResource(&quot;www.google.com&quot;, 80)

you&#039;ve got two nouns where there could be one.  The missing concept that can reduce the number of nouns involved is Port (since a Port exists only on a host).</description>
		<content:encoded><![CDATA[<p>Besides breaking down concepts, I find this thought pattern helpful:</p>
<p>If objects are nouns and methods are verbs&#8230;<br />
Don&#8217;t mix your nouns and verbs.<br />
Your verbs should involve as few nouns as possible (this means fewer parameters, but also fewer nouns in method names).<br />
Keep your eyes open for missing nouns.  If you omit concepts, you will start to see your verbs getting polluted by more and more nouns.</p>
<p>For example, if you&#8217;ve got:</p>
<p>new HttpResource(&#8220;www.google.com&#8221;, 80)</p>
<p>you&#8217;ve got two nouns where there could be one.  The missing concept that can reduce the number of nouns involved is Port (since a Port exists only on a host).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Are we underestimating Object Orientation? by Jonathan Locke</title>
		<link>http://www.fullofcaffeine.com/2009/12/10/are-we-underestimating-object-orientation/comment-page-1/#comment-1267</link>
		<dc:creator>Jonathan Locke</dc:creator>
		<pubDate>Fri, 11 Dec 2009 01:13:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.fullofcaffeine.com/?p=125#comment-1267</guid>
		<description>Objects are the unit of problem decomposition in Java. Your object model is the key to everything. If you decompose your problem such that each and every concept maps onto a simple object, everything gets easier and easier.  If you fail to do this, your judgement will inevitably go wrong in determining what concepts are important enough to be objects and slowly but surely, things will get harder and harder.

This OO way of thinking is something that no language can enforce. Even in a language like Smalltalk or Delphi, you still make decisions about what concepts get their own object and what ones reuse some old (and possibly inappropriate) object. It&#039;s pretty rare that I see code where someone has created too many classes. More often, classes wind up as a mix of concepts and the design suffers (or completely falls apart) as a result.  

Just look at the composition of something really awful in terms of OO design like the Java network package. Why is there no Host object?  That&#039;s a concept.  Why no Port object?  That&#039;s a concept.  Instead, we have piles of &quot;int&quot; values being passed around as parameters.  If you implement a really nice object model for networking, you boil out tons of repeated non-OO code.  Want to open a connection to www.google.com? 

Socket socket = new Host(&quot;www.google.com&quot;).port(80).openSocket();

But since it&#039;s nice OO code, you can also do URL-like things with it (only without the horrible URL class):

Host google =  new Host(&quot;www.google.com&quot;);
Port port = google.http();
String content = new HttpResource(port, new ResourcePath(&quot;/foo/bar.txt&quot;)).get();

Want to see if google is up by pinging it?

if (google.isAlive()) {

}

Etc...

A lot of the Java core is just too painful without adding some OO around it.</description>
		<content:encoded><![CDATA[<p>Objects are the unit of problem decomposition in Java. Your object model is the key to everything. If you decompose your problem such that each and every concept maps onto a simple object, everything gets easier and easier.  If you fail to do this, your judgement will inevitably go wrong in determining what concepts are important enough to be objects and slowly but surely, things will get harder and harder.</p>
<p>This OO way of thinking is something that no language can enforce. Even in a language like Smalltalk or Delphi, you still make decisions about what concepts get their own object and what ones reuse some old (and possibly inappropriate) object. It&#8217;s pretty rare that I see code where someone has created too many classes. More often, classes wind up as a mix of concepts and the design suffers (or completely falls apart) as a result.  </p>
<p>Just look at the composition of something really awful in terms of OO design like the Java network package. Why is there no Host object?  That&#8217;s a concept.  Why no Port object?  That&#8217;s a concept.  Instead, we have piles of &#8220;int&#8221; values being passed around as parameters.  If you implement a really nice object model for networking, you boil out tons of repeated non-OO code.  Want to open a connection to <a href="http://www.google.com?" rel="nofollow">http://www.google.com?</a> </p>
<p>Socket socket = new Host(&#8220;www.google.com&#8221;).port(80).openSocket();</p>
<p>But since it&#8217;s nice OO code, you can also do URL-like things with it (only without the horrible URL class):</p>
<p>Host google =  new Host(&#8220;www.google.com&#8221;);<br />
Port port = google.http();<br />
String content = new HttpResource(port, new ResourcePath(&#8220;/foo/bar.txt&#8221;)).get();</p>
<p>Want to see if google is up by pinging it?</p>
<p>if (google.isAlive()) {</p>
<p>}</p>
<p>Etc&#8230;</p>
<p>A lot of the Java core is just too painful without adding some OO around it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Are we underestimating Object Orientation? by Eelco</title>
		<link>http://www.fullofcaffeine.com/2009/12/10/are-we-underestimating-object-orientation/comment-page-1/#comment-1265</link>
		<dc:creator>Eelco</dc:creator>
		<pubDate>Fri, 11 Dec 2009 00:28:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.fullofcaffeine.com/?p=125#comment-1265</guid>
		<description>I agree, OO is often undervalued. I think for a large part this is because many &#039;OO&#039; languages like Java, don&#039;t enforce OO, so you&#039;ll end up with all this code that doesn&#039;t have anything to do with OO, but people think it is OO all the same. In the same sense, I feel that particularly Java got somewhat of a bad rep (though it&#039;s still a language many love) because of many public examples simply use it in a poor fashion. It is very well possible to write elegant, terse code in Java, but you&#039;ll have to choose the proper abstractions first and be smart about your code.</description>
		<content:encoded><![CDATA[<p>I agree, OO is often undervalued. I think for a large part this is because many &#8216;OO&#8217; languages like Java, don&#8217;t enforce OO, so you&#8217;ll end up with all this code that doesn&#8217;t have anything to do with OO, but people think it is OO all the same. In the same sense, I feel that particularly Java got somewhat of a bad rep (though it&#8217;s still a language many love) because of many public examples simply use it in a poor fashion. It is very well possible to write elegant, terse code in Java, but you&#8217;ll have to choose the proper abstractions first and be smart about your code.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
