<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-6098392112071095875.comments</id><updated>2012-02-10T06:13:59.381-05:00</updated><category term='Hibernate'/><category term='Code'/><category term='Productivity'/><category term='Opinion'/><category term='Spring'/><category term='Performance'/><category term='Agile'/><category term='Java'/><category term='Scrum'/><title type='text'>Code Instructions</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.codeinstructions.com/feeds/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/comments/default'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/comments/default?start-index=26&amp;max-results=25'/><author><name>Domingos Neto</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_HHFrwTieqY8/STh7yQ1m0bI/AAAAAAAAABs/8BJWpydZgZ4/S220/cruzes.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>185</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-1447092825793270003</id><published>2012-01-24T16:12:05.510-05:00</published><updated>2012-01-24T16:12:05.510-05:00</updated><title type='text'>Dont forget Matt Quigley, String.equals short-cuts...</title><content type='html'>Dont forget Matt Quigley, String.equals short-cuts the comparison with a this==that, then tries a length comparison, then finally tries a == comparison on the char array elements.&lt;br /&gt;&lt;br /&gt;William Louth, looking up your cost table for method calls means absolutely nothing when you&amp;#39;re running code in a JVM that auto-inlines methods and compiles to native code. Unless you&amp;#39;re comparing a large number of identical length strings it would be very rare to enter the loop that iterates the char array.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/2125854442395024415/comments/default/1447092825793270003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/2125854442395024415/comments/default/1447092825793270003'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2009/01/busting-javalangstringintern-myths.html?showComment=1327439525510#c1447092825793270003' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2009/01/busting-javalangstringintern-myths.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-2125854442395024415' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/2125854442395024415' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1025229639'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-2951693127986960512</id><published>2012-01-18T15:59:51.889-05:00</published><updated>2012-01-18T15:59:51.889-05:00</updated><title type='text'>&amp;quot;This reduces the effectiveness of the cache ...</title><content type='html'>&amp;quot;This reduces the effectiveness of the cache because you would expect the object to remain in the cache since the strong reference to it is still around&amp;quot;&lt;br /&gt;&lt;br /&gt;Ummm no. This is something you made up. Nobody would expect a cache to know that you are keeping a reference to an object. Even if the cache were strictly LRU, other threads could have queried the cache so many times that the object you retrieved would no longer be in the cache.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/3611172598996582196/comments/default/2951693127986960512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/3611172598996582196/comments/default/2951693127986960512'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/09/weakhashmap-is-not-cache-understanding.html?showComment=1326920391889#c2951693127986960512' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/09/weakhashmap-is-not-cache-understanding.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-3611172598996582196' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/3611172598996582196' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-714915016'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-6894538273790553059</id><published>2012-01-12T15:45:33.593-05:00</published><updated>2012-01-12T15:45:33.593-05:00</updated><title type='text'>Shotgun programming hasnt been something that I wa...</title><content type='html'>Shotgun programming hasnt been something that I was aware of. I am now and I really think it&amp;#39;s a bit out there.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/1177353271545657289/comments/default/6894538273790553059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/1177353271545657289/comments/default/6894538273790553059'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/10/styles-of-programming.html?showComment=1326401133593#c6894538273790553059' title=''/><author><name>dubturbo</name><uri>http://www.dubturbov.com</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/10/styles-of-programming.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-1177353271545657289' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/1177353271545657289' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1540658767'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-6434025156902169348</id><published>2011-12-19T11:41:10.028-05:00</published><updated>2011-12-19T11:41:10.028-05:00</updated><title type='text'>Yep, and it works nicely. Hence why I got confused...</title><content type='html'>Yep, and it works nicely. Hence why I got confused when I thought this article was the same as my usecase. I thought I must be missing something, and indeed I was, some glasses ;)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/385167265040721281/comments/default/6434025156902169348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/385167265040721281/comments/default/6434025156902169348'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/09/instance-pools-with-weakhashmap.html?showComment=1324312870028#c6434025156902169348' title=''/><author><name>KieronW</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/09/instance-pools-with-weakhashmap.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-385167265040721281' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/385167265040721281' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1663461261'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-7821341051828932690</id><published>2011-12-19T10:39:10.859-05:00</published><updated>2011-12-19T10:39:10.859-05:00</updated><title type='text'>Hi KieronW,

