<?php
/**
 * Copyright (c) 2015, 2018 Eclipse Foundation.
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * Contributors:
 * Nathan Gervais (Eclipse Foundation) - Initial implementation
 * Eric Poirier (Eclipse Foundation)
 *
 * SPDX-License-Identifier: EPL-2.0
 */
?>
<div id="midcolumn">
  <h1><?php print $pageTitle; ?></h1>
  <p>
    Members of the Eclipse community are invited to write a review of the <a
      href="https://projects.eclipse.org/releases/helios"
    >Eclipse projects</a> being released as part of Helios and to publish the
    review on a blog, newsgroup or portal. Following is a list of links to the
    reviews that have been submitted to the blogathon.
  </p>
  <p>
    <a href="guidelines.php">See details on the Helios Blogathon</a>
  </p>
  <table class="table table-striped">
    <tr>
      <th><strong>Link</strong></th>
      <th><strong>Author</strong></th>
      <th><strong>Date</strong></th>
      <th><strong>Language</strong></th>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Helios">
          <a name="Eclipse Helios" class="norgie"
            onClick="t('Eclipse Helios','Eclipse Heliosa')"
          ></a> <a target="_blank"
            href="http://thecoderlounge.blogspot.com/2010/07/eclipse-helios.html
"
          >Eclipse Helios</a>
        </div>
      </td>
      <td>Deepak Azad</td>
      <td>July 31</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse Heliosa">
          <div class="item_contents">Going through the Helios Reviews I see that
            a number of bloggers have said good things about the new features in
            JDT :) If you have not yet seen the new features of JDT then check
            out the 10 minute demo I recorded last month.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Helios 2010">
          <a name="Helios 2010" class="norgie"
            onClick="t('Helios 2010','Helios 2010a')"
          ></a> <a target="_blank"
            href="http://forums.dzone.com/eclipse/2713-helios-2010-a.html#post5709
"
          >Helios 2010</a>
        </div>
      </td>
      <td>Shrikanth NC</td>
      <td>July 31</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Helios 2010a">
          <div class="item_contents">First of all bravo! for the effort
            especially when i read these lines... from IBM site.. "Helios is the
            simultaneous release of 39 Eclipse projects. In terms of statistics,
            the Helios release includes 33 million lines of code developed by
            about 500 Eclipse.org committers from 44 companies."</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse (Helios) Rocks and a Few Critiques">
          <a name="Eclipse (Helios) Rocks and a Few Critiques" class="norgie"
            onClick="t('Eclipse (Helios) Rocks and a Few Critiques','Eclipse (Helios) Rocks and a Few Critiquesa')"
          ></a> <a target="_blank"
            href="http://blog.architexa.com/2010/07/eclipse-rocks-and-a-few-critiques/
"
          >Eclipse (Helios) Rocks and a Few Critiques</a>
        </div>
      </td>
      <td>Vineet Sinha</td>
      <td>July 30</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse (Helios) Rocks and a Few Critiquesa">
          <div class="item_contents">Helios has been out for over a month
            &ndash; and we have been using it. Yes, we are a little biased, but
            when you are working with and leading teams of 10+ developers you
            need to be practical. There are a number of things that Eclipse does
            really well, but there are a few things that we would like to see
            better.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Helios Mostly Works">
          <a name="Eclipse Helios Mostly Works" class="norgie"
            onClick="t('Eclipse Helios Mostly Works','Eclipse Helios Mostly Worksa')"
          ></a> <a target="_blank"
            href="http://datacute.wordpress.com/2010/07/30/eclipse-helios-mostly-works/
"
          >Eclipse Helios Mostly Works</a>
        </div>
      </td>
      <td>Stephen Denne</td>
      <td>July 30</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse Helios Mostly Worksa">
          <div class="item_contents">For development at work, I downloaded and
            started using Eclipse Helios packaged for J2EE development, wanting
            to see what I could stumble upon as new or different, and whether I
            could recommend it to the rest of my team yet without having to
            describe a whole lot of changes to our practices.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse MarketPlace Another New Part of Eclipse Helios 3.6">
          <a name="Eclipse MarketPlace Another New Part of Eclipse Helios 3.6"
            class="norgie"
            onClick="t('Eclipse MarketPlace Another New Part of Eclipse Helios 3.6','Eclipse MarketPlace Another New Part of Eclipse Helios 3.6a')"
          ></a> <a target="_blank"
            href="http://sysdent.net23.net/2010/07/28/eclipse-marketplace-otra-de-las-novedades-de-eclipse-helios-3-6/
"
          >Eclipse MarketPlace Another New Part of Eclipse Helios 3.6</a>
        </div>
      </td>
      <td>Miguel Antonio Casallas Tarazona</td>
      <td>July 28</td>
      <td>Spanish</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse MarketPlace Another New Part of Eclipse Helios 3.6a">
          <div class="item_contents">It is no secret that when we need a full
            server option we have many in the open source world, but it is
            generally tends to be one of two: JBoss and Glassfish.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Helios Review">
          <a name="Eclipse Helios Review" class="norgie"
            onClick="t('Eclipse Helios Review','Eclipse Helios Reviewa')"
          ></a> <a target="_blank"
            href="http://patrickspokemonpalace.wordpress.com/2010/07/27/eclipse-helios-review/
"
          >Eclipse Helios Review</a>
        </div>
      </td>
      <td>Patrick Poon</td>
      <td>July 27</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse Helios Reviewa">
          <div class="item_contents">The Eclipse Helios release train has been
            out for a few weeks now and it&rsquo;s looking pretty good. Here are
            some initial thoughts about it.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Helios Rocks!">
          <a name="Eclipse Helios Rocks!" class="norgie"
            onClick="t('Eclipse Helios Rocks!','Eclipse Helios Rocks!a')"
          ></a> <a target="_blank"
            href="http://technovergence.blogspot.com/2010/07/eclipse-helios-rocks.html
"
          >Eclipse Helios Rocks!</a>
        </div>
      </td>
      <td>Reda Abdi</td>
      <td>July 27</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse Helios Rocks!a">
          <div class="item_contents">As you know the latest eclipse version has
            been released on June 23, 2010. And for someone like me, who was
            using Ganymede (Eclipse 3.4), improvements are striking.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="What&#146;s New in Helios?">
          <a name="What&#146;s New in Helios?" class="norgie"
            onClick="t('What&#146;s New in Helios?','What&#146;s New in Helios?a')"
          ></a> <a target="_blank"
            href="http://olivier-eclipse.blogspot.com/2010/07/quoi-de-neuf-dans-helios.html
"
          >What&#146;s New in Helios?</a>
        </div>
      </td>
      <td>Olivier Thomann</td>
      <td>July 27</td>
      <td>French</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="What&#146;s New in Helios?a">
          <div class="item_contents">The Eclipse Foundation released its new
            annual version in late June. This year, its name is Helios. As
            usual, the delivery was made on the day it was planned for the 10th
            consecutive year.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Helios - a Whole Year of Goodness">
          <a name="Eclipse Helios - a Whole Year of Goodness" class="norgie"
            onClick="t('Eclipse Helios - a Whole Year of Goodness','Eclipse Helios - a Whole Year of Goodnessa')"
          ></a> <a target="_blank"
            href="http://model-driven-blogging.blogspot.com/2010/07/eclipse-helios-whole-year-of-goodness.html
"
          >Eclipse Helios - a Whole Year of Goodness</a>
        </div>
      </td>
      <td>Cedric Brun</td>
      <td>July 27</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse Helios - a Whole Year of Goodnessa">
          <div class="item_contents">Eclipse Helios is a release, but it's also
            a complete development cycle in a global and distributed team of
            commiters. Since I choose 3 features I especially liked in Helios
            this kept bugging me: what is Helios to me? Helios will have its
            place in my memory, not the bits themselves but good things we had
            as a community.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="What Does the Eclipse of a Summer God Mean a Developer?">
          <a name="What Does the Eclipse of a Summer God Mean a Developer?"
            class="norgie"
            onClick="t('What Does the Eclipse of a Summer God Mean a Developer?','What Does the Eclipse of a Summer God Mean a Developer?a')"
          ></a> <a target="_blank"
            href="http://cubussapiens.hu/en/2010/07/what-does-the-eclipse-of-a-summer-god-mean-to-me/
