<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>RSS feed for InstantSpot site EdomGroup Blog</title><link>http://edomgroup.instantspot.com</link><description>ColdFusion, Java, Computer Science, and the musings of inspired developers...</description><language>en-us</language><copyright>This work is Copyright &#xA9; 2009 by EdomGroup Blog</copyright><generator>RSSVille ColdFusion FeedMaker, version 1.0</generator><pubDate>Sat, 21 Nov 2009 09:03:45 GMT</pubDate><item><title>I&apos;m A CFEclipse committer!</title><link>http://edomgroup.instantspot.com/blog/2007/04/30/Im-A-CFEclipse-committer</link><description>&lt;p&gt;  So, while I&amp;#39;ve been kind of a &amp;quot;sleeper&amp;quot; contributor to CFE, I have been ramping it up a bit lately and doing a little more than just keeping Mark Drew company and providing awkwardly humorous conversation. It&amp;#39;s always wierd because you can&amp;#39;t hear the person on the other end laughing with you...after years of messaging, I&amp;#39;m still self concious :-P  &lt;/p&gt;  &lt;p&gt;  Anyway, more on the subject of this post, Mark Drew has decided that I&amp;#39;m finally worth the honor of having commit rights to the CFEclipse Subversion repository. Mainly this means two things to me:&lt;br /&gt;  &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Mark Drew doesn&amp;#39;t think I&amp;#39;m gonna blow it up (or that the odds are better that I won&amp;#39;t)&lt;/li&gt;   &lt;li&gt;I feel like it means I have contributed some use be it in little bits to the project. I&amp;#39;m eager to see this contribution grow.&lt;/li&gt;  &lt;/ol&gt;  &lt;p&gt;  Anyway, whether you have been considering helping out with CFEclipse or not, I would like to reiterate how exciting it is to get to work with Mark even on the days I&amp;#39;m not able to do much more than discuss things with him. He has a way of making great things happen with CFE and making the entire process interesting and a lot of fun.  &lt;/p&gt;  &lt;p&gt;  If you would be interested in experiencing the good and rewarding time that I&amp;#39;ve been getting, might I suggest contacting Mark to share your skills and see if there is something you&amp;#39;d like to do.  &lt;/p&gt;  &lt;p&gt;  I&amp;#39;m not sure if this was an item everyone would be excited to hear about, but I&amp;#39;m very happy about it and I have noone nerdy to share this information with right now.  &lt;/p&gt;  &lt;p&gt;  Thanks for putting up with me :-P  &lt;/p&gt;  &lt;p&gt;  Mike Kelp&amp;nbsp;  &lt;/p&gt;  </description><pubDate>Mon, 30 Apr 2007 21:10:49 GMT</pubDate><guid>http://edomgroup.instantspot.com/blog/2007/04/30/Im-A-CFEclipse-committer</guid><category>CFEclipse</category></item><item><title>CFEclipse - Learning and Helping</title><link>http://edomgroup.instantspot.com/blog/2006/06/30/CFEclipse--Learning-and-Helping</link><description>So &lt;a href=&quot;http://download.eclipse.org/eclipse/downloads/&quot;&gt;Eclipse 3.2&lt;/a&gt; is officially out and pre-empting it was a nice new beta of &lt;a href=&quot;http://www.cfeclipse.org/beta&quot;&gt;CFEclipse 1.3&lt;/a&gt;.      &lt;p&gt;  Recently (end of May), I started helping out the CFEclipse project with  some bug fixes and contributing to a few small improvements for the  project. While I only came into the project in time to make an  incredibly small contribution, I am planning to be as big a part as  possible in the next release.   &lt;/p&gt;  &lt;p&gt;  This brings me to my next point:      &lt;/p&gt;  &lt;p&gt;  &amp;nbsp;  &lt;/p&gt;  &lt;h3&gt;Learning&lt;/h3&gt;  &lt;strong&gt;Mark Drew is, for lack of better words, a badass.&lt;/strong&gt;  I didn&amp;#39;t realize when I initially offered to help that he has literally  been the only full developer on the project for a while. The fact that  he kept going says a lot about his passion for the project and his  commitment to the ColdFusion community as a whole. I only hope I can  contribute to CFEclipse even half as much as he has. I think it is  important that we all realize this because in addition to all that Mark  has done, he has &lt;a href=&quot;http://www.houseoffusion.com/cf_lists/messages.cfm/forumid:4/threadid:46188&quot;&gt;put up with a lot&lt;/a&gt;, and kept his attitude quite well despite.      &lt;p&gt;  &amp;nbsp;  &lt;/p&gt;  &lt;h3&gt;Helping&lt;/h3&gt; So anyway, while this blog is still new and not  many will see this, I would like to remind those of you that can to  contribute what you can to CFEclipse if you are using it. Get Mark  something off his &lt;a href=&quot;http://www.amazon.co.uk/gp/registry/622WQR01XXWO/202-7294134-4681413&quot;&gt;Amazon Wishlist&lt;/a&gt; or purchase some &lt;a href=&quot;http://www.cafepress.com/cfeclipse&quot;&gt;CFEclipse schwag&lt;/a&gt;.      &lt;p&gt;  Or, if you are really committed and brushed up on your Java, &lt;a href=&quot;http://cfeclipse.tigris.org/&quot;&gt;come help out&lt;/a&gt;!  I can say from experience that Mark went out of his way to make me feel  good about helping out and we&amp;#39;ve even gotten quite a few laughs via  Google Talk.   &lt;/p&gt;  &lt;p&gt;  Anyway, for whoever reads, remember how well off a particular piece of  software can make you (particularly in the open source community and  that IDE you got for free) as well as how the people that gave you that  product deserve all of our respect and appreciation.   &lt;/p&gt;  &lt;p&gt;  Thanks for subscribing to this moral outburst.      &lt;/p&gt;  &lt;p&gt;  Mike.   &lt;/p&gt;  </description><pubDate>Sat, 01 Jul 2006 01:51:16 GMT</pubDate><guid>http://edomgroup.instantspot.com/blog/2006/06/30/CFEclipse--Learning-and-Helping</guid><category>CFEclipse</category></item><item><title>Java performance analysis - a real life example</title><link>http://edomgroup.instantspot.com/blog/2006/06/01/Java-performance-analysis--a-real-life-example</link><description>For my thesis I&amp;#39;m writing a Java program that parses two text files  (representing satellite images) and performs some analysis on them. The  two files are 128 MB and each was taking ~33 seconds to parse. The  analysis takes only a fraction of that time, then the results are  written back to an output file.   &lt;p&gt;  Thinking this was very slow, since the files should be pretty much  sequential access off the disk and the read-ahead-buffer would have  cached the next block, I decided to dig a little. I rewrote the parsing  algorithm in C since it&amp;#39;s easier to manage the low-level IO. I used the  file stream functions (fopen,fread,fclose) provided by stdio. When I ran the program it took ~10 seconds.      &lt;/p&gt;  &lt;p&gt;  This was insane. Java does have more overhead due to its garbage  collection, HotSpot optimizer, and object memory management but it  should not be a magnitude of 3x slower. After a few minutes looking at  the Java implementation I realized I had forgotten to instantiate a BufferedReader. I immediately jumped to the documentation and there it was, each call to the read method of the FileReader blocks until data is available. If no BufferedReader  is supplied this means a context switch for each call. No wonder Java  was taking so long. Adding the buffering I reran the algorithm and wow,  13 seconds. Not to bad for a &amp;ldquo;boated&amp;rdquo; language.   &lt;/p&gt;  &lt;p&gt;  Figuring I had more places in my program which could be optimized I  began looking. The first place I went was to one of the main methods,  the one which did the analysis on each image. The logic was pretty  simple, find the next pattern in the given image, see if it exists in a  lookup table, if so update its statistics or create a new key and add  it as a new entry. The data structure I was using for the lookup table  was a simple HashMap  object. When writing that section of the program I was still relatively  new to the Java language and just went with what I&amp;#39;d used in other  languages, an associative array.   &lt;/p&gt;  &lt;p&gt;  I did a little analysis with some System.out.println  statements and found that on average there was a 14,000 : 15 ratio  between reads and writes on the lookup table. Knowing this ratio was  pretty stable (I wasn&amp;#39;t going to get anywhere near 50% writes) I  decided a better data structure would be something with read time of  O(n) or less, instead of O(h(k)) where h(k) was the hash function on  the key. This meant an array would be best, but I didn&amp;#39;t want the  hassle of managing the size of the array as new patterns where found.  Java had to have something for this. After a little searching I found java.util.concurrent.CopyOnWriteArrayList. This was exactly what I needed. After a little tweaking the new code ran in 1/3 the time.      &lt;/p&gt;  &lt;p&gt;  After this I wrote some small timed programs to examine the running time of the HashMap data structure and the CopyOnWriteArrayList. What I found was as the mutations  approached 25% the CopyOnWriteArrayList&amp;#39;s  performance slowed at an exponential rate. Finally, I couldn&amp;#39;t evaluate  the performance because the tests were taking too long. On the other  hand, the HashMap data structure had a fairly constant performance time irrelevant on the read/write ratio.   &lt;/p&gt;  </description><pubDate>Fri, 02 Jun 2006 03:43:25 GMT</pubDate><guid>http://edomgroup.instantspot.com/blog/2006/06/01/Java-performance-analysis--a-real-life-example</guid><category>Java</category></item></channel></rss>