This is exactly what the WeakHashMap ...</title><content type='html'>Hi KieronW,&lt;br /&gt;&lt;br /&gt;This is exactly what the WeakHashMap is for!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/385167265040721281/comments/default/7821341051828932690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/385167265040721281/comments/default/7821341051828932690'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/09/instance-pools-with-weakhashmap.html?showComment=1324309150859#c7821341051828932690' title=''/><author><name>Domingos Neto</name><uri>http://www.blogger.com/profile/16748499695622931125</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_HHFrwTieqY8/STh7yQ1m0bI/AAAAAAAAABs/8BJWpydZgZ4/S220/cruzes.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/09/instance-pools-with-weakhashmap.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-385167265040721281' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/385167265040721281' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1013888231'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-6155407368721950432</id><published>2011-12-19T05:44:03.710-05:00</published><updated>2011-12-19T05:44:03.710-05:00</updated><title type='text'>Ah, sorry. I have totally confused the situation b...</title><content type='html'>Ah, sorry. I have totally confused the situation by not reading your second article properly.&lt;br /&gt;What I was trying to do is create basically a short-term cache, not an object pool like you&lt;br /&gt;are doing here.&lt;br /&gt;&lt;br /&gt;Basically this:&lt;br /&gt;&lt;br /&gt;String[] expressionStrs = createExpressions(); // a large number, with many duplicates&lt;br /&gt;for (String expressionStr : expressionStrs) {&lt;br /&gt;  Expression expression = expensiveParse(expressionStr);&lt;br /&gt;  result.add(expression);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;So what I was trying to do is use a cheap WeakHashMap[String,Expression] cache that only parses&lt;br /&gt;expressions if it is genuinely different to previous ones. Once the expressionStrs falls out of&lt;br /&gt;scope, and GC runs, my WeakHashMap becomes empty. Then, once I have finished with my expressions,&lt;br /&gt;I get all my memory back.&lt;br /&gt;&lt;br /&gt;Cheap (I don&amp;#39;t want stuff to stick around like SoftReferences do) and easy to manage.&lt;br /&gt;&lt;br /&gt;But of course, totally different to what you are doing here. So I guess this was more appropriate&lt;br /&gt;for your first article - WeakHashMap can be used for a very specific type of cache. :)&lt;br /&gt;&lt;br /&gt;Anyway thanks, I found your article very informative.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/385167265040721281/comments/default/6155407368721950432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/385167265040721281/comments/default/6155407368721950432'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/09/instance-pools-with-weakhashmap.html?showComment=1324291443710#c6155407368721950432' title=''/><author><name>KieronW</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/09/instance-pools-with-weakhashmap.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-385167265040721281' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/385167265040721281' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1946866314'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-7739412484341972604</id><published>2011-12-16T12:41:55.432-05:00</published><updated>2011-12-16T12:41:55.432-05:00</updated><title type='text'>Hi KieronW,