"
          >What Does the Eclipse of a Summer God Mean a Developer?</a>
        </div>
      </td>
      <td>Zoltan Ujhelyi</td>
      <td>July 26</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="What Does the Eclipse of a Summer God Mean a Developer?a">
          <div class="item_contents">A month ago the Eclipse 3.6 shipped &ndash;
            again on time. This is another evolutionary release &ndash; most
            components are binary compatible with the older ones, so the time of
            the migration was roughly equal to the download. All old favorites,
            such as Mylyn, EMF, etc. are updated, a lot of features were added,
            that makes development much easier. Some new components are also
            added, making a strong basis of the Eclipse eco-system.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse 3.6 Hidden Treasures">
          <a name="Eclipse 3.6 Hidden Treasures" class="norgie"
            onClick="t('Eclipse 3.6 Hidden Treasures','Eclipse 3.6 Hidden Treasuresa')"
          ></a> <a target="_blank"
            href="http://blog.zvikico.com/2010/07/eclipse-36-hidden-treasures.html
"
          >Eclipse 3.6 Hidden Treasures</a>
        </div>
      </td>
      <td>Zviki Cohen</td>
      <td>July 26</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse 3.6 Hidden Treasuresa">
          <div class="item_contents">Eclipse 3.6, aka Helios, was released about
            a month ago. It has become a tradition: this is the time I highlight
            some of my favorite hidden features in the new release. I focus my
            article on features which are less obvious, off the beaten path.
            Features you might not be familiar with if you didn't take the time
            to read the "new and noteworthy" for this release.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Latest Eclipse release">
          <a name="Latest Eclipse release" class="norgie"
            onClick="t('Latest Eclipse release','Latest Eclipse releasea')"
          ></a> <a target="_blank"
            href="http://suppressingfire.livejournal.com/46558.html
"
          >Latest Eclipse release</a>
        </div>
      </td>
      <td>Michael R. Head</td>
      <td>July 20</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Latest Eclipse releasea">
          <div class="item_contents">The latest Eclipse came out on June 23,
            2010, and per usual, I'm writing a review to collect a T-shirt in
            this year's blogathon. The first thing to notice, before even
            downloading it, there are a couple more packages available.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div
          id="Moving a RCP application from Galileo to Helios: Feedback and Tips"
        >
          <a
            name="Moving a RCP application from Galileo to Helios: Feedback and Tips"
            class="norgie"
            onClick="t('Moving a RCP application from Galileo to Helios: Feedback and Tips','Moving a RCP application from Galileo to Helios: Feedback and Tipsa')"
          ></a> <a target="_blank"
            href="http://www.bonitasoft.org/blog/eclipse/moving-a-rcp-application-from-galileo-to-helios-feedback-and-tips/
"
          >Moving a RCP application from Galileo to Helios: Feedback and Tips</a>
        </div>
      </td>
      <td>Aurelien Pupier</td>
      <td>July 20</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div
          id="Moving a RCP application from Galileo to Helios: Feedback and Tipsa"
        >
          <div class="item_contents">In this post I&rsquo;m going to share our
            experience migrating our RCP product Bonita Open Solution from an
            Eclipse 3.5.1 to 3.6.0 based platform. There were some issues but we
            were successful. I will also offer some tips so you can avoid some
            mistakes and save migration time.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Helios - New Apply Patch Features">
          <a name="Eclipse Helios - New Apply Patch Features" class="norgie"
            onClick="t('Eclipse Helios - New Apply Patch Features','Eclipse Helios - New Apply Patch Featuresa')"
          ></a> <a target="_blank"
            href="http://blog.max.berger.name/2010/07/eclipse-helios-new-apply-patch-features.html
"
          >Eclipse Helios - New Apply Patch Features</a>
        </div>
      </td>
      <td>Max Berger</td>
      <td>July 18</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse Helios - New Apply Patch Featuresa">
          <div class="item_contents">Eclipse Helios has a few nice new features
            for applying patches. In this post I would like to point some of
            them out.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Helios and Sun/Oracle Update 21">
          <a name="Eclipse Helios and Sun/Oracle Update 21" class="norgie"
            onClick="t('Eclipse Helios and Sun/Oracle Update 21','Eclipse Helios and Sun/Oracle Update 21a')"
          ></a> <a target="_blank"
            href="http://blogs.infosupport.com/blogs/peterhe/archive/2010/07/18/eclipse-helios-and-sun-oracle-update-21.aspx
"
          >Eclipse Helios and Sun/Oracle Update 21</a>
        </div>
      </td>
      <td>Peter Hendriks</td>
      <td>July 18</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse Helios and Sun/Oracle Update 21a">
          <div class="item_contents">First of all, if you are using any version
            of Eclipse (3.1-3.6) and are migrating to Sun/Oracle JDK update 21,
            be wary of this bug: 319514. Basically, Eclipse checks if the VM is
            Sun to add a "PermSize" flag, but now it is renamed to Oracle and
            the check no longer works.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Helios Released: What It Doesn&#146;t Have">
          <a name="Eclipse Helios Released: What It Doesn&#146;t Have"
            class="norgie"
            onClick="t('Eclipse Helios Released: What It Doesn&#146;t Have','Eclipse Helios Released: What It Doesn&#146;t Havea')"
          ></a> <a target="_blank"
            href="http://misto.ch/eclipse-helios-released-what-it-doesnt-have/
"
          >Eclipse Helios Released: What It Doesn&#146;t Have</a>
        </div>
      </td>
      <td>Mirko Stocker</td>
      <td>July 17</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse Helios Released: What It Doesn&#146;t Havea">
          <div class="item_contents">Many good reviews already cover all the
            nice new features that are in Eclipse Helios, so I&rsquo;m going to
            show you a three annoyances that have been bothering me for years
            and are still not fixed in Helios. And these aren&rsquo;t things
            like the high memory consumption or the sluggish interface.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Helios and Java 1.6u21 Deadlocks">
          <a name="Eclipse Helios and Java 1.6u21 Deadlocks" class="norgie"
            onClick="t('Eclipse Helios and Java 1.6u21 Deadlocks','Eclipse Helios and Java 1.6u21 Deadlocksa')"
          ></a> <a target="_blank"
            href="http://blog.max.berger.name/2010/07/eclipse-helios-and-java-16u21-deadlocks.html
"
          >Eclipse Helios and Java 1.6u21 Deadlocks</a>
        </div>
      </td>
      <td>Max Berger</td>
      <td>July 17</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse Helios and Java 1.6u21 Deadlocksa">
          <div class="item_contents">I wanted to write a post about the new
            Eclipse Helios, which was just released to participate in the Helios
            Blogathon. So, on my personal machine, I installed the newest JDK
            (1.6u21), the new eclipse, started it up, tried to work with it and
            after a few seconds.... It just hangs!</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Helios">
          <a name="Eclipse Helios" class="norgie"
            onClick="t('Eclipse Helios','Eclipse Heliosa')"
          ></a> <a target="_blank"
            href="http://www.netgautam.com/wordpress/2010/07/16/eclipse-helios/
"
          >Eclipse Helios</a>
        </div>
      </td>
      <td>Nitesh Gautam</td>
      <td>July 16</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse Heliosa">
          <div class="item_contents">Eclipse has always been my preferred IDE
            for application design and development. There have always been my
            interest in new developments going behind the scenes on eclipse
            evolution. The latest version of Eclipse, named as Helios, has been
            released this year on June 23, named as Eclipse Helios.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="The Helios Year in Retrospect">
          <a name="The Helios Year in Retrospect" class="norgie"
            onClick="t('The Helios Year in Retrospect','The Helios Year in Retrospecta')"
          ></a> <a target="_blank"
            href="http://eclipsehowl.wordpress.com/2010/07/14/the-helios-year-in-retrospect/
"
          >The Helios Year in Retrospect</a>
        </div>
      </td>
      <td>Holger Voorman</td>
      <td>July 14</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="The Helios Year in Retrospecta">
          <div class="item_contents">My neighbor should have been back from
            Malaysia this summer, but the IT project that's behind his sojourn
            in these exotic spheres is delayed. The still indefinitely vacant
            apartment reminds me of how nice my life is. And I&rsquo;m not
            referring to the silence next-door, but to the fact that I, as an
            Eclipse developer, can rely on the 5th Eclipse Release Train
            arriving on time. For trains, and especially for software projects,
            this is not yet self-evident even in the year 2010.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="The Juggernaut of Eclipse Helios Arrives">
          <a name="The Juggernaut of Eclipse Helios Arrives" class="norgie"
            onClick="t('The Juggernaut of Eclipse Helios Arrives','The Juggernaut of Eclipse Helios Arrivesa')"
          ></a> <a target="_blank"
            href="http://codifyit.blogspot.com/2010/07/juggernaut-of-eclipse-helios-arrives.html
