<?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/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6855531</id><updated>2011-04-21T11:22:19.598-07:00</updated><title type='text'>Java Sucks</title><subtitle type='html'>Reasons and evidence why Java sucks.  Updated at least twice a week.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://javasucks.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>24</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6855531.post-4145795662927351126</id><published>2009-04-24T20:34:00.000-07:00</published><updated>2009-04-24T20:38:22.827-07:00</updated><title type='text'></title><content type='html'>Here's where Java actually takes something cool and makes it suck:&lt;br /&gt;&lt;br /&gt;Python is cool.  Jython sucks because it's missing key language features like generators (a.k.a. the &lt;tt&gt;yield&lt;/tt&gt; statement.)  Lame.  IronPython was able to implement generators on the .Net runtime.  Why is the JVM so deficient?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-4145795662927351126?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/4145795662927351126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/4145795662927351126'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2009_04_01_archive.html#4145795662927351126' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-110422218769095255</id><published>2004-12-28T01:19:00.000-08:00</published><updated>2004-12-28T00:23:07.690-08:00</updated><title type='text'></title><content type='html'>&lt;b&gt;Java hides the socket handle. How cool!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;It's impossible to get the socket handle from a Java socket. How freakin' lame. It would be just one more method on Java's socket class, but I guess that would be 'impure.' Whatever.&lt;br /&gt;&lt;br /&gt;Here's the whole sad story:&lt;br /&gt;&lt;a href="http://groups-beta.google.com/group/comp.lang.java.help/browse_thread/thread/b6b235290b016084/b085116ea9b5fafd#b085116ea9b5fafd"&gt;http://groups-beta.google.com/group/comp.lang.java.help/browse_thread/thread/b6b235290b016084/b085116ea9b5fafd#b085116ea9b5fafd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;With no good work-arounds, the best solution this programmer could come up with was to use C++.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-110422218769095255?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/110422218769095255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/110422218769095255'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_12_01_archive.html#110422218769095255' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-109816297398328991</id><published>2004-10-18T22:08:00.000-07:00</published><updated>2004-10-18T22:16:13.983-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;Found a bug in the java compiler?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Just wait 3 weeks to "take a number."  Unbelievable.  Yes, that means after three weeks, sun will assign your bug a number.  Who knows when they'll fix it.&lt;br /&gt;&lt;br /&gt;This code:&lt;code&gt;&lt;br /&gt;  final String name = false ? "Heinz" : null;&lt;br /&gt;  System.out.println(name);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;prints "Heinz."  &lt;br /&gt;&lt;br /&gt;And the funniest part is that the author of &lt;a href="http://www.javalobby.org/thread.jspa?threadID=14940&amp;tstart=60"&gt;this post&lt;/a&gt;  asks everyone not to be too hard on Sun, because "they are overloaded with bug reports as it is."&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-109816297398328991?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/109816297398328991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/109816297398328991'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_10_01_archive.html#109816297398328991' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-109816241491082141</id><published>2004-10-18T21:59:00.000-07:00</published><updated>2004-10-18T22:06:54.913-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;Java is awesome because it's not like C++&lt;/strong&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;No, wait, Java is awesome because it has all these new features like generics, enumerated types, and varags.  Wait, those have all been in C++ for years.  Why would Java want to bring in all these bad things?&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Either way, Java sucks.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://www.javalobby.org/thread.jspa?threadID=14748&amp;tstart=90"&gt;Here&lt;/a&gt; a Java lover complains that Java is becoming too much like C++.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;hr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-109816241491082141?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/109816241491082141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/109816241491082141'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_10_01_archive.html#109816241491082141' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-109401390484011954</id><published>2004-08-31T21:39:00.000-07:00</published><updated>2004-08-31T21:45:04.840-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;Garbage Collection Sucks&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Here is the story of a poor soul who just needs to display 200 labels.  And what does Java do, allocate 40 megabytes and never free it, naturally.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://groups.google.com/groups?dq=&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;threadm=1vgps6oteirco%24.a4bq78r09mww%24.dlg%4040tude.net&amp;prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26group%3Dcomp.lang.java.help"&gt;http://groups.google.com/groups?dq=&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;threadm=1vgps6oteirco%24.a4bq78r09mww%24.dlg%4040tude.net&amp;prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26group%3Dcomp.lang.java.help&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The funny thing is, garbage collection works very well in many other languages, such as C#, Python, and Lisp.  What is it about Java that makes garbage collection so consistently suck across all platforms, virtual machines, and compilers?&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-109401390484011954?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/109401390484011954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/109401390484011954'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_08_01_archive.html#109401390484011954' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-109393820557491255</id><published>2004-08-31T00:39:00.000-07:00</published><updated>2004-08-31T00:45:24.003-07:00</updated><title type='text'></title><content type='html'>&lt;b&gt;The Java Concept Technology Map&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;When your map looks like a ball of string, maybe its time to reconsider your design?&lt;br /&gt;Nah.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/developer/onlineTraining/new2java/javamap/intro.html"&gt;&lt;br /&gt;&lt;img src="http://java.sun.com/images/java_map.gif"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-109393820557491255?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/109393820557491255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/109393820557491255'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_08_01_archive.html#109393820557491255' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-108805353844308786</id><published>2004-06-23T21:55:00.000-07:00</published><updated>2004-06-23T22:05:38.443-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;Does "test" == "test"?  Maybe.  It's a "really complicated issue."&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Once again, Java forces you to understand the details of the virtual machine implementation to answer this question.  Here's a message to pass along to the Java designers:  if you have to understand the underlying implementation, then the abstraction sucks.  Therefore, java sucks.&lt;br /&gt;&lt;br /&gt;Here's the explanation:&lt;br /&gt;&lt;blockquote&gt;This is really a complicated issue.  The easiest answer is to recognize &lt;br /&gt;that you're right about one thing: == compares two references to &lt;br /&gt;determine whether they refer to the same object, but doesn't pay &lt;br /&gt;attention to whether the objects themselves are "equal".&lt;br /&gt;&lt;br /&gt;As for the various examples, the complexity arises from the JVM's String &lt;br /&gt;pool, which is is required to maintain.  If the same string literal is &lt;br /&gt;encountered twice in your code, the same object will be referenced both &lt;br /&gt;times, because each time the resulting String is obtained from this &lt;br /&gt;String pool.  So, for example:&lt;br /&gt;&lt;br /&gt;    "ab" == "ab" is true&lt;br /&gt;&lt;br /&gt;    String a = "ab", b = "ab";&lt;br /&gt;    a == b is also true;&lt;br /&gt;&lt;br /&gt;    String a = "a", b = "b";&lt;br /&gt;    (a + b) == "ab" is NOT true because (a + b) is not a literal, so is&lt;br /&gt;                    not taken from the String pool but created at&lt;br /&gt;                    runtime.&lt;br /&gt;&lt;br /&gt;To further complicate the matter, there are certain String &lt;br /&gt;concatenations that are required to be implemented within the bytecode &lt;br /&gt;compiler rather than the JVM.  So the following:&lt;br /&gt;&lt;br /&gt;    final String a = "a", b = "b";&lt;br /&gt;    (a + b) == "ab" is true again!&lt;br /&gt;&lt;br /&gt;This last example differs from the third only in the qualifier 'final' &lt;br /&gt;for the variable declarations.  That's because the word 'final' gives&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The whole sad story is &lt;a href="http://groups.google.com/groups?dq=&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;threadm=03rjd0dn7h9r53srhljnkhpl61qicdvfum%404ax.com&amp;prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26group%3Dcomp.lang.java.help"&gt;here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-108805353844308786?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108805353844308786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108805353844308786'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_06_01_archive.html#108805353844308786' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-108744807659703521</id><published>2004-06-16T21:51:00.000-07:00</published><updated>2004-06-16T21:54:36.596-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;Want a string with exactly 20 'x's in it?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;No problem, either write class definition with a static method and 5 lines of code, or "get a real text editor."&lt;br /&gt;&lt;br /&gt;My favorite part of this thread is how people actually benchmarked different 5-line solutions to see which is fastest.&lt;br /&gt;&lt;br /&gt;Read the whole story at:&lt;br /&gt;&lt;a href="http://groups.google.com/groups?dq=&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;threadm=f091d05n79mhgr27jetogn5og0a12gi670%404ax.com&amp;prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26group%3Dcomp.lang.java.help"&gt;http://groups.google.com/groups?dq=&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;threadm=f091d05n79mhgr27jetogn5og0a12gi670%404ax.com&amp;prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26group%3Dcomp.lang.java.help&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-108744807659703521?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108744807659703521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108744807659703521'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_06_01_archive.html#108744807659703521' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-108718998974696570</id><published>2004-06-13T22:05:00.000-07:00</published><updated>2004-06-13T22:13:09.746-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;Build it yourself with Java!&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Love to build everything from scratch?  Love to re-invent the wheel?  Java is the language for you!&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://www.javalobby.com/nl/archive/jlnews_20040608o.html"&gt;this article&lt;/a&gt;, a programmer needed a register and authenticate library for JSP.  He concludes that using either PHP or ASP, he could download a package in ten minutes and quickly have something working.  But for JSP, there was no such solution.  Where are all those free-software programmers when you need them?  Not using Java, apprently.&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-108718998974696570?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108718998974696570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108718998974696570'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_06_01_archive.html#108718998974696570' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-108632515956721558</id><published>2004-06-03T21:51:00.000-07:00</published><updated>2004-06-03T21:59:19.566-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;No operator overloading, &amp;lt;cough&amp;gt; except for strings.&amp;lt;/cough&amp;gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I don't know how the absence of a useful construct can be claimed as a language feature, but none the less one &lt;a href="http://groups.google.com/groups?q=string+%22%2B%22+operator+group:comp.lang.java.*&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;group=comp.lang.java.*&amp;selm=35E3035B.C7F850A1%40tisny.com&amp;rnum=3"&gt;often cited&lt;/a&gt; feature of java that it doesn't have operator overloading.&lt;br /&gt;&lt;br /&gt;If operator overloading is Bad (capitalized for religious reference), then why did the java designers feel the need to overload the plus operator for strings?  They realized in order to have a useful string class, the needed to overload &lt;tt&gt;+&lt;/tt&gt;.  But of course, you won't need to overload any operators to build useful classes for yourself.&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-108632515956721558?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108632515956721558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108632515956721558'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_06_01_archive.html#108632515956721558' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-108546170222952882</id><published>2004-05-24T22:06:00.000-07:00</published><updated>2004-05-24T22:08:22.230-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;There are no pointers in Java!&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Then can someone please explain to me why there is a &lt;tt&gt;NullPointerException&lt;/tt&gt;?&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-108546170222952882?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108546170222952882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108546170222952882'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_05_01_archive.html#108546170222952882' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-108546145131908404</id><published>2004-05-24T21:51:00.000-07:00</published><updated>2004-05-24T22:04:11.320-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;Garbage Collection is Great!&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Except when you want to free a system resource in the destructor.  Then you're screwed, cause you never know if or when the destructor will be called.&lt;br /&gt;&lt;br /&gt;My favorite part of this whole thing is that I often here Java advocates talk of "real garbage collection" used in Java vs. reference counting used in scripting languages like perl, python, ruby, etc.  "Real garbage collection," has terrible processor cache hit characteristics (in other words, your app runs really slow) and is non-deterministic.  At least reference counting is deterministic, has excellent processor cache hit characteristics, and handles the "free a system resource" problem beautifully.  Yes, I know about the pointer-cycle problem.&lt;br /&gt;&lt;br /&gt;But, the best part of the following newsgroup post is how it demonstates the "if it's not in Java, it either must be bad, or doesn't exist" philosophy.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;dpr wrote:&lt;br /&gt;&gt; I hava a class in wich I initialize a resource like this:&lt;br /&gt;&gt; &lt;br /&gt;&gt; class Dummy {&lt;br /&gt;&gt;  static GlobalRessourceClass myGlobalRes;&lt;br /&gt;&gt;  {&lt;br /&gt;&gt;   // Static bloc initialisation&lt;br /&gt;&gt;   myGlobalRes = AllocRessource();&lt;br /&gt;&gt;  }&lt;br /&gt;&gt; };&lt;br /&gt;&gt; &lt;br /&gt;&gt; How can I do to free the ressource when the program exists ?&lt;br /&gt;&lt;br /&gt;First of all, are you sure you need to?  It's extremely rare to find a &lt;br /&gt;resource on any modern operating system that isn't automatically &lt;br /&gt;reclaimed when a process exits.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And what is this extremely rare resource?&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Actually the allocation of ressource results, at the end, in sending a &lt;br /&gt;initialization command to a specific hardware. I need to send a &lt;br /&gt;"terminate" command.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Lesson learned:  Don't use java to talk to hardware.  And since all software talks to hardware, just use java in theory land.&lt;br /&gt;&lt;br /&gt;The whole story is &lt;a href="http://groups.google.com/groups?dq=&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;threadm=c8t1m7%24iq6%241%40news-reader2.wanadoo.fr&amp;prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26group%3Dcomp.lang.java.help"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-108546145131908404?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108546145131908404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108546145131908404'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_05_01_archive.html#108546145131908404' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-108546046049716283</id><published>2004-05-24T21:44:00.000-07:00</published><updated>2004-05-24T21:48:36.166-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;Try Generics!  They're like C++ templates, except they suck!&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Ironic how one of the aims of Java was to reduce the amount of unsafe casting in code.&lt;br /&gt;&lt;br /&gt;Here's the story of one poor soul trying to figure out generics:&lt;br /&gt;&lt;a href="http://groups.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;threadm=scj4b05sf1fmqffrv5p7shq8qcfvqc5gac%404ax.com&amp;rnum=1&amp;prev=/&amp;frame=on"&gt;&lt;br /&gt;http://groups.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;threadm=scj4b05sf1fmqffrv5p7shq8qcfvqc5gac%404ax.com&amp;rnum=1&amp;prev=/&amp;frame=on&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-108546046049716283?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108546046049716283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108546046049716283'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_05_01_archive.html#108546046049716283' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-108534746803203047</id><published>2004-05-23T14:13:00.000-07:00</published><updated>2004-05-23T14:24:28.033-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;Lots and Lots of Acronyms and Buzzwords!&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Got a problem, you can't solve?  No worries, use an acronym or buzzword to solve it!  Nevermind actually using the technology the acronym stands for, because that would take months and months to "do the right way."  Instead, just tell your boss you are using J(insert any two random letters of the alphabet) and he should walk away with dazed look on his face.  If he comes back, say you are using (pick any island or city in Indonesia) and that will keep him from asking any more questions.  If he's really persistent, I recommend making up some coffee related names, like "Bean-achino," or "CafeTransactions."&lt;br /&gt;&lt;br /&gt;Choose from any of the following &lt;i&gt;real&lt;/i&gt; names:&lt;br /&gt;J2SE&lt;br /&gt;EJB&lt;br /&gt;Servlets&lt;br /&gt;JSP&lt;br /&gt;JDBC&lt;br /&gt;JTA&lt;br /&gt;JTS&lt;br /&gt;JMS&lt;br /&gt;JNDI&lt;br /&gt;JavaMail&lt;br /&gt;JAXP&lt;br /&gt;JAAS&lt;br /&gt;HotSpot&lt;br /&gt;J2EE&lt;br /&gt;Jakarta&lt;br /&gt;Beans&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-108534746803203047?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108534746803203047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108534746803203047'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_05_01_archive.html#108534746803203047' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-108485098772209205</id><published>2004-05-17T20:22:00.000-07:00</published><updated>2004-05-17T20:29:47.723-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;Write more code with Java&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Love typing the same string over and over again?  Excellent, then Java is the language for you.  And don't worry, there are no ugly #defines to save you keystrokes.  Everything is explicit and bloated:&lt;br /&gt;&lt;br /&gt;Take this &lt;a href="http://groups.google.com/groups?dq=&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;th=3f2444fc9ffef2ab"&gt; newsgroup posting&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Mike Phelps wrote:&lt;br /&gt;&gt; In the following snippet:&lt;br /&gt;&gt; &lt;br /&gt;&gt; .....&lt;br /&gt;&gt; String item1 = "hello";&lt;br /&gt;&gt; String item2 = "world";&lt;br /&gt;&gt; String[] items = new String[2];&lt;br /&gt;&gt; for(int i=0; i&lt;items.length; i++) {&lt;br /&gt;&gt;    //populate items[i] with contents of item1 or item2 or .....&lt;br /&gt;&gt;    items[i] = ????????&lt;br /&gt;&gt;   // not possible to do&lt;br /&gt;&gt;   // if (i == 1){item[i] = item1;} else {item[i] = items2}&lt;br /&gt;&gt;   // or items = {item1, item2}&lt;br /&gt;&gt;   // in case you wonder why doing something so stupid, it is for &lt;br /&gt;&gt;   // testing purpose and there is in fact a lot more than 2 strings&lt;br /&gt;&gt; &lt;br /&gt;&gt; }&lt;br /&gt;&gt; &lt;br /&gt;&gt; Does anybody see an easy solution?&lt;br /&gt;&lt;br /&gt;No. AFAIK, this is not possible. The reason: java is not an interpreted&lt;br /&gt;language with an "evaluate" command. At compile time you must be able to&lt;br /&gt;identify the exact variable name (statically; not dynamically using a&lt;br /&gt;piece of code).&lt;br /&gt;&lt;br /&gt;A way to solve this problem is to transform the code that defines the&lt;br /&gt;String objetcs:&lt;br /&gt;  String item1 = "hello";&lt;br /&gt;  String item2 = "world";&lt;br /&gt;  ...&lt;br /&gt;  String itemN = "foobar";&lt;br /&gt;  String[] items = // Problem&lt;br /&gt;&lt;br /&gt; Becomes:&lt;br /&gt;  ArrayList stringItems = new ArrayList();&lt;br /&gt;  stringItems.add("hello");&lt;br /&gt;  stringItems.add("world");&lt;br /&gt;  ...&lt;br /&gt;  stringItems.add("foobar");&lt;br /&gt;  String[] items = (String[])stringItems.toArray(new String[] {});&lt;br /&gt;&lt;br /&gt;You'll notice the first and last lines stay the same regardless of the&lt;br /&gt;number of strings. Also note, that the index numbers of the String objects&lt;br /&gt;"itemN" are dropped, so make sure you add the strings in sequence.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;How I love to type stringItems.add() again and again!&lt;br /&gt;&lt;br /&gt;What might this look like in a real language, say Python:&lt;br /&gt;stuff = [ ['hello', 'world'], ['java', 'sucks'] ]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-108485098772209205?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108485098772209205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108485098772209205'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_05_01_archive.html#108485098772209205' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-108432716422797880</id><published>2004-05-11T18:55:00.000-07:00</published><updated>2004-05-11T18:59:24.226-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;Java Runs Everywhere!&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;More specifically, everywhere that someone is running the exact same JDK version, on the exact same operating system, with the exact same CLASSPATH.&lt;br /&gt;&lt;br /&gt;Here are the lamentings of someone hapless enough to attempt to code on Windows XP and run on Mac:&lt;br /&gt;&lt;a href="http://groups.google.com/groups?dq=&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;oe=UTF-8&amp;threadm=scott-3F6789.16202810052004%40news.west.cox.net&amp;prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26group%3Dcomp.lang.java.help"&gt;http://groups.google.com/groups?dq=&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;oe=UTF-8&amp;threadm=scott-3F6789.16202810052004%40news.west.cox.net&amp;prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26group%3Dcomp.lang.java.help&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-108432716422797880?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108432716422797880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108432716422797880'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_05_01_archive.html#108432716422797880' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-108390458397918532</id><published>2004-05-06T21:32:00.000-07:00</published><updated>2004-05-06T21:41:35.403-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;Java is fast!&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;How fast?  Listen to a Java advocate:&lt;br /&gt;&lt;a href="http://groups.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;oe=UTF-8&amp;selm=slrnc9icqu.djq.mbkennelSPAMBEGONE%40lyapunov.ucsd.edu"&gt;&lt;blockquote&gt;In straight integer performance without libraries, Java now is fast, if you also ignore startup time.&lt;/blockquote&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So just make sure your java program does only integer arithmetic, without any libraries.  And don't actually start the program because that would incur start-up time.&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-108390458397918532?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108390458397918532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108390458397918532'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_05_01_archive.html#108390458397918532' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-108321244981001243</id><published>2004-04-28T21:19:00.000-07:00</published><updated>2004-04-28T21:28:49.123-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;Java makes connecting to the internet easy!&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;So easy, in fact, it will connect even when you don't ask it to.&lt;br /&gt;My favorite solution:&lt;br /&gt;&lt;em&gt;get a decent firewall. :-)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://groups.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;oe=UTF-8&amp;threadm=521673fd.0404220824.66fcbc27%40posting.google.com&amp;rnum=1&amp;prev=/groups%3Fq%3Djava.exe%2Bfirewall%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26scoring%3Dd%26selm%3D521673fd.0404220824.66fcbc27%2540posting.google.com%26rnum%3D1"&gt;http://groups.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;oe=UTF-8&amp;threadm=521673fd.0404220824.66fcbc27%40posting.google.com&amp;rnum=1&amp;prev=/groups%3Fq%3Djava.exe%2Bfirewall%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26scoring%3Dd%26selm%3D521673fd.0404220824.66fcbc27%2540posting.google.com%26rnum%3D1&lt;/a&gt;&lt;hr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-108321244981001243?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108321244981001243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108321244981001243'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_04_01_archive.html#108321244981001243' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-108321159505068690</id><published>2004-04-28T21:05:00.001-07:00</published><updated>2004-04-28T21:13:28.793-07:00</updated><title type='text'></title><content type='html'>Have you heard of the hot new Java technology from Sun - the JES? Finally, the one Java service that solves all those nagging problems that make Java unsuitable for any application attempted. The JES stands for the Java Excuse Stack, and every Java programmer knows it.&lt;br /&gt;&lt;br /&gt;Java programmers should employ the Java excuse stack anytime they're faced with an actual C++ developer, for example, or by an angry customer or fellow developer who actually tries to use a piece of Jaba written by somebody else. Basically, perform a pop on the stack until a) the stack is empty - in which case you need to move to Amsterdam or b) a stack element satisfies and/or confuses the inquirer to a sufficient degree.&lt;br /&gt;&lt;br /&gt;1. You aren't supposed to use Java for that.&lt;br /&gt;2. Java has no concept of that in it's architecture therefore it doesn't actually exist.&lt;br /&gt;3. C++ had pointers, and they're bad, very bad.&lt;br /&gt;4. We'll just get some open source to solve that.&lt;br /&gt;5. Maybe we can open source our Java project that's radically over budget?&lt;br /&gt;6. The project is late because we needed to refactor our code.&lt;br /&gt;7. There was a problem with Tomcat inside Apache when running on JDK2.4.0.a if a configuration file at directory level 700 does not have -a100 in the root element. User error clearly.&lt;br /&gt;8. I work in an IDE that sucks because Sun won't give Eclipse it's approval.&lt;br /&gt;9. That's just part of garbage collection.&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-108321159505068690?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108321159505068690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108321159505068690'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_04_01_archive.html#108321159505068690' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-108313600240742811</id><published>2004-04-28T00:05:00.000-07:00</published><updated>2004-04-28T00:10:57.826-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;Sun says Java Sucks&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;A few years out of date, but it's still a joy to read.  I love it when "designers" blame the "implementers" for not implementing their vision correctly.  Hmmm.  Maybe the design just sucked?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.internalmemos.com/memos/memodetails.php?memo_id=1321"&gt;http://www.internalmemos.com/memos/memodetails.php?memo_id=1321&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-108313600240742811?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108313600240742811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108313600240742811'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_04_01_archive.html#108313600240742811' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-108313537360159492</id><published>2004-04-27T23:54:00.000-07:00</published><updated>2004-04-28T00:02:53.826-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;Want to remove a character from a string?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;No worries.  You have your choice of 17 lines of Java, 6 lines of Java that run in O(n^2) time,  or a regular expression, a.k.a., not java.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://groups.google.com/groups?dq=&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;oe=UTF-8&amp;threadm=r7vf80pachf73b3m164q45qfcattc0l20t%404ax.com&amp;prev=/groups%3Fdq%3D%26num%3D25%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26group%3Dcomp.lang.java.help%26start%3D50"&gt;http://groups.google.com/groups?dq=&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;oe=UTF-8&amp;threadm=r7vf80pachf73b3m164q45qfcattc0l20t%404ax.com&amp;prev=/groups%3Fdq%3D%26num%3D25%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26group%3Dcomp.lang.java.help%26start%3D50&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-108313537360159492?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108313537360159492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108313537360159492'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_04_01_archive.html#108313537360159492' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-108313457771121621</id><published>2004-04-27T23:37:00.002-07:00</published><updated>2004-04-27T23:50:13.450-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;Java Struts make life easier!&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Look how much easier the "After" diagram is than the "Before" diagram.  Why not try Java Struts today!&lt;br /&gt;&lt;br /&gt;&lt;img   alt="Before and after Struts" height="185" src="http://www-106.ibm.com/developerworks/java/library/j-struts/before_after.gif" width="385"&gt;&lt;br /&gt;&lt;br /&gt;The whole story is at:&lt;br /&gt;&lt;a href="http://www-106.ibm.com/developerworks/java/library/j-struts/"&gt;http://www-106.ibm.com/developerworks/java/library/j-struts/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-108313457771121621?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108313457771121621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108313457771121621'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_04_01_archive.html#108313457771121621' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-10831340737200689</id><published>2004-04-27T23:32:00.000-07:00</published><updated>2004-04-27T23:51:17.983-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;Want to find out how much available disk space you have?&lt;/strong&gt;&lt;br /&gt;You don't mind learning SNMP, do you?&lt;br /&gt;Or how about filling up the whole disk and stopping when you get an error?&lt;br /&gt;&lt;br /&gt;Unbelievable:&lt;br /&gt;&lt;a href="http://groups.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;oe=UTF-8&amp;threadm=3cb3fdc0.1770012%40news.clara.net&amp;rnum=10&amp;prev=/groups%3Fq%3Djava%2Bdisk%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26selm%3D3cb3fdc0.1770012%2540news.clara.net%26rnum%3D10"&gt;http://groups.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;oe=UTF-8&amp;threadm=3cb3fdc0.1770012%40news.clara.net&amp;rnum=10&amp;prev=/groups%3Fq%3Djava%2Bdisk%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26selm%3D3cb3fdc0.1770012%2540news.clara.net%26rnum%3D10&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-10831340737200689?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/10831340737200689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/10831340737200689'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_04_01_archive.html#10831340737200689' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6855531.post-108313365673340245</id><published>2004-04-27T23:22:00.000-07:00</published><updated>2004-04-27T23:32:35.840-07:00</updated><title type='text'></title><content type='html'>Here we go!&lt;br /&gt;&lt;br /&gt;Just spent $5000 on a machine with 16 gigs of RAM?  Too bad.  The java garbage collector can't handle it:&lt;br /&gt;&lt;a href="http://www.javalobby.org/thread.jspa?messageID=91794264&amp;threadID=12118&amp;forumID=61"&gt;http://www.javalobby.org/thread.jspa?messageID=91794264&amp;threadID=12118&amp;forumID=61&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855531-108313365673340245?l=javasucks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108313365673340245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855531/posts/default/108313365673340245'/><link rel='alternate' type='text/html' href='http://javasucks.blogspot.com/2004_04_01_archive.html#108313365673340245' title=''/><author><name>Java</name><uri>http://www.blogger.com/profile/11535787077619311992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