You can run this simple test to see w...</title><content type='html'>Hi KieronW,&lt;br /&gt;&lt;br /&gt;You can run this simple test to see what I&amp;#39;m talking about:&lt;br /&gt;&lt;br /&gt;WeakHashMap&amp;lt;String, String&amp;gt; map = new WeakHashMap&amp;lt;String, String&amp;gt;();&lt;br /&gt;        &lt;br /&gt;        String value1 = new String(&amp;quot;value1&amp;quot;);&lt;br /&gt;&lt;br /&gt;        map.put(value1, value1);&lt;br /&gt;        &lt;br /&gt;        System.gc();&lt;br /&gt;&lt;br /&gt;        System.out.println(map.get(&amp;quot;value1&amp;quot;));&lt;br /&gt;        &lt;br /&gt;        value1 = null;&lt;br /&gt;&lt;br /&gt;        System.gc();&lt;br /&gt;        System.out.println(map.get(&amp;quot;value1&amp;quot;));&lt;br /&gt;&lt;br /&gt;This will print:&lt;br /&gt;value1&lt;br /&gt;value1&lt;br /&gt;&lt;br /&gt;Which means the second call to System.gc() did not clear the map even though you cleared the strong reference in the previous line.&lt;br /&gt;&lt;br /&gt;Now if you do this:&lt;br /&gt;&lt;br /&gt;WeakHashMap&amp;lt;String, WeakReference&amp;lt;String&amp;gt;&amp;gt; map = new WeakHashMap&amp;lt;String, WeakReference&amp;lt;String&amp;gt;&amp;gt;();&lt;br /&gt;        &lt;br /&gt;        String value1 = new String(&amp;quot;value1&amp;quot;);&lt;br /&gt;&lt;br /&gt;        map.put(value1, new WeakReference&amp;lt;String&amp;gt;(value1));&lt;br /&gt;        &lt;br /&gt;        System.gc();&lt;br /&gt;&lt;br /&gt;        System.out.println(map.get(&amp;quot;value1&amp;quot;).get());&lt;br /&gt;        &lt;br /&gt;        value1 = null;&lt;br /&gt;&lt;br /&gt;        System.gc();        &lt;br /&gt;        WeakReference&amp;lt;String&amp;gt; wref = map.get(&amp;quot;value1&amp;quot;);&lt;br /&gt;        String ref = null;&lt;br /&gt;        if (wref != null) {&lt;br /&gt;            ref = wref.get();&lt;br /&gt;        }&lt;br /&gt;        System.out.println(ref);&lt;br /&gt;&lt;br /&gt;Then you will get:&lt;br /&gt;&lt;br /&gt;value1&lt;br /&gt;null</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/385167265040721281/comments/default/7739412484341972604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/385167265040721281/comments/default/7739412484341972604'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/09/instance-pools-with-weakhashmap.html?showComment=1324057315432#c7739412484341972604' title=''/><author><name>Domingos Neto</name><uri>http://www.blogger.com/profile/16748499695622931125</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_HHFrwTieqY8/STh7yQ1m0bI/AAAAAAAAABs/8BJWpydZgZ4/S220/cruzes.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/09/instance-pools-with-weakhashmap.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-385167265040721281' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/385167265040721281' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1013888231'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-8321386564441325921</id><published>2011-12-16T12:14:55.816-05:00</published><updated>2011-12-16T12:14:55.816-05:00</updated><title type='text'>Thanks for the quick answer! I was quite confused ...</title><content type='html'>Thanks for the quick answer! I was quite confused by the behaviour, so I had a look in the WeakHashMap class. It looks like it does get rid of map entries - done in the expungeStaleEntries() method - but it seems it only ever does it when there are operations performed on the map (and after keys have been GC&amp;#39;ed). However, if your map is in constant use, it does look like the values are also cleared out, and it uses the ReferenceQueue for this.&lt;br /&gt;&lt;br /&gt;I could be wrong here, so I&amp;#39;ll have a look at the weekend and see if I can verify it in code.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/385167265040721281/comments/default/8321386564441325921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/385167265040721281/comments/default/8321386564441325921'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/09/instance-pools-with-weakhashmap.html?showComment=1324055695816#c8321386564441325921' title=''/><author><name>KieronW</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/09/instance-pools-with-weakhashmap.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-385167265040721281' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/385167265040721281' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1946866314'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-4138432408997206451</id><published>2011-12-16T12:00:23.093-05:00</published><updated>2011-12-16T12:00:23.093-05:00</updated><title type='text'>Hi KieronW,