"
          >The Juggernaut of Eclipse Helios Arrives</a>
        </div>
      </td>
      <td>Saurav Sarkar</td>
      <td>July 12</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="The Juggernaut of Eclipse Helios Arrivesa">
          <div class="item_contents">This is that time of year, when the Eclipse
            community comes up with its brand new release. Last year i wrote
            about Galileo, this time much awaited Helios comes into the
            limelight.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div
          id="Eclipse Helios  - Install all your Eclipse Plugins from Eclipse MarketPlace"
        >
          <a
            name="Eclipse Helios  - Install all your Eclipse Plugins from Eclipse MarketPlace"
            class="norgie"
            onClick="t('Eclipse Helios  - Install all your Eclipse Plugins from Eclipse MarketPlace','Eclipse Helios  - Install all your Eclipse Plugins from Eclipse MarketPlacea')"
          ></a> <a target="_blank"
            href="http://techsymphony.wordpress.com/2010/07/11/eclipse-helios-install-all-your-eclipse-plugins-from-eclipse-marketplace/
"
          >Eclipse Helios - Install all your Eclipse Plugins from Eclipse
            MarketPlace</a>
        </div>
      </td>
      <td>Maniganda Prakash</td>
      <td>July 11</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div
          id="Eclipse Helios  - Install all your Eclipse Plugins from Eclipse MarketPlacea"
        >
          <div class="item_contents">No more remembering eclipse plugins' url. I
            know how difficult it is to find the url of each eclipse plugin and
            install it via &lsquo;Install New Software&rsquo;. Especially if you
            are behind office firewall you cannot install those plugins. Eclipse
            Helios has resolved those problems introducing &lsquo;Eclipse
            MarketPlace&rsquo;.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Helios Gets Cozy with Your OS">
          <a name="Eclipse Helios Gets Cozy with Your OS" class="norgie"
            onClick="t('Eclipse Helios Gets Cozy with Your OS','Eclipse Helios Gets Cozy with Your OSa')"
          ></a> <a target="_blank"
            href="http://blog.zvikico.com/2010/07/eclipse-helios-gets-cozy-with-your-os.html
"
          >Eclipse Helios Gets Cozy with Your OS</a>
        </div>
      </td>
      <td>Zviki Cohen</td>
      <td>July 7</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse Helios Gets Cozy with Your OSa">
          <div class="item_contents">Let's start with two, non trivial, claims:
            (a) native apps are not dead yet (OS native, as opposed to web
            apps), (b) people prefer the native apps.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Riena 2.0 on Board the Eclipse Helios Release Train">
          <a name="Riena 2.0 on Board the Eclipse Helios Release Train"
            class="norgie"
            onClick="t('Riena 2.0 on Board the Eclipse Helios Release Train','Riena 2.0 on Board the Eclipse Helios Release Traina')"
          ></a> <a target="_blank" href="http://www.compeople.eu/blog/?p=216
">Riena 2.0 on Board the Eclipse Helios Release Train</a>
        </div>
      </td>
      <td>Michael Bordach</td>
      <td>July 7</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Riena 2.0 on Board the Eclipse Helios Release Traina">
          <div class="item_contents">The Riena project team has just released
            the Riena platform 2.0 as part of Eclipse Helios. Thanks and
            congratulations to everyone who helped manage this Eclipse Release
            out the door in high quality and on time again! To dive into
            Riena&rsquo;s detailed technical release notes, you may hop to Riena
            New And Noteworthy. With this post I present a rough overview of new
            and optimized features.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Discovery and AMP">
          <a name="Discovery and AMP" class="norgie"
            onClick="t('Discovery and AMP','Discovery and AMPa')"
          ></a> <a target="_blank"
            href="http://milesparker.blogspot.com/2010/07/discovery-and-amp.html?utm_source=feedbur
"
          >Discovery and AMP</a>
        </div>
      </td>
      <td>Miles Parker</td>
      <td>July 5</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Discovery and AMPa">
          <div class="item_contents">One of my favorite new features in Eclipse
            Helios is not really about the Eclipse tools at all but how users
            get those tools.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="3 Good Reasons to use the Helios Modeling Package">
          <a name="3 Good Reasons to use the Helios Modeling Package"
            class="norgie"
            onClick="t('3 Good Reasons to use the Helios Modeling Package','3 Good Reasons to use the Helios Modeling Packagea')"
          ></a> <a target="_blank"
            href="http://model-driven-blogging.blogspot.com/2010/06/helios-review-in-pictures.html
"
          >3 Good Reasons to use the Helios Modeling Package</a>
        </div>
      </td>
      <td>Cedric Brun</td>
      <td>July 5</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="3 Good Reasons to use the Helios Modeling Packagea">
          <div class="item_contents">Now that the entire world noticed that I
            don't know even one thing about soccer and I'm even trying to cheat,
            I should get back in sharing what I understand instead of those
            silly forecasts. Helios has been out for a little while now, the
            mediatic storm is pretty much gone and it's a good time for me to
            have a look back.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Helios - Eclipse 3.6">
          <a name="Helios - Eclipse 3.6" class="norgie"
            onClick="t('Helios - Eclipse 3.6','Helios - Eclipse 3.6a')"
          ></a> <a target="_blank"
            href="http://maruhgar.blogspot.com/2010/07/helios-eclipse-36.html
"
          >Helios - Eclipse 3.6</a>
        </div>
      </td>
      <td>Raghuram Bharathan</td>
      <td>July 5</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Helios - Eclipse 3.6a">
          <div class="item_contents">Helios is the God of the Sun. It is also
            the codename for the 2010 release of Eclipse, arguably the most
            popular development environment for java programming language. As a
            user of Eclipse for the last six years of so, I did not lose time
            downloading Helios once it became publicly available.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Helios: 5 JDT Improvements">
          <a name="Eclipse Helios: 5 JDT Improvements" class="norgie"
            onClick="t('Eclipse Helios: 5 JDT Improvements','Eclipse Helios: 5 JDT Improvementsa')"
          ></a> <a target="_blank"
            href="http://blog.firdau.si/2010/07/02/eclipse-helios-5-jdt-improvements/
"
          >Eclipse Helios: 5 JDT Improvements</a>
        </div>
      </td>
      <td>Nanda Firdausi</td>
      <td>July 2</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse Helios: 5 JDT Improvementsa">
          <div class="item_contents">Helios has been released. This simultaneous
            release includes more projects but many people still regard Eclipse
            as Java IDE. So in this post, I want to share the most important JDT
            improvements that I think will be loved by most Java developers.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="10 New Features which I Liked the Most in Eclipse Helios">
          <a name="10 New Features which I Liked the Most in Eclipse Helios"
            class="norgie"
            onClick="t('10 New Features which I Liked the Most in Eclipse Helios','10 New Features which I Liked the Most in Eclipse Heliosa')"
          ></a> <a target="_blank"
            href="http://www.techsagar.com/2010/07/10-new-features-which-i-liked-the-most-in-eclipse-helios-3-6-2/
"
          >10 New Features which I Liked the Most in Eclipse Helios</a>
        </div>
      </td>
      <td>Prasanna LM</td>
      <td>July 1</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="10 New Features which I Liked the Most in Eclipse Heliosa">
          <div class="item_contents">Last week Eclipse foundation delivered
            their 2010 installment i.e., the 3.6 version of Eclipse code named
            Helios. It was the largest release from Eclipse community so far as
            it involved 39 different project teams & 33 million lines of code
            (as per the data available in the official Eclipse web page). Helios
            comes with lots of new & interesting features and caters to the
            varying needs of the Software Development community.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div
          id="OSGi Console in Helios, Monkey See/Monkey Do and a Strange Loop"
        >
          <a
            name="OSGi Console in Helios, Monkey See/Monkey Do and a Strange Loop"
            class="norgie"
            onClick="t('OSGi Console in Helios, Monkey See/Monkey Do and a Strange Loop','OSGi Console in Helios, Monkey See/Monkey Do and a Strange Loopa')"
          ></a> <a target="_blank"
            href="http://blog.wolfgang-werner.net/osgi-console-in-helios-monkey-see-monkey-do-and-a-strange-loop/
