<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Elementary Java Solutions</title>
	<atom:link href="http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/feed/" rel="self" type="application/rss+xml" />
	<link>http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/</link>
	<description>Observations of everyday Java phenomena</description>
	<lastBuildDate>Tue, 13 Jan 2009 18:04:18 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Elvis &#187; Blog Archive &#187; Favorite Programming Quotes 2007</title>
		<link>http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-252</link>
		<dc:creator>Elvis &#187; Blog Archive &#187; Favorite Programming Quotes 2007</dc:creator>
		<pubDate>Fri, 11 Jan 2008 19:36:39 +0000</pubDate>
		<guid isPermaLink="false">http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-252</guid>
		<description>[...] frameworks and more programs the sooner we’ll become better programmers. – Warped Java Guy Elementary Java Solutions Starting a startup is hard, but having a 9 to 5 job is hard too, and in some ways a worse kind of [...]</description>
		<content:encoded><![CDATA[<p>[...] frameworks and more programs the sooner we’ll become better programmers. – Warped Java Guy Elementary Java Solutions Starting a startup is hard, but having a 9 to 5 job is hard too, and in some ways a worse kind of [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: WarpedJavaGuy</title>
		<link>http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-121</link>
		<dc:creator>WarpedJavaGuy</dc:creator>
		<pubDate>Wed, 22 Aug 2007 02:22:44 +0000</pubDate>
		<guid isPermaLink="false">http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-121</guid>
		<description>I recently found a similar post &lt;a href=&quot;http://www.artima.com/lejava/articles/javaone_2007_chris_maki.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;  about whether or not frameworks and API&#039;s can limit developers&#039; imaginations.

I realise that solving the same problems over and over again can be counter productive and can sometimes even lead to bugs being introduced, but I think there is good value in it from a personal development and learning perspective.  Bugs can be fixed and even frameworks have bugs that need fixing.  More importantly though, it highlights the need to have specific low level solutions like these integrated into the core language API.  That way we wouldn&#039;t have to recode them or look for them in other frameworks.  

By trying to solve problems using the core API first, we can better identify key missing features and propose to have them added to the language instead of just implementing them in frameworks. That would create a win-win situation for all programmers.  Frameworks could then focus on solving the more higher level problems.</description>
		<content:encoded><![CDATA[<p>I recently found a similar post <a href="http://www.artima.com/lejava/articles/javaone_2007_chris_maki.html" rel="nofollow">here</a>  about whether or not frameworks and API&#8217;s can limit developers&#8217; imaginations.</p>
<p>I realise that solving the same problems over and over again can be counter productive and can sometimes even lead to bugs being introduced, but I think there is good value in it from a personal development and learning perspective.  Bugs can be fixed and even frameworks have bugs that need fixing.  More importantly though, it highlights the need to have specific low level solutions like these integrated into the core language API.  That way we wouldn&#8217;t have to recode them or look for them in other frameworks.  </p>
<p>By trying to solve problems using the core API first, we can better identify key missing features and propose to have them added to the language instead of just implementing them in frameworks. That would create a win-win situation for all programmers.  Frameworks could then focus on solving the more higher level problems.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: WarpedJavaGuy</title>
		<link>http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-119</link>
		<dc:creator>WarpedJavaGuy</dc:creator>
		<pubDate>Sun, 12 Aug 2007 10:31:30 +0000</pubDate>
		<guid isPermaLink="false">http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-119</guid>
		<description>Thanks Bill.  It sure is important to check, test, and double check and test.  It&#039;s those very subtleties you mention that we all have to learn to become better programmers.

I have since corrected the problems identified in the above comments.</description>
		<content:encoded><![CDATA[<p>Thanks Bill.  It sure is important to check, test, and double check and test.  It&#8217;s those very subtleties you mention that we all have to learn to become better programmers.</p>
<p>I have since corrected the problems identified in the above comments.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Klingon</title>
		<link>http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-118</link>
		<dc:creator>Bill Klingon</dc:creator>
		<pubDate>Sat, 11 Aug 2007 04:39:49 +0000</pubDate>
		<guid isPermaLink="false">http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-118</guid>
		<description>Actually I hope no one follows your advice.

Do you know how many people code and recode the same algorithms over and over?

Do you know that they are wasting precious time and at the same time introducing subtle bugs that will take months if not years to detect?

I know this post will not change things, people will code and recode things that are already written in libraries just for the sake of it, because it is so much fun to code, but it is a shame on the profession.

Do you imagine you ask someone to build your house and instead of them buying standard bricks, try to invent how to create bricks, then how to create hammers, ... If you saw that you would be very upset, but in the software development world this attitude is considered correct.

I do not mean we should build prototypes, and if you want to create your own database engine, be my guest, but please first read about the subject and do it own your time. When the thing works, come to show to it to me and make sure I&#039;m saving a lot of time because of your invention!!! ;-D</description>
		<content:encoded><![CDATA[<p>Actually I hope no one follows your advice.</p>
<p>Do you know how many people code and recode the same algorithms over and over?</p>
<p>Do you know that they are wasting precious time and at the same time introducing subtle bugs that will take months if not years to detect?</p>
<p>I know this post will not change things, people will code and recode things that are already written in libraries just for the sake of it, because it is so much fun to code, but it is a shame on the profession.</p>
<p>Do you imagine you ask someone to build your house and instead of them buying standard bricks, try to invent how to create bricks, then how to create hammers, &#8230; If you saw that you would be very upset, but in the software development world this attitude is considered correct.</p>
<p>I do not mean we should build prototypes, and if you want to create your own database engine, be my guest, but please first read about the subject and do it own your time. When the thing works, come to show to it to me and make sure I&#8217;m saving a lot of time because of your invention!!! ;-D</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephen</title>
		<link>http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-116</link>
		<dc:creator>Stephen</dc:creator>
		<pubDate>Sat, 11 Aug 2007 03:09:48 +0000</pubDate>
		<guid isPermaLink="false">http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-116</guid>
		<description>Nice article, concise and useful - I&#039;ve got some code in my current project which could probably make use of this.

A couple of questions:

1) I would have expected that the yield(..) method in IteratorAdapter would be abstract - any reason not to do this?

2) It appears that if a collection is passed to the constructor, then the remove() method will not behave as expected - ie the object will not be removed from the original collection.

&lt;blockquote&gt;
&lt;b&gt;WarpedJavaGuy - 12 August, 2007&lt;/b&gt;

Stephen,

1) The yield method is not abstract because I wanted the adapter to yield all items by default if no methods are overridden.

2) Oops, the constructor that accepted a collection did have that problem. I have removed that constructor. It would be nice to be able to support any type of collection, but it is not very viable with a list based solution like this one.
&lt;/blockquote&gt;</description>
		<content:encoded><![CDATA[<p>Nice article, concise and useful &#8211; I&#8217;ve got some code in my current project which could probably make use of this.</p>
<p>A couple of questions:</p>
<p>1) I would have expected that the yield(..) method in IteratorAdapter would be abstract &#8211; any reason not to do this?</p>
<p>2) It appears that if a collection is passed to the constructor, then the remove() method will not behave as expected &#8211; ie the object will not be removed from the original collection.</p>
<blockquote><p>
<b>WarpedJavaGuy &#8211; 12 August, 2007</b></p>
<p>Stephen,</p>
<p>1) The yield method is not abstract because I wanted the adapter to yield all items by default if no methods are overridden.</p>
<p>2) Oops, the constructor that accepted a collection did have that problem. I have removed that constructor. It would be nice to be able to support any type of collection, but it is not very viable with a list based solution like this one.
</p></blockquote>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aviad Ben Dov</title>
		<link>http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-115</link>
		<dc:creator>Aviad Ben Dov</dc:creator>
		<pubDate>Fri, 10 Aug 2007 22:02:03 +0000</pubDate>
		<guid isPermaLink="false">http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-115</guid>
		<description>michaelp - I&#039;d like to just mention that the yield library doesn&#039;t require calling the hasNext() method for it to work. :)

(PR.. PR...)</description>
		<content:encoded><![CDATA[<p>michaelp &#8211; I&#8217;d like to just mention that the yield library doesn&#8217;t require calling the hasNext() method for it to work. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>(PR.. PR&#8230;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: michaelp</title>
		<link>http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-114</link>
		<dc:creator>michaelp</dc:creator>
		<pubDate>Fri, 10 Aug 2007 15:11:07 +0000</pubDate>
		<guid isPermaLink="false">http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-114</guid>
		<description>Your code is not correct because it requires the user of the Iterator to always call hasNext() prior to next() which is not necessary for standard iterators.

For example if the first element in your collection should not be returned (means should be filtered) but you do not call hasNext() it will be returned by next().

&lt;blockquote&gt;
&lt;b&gt;WarpedJavaGuy - August 12, 2007&lt;/b&gt;

I have never used iterators in that way, but you are right in that the standard Java iterators do allow it.

I have updated the code to support it.
&lt;/blockquote&gt;</description>
		<content:encoded><![CDATA[<p>Your code is not correct because it requires the user of the Iterator to always call hasNext() prior to next() which is not necessary for standard iterators.</p>
<p>For example if the first element in your collection should not be returned (means should be filtered) but you do not call hasNext() it will be returned by next().</p>
<blockquote><p>
<b>WarpedJavaGuy &#8211; August 12, 2007</b></p>
<p>I have never used iterators in that way, but you are right in that the standard Java iterators do allow it.</p>
<p>I have updated the code to support it.
</p></blockquote>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aviad Ben Dov</title>
		<link>http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-99</link>
		<dc:creator>Aviad Ben Dov</dc:creator>
		<pubDate>Thu, 09 Aug 2007 22:01:08 +0000</pubDate>
		<guid isPermaLink="false">http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-99</guid>
		<description>With that I can&#039;t help you, unfortunately... Before writing this thing, I&#039;ve looked around, but couldn&#039;t find anything really (except for people really wishing to have a yield option on Java as well).</description>
		<content:encoded><![CDATA[<p>With that I can&#8217;t help you, unfortunately&#8230; Before writing this thing, I&#8217;ve looked around, but couldn&#8217;t find anything really (except for people really wishing to have a yield option on Java as well).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: WarpedJavaGuy</title>
		<link>http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-100</link>
		<dc:creator>WarpedJavaGuy</dc:creator>
		<pubDate>Thu, 09 Aug 2007 14:36:54 +0000</pubDate>
		<guid isPermaLink="false">http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-100</guid>
		<description>There are many other situations where programmers have had to implement missing Java features.  I&#039;d like to broaden the discussion and invite everyone to share their unique experiences and how they are reusing their solutions.</description>
		<content:encoded><![CDATA[<p>There are many other situations where programmers have had to implement missing Java features.  I&#8217;d like to broaden the discussion and invite everyone to share their unique experiences and how they are reusing their solutions.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: WarpedJavaGuy</title>
		<link>http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-98</link>
		<dc:creator>WarpedJavaGuy</dc:creator>
		<pubDate>Thu, 09 Aug 2007 04:38:37 +0000</pubDate>
		<guid isPermaLink="false">http://warpedjavaguy.wordpress.com/2007/08/08/elementary-java-solutions/#comment-98</guid>
		<description>Excellent :)

The ability to yield is just one example of a simple yet powerful mechanism that would be useful to have in Java.  

I&#039;m sure there are many other similar abstractions that others have discovered and used in their projects and programs.
I&#039;d like to know how they are being reused.</description>
		<content:encoded><![CDATA[<p>Excellent <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The ability to yield is just one example of a simple yet powerful mechanism that would be useful to have in Java.  </p>
<p>I&#8217;m sure there are many other similar abstractions that others have discovered and used in their projects and programs.<br />
I&#8217;d like to know how they are being reused.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