We have to wrap the object in a WeakR...</title><content type='html'>Hi KieronW,&lt;br /&gt;&lt;br /&gt;We have to wrap the object in a WeakReference because if we didn&amp;#39;t, then there would be a strong reference to that object and it would never be garbage collected.&lt;br /&gt;&lt;br /&gt;Remember the WeakHashMap useas WeakReferences for the keys, but strong references for the values.  The garbage collector decides whether to garbage collect an object based on the strongest type of reference to that object.  In this case, every object in the map would have a strong reference pointing at it, so nothing would be garbage collected.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/385167265040721281/comments/default/4138432408997206451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/385167265040721281/comments/default/4138432408997206451'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/09/instance-pools-with-weakhashmap.html?showComment=1324054823093#c4138432408997206451' title=''/><author><name>Domingos Neto</name><uri>http://www.blogger.com/profile/16748499695622931125</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_HHFrwTieqY8/STh7yQ1m0bI/AAAAAAAAABs/8BJWpydZgZ4/S220/cruzes.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/09/instance-pools-with-weakhashmap.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-385167265040721281' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/385167265040721281' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1013888231'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-3804506494977382080</id><published>2011-12-16T04:14:02.315-05:00</published><updated>2011-12-16T04:14:02.315-05:00</updated><title type='text'>Hi there. Just one question. Why are you wrapping ...</title><content type='html'>Hi there. Just one question. Why are you wrapping the objects in a WeakReference? Wouldn&amp;#39;t the whole map entry get discarded given the keys are weak?&lt;br /&gt;&lt;br /&gt;I ask particularly because on Oracle&amp;#39;s website they seem to imply that this is only needed if your values refer to your keys (and hence hold a strong reference to them, and the entry would never be discarded)?&lt;br /&gt;&lt;br /&gt;http://docs.oracle.com/javase/6/docs/api/java/util/WeakHashMap.html</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/385167265040721281/comments/default/3804506494977382080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/385167265040721281/comments/default/3804506494977382080'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/09/instance-pools-with-weakhashmap.html?showComment=1324026842315#c3804506494977382080' title=''/><author><name>KieronW</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/09/instance-pools-with-weakhashmap.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-385167265040721281' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/385167265040721281' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1981760203'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-6031774220903993196</id><published>2011-11-07T09:44:00.120-05:00</published><updated>2011-11-07T09:44:00.120-05:00</updated><title type='text'>Note that when using Spring with Hibernate you gen...</title><content type='html'>Note that when using Spring with Hibernate you generally use HibernateTemplate...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And guess what? There&amp;#39;s another security at this level:&lt;br /&gt;org.springframework.orm.hibernate3.HibernateTemplate.checkWriteOperationAllowed(HibernateTemplate.java:1175)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/8537592979748540050/comments/default/6031774220903993196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/8537592979748540050/comments/default/6031774220903993196'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2009/04/read-only-transactions-with-spring-and.html?showComment=1320677040120#c6031774220903993196' title=''/><author><name>Sébastien Lorber</name><uri>http://www.blogger.com/profile/16535575273136501866</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2009/04/read-only-transactions-with-spring-and.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-8537592979748540050' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/8537592979748540050' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-125667231'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-6740353616672018141</id><published>2011-11-02T17:17:58.067-04:00</published><updated>2011-11-02T17:17:58.067-04:00</updated><title type='text'>This really good article. I have question for auth...</title><content type='html'>This really good article. I have question for author. You mention at the end that - &amp;quot;Even during Spring read-only transactions, Hibernate queries still save the state of persistent objects in the session cache&amp;quot;. &lt;br /&gt;&lt;br /&gt;What happens to these object that are change in cached? &lt;br /&gt;Do they get written to database at any point?&lt;br /&gt;If different session does flush, do these object get persisted at point of time?&lt;br /&gt;If different session is trying to access object which is modified in cache by different read only session. will first session get the value from cache?&lt;br /&gt;&lt;br /&gt;I would appreciate if you answer above.&lt;br /&gt;&lt;br /&gt;Thanks in advance.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/8537592979748540050/comments/default/6740353616672018141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/8537592979748540050/comments/default/6740353616672018141'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2009/04/read-only-transactions-with-spring-and.html?showComment=1320268678067#c6740353616672018141' title=''/><author><name>Shrikant Patel</name><uri>http://www.blogger.com/profile/09166228156275354489</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2009/04/read-only-transactions-with-spring-and.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-8537592979748540050' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/8537592979748540050' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-372790265'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-8032094515031936231</id><published>2011-09-23T16:53:59.545-04:00</published><updated>2011-09-23T16:53:59.545-04:00</updated><title type='text'>I find it quite amusing as to how the agile silver...</title><content type='html'>I find it quite amusing as to how the agile silver-bullet is now suffering from the exact same causes that they say the waterfall methods failed. Ignoring the &amp;#39;big upfront design&amp;#39; claims of the waterfall methodology often shouted by the agile evangelist (waterfall was always intended to be iterative, but was just not done right - sound familiar?) agile is now failing to deal with all the exact same complexities associated with software development as waterfall projects.&lt;br /&gt;&lt;br /&gt;Thanks to agile however, and particularly the political spin surrounding the agile methodologists, software development has not progressed any further, they simply attacked the software development problem coming from a different direction, but got stuck at the exact same place as traditional developments.&lt;br /&gt;&lt;br /&gt;Mitch Lacey&amp;#39;s dissection of a failed agile project (see: http://www.infoq.com/presentations/A-Story-of-Project-Failure-Mitch-Lacey) is telling and I can see almost identical similarities to a project I was on that failed. Cries of &amp;#39;the customer doesn&amp;#39;t get it, didn&amp;#39;t do this right, didn&amp;#39;t do that right&amp;#39; echo many of the cries on my project - the difference here of course is being a Software Engineer I know better than to declare that all of the agile methodologies are a failure.&lt;br /&gt;&lt;br /&gt;Where agile has failed, and it is a major, major failing in my opinion, is in introducing politics and the politicisation of the software development processes, instead of learning objectively from and improving on those areas where failings occurred in the traditional methods, they simply used political-spin to alienate people away from traditional methods and reinvented the same wheel to make the same mistakes again.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/983052804715079409/comments/default/8032094515031936231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/983052804715079409/comments/default/8032094515031936231'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/08/agile-skepticism.html?showComment=1316811239545#c8032094515031936231' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/08/agile-skepticism.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-983052804715079409' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/983052804715079409' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-919233925'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-5514584048212688384</id><published>2011-09-22T11:58:57.410-04:00</published><updated>2011-09-22T11:58:57.410-04:00</updated><title type='text'>&lt;b&gt;thanks..&lt;/b&gt;</title><content type='html'>&lt;b&gt;thanks..&lt;/b&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/1742777435542722948/comments/default/5514584048212688384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/1742777435542722948/comments/default/5514584048212688384'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/07/immutable-classes.html?showComment=1316707137410#c5514584048212688384' title=''/><author><name>vishal</name><uri>http://www.blogger.com/profile/14203781799407192480</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/07/immutable-classes.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-1742777435542722948' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/1742777435542722948' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-179879654'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-1639164575294423756</id><published>2011-09-19T12:15:06.343-04:00</published><updated>2011-09-19T12:15:06.343-04:00</updated><title type='text'>I think I  definitely fall under the hat of butche...</title><content type='html'>I think I  definitely fall under the hat of butcher programmer. &lt;em&gt;&lt;a href="http://www.dubturbov.com" rel="nofollow"&gt;dub turbo&lt;/a&gt;&lt;/em&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/1177353271545657289/comments/default/1639164575294423756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/1177353271545657289/comments/default/1639164575294423756'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/10/styles-of-programming.html?showComment=1316448906343#c1639164575294423756' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/10/styles-of-programming.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-1177353271545657289' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/1177353271545657289' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-905796551'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-5877583287036095694</id><published>2011-09-07T22:25:51.330-04:00</published><updated>2011-09-07T22:25:51.330-04:00</updated><title type='text'>I&amp;#39;d say I fall under &amp;quot;shotgun programming...</title><content type='html'>I&amp;#39;d say I fall under &amp;quot;shotgun programming&amp;quot;... but I&amp;#39;m probably in denial. I usually don&amp;#39;t know what to do when something breaks. &amp;quot;Programming by accident&amp;quot; for me :(&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dubturboreview.org/" rel="nofollow"&gt;Dub Turbo Review&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/1177353271545657289/comments/default/5877583287036095694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/1177353271545657289/comments/default/5877583287036095694'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/10/styles-of-programming.html?showComment=1315448751330#c5877583287036095694' title=''/><author><name>J Smith</name><uri>http://www.blogger.com/profile/10334168990982299997</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/10/styles-of-programming.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-1177353271545657289' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/1177353271545657289' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-150783116'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-876133020893976970</id><published>2011-07-26T12:18:32.071-04:00</published><updated>2011-07-26T12:18:32.071-04:00</updated><title type='text'>Shotgun programming, id never heard of that term b...</title><content type='html'>Shotgun programming, id never heard of that term before, it suits the way i work sometimes though!.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/1177353271545657289/comments/default/876133020893976970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/1177353271545657289/comments/default/876133020893976970'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/10/styles-of-programming.html?showComment=1311697112071#c876133020893976970' title=''/><author><name>Rap beat maker</name><uri>http://rapbeatmaker.org/</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/10/styles-of-programming.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-1177353271545657289' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/1177353271545657289' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1545119936'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-8350851809488034227</id><published>2011-06-22T04:10:08.146-04:00</published><updated>2011-06-22T04:10:08.146-04:00</updated><title type='text'>Hi, AFAIK it is different when you set read only t...</title><content type='html'>Hi, AFAIK it is different when you set read only transaction and read-only JDBC connection on Oracle. But I have forgotten already the details.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/8537592979748540050/comments/default/8350851809488034227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/8537592979748540050/comments/default/8350851809488034227'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2009/04/read-only-transactions-with-spring-and.html?showComment=1308730208146#c8350851809488034227' title=''/><author><name>Ondrej Medek</name><uri>http://www.blogger.com/profile/02465917905307330831</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2009/04/read-only-transactions-with-spring-and.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-8537592979748540050' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/8537592979748540050' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1294728423'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-8940952787041176771</id><published>2011-06-10T16:46:37.439-04:00</published><updated>2011-06-10T16:46:37.439-04:00</updated><title type='text'>Excellently stated. I wish there are more reasonab...</title><content type='html'>Excellently stated. I wish there are more reasonable voices out there. I have often said the same thing about Agile. It was, as you noted, simply a course correction, as the pendulum had swung too far in favor of processes. However, in my own experience, those who often promote Agile do so because they know nothing of any other project management methodology. In fact, the Project Management Institute has little comment on Agile development; which is not surprising because there really is nothing NEW about Agile (other than applying different nomenclatures and selling it as something new). The concepts of iterative development have long been known and, as you know, the best methodology to use depends on the kind of project. Unfortunately, when a project is mismanaged now, and there are no requirements, bad managers just chalk it up to &amp;quot;Agile&amp;quot;! As Phillip noted above, while many people abused traditional methods, I now see more abuses of the Agile methodologies. Nothing really new though; it&amp;#39;s all just ways to excuse the lack of project management. People need to forget the fancy lingo from slick PowerPoint presentations and just implement good project management practices.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/983052804715079409/comments/default/8940952787041176771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/983052804715079409/comments/default/8940952787041176771'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/08/agile-skepticism.html?showComment=1307738797439#c8940952787041176771' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/08/agile-skepticism.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-983052804715079409' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/983052804715079409' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-751869376'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-3512364556189231346</id><published>2011-05-31T22:26:18.925-04:00</published><updated>2011-05-31T22:26:18.925-04:00</updated><title type='text'>Hi,
We can implement a caching system [LRU] using ...</title><content type='html'>Hi,&lt;br /&gt;We can implement a caching system [LRU] using linkedhashmap. Please refer to the documentation in spec for details.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/3611172598996582196/comments/default/3512364556189231346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/3611172598996582196/comments/default/3512364556189231346'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/09/weakhashmap-is-not-cache-understanding.html?showComment=1306895178925#c3512364556189231346' title=''/><author><name>arrun</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/09/weakhashmap-is-not-cache-understanding.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-3611172598996582196' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/3611172598996582196' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1964766324'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-506054457939475725</id><published>2011-04-27T11:10:16.092-04:00</published><updated>2011-04-27T11:10:16.092-04:00</updated><title type='text'>Check out the following blog  for simple explanati...</title><content type='html'>Check out the following blog  for simple explanation of JVM memory structure. It will not take more than 15 min. to assimilate the whole content.&lt;br /&gt;Follow :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://java-espresso.blogspot.com/2011/04/memory-structure-in-jvm.html" rel="nofollow"&gt;JVM memory allocation&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/302727065541046896/comments/default/506054457939475725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/302727065541046896/comments/default/506054457939475725'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/12/java-objects-memory-structure.html?showComment=1303917016092#c506054457939475725' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/12/java-objects-memory-structure.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-302727065541046896' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/302727065541046896' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-945230903'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-7930486164630536436</id><published>2011-04-18T21:56:22.323-04:00</published><updated>2011-04-18T21:56:22.323-04:00</updated><title type='text'>Looks like you misread the code Scott.
The *values...</title><content type='html'>Looks like you misread the code Scott.&lt;br /&gt;The *values* are being wrapped in a WeakReference, not the keys.&lt;br /&gt;&lt;br /&gt;If you just put the object itself in the map with map.put(object, object) then there would be a strong reference to object as the WeakHashMap class only wraps keys in WeakReferences</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/385167265040721281/comments/default/7930486164630536436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/385167265040721281/comments/default/7930486164630536436'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/09/instance-pools-with-weakhashmap.html?showComment=1303178182323#c7930486164630536436' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/09/instance-pools-with-weakhashmap.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-385167265040721281' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/385167265040721281' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1612223324'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-3455232211687981612</id><published>2011-04-08T11:25:47.899-04:00</published><updated>2011-04-08T11:25:47.899-04:00</updated><title type='text'>I know this is an old post, but I think it&amp;#39;s w...</title><content type='html'>I know this is an old post, but I think it&amp;#39;s worth noting for anyone else that comes across it that the WeakHashMap class uses WeakReference objects internally. By wrapping the key in a WeakReference object yourself you are just adding unnecessary overhead. Each key you set will end up being a WeakReference object pointing to a WeakReferenceObject pointing to the actual key.&lt;br /&gt;&lt;br /&gt;The contents of the replace function should be more like:&lt;br /&gt;&lt;br /&gt;      Object current = map.get(object);&lt;br /&gt;      if(current != null)&lt;br /&gt;        return current;&lt;br /&gt;      map.put(object, object);&lt;br /&gt;      return object;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/385167265040721281/comments/default/3455232211687981612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/385167265040721281/comments/default/3455232211687981612'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/09/instance-pools-with-weakhashmap.html?showComment=1302276347899#c3455232211687981612' title=''/><author><name>Scot</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/09/instance-pools-with-weakhashmap.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-385167265040721281' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/385167265040721281' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1081518971'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-3393850333492014960</id><published>2011-01-11T21:09:20.328-05:00</published><updated>2011-01-11T21:09:20.328-05:00</updated><title type='text'>I&amp;#39;ve had the opportunity to be a &amp;quot;chicken...</title><content type='html'>I&amp;#39;ve had the opportunity to be a &amp;quot;chicken&amp;quot; in the Agile process.  I guess that&amp;#39;s the term for someone who isn&amp;#39;t actually involved in developing the software, but participates in providing input on what we need.&lt;br /&gt;&lt;br /&gt;Having a &amp;quot;manifesto&amp;quot; can lock a team in to thinking that maybe there is another way of handling the process. &lt;br /&gt;&lt;br /&gt;While I think it&amp;#39;s a great way of developing software, the people at my workplace got bogged down in the process.  The scrum master &amp;amp; the whatever you call it argued about what should go first &amp;amp; wasted valuable time.  Just get the freakin info &amp;amp; do it.  If the step gets in the way, remove it.  If you need a step for another part of the development process, you can add it in. It was a bit amusing.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/983052804715079409/comments/default/3393850333492014960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/983052804715079409/comments/default/3393850333492014960'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2008/08/agile-skepticism.html?showComment=1294798160328#c3393850333492014960' title=''/><author><name>Turtleposer</name><uri>http://www.blogger.com/profile/01300123649145168528</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2008/08/agile-skepticism.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-983052804715079409' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/983052804715079409' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-167562924'/></entry><entry><id>tag:blogger.com,1999:blog-6098392112071095875.post-6080858010988080246</id><published>2010-11-03T12:15:10.359-04:00</published><updated>2010-11-03T12:15:10.359-04:00</updated><title type='text'>Artem is right. Unfortunately read-only connection...</title><content type='html'>Artem is right. Unfortunately read-only connections are not supported by the Oracle JDBC Drivers.&lt;br /&gt;Here&amp;#39;s an excerpt from the JDBC Developer’s Guide and Reference&lt;br /&gt;10g Release 2 (10.2):&lt;br /&gt;&lt;br /&gt;&amp;quot;Read-only connections are supported by the Oracle server, but not by the Oracle JDBC drivers.&lt;br /&gt;&lt;br /&gt;For transactions, the Oracle server supports only the TRANSACTION_READ_COMMITTED and TRANSACTION_SERIALIZABLE transaction isolation levels. The default is TRANSACTION_READ_COMMITTED.&amp;quot;&lt;br /&gt;&lt;br /&gt;So TRANSACTION_READ_ONLY isolation level cannot be set through the Oracle JDBC driver.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/8537592979748540050/comments/default/6080858010988080246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098392112071095875/8537592979748540050/comments/default/6080858010988080246'/><link rel='alternate' type='text/html' href='http://www.codeinstructions.com/2009/04/read-only-transactions-with-spring-and.html?showComment=1288800910359#c6080858010988080246' title=''/><author><name>Andrei</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.codeinstructions.com/2009/04/read-only-transactions-with-spring-and.html' ref='tag:blogger.com,1999:blog-6098392112071095875.post-8537592979748540050' source='http://www.blogger.com/feeds/6098392112071095875/posts/default/8537592979748540050' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-520409709'/></entry></feed>