"
          >OSGi Console in Helios, Monkey See/Monkey Do and a Strange Loop</a>
        </div>
      </td>
      <td>Wolfgang Werner</td>
      <td>June 29</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div
          id="OSGi Console in Helios, Monkey See/Monkey Do and a Strange Loopa"
        >
          <div class="item_contents">Helios comes with an OSGi console that is
            accessible from the GUI directly. This reminded me of the existence
            of an API to add custom commands to the console. I found this to be
            a simple and powerful concept; yet I perceive this feature to be
            rarely used in practice.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Acceleo 3.0.0 is released!">
          <a name="Acceleo 3.0.0 is released!" class="norgie"
            onClick="t('Acceleo 3.0.0 is released!','Acceleo 3.0.0 is released!a')"
          ></a> <a target="_blank"
            href="http://freddyallilaire.blogspot.com/2010/06/acceleo-300-is-released.html
"
          >Acceleo 3.0.0 is released!</a>
        </div>
      </td>
      <td>Freddy Allilaire</td>
      <td>June 29</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Acceleo 3.0.0 is released!a">
          <div class="item_contents">Acceleo 3.0 has just been released and it
            comes with compatibility with Eclipse 3.4, 3.5 and the latest 3.6
            versions. Acceleo 3.0 is a pragmatic implementation of the OMG
            Model-to-text specification.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="RAP and Eclipse Helios in a Minute">
          <a name="RAP and Eclipse Helios in a Minute" class="norgie"
            onClick="t('RAP and Eclipse Helios in a Minute','RAP and Eclipse Helios in a Minutea')"
          ></a> <a target="_blank"
            href="http://eclipsesource.com/blogs/2010/06/28/rap-and-eclipse-helios-in-a-minute/
"
          >RAP and Eclipse Helios in a Minute</a>
        </div>
      </td>
      <td>Holger Staudacher</td>
      <td>June 28</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="RAP and Eclipse Helios in a Minutea">
          <div class="item_contents">As part of the new Eclipse Helios, the Rich
            Ajax Platform project released version 1.3. If you&rsquo;d like to
            know what is new in RAP 1.3, here&rsquo;s a short screencast.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse 3.6 - Helios">
          <a name="Eclipse 3.6 - Helios" class="norgie"
            onClick="t('Eclipse 3.6 - Helios','Eclipse 3.6 - Heliosa')"
          ></a> <a target="_blank"
            href="http://www.programmez.com/actualites.php?titre_actu=Eclipse-36---Helios&id_actu=7778
"
          >Eclipse 3.6 - Helios</a>
        </div>
      </td>
      <td>Frederic Mazue</td>
      <td>June 24</td>
      <td>French</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse 3.6 - Heliosa">
          <div class="item_contents">Eclipse 3.6, codenamed Helios has just
            arrived. 490 Eclipse contributors have worked on this release, which
            includes more than 100 that are independent (as opposed to 900
            active contributors) and 44 companies that were involved and
            collaborate on this open source project.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div
          id="Eclipse Helios Release Leaves Java Developers Spoilt for Choice"
        >
          <a
            name="Eclipse Helios Release Leaves Java Developers Spoilt for Choice"
            class="norgie"
            onClick="t('Eclipse Helios Release Leaves Java Developers Spoilt for Choice','Eclipse Helios Release Leaves Java Developers Spoilt for Choicea')"
          ></a> <a target="_blank"
            href="http://eclipse.dzone.com/articles/eclipse-helio-release-leaves
"
          >Eclipse Helios Release Leaves Java Developers Spoilt for Choice</a>
        </div>
      </td>
      <td>James Sugrue</td>
      <td>June 24</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div
          id="Eclipse Helios Release Leaves Java Developers Spoilt for Choicea"
        >
          <div class="item_contents">Yesterday's release of Helios shows how
            Java developers are now truly spoilt for choice when it comes to
            IDEs. Following on the NetBeans 6.9 release last week, Eclipse 3.6
            is the most complete release so far, incorporating 39 projects.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div
          id="Getting Acquainted: Eclipse Marketplace - All Popular Plug-ins in One Place"
        >
          <a
            name="Getting Acquainted: Eclipse Marketplace - All Popular Plug-ins in One Place"
            class="norgie"
            onClick="t('Getting Acquainted: Eclipse Marketplace - All Popular Plug-ins in One Place','Getting Acquainted: Eclipse Marketplace - All Popular Plug-ins in One Placea')"
          ></a> <a target="_blank"
            href="http://samolisov.blogspot.com/2010/06/eclipse-marketplace.html
"
          >Getting Acquainted: Eclipse Marketplace - All Popular Plug-ins in One
            Place</a>
        </div>
      </td>
      <td>Pavel Samolisov</td>
      <td>June 24</td>
      <td>Russian</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div
          id="Getting Acquainted: Eclipse Marketplace - All Popular Plug-ins in One Placea"
        >
          <div class="item_contents">As part of the Eclipse Helios release, a
            single repository of plugins as well as applications built on the
            Eclipse RCP platform and services provided by the platform, was
            launched.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Helios: Where Programming and Modeling Merge Even More">
          <a
            name="Eclipse Helios: Where Programming and Modeling Merge Even More"
            class="norgie"
            onClick="t('Eclipse Helios: Where Programming and Modeling Merge Even More','Eclipse Helios: Where Programming and Modeling Merge Even Morea')"
          ></a> <a target="_blank"
            href="http://it-republik.de/jaxenter/artikel/Eclipse-Helios-Wie-Programmierung-und-Modellierung-immer-mehr-verschmelzen-3166.html
"
          >Eclipse Helios: Where Programming and Modeling Merge Even More</a>
        </div>
      </td>
      <td>Jan Koehnlein</td>
      <td>June 24</td>
      <td>German</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div
          id="Eclipse Helios: Where Programming and Modeling Merge Even Morea"
        >
          <div class="item_contents">The fact that e4, the next generation of
            Eclipse, is substantially based on EMF shows the importance of
            modeling within the Eclipse project. Therefore, it is not surprising
            that the majority of the 39 participating projects in Helios come
            from the Eclipse Modeling Top-Level-Project. Let&acute;s take a
            closer look at some of the more important new features.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclise Helios - A Few Interesting Features!">
          <a name="Eclise Helios - A Few Interesting Features!" class="norgie"
            onClick="t('Eclise Helios - A Few Interesting Features!','Eclise Helios - A Few Interesting Features!a')"
          ></a> <a target="_blank"
            href="http://eclipse-info.blogspot.com/2010/06/eclipse-helios-few-interesting-features.html
"
          >Eclise Helios - A Few Interesting Features!</a>
        </div>
      </td>
      <td>Madhu Samuel</td>
      <td>June 24</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclise Helios - A Few Interesting Features!a">
          <div class="item_contents">A year old wait is over. Helios is out in
            the wild. Today morning, I downloaded Helios. Oops, my friend of
            eclipse download link got stuck. I went to the download link for the
            common public - eclipse.org/downloads. There goes the Helios
            Modeling Package.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse 3.6 Release - Helios">
          <a name="Eclipse 3.6 Release - Helios" class="norgie"
            onClick="t('Eclipse 3.6 Release - Helios','Eclipse 3.6 Release - Heliosa')"
          ></a> <a target="_blank"
            href="http://linuxfr.org/2010/06/23/27041.html
"
          >Eclipse 3.6 Release - Helios</a>
        </div>
      </td>
      <td>Cedric Brun</td>
      <td>June 23</td>
      <td>French</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse 3.6 Release - Heliosa">
          <div class="item_contents">Eclipse Helios finally arrived after a year
            of expectation, on June 23.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Enter the New Eclipse - Helios">
          <a name="Enter the New Eclipse - Helios" class="norgie"
            onClick="t('Enter the New Eclipse - Helios','Enter the New Eclipse - Heliosa')"
          ></a> <a target="_blank"
            href="http://www.dzone.com/links/r/enter_the_new_eclipse_helios.html
"
          >Enter the New Eclipse - Helios</a>
        </div>
      </td>
      <td>Ian Elliot</td>
      <td>June 23</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Enter the New Eclipse - Heliosa">
          <div class="item_contents">The sun has just set on Galileo, the
            previous version of the Eclipse IDE, and risen on Helios the latest
            version. It promises to be more stable, but its help and
            documentation are a big disappointment.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Git in Eclipse">
          <a name="Git in Eclipse" class="norgie"
            onClick="t('Git in Eclipse','Git in Eclipsea')"
          ></a> <a target="_blank"
            href="http://eclipse.dzone.com/articles/git-eclipse
"
          >Git in Eclipse</a>
        </div>
      </td>
      <td>Mitchell Pronschinske</td>
      <td>June 23</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Git in Eclipsea">
          <div class="item_contents">With today's release of Helios (Eclipse
            3.6), the developers of EGit and JGit have finalized (a week early)
            version 0.8.4 for the Eclipse platform update. The incubating Git
            support in Eclipse was ranked #2 among new 3.6 platform additions by
            developer Ian Bull.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="EclipseLink 2.1.0 Helios Release Now Available">
          <a name="EclipseLink 2.1.0 Helios Release Now Available"
            class="norgie"
            onClick="t('EclipseLink 2.1.0 Helios Release Now Available','EclipseLink 2.1.0 Helios Release Now Availablea')"
          ></a> <a target="_blank"
            href="http://eclipselink.blogspot.com/2010/06/eclipselink-210-helios-release-now.html
"
          >EclipseLink 2.1.0 Helios Release Now Available</a>
        </div>
      </td>
      <td>Peter Krogh and Douglas Clarke</td>
      <td>June 23</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="EclipseLink 2.1.0 Helios Release Now Availablea">
          <div class="item_contents">It is with great pleasure that I would like
            to announce the release of EclipseLink 2.1.0 (Helios). This release
            of brings a number of exciting features many of which were voted on,
            and chosen by the community.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Linux Tools 0.6 Released as Part of Helios">
          <a name="Linux Tools 0.6 Released as Part of Helios" class="norgie"
            onClick="t('Linux Tools 0.6 Released as Part of Helios','Linux Tools 0.6 Released as Part of Heliosa')"
          ></a> <a target="_blank" href="http://overholt.ca/wp/?p=177
">Linux Tools 0.6 Released as Part of Helios</a>
        </div>
      </td>
      <td>Andrew Overholt</td>
      <td>June 23</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Linux Tools 0.6 Released as Part of Heliosa">
          <div class="item_contents">The Eclipse Linux Tools project is pleased
            to announce our 0.6 release which is a part of the Eclipse
            Simultaneous Release known this year as Helios.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="WTP 3.2 Released">
          <a name="WTP 3.2 Released" class="norgie"
            onClick="t('WTP 3.2 Released','WTP 3.2 Releaseda')"
          ></a> <a target="_blank"
            href="http://eclipse.org/webtools/releases/3.2.0/
"
          >WTP 3.2 Released</a>
        </div>
      </td>
      <td>Webtools News</td>
      <td>June 23</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="WTP 3.2 Releaseda">
          <div class="item_contents">The Web Tools Platform's 3.2 release is now
            available!. WTP 3.2 adds support for creating, running, and
            debugging applications using Java EE 6, including Servlet 3.0, JPA
            2.0, JSF 2.0, EJB 3.1, and JAX-RS 1.1 technologies, plus deployment
            to updated server runtimes, and support for XPath 2.0.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="BIRT 2.6 Released">
          <a name="BIRT 2.6 Released" class="norgie"
            onClick="t('BIRT 2.6 Released','BIRT 2.6 Releaseda')"
          ></a> <a target="_blank"
            href="http://birtworld.blogspot.com/2010/06/birt-26-released.html
"
          >BIRT 2.6 Released</a>
        </div>
      </td>
      <td>Jason Weathersby</td>
      <td>June 23</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="BIRT 2.6 Releaseda">
          <div class="item_contents">BIRT 2.6 is now available and with this
            release many improvements and new features are available. Charting
            with BIRT has been improved adding support for a Radar/Polar chart
            type, palette hash patterns, better JPG quality, and improved SVG to
            PDF support.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Helios: The Train Has Arrived">
          <a name="Helios: The Train Has Arrived" class="norgie"
            onClick="t('Helios: The Train Has Arrived','Helios: The Train Has Arriveda')"
          ></a> <a target="_blank"
            href="http://ianskerrett.wordpress.com/2010/06/23/helios-the-train-has-arrived/
"
          >Helios: The Train Has Arrived</a>
        </div>
      </td>
      <td>Ian Skerrett</td>
      <td>June 23</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Helios: The Train Has Arriveda">
          <div class="item_contents">The Eclipse Helios release is now available
            for download. Each year I am amazed how the Eclipse community is
            release on such a predictable schedule. Congratulations to all that
            help make it happen.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Helios: What&#146;s New in JDT">
          <a name="Eclipse Helios: What&#146;s New in JDT" class="norgie"
            onClick="t('Eclipse Helios: What&#146;s New in JDT','Eclipse Helios: What&#146;s New in JDTa')"
          ></a> <a target="_blank"
            href="http://it-republik.de/jaxenter/artikel/Eclipse-Helios-Was-gibt%92s-Neues-in-JDT-3162.html
"
          >Eclipse Helios: What&#146;s New in JDT</a>
        </div>
      </td>
      <td>Marc Teufel</td>
      <td>June 23</td>
      <td>German</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse Helios: What&#146;s New in JDTa">
          <div class="item_contents">Helios is the fifth so-called simultaneous
            release of the Eclipse Foundation. Following Callisto, Europa,
            Ganymede and Galileo, the Helios release comprises 39 different
            Eclipse projects &ndash; and like every year, both the Eclipse
            Platform and the Java Development Tools (JDT) are back in updated
            versions. Let's dive into and have a look at what's new in JDT.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Helios Simultaneous Release">
          <a name="Eclipse Helios Simultaneous Release" class="norgie"
            onClick="t('Eclipse Helios Simultaneous Release','Eclipse Helios Simultaneous Releasea')"
          ></a> <a target="_blank"
            href="http://www.infoq.com/news/2010/06/eclipse-helios
"
          >Eclipse Helios Simultaneous Release</a>
        </div>
      </td>
      <td>Alex Blewitt</td>
      <td>June 23</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse Helios Simultaneous Releasea">
          <div class="item_contents">The Eclipse foundation today announced the
            release of Eclipse Helios, bringing 39 different projects to the
            same station for the seventh annual release train. The Eclipse
            projects are managed in an agile fashion, releasing seven milestone
            builds throughout the year and then a number of release candidates
            in the weeks leading up to June each year. Instead of varying the
            delivery dates, the Eclipse projects vary the content in each
            milestone whilst focussing on the quality and backward
            compatibility.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Top 10 Eclipse Helios Features">
          <a name="Top 10 Eclipse Helios Features" class="norgie"
            onClick="t('Top 10 Eclipse Helios Features','Top 10 Eclipse Helios Featuresa')"
          ></a> <a target="_blank"
            href="http://eclipsesource.com/blogs/2010/06/23/top-10-eclipse-helios-features/
"
          >Top 10 Eclipse Helios Features</a>
        </div>
      </td>
      <td>Ian Bull</td>
      <td>June 23</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Top 10 Eclipse Helios Featuresa">
          <div class="item_contents">Two weeks ago I asked you to think about
            high quality software that has been consistently delivered on-time.
            Think about software that is used by millions of people world-wide,
            built by hundreds of developers, free to use and open to everybody
            and anybody. Think about software that spans domains, runs on the
            smallest of devices and powers the worlds largest enterprises.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse 3.6">
          <a name="Eclipse 3.6" class="norgie"
            onClick="t('Eclipse 3.6','Eclipse 3.6a')"
          ></a> <a target="_blank"
            href="http://www.inforw.de/content/doku.php/blog/277
"
          >Eclipse 3.6</a>
        </div>
      </td>
      <td>Rainer Weinhold</td>
      <td>June 23</td>
      <td>German</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse 3.6a">
          <div class="item_contents">Eclipse 3.6 is now released! I've worked
            for about a week now with the last RC and am very satisfied. So far
            everything is stable and above all, the features work on Windows 7.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Let&#146;s See What&#146;s New in Eclipse 3.6">
          <a name="Let&#146;s See What&#146;s New in Eclipse 3.6" class="norgie"
            onClick="t('Let&#146;s See What&#146;s New in Eclipse 3.6','Let&#146;s See What&#146;s New in Eclipse 3.6a')"
          ></a> <a target="_blank"
            href="http://samolisov.blogspot.com/2010/05/eclipse-36.html
"
          >Let&#146;s See What&#146;s New in Eclipse 3.6</a>
        </div>
      </td>
      <td>Pavel Samolisov</td>
      <td>June 23</td>
      <td>Russian</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Let&#146;s See What&#146;s New in Eclipse 3.6a">
          <div class="item_contents">Today the Eclipse development team has
            promised to collect the first release candidate of the new version
            of this wonderful IDE and platform. Almost a year ago, I took the
            trouble to write about what's new in Eclipse Galileo, and now I'll
            tell you about the new version - Eclipse Helios.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Helios Adds New Fire to Eclipse">
          <a name="Helios Adds New Fire to Eclipse" class="norgie"
            onClick="t('Helios Adds New Fire to Eclipse','Helios Adds New Fire to Eclipsea')"
          ></a> <a target="_blank"
            href="http://www.dzone.com/links/r/helios_adds_new_fire_to_eclipse.html
"
          >Helios Adds New Fire to Eclipse</a>
        </div>
      </td>
      <td>Mitchell Pronschinske</td>
      <td>June 23</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Helios Adds New Fire to Eclipsea">
          <div class="item_contents">It's that time again! The annual updating
            of numerous Eclipse platform projects and the classic IDE that made
            it ubiquitous. Eclipse 3.6 "Helios" is more than just a new IDE
            release, this year it consists of 39 Eclipse projects from SOA
            tooling, to a 'marketplace' client for Eclipse plugins, to a
            platform for mobile development.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="A Review of Eclipse Helios">
          <a name="A Review of Eclipse Helios" class="norgie"
            onClick="t('A Review of Eclipse Helios','A Review of Eclipse Heliosa')"
          ></a> <a target="_blank"
            href="http://willcode4beer.com/opinion.jsp?set=helios_review
"
          >A Review of Eclipse Helios</a>
        </div>
      </td>
      <td>Paul Davis</td>
      <td>June 22</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="A Review of Eclipse Heliosa">
          <div class="item_contents">As a Friends of Eclipse so, it turns out,
            I'm able to download the latest version, Helios, a day early. The
            first thing I decided to do was create a new workspace (just in
            case).</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Git Support, Top Eclipse Helios Feature #2">
          <a name="Git Support, Top Eclipse Helios Feature #2" class="norgie"
            onClick="t('Git Support, Top Eclipse Helios Feature #2','Git Support, Top Eclipse Helios Feature #2a')"
          ></a> <a target="_blank"
            href="http://eclipsesource.com/blogs/2010/06/22/git-support-eclipse-helios-feature-2/
"
          >Git Support, Top Eclipse Helios Feature #2</a>
        </div>
      </td>
      <td>Ian Bull</td>
      <td>June 22</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Git Support, Top Eclipse Helios Feature #2a">
          <div class="item_contents">Only 1 more day until Eclipse Helios is
            release and we are down to my Top 2 features. Over the life of
            Eclipse (Jeff McAffer tells me that he&rsquo;s been working on
            Eclipse since 1999) a lot has changed. Eclipse started its life
            inside OTI/IBM. In November 2001 the Eclipse Consortium was
            announced and Eclipse was released as &lsquo;Open Source&rsquo;. For
            the next few years Eclipse grew, but was still mostly supported by a
            few large companies.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Helios RC4 Review">
          <a name="Eclipse Helios RC4 Review" class="norgie"
            onClick="t('Eclipse Helios RC4 Review','Eclipse Helios RC4 Reviewa')"
          ></a> <a target="_blank"
            href="http://tarlogonjava.blogspot.com/2010/06/eclipse-helios-rc4-review.html
"
          >Eclipse Helios RC4 Review</a>
        </div>
      </td>
      <td>Michael Elman</td>
      <td>June 22</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse Helios RC4 Reviewa">
          <div class="item_contents">Some time ago I have downloaded the JEE
            edition of the Eclipse Helios RC4. And here comes a review in order
            to win a Helios t-shirt. I'll start with bugs I found till now. I
            didn't find many. Continue with features I still miss, and try to
            end with some positive note about the features I liked.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="EMF, Riena and RAP Integration, Top Eclipse Helios Feature #3">
          <a
            name="EMF, Riena and RAP Integration, Top Eclipse Helios Feature #3"
            class="norgie"
            onClick="t('EMF, Riena and RAP Integration, Top Eclipse Helios Feature #3','EMF, Riena and RAP Integration, Top Eclipse Helios Feature #3a')"
          ></a> <a target="_blank"
            href="http://eclipsesource.com/blogs/2010/06/21/emf-riena-and-rap-integration-top-eclipse-helios-feature-3/
"
          >EMF, Riena and RAP Integration, Top Eclipse Helios Feature #3</a>
        </div>
      </td>
      <td>Ian Bull</td>
      <td>June 21</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="EMF, Riena and RAP Integration, Top Eclipse Helios Feature #3a">
          <div class="item_contents">Well here we are, it&rsquo;s release week.
            Eclipse 3.6 &mdash; Helios &mdash; will be available on Wednesday
            June 23rd. It also means that I&rsquo;m into my Top 3 features for
            this years release. For the past 7 days I&rsquo;ve been presenting
            some of the New and Noteworthy features of this years release.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Mania is Back with Helios">
          <a name="Eclipse Mania is Back with Helios" class="norgie"
            onClick="t('Eclipse Mania is Back with Helios','Eclipse Mania is Back with Heliosa')"
          ></a> <a target="_blank"
            href="http://blog.suranaamit.com/2010/06/eclipse-mania-is-back-with-helios.html
"
          >Eclipse Mania is Back with Helios</a>
        </div>
      </td>
      <td>Amit Surana</td>
      <td>June 20</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse Mania is Back with Heliosa">
          <div class="item_contents">Last year around the same time I blogged
            about new upcoming release of Eclipse Galileo. An year has passed
            since then and Eclipse is back again with new version called Helios
            which will be released on June 23rd. Eclipse as Wayne Beaton says is
            more than just an IDE. Eclipse initially may have started off as an
            IDE, but today Eclipse has evolved into a platform.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse 3.6 (Helios)">
          <a name="Eclipse 3.6 (Helios)" class="norgie"
            onClick="t('Eclipse 3.6 (Helios)','Eclipse 3.6 (Helios)a')"
          ></a> <a target="_blank"
            href="http://cana.web.id/blog/eclipse-3-6-helios.CanA
"
          >Eclipse 3.6 (Helios)</a>
        </div>
      </td>
      <td>Rencana Tarigan</td>
      <td>June 19</td>
      <td>Indonesian</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse 3.6 (Helios)a">
          <div class="item_contents">It's already been a year since the Eclipse
            Galileo was launched. The new version of Eclipse is Eclipse 3.6 with
            the name "Helios". It will be released on June 23, 2010.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="MarketPlace Client, Top Eclipse Helios Feature #4">
          <a name="MarketPlace Client, Top Eclipse Helios Feature #4"
            class="norgie"
            onClick="t('MarketPlace Client, Top Eclipse Helios Feature #4','MarketPlace Client, Top Eclipse Helios Feature #4a')"
          ></a> <a target="_blank"
            href="http://eclipsesource.com/blogs/2010/06/18/mpc_eclipse_helios_feature_4/
"
          >MarketPlace Client, Top Eclipse Helios Feature #4</a>
        </div>
      </td>
      <td>Ian Bull</td>
      <td>June 18</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="MarketPlace Client, Top Eclipse Helios Feature #4a">
          <div class="item_contents">As most of you know, Eclipse Helios will be
            released next week. For regular readers of my blog (and
            PlanetEclipse.org), you know that I&rsquo;ve been counting down some
            of the new features available in this release. During this series I
            have received comments (both in the comment fields, and on places
            like twitter) that essentially read: I really like Eclipse except it
            doesn&rsquo;t have an editor for XYZ. Or, when I get the following
            package, it has feature ABC which I don&rsquo;t want. Obviously we
            can&rsquo;t please all the people all of the time.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Awesomeness in Helios">
          <a name="Awesomeness in Helios" class="norgie"
            onClick="t('Awesomeness in Helios','Awesomeness in Heliosa')"
          ></a> <a target="_blank"
            href="http://delaltctrl.blogspot.com/2010/06/awesomeness-in-helios.html
"
          >Awesomeness in Helios</a>
        </div>
      </td>
      <td>Del Myers</td>
      <td>June 18</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Awesomeness in Heliosa">
          <div class="item_contents">There was a recent post by Wayne about how
            Eclipse is an IDE Platform. For all practical purposes, that is the
            way that I use it. But what is really awesome about Eclipse as an
            IDE platform is that it is an IDE platform that just keeps
            improving.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="p2 API and the b3 Aggregator, Top Eclipse Helios Feature #5">
          <a name="p2 API and the b3 Aggregator, Top Eclipse Helios Feature #5"
            class="norgie"
            onClick="t('p2 API and the b3 Aggregator, Top Eclipse Helios Feature #5','p2 API and the b3 Aggregator, Top Eclipse Helios Feature #5a')"
          ></a> <a target="_blank"
            href="http://eclipsesource.com/blogs/2010/06/17/p2-api-and-the-b3-aggregator-top-eclipse-helios-feature-5/
"
          >p2 API and the b3 Aggregator, Top Eclipse Helios Feature #5</a>
        </div>
      </td>
      <td>Ian Bull</td>
      <td>June 17</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="p2 API and the b3 Aggregator, Top Eclipse Helios Feature #5a">
          <div class="item_contents">The official Helios release is less than 1
            week away, and we are now into the Top 5 Features that I&rsquo;m
            most excited about. Over the past week I&rsquo;ve been highlighting
            some of upcoming features of the Eclipse Helios release. These
            features include: improvements to the Java Development Tools,
            Plug-in Development Environment, API Tools and the Eclipse Platform.
            Number 5 on my Top 10 List is: p2 API and the b3 Aggregator.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Customizing Error Messages in Xtext 1.0">
          <a name="Customizing Error Messages in Xtext 1.0" class="norgie"
            onClick="t('Customizing Error Messages in Xtext 1.0','Customizing Error Messages in Xtext 1.0a')"
          ></a> <a target="_blank"
            href="http://zarnekow.blogspot.com/2010/06/customizing-error-messages-in-xtext-10.html
"
          >Customizing Error Messages in Xtext 1.0</a>
        </div>
      </td>
      <td>Sebastian Zarenkow</td>
      <td>June 17</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Customizing Error Messages in Xtext 1.0a">
          <div class="item_contents">As the Eclipse Helios Release is around the
            corner I'll use the chance to describe some nice odds and ends in
            Xtext 1.0. One of which is a newly introduced API that allows to
            customize the default messages for parse errors and linking
            diagnostics.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Points of Conditional Debugging in Eclipse Helios 3.6">
          <a name="Points of Conditional Debugging in Eclipse Helios 3.6"
            class="norgie"
            onClick="t('Points of Conditional Debugging in Eclipse Helios 3.6','Points of Conditional Debugging in Eclipse Helios 3.6a')"
          ></a> <a target="_blank"
            href="http://sysdent.net23.net/2010/06/17/puntos-de-depuracion-condicionales-en-eclipse-helios-36/
"
          >Points of Conditional Debugging in Eclipse Helios 3.6</a>
        </div>
      </td>
      <td>Miguel Antonio Casallas Tarazona</td>
      <td>June 17</td>
      <td>Spanish</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Points of Conditional Debugging in Eclipse Helios 3.6a">
          <div class="item_contents">Clearly, under perfect conditions a
            software application would never have unexpected behavior, and would
            always behave according to guidelines, would never fail and would
            never have any bugs.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Target Platform Improvements, Top Eclipse Helios Feature #6">
          <a name="Target Platform Improvements, Top Eclipse Helios Feature #6"
            class="norgie"
            onClick="t('Target Platform Improvements, Top Eclipse Helios Feature #6','Target Platform Improvements, Top Eclipse Helios Feature #6a')"
          ></a> <a target="_blank"
            href="http://eclipsesource.com/blogs/2010/06/16/target-platform-improvements-top-eclipse-helios-feature-6/
"
          >Target Platform Improvements, Top Eclipse Helios Feature #6</a>
        </div>
      </td>
      <td>Ian Bull</td>
      <td>June 16</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Target Platform Improvements, Top Eclipse Helios Feature #6a">
          <div class="item_contents">There are three large groups of artifacts
            that play a key role while writing software. There are the tools you
            use, the code you write and the libraries you depend on. There is a
            large body of research studying the cognitive support provided by
            software development tools. There is also a number of tool centric
            development models. Facilities like Yoxos and the Eclipse Market
            Place help you manage these tool chains.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="New and noteworthy in Helios (Eclipse 3.6)">
          <a name="New and noteworthy in Helios (Eclipse 3.6)" class="norgie"
            onClick="t('New and noteworthy in Helios (Eclipse 3.6)','New and noteworthy in Helios (Eclipse 3.6)a')"
          ></a> <a target="_blank"
            href="http://devdesignandstuff.blogspot.com/2010/06/new-and-noteworthy-in-helios-eclipse-36.html
"
          >New and noteworthy in Helios (Eclipse 3.6)</a>
        </div>
      </td>
      <td>Supriya Thengdi</td>
      <td>June 15</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="New and noteworthy in Helios (Eclipse 3.6)a">
          <div class="item_contents">I was just going through the latest build
            of Helios (eclipse 3.6) and thought a sharing of some new features
            is in order. For those who haven't heard what Helios is about, I
            suggest you go through the eclipse helios homepage.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Java IDE Improvements, Top Eclipse Helios Feature #7">
          <a name="Java IDE Improvements, Top Eclipse Helios Feature #7"
            class="norgie"
            onClick="t('Java IDE Improvements, Top Eclipse Helios Feature #7','Java IDE Improvements, Top Eclipse Helios Feature #7a')"
          ></a> <a target="_blank"
            href="http://eclipsesource.com/blogs/2010/06/15/java-ide-improvements-top-eclipse-helios-feature-7/
"
          >Java IDE Improvements, Top Eclipse Helios Feature #7</a>
        </div>
      </td>
      <td>Ian Bull</td>
      <td>June 15</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Java IDE Improvements, Top Eclipse Helios Feature #7a">
          <div class="item_contents">As Eclipse committers, we spend lots of
            time emphasizing that Eclipse is not just an Integrated Development
            Environment. Eclipse is a framework, a tooling platform, a
            collection of run-time technologies, an eco-system, etc&hellip;
            However, at the end of the day, an IDE is the primary use of Eclipse
            for many people.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="A Tour of Eclipse Helios">
          <a name="A Tour of Eclipse Helios" class="norgie"
            onClick="t('A Tour of Eclipse Helios','A Tour of Eclipse Heliosa')"
          ></a> <a target="_blank"
            href="https://www.ibm.com/developerworks/opensource/library/os-eclipse-helios/
"
          >A Tour of Eclipse Helios</a>
        </div>
      </td>
      <td>Chris Aniszczyk</td>
      <td>June 15</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="A Tour of Eclipse Heliosa">
          <div class="item_contents">The Eclipse Helios simultaneous release of
            39 Eclipse projects and 33 million lines of code showcases the
            diversity and innovation going on inside the Eclipse ecosystem. Get
            an overview of several projects, along with resources to find out
            more information.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse 3.6 (Helios) &ndash; A Quick Look">
          <a name="Eclipse 3.6 (Helios) &ndash; A Quick Look" class="norgie"
            onClick="t('Eclipse 3.6 (Helios) &ndash; A Quick Look','Eclipse 3.6 (Helios) &ndash; A Quick Looka')"
          ></a> <a target="_blank"
            href="http://aniruddhchitre.wordpress.com/2010/06/15/eclipse-3-6-helios-a-quick-look/
"
          >Eclipse 3.6 (Helios) &ndash; A Quick Look</a>
        </div>
      </td>
      <td>Aniruddh Chitre</td>
      <td>June 15</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse 3.6 (Helios) &ndash; A Quick Looka">
          <div class="item_contents">The Eclipse 3.6 (Helios) release is nearing
            and as always its pretty exciting. The 3.x releases have all added a
            lot of features which make Java and J2EE development much more
            easier, exciting and fun. So I decided to try it out and write about
            some of the new features it has. I primarily use Eclipse for J2EE so
            my review is more focussed on JDT and Java related features.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Helios Preview for Java Developers">
          <a name="Eclipse Helios Preview for Java Developers" class="norgie"
            onClick="t('Eclipse Helios Preview for Java Developers','Eclipse Helios Preview for Java Developersa')"
          ></a> <a target="_blank"
            href="http://stronglytypedblog.blogspot.com/2010/06/eclipse-helios-preview-for-java.html
"
          >Eclipse Helios Preview for Java Developers</a>
        </div>
      </td>
      <td>Nick Wiedenbrueck</td>
      <td>June 14</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse Helios Preview for Java Developersa">
          <div class="item_contents">The final release of the new Eclipse 3.6 -
            Helios is coming close on June 23. Here is a short overview of some
            of the new features for Java developers.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Eclipse Helios (3.6 RC4)">
          <a name="Eclipse Helios (3.6 RC4)" class="norgie"
            onClick="t('Eclipse Helios (3.6 RC4)','Eclipse Helios (3.6 RC4)a')"
          ></a> <a target="_blank"
            href="http://www.matthicks.com/2010/06/eclipse-helios-36-rc4.html
"
          >Eclipse Helios (3.6 RC4)</a>
        </div>
      </td>
      <td>Matt Hicks</td>
      <td>June 14</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Eclipse Helios (3.6 RC4)a">
          <div class="item_contents">
            I've been a user of Eclipse for many years now and when I saw there
            was a free t-shirt to be had by reviewing the newest release there
            was only one choice to make. :) <br> <br>The download is exactly the
            same as all previous releases but the first thing that struck me was
            the startup time.
          </div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Improvements to API Tools, Top Eclipse Helios Feature #8">
          <a name="Improvements to API Tools, Top Eclipse Helios Feature #8"
            class="norgie"
            onClick="t('Improvements to API Tools, Top Eclipse Helios Feature #8','Improvements to API Tools, Top Eclipse Helios Feature #8a')"
          ></a> <a target="_blank"
            href="http://eclipsesource.com/blogs/2010/06/14/api_tools_top_eclipse_helios_feature_8/
"
          >Improvements to API Tools, Top Eclipse Helios Feature #8</a>
        </div>
      </td>
      <td>Ian Bull</td>
      <td>June 14</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Improvements to API Tools, Top Eclipse Helios Feature #8a">
          <div class="item_contents">I&rsquo;ve been thinking a lot lately about
            what defines an Eclipse project? Not in the literal sense (a project
            hosted at eclipse.org that follows the EDP), but rather, what
            technical qualities do all Eclipse projects share.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="New Features in Eclipse 3.6 (Helios)">
          <a name="New Features in Eclipse 3.6 (Helios)" class="norgie"
            onClick="t('New Features in Eclipse 3.6 (Helios)','New Features in Eclipse 3.6 (Helios)a')"
          ></a> <a target="_blank"
            href="http://rajakannappan.blogspot.com/2010/05/new-features-in-eclipse-36-helios.html
"
          >New Features in Eclipse 3.6 (Helios)</a>
        </div>
      </td>
      <td>Raja Kannappan</td>
      <td>June 13</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="New Features in Eclipse 3.6 (Helios)a">
          <div class="item_contents">There are many interesting features coming
            up in Eclipse 3.6 code named as Helios . Below, I will discuss about
            some of these features which I came across.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Review Eclipse Helios RC4">
          <a name="Review Eclipse Helios RC4" class="norgie"
            onClick="t('Review Eclipse Helios RC4','Review Eclipse Helios RC4a')"
          ></a> <a target="_blank"
            href="http://tux2323.blogspot.com/2010/06/review-eclipse-helios-rc4.html
"
          >Review Eclipse Helios RC4</a>
        </div>
      </td>
      <td>Christian Baranowski</td>
      <td>June 13</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Review Eclipse Helios RC4a">
          <div class="item_contents">Eclipse Helios is the annual release of
            Eclipse projects in 2010; this year 39 projects are part of the
            release. And here is my first contribution to the Helios Blogathon,
            more details on the Blogathon can be found here. Helios is the code
            name for this year collecting Eclipse release. The idea of such a
            release is to be simultaneously release a large quantity of eclipse
            sub projects at the same time. This gives the user an Eclipse
            platform with well-coordinated projects, which works together.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Feature Based Configurations, Top Eclipse Helios Feature #9">
          <a name="Feature Based Configurations, Top Eclipse Helios Feature #9"
            class="norgie"
            onClick="t('Feature Based Configurations, Top Eclipse Helios Feature #9','Feature Based Configurations, Top Eclipse Helios Feature #9a')"
          ></a> <a target="_blank"
            href="http://eclipsesource.com/blogs/2010/06/11/feature-based-configurations-top-eclipse-helios-feature-9/
"
          >Feature Based Configurations, Top Eclipse Helios Feature #9</a>
        </div>
      </td>
      <td>Ian Bull</td>
      <td>June 11</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Feature Based Configurations, Top Eclipse Helios Feature #9a">
          <div class="item_contents">Yesterday I asked you to think about
            high-quality software that has been consistently delivered on-time
            for eight straight years. To make this quiz more challenging, this
            software should be installed on millions of users&rsquo; desktops.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Helios By the Numbers">
          <a name="Helios By the Numbers" class="norgie"
            onClick="t('Helios By the Numbers','Helios By the Numbersa')"
          ></a> <a target="_blank"
            href="http://dev.eclipse.org/blogs/wayne/2010/06/11/helios-by-the-numbers/
"
          >Helios By the Numbers</a>
        </div>
      </td>
      <td>Wayne Beaton</td>
      <td>June 11</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Helios By the Numbersa">
          <div class="item_contents">
            Here are some interesting numbers about Helios. At least I think
            they&rsquo;re interesting.<br> <br>39 Projects are listed on the
            Helios Participating Projects wiki page (many entries in this table
            include one or more subprojects);
          </div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Resource Improvements, Top Eclipse Helios Feature #10">
          <a name="Resource Improvements, Top Eclipse Helios Feature #10"
            class="norgie"
            onClick="t('Resource Improvements, Top Eclipse Helios Feature #10','Resource Improvements, Top Eclipse Helios Feature #10a')"
          ></a> <a target="_blank"
            href="http://eclipsesource.com/blogs/2010/06/10/resource-improvements-helios-feature-10/
"
          >Resource Improvements, Top Eclipse Helios Feature #10</a>
        </div>
      </td>
      <td>Ian Bull</td>
      <td>June 10</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Resource Improvements, Top Eclipse Helios Feature #10a">
          <div class="item_contents">Pop quiz: Can you name any &lsquo;high
            quality&lsquo; software that has been consistently delivered
            on-time, for 8 years in a row?</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div id="Helios Bloghaton: Fun with Eclipse Remote Services - 1">
          <a name="Helios Bloghaton: Fun with Eclipse Remote Services - 1"
            class="norgie"
            onClick="t('Helios Bloghaton: Fun with Eclipse Remote Services - 1','Helios Bloghaton: Fun with Eclipse Remote Services - 1a')"
          ></a> <a target="_blank"
            href="http://industrial-tsi-wim.blogspot.com/2010/06/helios-bloghaton-fun-with-remote.html
"
          >Helios Bloghaton: Fun with Eclipse Remote Services - 1</a>
        </div>
      </td>
      <td>Wim Jongman</td>
      <td>June 9</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div id="Helios Bloghaton: Fun with Eclipse Remote Services - 1a">
          <div class="item_contents">In many hotels there is no 13th floor, let
            alone a room with number 13. Everyone knows that there are 13 steps
            leading up to the gallows and if you suffer from
            friggatriskaidekaphobia then you don't like Friday the 13th.</div>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div
          id="[Helios] Target Platform - how to deal with optional RAP dependencies"
        >
          <a
            name="[Helios] Target Platform - how to deal with optional RAP dependencies"
            class="norgie"
            onClick="t('[Helios] Target Platform - how to deal with optional RAP dependencies','[Helios] Target Platform - how to deal with optional RAP dependenciesa')"
          ></a> <a target="_blank"
            href="http://ekkescorner.wordpress.com/2010/06/03/helios-target-platform-how-to-deal-with-optional-rap-dependencies/"
          >[Helios] Target Platform - how to deal with optional RAP dependencies</a>
        </div>
      </td>
      <td>Ekke Gentz</td>
      <td>June 3</td>
      <td>English</td>
    </tr>
    <tr class="bottomBorder">
      <td colspan="4">
        <div
          id="[Helios] Target Platform - how to deal with optional RAP dependenciesa"
        >
          <div class="item_contents">If you read about my problems about RAP in
            the IDE from last months, please cool down: this time I&rsquo;m
            talking about RAP in the Target Platform as a first Helios review.</div>
        </div>
      </td>
    </tr>
  </table>
</div>
