<?php
/**
 * Copyright (c) 2015, 2018 Eclipse Foundation and others.
 *
 * 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)
 *    Christopher Guindon (Eclipse Foundation)
 *
 * SPDX-License-Identifier: EPL-2.0
 */
?>

<div class="margin-bottom-20" style="background-color:#0B328B; border-top:3px solid #FF6700;">
  <img src="images/europaBannerHere.jpg" class="img-responsive">
</div>
<p>
  Members of the Eclipse community were invited to write a review of the
  <a href="http://www.eclipse.org/europa/projects.php">Eclipse projects</a>
  being released as part of <a href="http://www.eclipse.org/europa/">Europa</a>
  and to publish the review on a blog, newsgroup, or portal. Following
  is a list of links to the reviews that were submitted.
</p>
<table class="table">
  <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 3.3: New and Improved">
        <a name="Eclipse 3.3: New and Improved" class="norgie"
          onClick="t('Eclipse 3.3: New and Improved','Eclipse 3.3: New and Improveda')"></a>
        <a target="_blank"
          href="http://blogs.infosupport.com/peterhe/archive/2007/07/27/Eclipse-Europa_3A00_-New-and-Improved.aspx
          ">Eclipse 3.3: New and Improved</a>
      </div>
    </td>
    <td>Peter Hendriks</td>
    <td>7/31/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse 3.3: New and Improveda">
        <div class="item_contents">I've been using Eclipse 3.3 for a
          while now, and I've been getting that common feeling again:
          missing all kinds of little features when switching back to an
          "old" Eclipse based tool. There is all kinds of stuff I really
          like.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse 3.3">
        <a name="Eclipse 3.3" class="norgie"
          onClick="t('Eclipse 3.3','Eclipse 3.3a')"></a> <a
          target="_blank"
          href="http://julianocarniel.blogspot.com/2007/07/eclipse-33.html
          ">Eclipse 3.3</a>
      </div>
    </td>
    <td>Juliano Carniel</td>
    <td>7/31/2007</td>
    <td>Portuguese</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse 3.3a">
        <div class="item_contents">Como todos sabem o eclipse 3.3 (aka
          Europa) lan&ccedil;ou a algumas semanas atr&aacute;s (eu
          sempre atrasado) e est&aacute; bem legalzinho. Com algumas
          firulinhas a mais e com uma carinha mais "clean" eu achei =)
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse Europa Review">
        <a name="Eclipse Europa Review" class="norgie"
          onClick="t('Eclipse Europa Review','Eclipse Europa Reviewa')"></a>
        <a target="_blank"
          href="http://rf2-dev.spaces.live.com/blog/cns!33114F671097246!136.entry
          ">Eclipse Europa Review</a>
      </div>
    </td>
    <td>Andy Riordan</td>
    <td>7/31/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse Europa Reviewa">
        <div class="item_contents">I have used Eclipse for over 1 year,
          mainly for developing C++ applications on Linux. In Callisto,
          I had learned to do without auto-completion because it took
          about 40 seconds or more on average to get the menu to come
          up.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="Eclipse Europa - Uma melhor &ldquo;primeira impress&atilde;o&rdquo;">
        <a
          name="Eclipse Europa - Uma melhor &ldquo;primeira impress&atilde;o&rdquo;"
          class="norgie"
          onClick="t('Eclipse Europa - Uma melhor &ldquo;primeira impress&atilde;o&rdquo;','Eclipse Europa - Uma melhor &ldquo;primeira impress&atilde;o&rdquo;a')"></a>
        <a target="_blank"
          href="http://www.urubatan.com.br/2007/07/31/eclipse-europa-uma-melhor-primeira-impressao/
          ">Eclipse Europa - Uma melhor &ldquo;primeira impress&atilde;o&rdquo;</a>
      </div>
    </td>
    <td>Rodrigo Jardim</td>
    <td>7/31/2007</td>
    <td>Portuguese</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="Eclipse Europa - Uma melhor &ldquo;primeira impress&atilde;o&rdquo;a">
        <div class="item_contents">Bom, eu ja havia comentado sobre o
          Eclipse 3.3 aqui e aqui, mas devido a esta noticia, e a mania
          &ldquo;nerd&rdquo; de utilizar este tipo de camisetas, eu
          resolvi escrever este review &hellip;
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="Nouveaut&eacute;s d'Eclipse 3.3 - Europa">
        <a name="Nouveaut&eacute;s d'Eclipse 3.3 - Europa"
          class="norgie"
          onClick="t('Nouveaut&eacute;s d'Eclipse 3.3 - Europa','Nouveaut&eacute;s d'Eclipse 3.3 - Europaa')"></a>
        <a target="_blank"
          href="http://www.eclipsetotale.com/articles/Eclipse_3.3_Europa.html
          ">Nouveaut&eacute;s d'Eclipse 3.3 - Europa</a>
      </div>
    </td>
    <td>Bruno Leroux</td>
    <td>7/31/2007</td>
    <td>French</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="Nouveaut&eacute;s d'Eclipse 3.3 - Europaa">
        <div class="item_contents">Disponible depuis le 29 juin 2007,
          Eclipse 3.3 s'accompagne de la sortie simultan&eacute;e de
          plusieurs autres projets de la fondation. Cette approche a
          &eacute;t&eacute; inaugur&eacute;e pour Eclipse 3.2 avec une
          livraison simultan&eacute;e portant le nom de code 'Callisto',
          cette ann&eacute;e le nom de code est 'Europa'.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="Eclipse Europa: Java Development Strives to Perfection">
        <a name="Eclipse Europa: Java Development Strives to Perfection"
          class="norgie"
          onClick="t('Eclipse Europa: Java Development Strives to Perfection','Eclipse Europa: Java Development Strives to Perfectiona')"></a>
        <a target="_blank"
          href="http://zvikico.typepad.com/problog/2007/07/eclipse-europa-.html
          ">Eclipse Europa: Java Development Strives to Perfection</a>
      </div>
    </td>
    <td>Zviki Cohen</td>
    <td>7/31/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="Eclipse Europa: Java Development Strives to Perfectiona">
        <div class="item_contents">Eclipse, the most popular development
          platform for Java developers, is about to release version 3.3,
          dubbed Europa. I've been an avid Eclipse user for more than 4
          years and I like seeing the platform evolve. Eclipse today is
          much more than it was 4 years ago. The RCP is a real
          alternative for developing rich cross-platform desktop
          applications.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="Eclipse Europa, kr&oacute;tki przegl&#261;d">
        <a name="Eclipse Europa, kr&oacute;tki przegl&#261;d"
          class="norgie"
          onClick="t('Eclipse Europa, kr&oacute;tki przegl&#261;d','Eclipse Europa, kr&oacute;tki przegl&#261;da')"></a>
        <a target="_blank" href="http://blog.dywicki.pl/?p=150
          ">Eclipse Europa, kr&oacute;tki przegl&#261;d</a>
      </div>
    </td>
    <td>Lukasz Dywicki</td>
    <td>7/30/2007</td>
    <td>Polish</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="Eclipse Europa, kr&oacute;tki przegl&#261;da">
        <div class="item_contents">
          Odyseja kosmiczna 2007 <br>
          <br> Zastanawia&#322;em si&#281; kiedy&#347; sk&#261;d
          tw&oacute;rcy Eclipse bior&#261; nazwy dla kolejnych
          wyda&#324;.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="Eclipse Europa - Features Worth Checking Out">
        <a name="Eclipse Europa - Features Worth Checking Out"
          class="norgie"
          onClick="t('Eclipse Europa - Features Worth Checking Out','Eclipse Europa - Features Worth Checking Outa')"></a>
        <a target="_blank"
          href="http://www.venukb.com/blog/2007/07/08/eclipse-europa-features-worth-checking-out/
          ">Eclipse Europa - Features Worth Checking Out</a>
      </div>
    </td>
    <td>Venu K.</td>
    <td>7/30/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="Eclipse Europa - Features Worth Checking Outa">
        <div class="item_contents">Eclipse 3.3 code named Europa was
          released few days back and this annual released featured a
          simultaneous release of 21 projects. I took Europa for a test
          drive and it feels much faster than Callisto (Eclipse 3.2)
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse Europa - Full 'Featured' Moon">
        <a name="Eclipse Europa - Full 'Featured' Moon" class="norgie"
          onClick="t('Eclipse Europa - Full 'Featured' Moon','Eclipse Europa - Full 'Featured' Moona')"></a>
        <a target="_blank"
          href="http://www.javalobby.org/java/forums/t99330.html
          ">Eclipse Europa - Full 'Featured' Moon</a>
      </div>
    </td>
    <td>Carlos Goncalves</td>
    <td>7/30/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse Europa - Full 'Featured' Moona">
        <div class="item_contents">The new Eclipse 3.3, released in 29th
          June under the codename Europa, is the 2007 coordinated
          release of 21 Eclipse projects.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="Eclipse Test and Performance Tools Platform Review">
        <a name="Eclipse Test and Performance Tools Platform Review"
          class="norgie"
          onClick="t('Eclipse Test and Performance Tools Platform Review','Eclipse Test and Performance Tools Platform Reviewa')"></a>
        <a target="_blank"
          href="http://ilikeblues.awardspace.com/?p=3
          ">Eclipse Test and Performance Tools Platform Review</a>
      </div>
    </td>
    <td>Javier Fernandez</td>
    <td>7/30/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="Eclipse Test and Performance Tools Platform Reviewa">
        <div class="item_contents">As part of the R&D department in my
          company, I spend some of my time in quest for tools to make
          our developer&rsquo;s life easier.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Review Eclipse Europa">
        <a name="Review Eclipse Europa" class="norgie"
          onClick="t('Review Eclipse Europa','Review Eclipse Europaa')"></a>
        <a target="_blank" href="http://rajesh15blog.blog.com/
          ">Review Eclipse Europa</a>
      </div>
    </td>
    <td>Rajesh Kumar</td>
    <td>7/26/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Review Eclipse Europaa">
        <div class="item_contents">
          I use Eclipse mostly at work, where we build web applications
          and web sites. <br>
          <br> I'm currently doing a lot of work on a transactional Java
          application.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="Leaving Callisto and All Aboard for Europa">
        <a name="Leaving Callisto and All Aboard for Europa"
          class="norgie"
          onClick="t('Leaving Callisto and All Aboard for Europa','Leaving Callisto and All Aboard for Europaa')"></a>
        <a target="_blank" href="http://objectpeople.blogspot.com/
          ">Leaving Callisto and All Aboard for Europa</a>
      </div>
    </td>
    <td>Ron Charron</td>
    <td>7/25/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="Leaving Callisto and All Aboard for Europaa">
        <div class="item_contents">
          Where to go for MDD and DSL? <br>
          <br> On one of my recent projects, I was given an opportunity
          to look into tool options for Capability Requirements
          Development, Model Driven Development, and Domain Specific
          Languages.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="WTP Europa Release">
        <a name="WTP Europa Release" class="norgie"
          onClick="t('WTP Europa Release','WTP Europa Releasea')"></a> <a
          target="_blank"
          href="http://runtime32.blogspot.com/2007/07/wtp-europa-release.html
          ">WTP Europa Release</a>
      </div>
    </td>
    <td>Weijian Fang</td>
    <td>7/23/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="WTP Europa Releasea">
        <div class="item_contents">Eclipse Europa is the annual release
          of Eclipse projects of 2007. Here are some of my experience
          about it. Since I am using WTP mostly, my experience is mainly
          concerned with WTP.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="Eclipse Europa: It's all in the details">
        <a name="Eclipse Europa: It's all in the details" class="norgie"
          onClick="t('Eclipse Europa: It's all in the details','Eclipse Europa: It's all in the detailsa')"></a>
        <a target="_blank"
          href="http://litrik.blogspot.com/2007/07/eclipse-europa-its-all-in-details.html
          ">Eclipse Europa: It's all in the details</a>
      </div>
    </td>
    <td>Litrik De Roy</td>
    <td>7/21/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="Eclipse Europa: It's all in the detailsa">
        <div class="item_contents">
          Eclipse has always been a platform where a lot of work went
          into the details (usability and visual design). The new 3.3
          release is no different. <br>
          <br> The last couple of weeks quite a few reviews of the
          Eclipse Europa release have popped up.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Upgrading to Eclipse Europa">
        <a name="Upgrading to Eclipse Europa" class="norgie"
          onClick="t('Upgrading to Eclipse Europa','Upgrading to Eclipse Europaa')"></a>
        <a target="_blank"
          href="http://willcode4beer.blogspot.com/2007/07/upgrading-to-eclipse-europa.html
          ">Upgrading to Eclipse Europa</a>
      </div>
    </td>
    <td>Paul Davis</td>
    <td>7/20/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Upgrading to Eclipse Europaa">
        <div class="item_contents">
          I've recently taken th plunge and upgraded my Eclipse
          environment from Callisto (3.2) to Europa (3.3). <br>
          <br> One of the first things I noticed is a significant
          improvement in performance. My machine isn't a lightweight by
          any stretch but, Eclipse 3.2 definitely used some resources.
          Now that I am using the newer version, things flow much
          faster.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Europa on old hardware">
        <a name="Europa on old hardware" class="norgie"
          onClick="t('Europa on old hardware','Europa on old hardwarea')"></a>
        <a target="_blank" href="http://blog.doylecentral.com/?p=13
          ">Europa on old hardware</a>
      </div>
    </td>
    <td>Brian Doyle</td>
    <td>7/19/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Europa on old hardwarea">
        <div class="item_contents">
          Eclipse Europa is out. I have it on my work laptop, the home
          dev box, the work computer, and now on the Missus roving
          celebrity web checking machine that is the laptop around the
          house. <br>
          <br> This is a IBM T23 ThinkPad that I picked up on ebay for
          200 bucks.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="CDT 4.0 Review (using BDS 2006 for comparison)">
        <a name="CDT 4.0 Review (using BDS 2006 for comparison)"
          class="norgie"
          onClick="t('CDT 4.0 Review (using BDS 2006 for comparison)','CDT 4.0 Review (using BDS 2006 for comparison)a')"></a>
        <a target="_blank"
          href="http://www.eclipse.org/newsportal/article.php?id=13882&group=eclipse.tools.cdt#13882
          ">CDT 4.0 Review (using BDS 2006 for comparison)</a>
      </div>
    </td>
    <td>Vince Leonty</td>
    <td>7/14/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="CDT 4.0 Review (using BDS 2006 for comparison)a">
        <div class="item_contents">One of the powerful aspects of
          Eclipse is that when a developer gains a familiarity with
          working in one perspective, it is fairly easy to adjust to
          another perspective.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="Review of the Eclipse Dynamic Language Toolkit, aka T-Shirt Please">
        <a
          name="Review of the Eclipse Dynamic Language Toolkit, aka T-Shirt Please"
          class="norgie"
          onClick="t('Review of the Eclipse Dynamic Language Toolkit, aka T-Shirt Please','Review of the Eclipse Dynamic Language Toolkit, aka T-Shirt Pleasea')"></a>
        <a target="_blank"
          href="http://blog.forresthumphrey.net/2007/review-of-the-eclipse-dynamic-language-toolkit-aka-t-shirt-please/
          ">Review of the Eclipse Dynamic Language Toolkit, aka T-Shirt Please</a>
      </div>
    </td>
    <td>Forrest Humphrey</td>
    <td>7/12/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="Review of the Eclipse Dynamic Language Toolkit, aka T-Shirt Pleasea">
        <div class="item_contents">
          I&rsquo;ve recently been playing around with <strike>a beta
          release of</strike> Eclipse Europa, specifically the Dynamic
          Language Toolkit (DLTK). The DLTK is a really nice jumping-off
          point for those already familiar with the Eclipse environment
          and wanting to learn a dynamic language.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse 3.3 first thoughts">
        <a name="Eclipse 3.3 first thoughts" class="norgie"
          onClick="t('Eclipse 3.3 first thoughts','Eclipse 3.3 first thoughtsa')"></a>
        <a target="_blank"
          href="http://suppressingfire.livejournal.com/24798.html
          ">Eclipse 3.3 first thoughts</a>
      </div>
    </td>
    <td>Michael R. Head</td>
    <td>7/9/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse 3.3 first thoughtsa">
        <div class="item_contents">
          The new Eclipse release is out. I had missed it, but maybe
          that says more about what I've been doing lately than anything
          else (I haven't touched any Java or C code in a few months).<br>
          I've been using Eclipse for quite a long time. I've written a
          few plugins here and there and watched the platform grow and
          evolve.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="Eclipse 3.3 for RCP-Development &ndash; Quo vadis?">
        <a name="Eclipse 3.3 for RCP-Development &ndash; Quo vadis?"
          class="norgie"
          onClick="t('Eclipse 3.3 for RCP-Development &ndash; Quo vadis?','Eclipse 3.3 for RCP-Development &ndash; Quo vadis?a')"></a>
        <a target="_blank"
          href="http://www.richclient2.eu/2007_07_09/eclipse-33-for-rcp-development-%e2%80%93-quo-vadis/
          ">Eclipse 3.3 for RCP-Development &ndash; Quo vadis?</a>
      </div>
    </td>
    <td>Tom Seidel</td>
    <td>7/9/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="Eclipse 3.3 for RCP-Development &ndash; Quo vadis?a">
        <div class="item_contents">Because I have already read many
          reviews that dealt with Eclipse 3.3 as a tool or IDE, I want
          to take up the the aspects of RCP Development with Eclipse
          3.3. It is to notice that I am using Eclipse 3.3 since the M5
          Release because of the Eclipse UI Form enhancements.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Things I must do with Eclipse Europa">
        <a name="Things I must do with Eclipse Europa" class="norgie"
          onClick="t('Things I must do with Eclipse Europa','Things I must do with Eclipse Europaa')"></a>
        <a target="_blank"
          href="http://www.jpasley.com/2007/07/things-i-must-do-with-eclipse-europa.html
          ">Things I must do with Eclipse Europa</a>
      </div>
    </td>
    <td>James Pasley</td>
    <td>7/5/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Things I must do with Eclipse Europaa">
        <div class="item_contents">There are so many features available
          within the eclipse platform that it&rsquo;s hard to get time
          to try them all out. However, the release of Europa this week
          provides a good opportunity to make some new release
          resolutions.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="Eclipse Europa and the improved Web Tools Platform">
        <a name="Eclipse Europa and the improved Web Tools Platform"
          class="norgie"
          onClick="t('Eclipse Europa and the improved Web Tools Platform','Eclipse Europa and the improved Web Tools Platforma')"></a>
        <a target="_blank"
          href="http://trogon.csd.abdn.ac.uk:9080/BrucesBlog/blog/default/software/?permalink=AEEDB3B97555460DA8FC80EFEA4B5C73.textile&smm=y
          ">Eclipse Europa and the improved Web Tools Platform</a>
      </div>
    </td>
    <td>Bruce Scharlau</td>
    <td>7/5/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="Eclipse Europa and the improved Web Tools Platforma">
        <div class="item_contents">Eclipse has done another 'big bang'
          with another of Jupiter's moons. Last year many sub-projects
          of Eclipse timed their releases all to one date as 'Eclipse
          Callisto'. This year the same happened with 'Eclipse Europa'.
          Given that Eclipse continues to gain momentum this is quite
          impressive.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="JSF Support in Eclipse Europa and NetBeans 6.0m10">
        <a name="JSF Support in Eclipse Europa and NetBeans 6.0m10"
          class="norgie"
          onClick="t('JSF Support in Eclipse Europa and NetBeans 6.0m10','JSF Support in Eclipse Europa and NetBeans 6.0m10a')"></a>
        <a target="_blank"
          href="http://weblogs.java.net/blog/cayhorstmann/archive/2007/07/jsf_support_in.html
          ">JSF Support in Eclipse Europa and NetBeans 6.0m10</a>
      </div>
    </td>
    <td>Cay Horstmann</td>
    <td>7/5/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="JSF Support in Eclipse Europa and NetBeans 6.0m10a">
        <div class="item_contents">When Eclipse Europa was released on
          June 29 (together with the iPhone and the GPL 3 license), I
          wanted to know if it did anything about one of my many pet
          peeves: tool support for writing JSF apps.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Europa, My Top 10 List">
        <a name="Europa, My Top 10 List" class="norgie"
          onClick="t('Europa, My Top 10 List','Europa, My Top 10 Lista')"></a>
        <a target="_blank"
          href="http://irbull.blogspot.com/2007/07/europa-my-top-10-list.html
          ">Europa, My Top 10 List</a>
      </div>
    </td>
    <td>Ian Bull</td>
    <td>7/4/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Europa, My Top 10 Lista">
        <div class="item_contents">I have had the pleasure of using
          Europa for the past 8-10 months. Of course it was not called
          Europa the entire time (Eclipse 3.3 Milestones with several
          milestone plug-ins attached). I have now come to depend on
          several of these new features and here is a list of my Top 10
          Europa Features that I Cannot Live Without!!!
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="Eclipse Europa Review: For User and Developer">
        <a name="Eclipse Europa Review: For User and Developer"
          class="norgie"
          onClick="t('Eclipse Europa Review: For User and Developer','Eclipse Europa Review: For User and Developera')"></a>
        <a target="_blank"
          href="http://runnerwhocodes.blogspot.com/2007/07/eclipse-europa-review-for-user-and.html
          ">Eclipse Europa Review: For User and Developer</a>
      </div>
    </td>
    <td>Darin Swanson</td>
    <td>7/4/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="Eclipse Europa Review: For User and Developera">
        <div class="item_contents">or me it is rather hard to accurately
          review the Eclipse Europa release as it is kinda old news for
          me. As an Eclipse and Jazz developer, I have been happily
          absorbing and adapting to the Europa changes and progression
          for the last year...since the 3.2 release in June 2006. It
          gets really hard to remember what is new and what is not.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse Europa BIRT">
        <a name="Eclipse Europa BIRT" class="norgie"
          onClick="t('Eclipse Europa BIRT','Eclipse Europa BIRTa')"></a>
        <a target="_blank"
          href="http://dev.eclipse.org/blogs/hongchanglin/2007/07/03/eclipse-europa-birt/
          ">Eclipse Europa BIRT</a>
      </div>
    </td>
    <td>Hongchang (Ken) Lin</td>
    <td>7/3/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse Europa BIRTa">
        <div class="item_contents">BIRT 2.2.0 is one of 21 open source
          project releases included in Eclipse Europa. It delivers lots
          of new features and improvements. Following, I would like to
          give a review on some of them very briefly.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="Tour around Europa: Eclipse for Java EE">
        <a name="Tour around Europa: Eclipse for Java EE" class="norgie"
          onClick="t('Tour around Europa: Eclipse for Java EE','Tour around Europa: Eclipse for Java EEa')"></a>
        <a target="_blank"
          href="http://www.thescreencast.com/2007/07/tour-around-europe-eclipse-for-java-ee.html
          ">Tour around Europa: Eclipse for Java EE</a>
      </div>
    </td>
    <td>Vojimir Golem</td>
    <td>7/3/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="Tour around Europa: Eclipse for Java EEa">
        <div class="item_contents">
          The Eclipse IDE for Java EE Developers is a simultaneous
          release of Eclipse Projects for Java Enterprise Edition.<br />
          This post is first in the series of screencasts about the
          Eclipse Europa release. It shows how to use the Eclipse IDE
          for Java EE Developers to create Java persistent entities from
          database tables.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="Eclipse Tricks - Stavningskontroll med Eclipse 3.3">
        <a name="Eclipse Tricks - Stavningskontroll med Eclipse 3.3"
          class="norgie"
          onClick="t('Eclipse Tricks - Stavningskontroll med Eclipse 3.3','Eclipse Tricks - Stavningskontroll med Eclipse 3.3a')"></a>
        <a target="_blank" href="http://jsolutions.se/?p=172
          ">Eclipse Tricks - Stavningskontroll med Eclipse 3.3</a>
      </div>
    </td>
    <td>Markus Wahl</td>
    <td>7/3/2007</td>
    <td>Swedish</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="Eclipse Tricks - Stavningskontroll med Eclipse 3.3a">
        <div class="item_contents">Med Eclipse 3.3 kan du f&aring;
          stavningskontroll av str&auml;ngar och kommentarer i dina
          java-klasser. Sj&auml;lv tycker jag att det &auml;ven vore
          &ouml;nskv&auml;rt med stavningskontroll av variabelnamn,
          metodnamn och klassnamn etc. &Auml;n s&aring; l&auml;nge
          kontrolleras bara str&auml;ngar och kommentarer.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="Hooray For Mylyn: Task-focused Devlopment in Eclipse 3.3 (Europa)">
        <a
          name="Hooray For Mylyn: Task-focused Devlopment in Eclipse 3.3 (Europa)"
          class="norgie"
          onClick="t('Hooray For Mylyn: Task-focused Devlopment in Eclipse 3.3 (Europa)','Hooray For Mylyn: Task-focused Devlopment in Eclipse 3.3 (Europa)a')"></a>
        <a target="_blank"
          href="http://4remembrance.blogspot.com/2007/07/hooray-for-mylyn-task-focused_02.html
          ">Hooray For Mylyn: Task-focused Devlopment in Eclipse 3.3 (Europa)</a>
      </div>
    </td>
    <td>Xiang Li</td>
    <td>7/2/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="Hooray For Mylyn: Task-focused Devlopment in Eclipse 3.3 (Europa)a">
        <div class="item_contents">Last Friday, Eclipse 3.3 (code name
          Europa) was released. As an enthusiast for Eclipse Framework,
          i cannot wait take a first taste. From my point of view, the
          most attractive feature, besides other numerous improvements,
          is the integration of Mylyn, a task focus tool.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse Europa">
        <a name="Eclipse Europa" class="norgie"
          onClick="t('Eclipse Europa','Eclipse Europaa')"></a> <a
          target="_blank"
          href="http://www.vogella.de/articles/EclipseReview/article.html
          ">Eclipse Europa</a>
      </div>
    </td>
    <td>Lars Vogel</td>
    <td>7/3/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse Europaa">
        <div class="item_contents">
          Eclipse community has shipped a major release on schedule.<br>
          Europa features 21 Eclipse projects for software developers
          and is more than double the size of last year&rsquo;s
          record-setting release.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="Eclipse Europa: evolution or revolution?">
        <a name="Eclipse Europa: evolution or revolution?"
          class="norgie"
          onClick="t('Eclipse Europa: evolution or revolution?','Eclipse Europa: evolution or revolution?a')"></a>
        <a target="_blank" href="http://efford.org/blog/archives/25
          ">Eclipse Europa: evolution or revolution?</a>
      </div>
    </td>
    <td>Nick Efford</td>
    <td>6/30/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="Eclipse Europa: evolution or revolution?a">
        <div class="item_contents">
          Eclipse Europa became available to the world on 29 June, and
          I&rsquo;ve spent a few happy hours exploring what it can do.<br>
          My standard Eclipse set-up consists of the Eclipse SDK, DTP
          and the Derby plugin for database-related stuff, WTP for
          web-related stuff, Subversive for version control and PyDev
          for Python programming.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="Eclipse Europa: The next generation IDE">
        <a name="Eclipse Europa: The next generation IDE" class="norgie"
          onClick="t('Eclipse Europa: The next generation IDE','Eclipse Europa: The next generation IDEa')"></a>
        <a target="_blank"
          href="http://www.volume4.com/2007/06/30/eclipse-europa-review/
          ">Eclipse Europa: The next generation IDE</a>
      </div>
    </td>
    <td>Schalk Neethling</td>
    <td>6/30/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="Eclipse Europa: The next generation IDEa">
        <div class="item_contents">When I first heard the news that the
          next version of Eclipse (Europa) was released I immediately
          went over to the website to get the download. The great thing
          I noticed was the variety of versions that has been bundled
          and I could quickly get to the version I need which was Europa
          for JEE and web related development.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse Europa Arrived">
        <a name="Eclipse Europa Arrived" class="norgie"
          onClick="t('Eclipse Europa Arrived','Eclipse Europa Arriveda')"></a>
        <a target="_blank"
          href="http://blog.csdn.net/alexmajy/archive/2007/07/01/1673029.aspx
          ">Eclipse Europa Arrived</a>
      </div>
    </td>
    <td>Junyan Ma</td>
    <td>6/30/2007</td>
    <td>Chinese</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse Europa Arriveda">
        <div class="item_contents">Eclipse Europa is the Eclipse
          projects' 2007 release version (last year was Callisto).
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse Helps Me to Succeed">
        <a name="Eclipse Helps Me to Succeed" class="norgie"
          onClick="t('Eclipse Helps Me to Succeed','Eclipse Helps Me to Succeeda')"></a>
        <a target="_blank"
          href="http://blog.csdn.net/yawolf/archive/2007/06/30/1672889.aspx
          ">Eclipse Helps Me to Succeed</a>
      </div>
    </td>
    <td>Yawolf Chang</td>
    <td>6/30/2007</td>
    <td>Chinese</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse Helps Me to Succeeda">
        <div class="item_contents">I've been hoping for today, when
          Eclipse Europa is officially released, for a long time.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="&quot;Eclipse Europa&quot; released">
        <a name="&quot;Eclipse Europa&quot; released" class="norgie"
          onClick="t('&quot;Eclipse Europa&quot; released','&quot;Eclipse Europa&quot; releaseda')"></a>
        <a target="_blank"
          href="http://www.svenkubiak.de/2007/06/30/eclipse-europa-released/
          ">&quot;Eclipse Europa&quot; released</a>
      </div>
    </td>
    <td>Sven Kubiak</td>
    <td>6/30/2007</td>
    <td>German</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="&quot;Eclipse Europa&quot; releaseda">
        <div class="item_contents">Programmierer von heute brauchen,
          neben fundierten Kenntnissen, eine visuelle
          Programmierumgebung, kurz IDE. F&uuml;r unz&auml;hlige
          Programmiersprachen gibt es unz&auml;hlige verschieden
          IDE&rsquo;s, mit unterschiedlichem Funktionsumfang. W&auml;re
          es nicht sch&ouml;n, eine IDE f&uuml;r alle zu haben?
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse Europa Review">
        <a name="Eclipse Europa Review" class="norgie"
          onClick="t('Eclipse Europa Review','Eclipse Europa Reviewa')"></a>
        <a target="_blank"
          href="http://dertompson.com/index.php/2007/06/29/eclipse-europa-review/
          ">Eclipse Europa Review</a>
      </div>
    </td>
    <td>Thomas Einwaller</td>
    <td>6/29/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse Europa Reviewa">
        <div class="item_contents">Today Eclipse Europa was released.
          Eclipse Europa is the name for Eclipse IDE 3.3 and a set of
          other compatible Eclipse projects. With last years release
          Callisto the Eclipse team tried to make it easier for users to
          find the right plugin versions for their Eclipse installation.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse Europa First Impressions">
        <a name="Eclipse Europa First Impressions" class="norgie"
          onClick="t('Eclipse Europa First Impressions','Eclipse Europa First Impressionsa')"></a>
        <a target="_blank"
          href="http://caffeineinducedcoding.blogspot.com/2007/06/eclipse-europa-first-impressions.html
          ">Eclipse Europa First Impressions</a>
      </div>
    </td>
    <td>Adam Thomas</td>
    <td>6/29/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse Europa First Impressionsa">
        <div class="item_contents">The final release of the Eclipse IDE,
          code named Europa, has just been released today. The
          blogosphere is buzzing about the new features and
          functionality that make this release possibly one of the best
          ever shipped by the Eclipse Foundation.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="A whirlwind tour of Eclipse Europa">
        <a name="A whirlwind tour of Eclipse Europa" class="norgie"
          onClick="t('A whirlwind tour of Eclipse Europa','A whirlwind tour of Eclipse Europaa')"></a>
        <a target="_blank"
          href="http://www-128.ibm.com/developerworks/opensource/library/os-eclipse-europa/
          ">A whirlwind tour of Eclipse Europa</a>
      </div>
    </td>
    <td>Chris Aniszczyk</td>
    <td>6/29/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="A whirlwind tour of Eclipse Europaa">
        <div class="item_contents">With the simultaneous release of 21
          projects this year, the Eclipse Europa release marks a
          significant improvement over last year's release train of 10
          projects. Get a brief overview of each of the projects
          associated with the Europa release.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse 3.3 Europa">
        <a name="Eclipse 3.3 Europa" class="norgie"
          onClick="t('Eclipse 3.3 Europa','Eclipse 3.3 Europaa')"></a> <a
          target="_blank" href="http://blog.misto.ch/archives/386
          ">Eclipse 3.3 Europa</a>
      </div>
    </td>
    <td>Mirko Stocker</td>
    <td>6/29/2007</td>
    <td>German</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse 3.3 Europaa">
        <div class="item_contents">Endlich ist es so weit: Nach einem
          Jahr wurde soeben der neuste Eclipse Release namens Europa
          freigegeben. Den Download gibt es hier, vielleicht braucht es
          aber ein wenig Geduld, da der Ansturm bestimmt gross sein
          wird.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="D-Day: Europa inkl. Eclipse 3.3 zum Donload bereit!">
        <a name="D-Day: Europa inkl. Eclipse 3.3 zum Donload bereit!"
          class="norgie"
          onClick="t('D-Day: Europa inkl. Eclipse 3.3 zum Donload bereit!','D-Day: Europa inkl. Eclipse 3.3 zum Donload bereit!a')"></a>
        <a target="_blank"
          href="http://eclipse-magazin.de/itr/news/psecom,id,35961,nodeid,229.html
          ">D-Day: Europa inkl. Eclipse 3.3 zum Donload bereit!</a>
      </div>
    </td>
    <td>Holger Funke</td>
    <td>6/29/2007</td>
    <td>German</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="D-Day: Europa inkl. Eclipse 3.3 zum Donload bereit!a">
        <div class="item_contents">Unter dem Namen Europa
          ver&ouml;ffentlicht die Eclipse Foundation am 29. Juni um
          15.30 Uhr europ&auml;ischer Zeit eine neue Version ihrer
          offenen Entwicklungsplattform auf ihrer Website.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse 3.3 Europa">
        <a name="Eclipse 3.3 Europa" class="norgie"
          onClick="t('Eclipse 3.3 Europa','Eclipse 3.3 Europaa')"></a> <a
          target="_blank"
          href="http://jars.de/java/eclipse/eclipse-33-europa
          ">Eclipse 3.3 Europa</a>
      </div>
    </td>
    <td>Markus Junginger</td>
    <td>6/29/2007</td>
    <td>German</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse 3.3 Europaa">
        <div class="item_contents">Eclipse 3.3 Europa ist am 29. Juni
          erschienen und steht zum Download bereit. Wie zuvor Callisto,
          ist Europa das gleichzeitige Release mehrerer auf einander
          abgestimmter Unterprojekte. Waren es deren 10 bei Callisto, so
          sind es inzwischen 21 Eclipse Projekte.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="What is Eclipse?">
        <a name="What is Eclipse?" class="norgie"
          onClick="t('What is Eclipse?','What is Eclipse?a')"></a> <a
          target="_blank" href="http://qinma86.spaces.live.com/blog/
          ">What is Eclipse?</a>
      </div>
    </td>
    <td>Ma Qin</td>
    <td>6/27/2007</td>
    <td>Chinese</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="What is Eclipse?a">
        <div class="item_contents">My schoolmate compared Eclipse to a
          nuclear detonation.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse Europa is coming">
        <a name="Eclipse Europa is coming" class="norgie"
          onClick="t('Eclipse Europa is coming','Eclipse Europa is cominga')"></a>
        <a target="_blank"
          href="http://jroller.com/page/lucybi?entry=eclipse_europa_is_coming
          ">Eclipse Europa is coming</a>
      </div>
    </td>
    <td>Lucy Bi</td>
    <td>6/27/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse Europa is cominga">
        <div class="item_contents">Eclipse is my old friend from 2.0 to
          3.3 M7. As my tasks are working on Eclipse plug-in project, I
          use Eclipse everyday. Of course, I witness how Eclipse is more
          and more powerful.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse 3.3 Platform Experience">
        <a name="Eclipse 3.3 Platform Experience" class="norgie"
          onClick="t('Eclipse 3.3 Platform Experience','Eclipse 3.3 Platform Experiencea')"></a>
        <a target="_blank"
          href="http://blog.csdn.net/ZiJinShi/archive/2007/06/27/1668587.aspx
          ">Eclipse 3.3 Platform Experience</a>
      </div>
    </td>
    <td>Frank (Xiong) Zhang</td>
    <td>6/27/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse 3.3 Platform Experiencea">
        <div class="item_contents">Eclipse 3.3 is near release. As a
          Java/Eclipse developer, I&rsquo;ve used Eclipse for almost two
          years. In this article, I&rsquo;d like to tell my experience
          using Eclipse platform. Of course, I&rsquo;ll only describe
          the differences between 3.2 and 3.3.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Atomic Detonation">
        <a name="Atomic Detonation" class="norgie"
          onClick="t('Atomic Detonation','Atomic Detonationa')"></a> <a
          target="_blank"
          href="http://blog.csdn.net/mediumwave/archive/2007/06/26/1667402.aspx
          ">Atomic Detonation</a>
      </div>
    </td>
    <td>Zhongbo Li</td>
    <td>6/26/2007</td>
    <td>Chinese</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Atomic Detonationa">
        <div class="item_contents">In a nuclear detonation, the most
          magnificent sight is that mushroom cloud.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse kommt nach Europa...">
        <a name="Eclipse kommt nach Europa..." class="norgie"
          onClick="t('Eclipse kommt nach Europa...','Eclipse kommt nach Europa...a')"></a>
        <a target="_blank"
          href="http://www.mwiesner.com/index.php/2007/06/24/eclipse-kommt-nach-europa/
          ">Eclipse kommt nach Europa...</a>
      </div>
    </td>
    <td>Mike Wiesner</td>
    <td>6/24/2007</td>
    <td>German</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse kommt nach Europa...a">
        <div class="item_contents">&hellip;oder zumindest gibt es ein
          simultanes Release verschiedener Eclipse-Projekte, wie das
          schon zuvor mit Callisto durchgef&uuml;hrt wurde. Es geht
          dabei haupts&auml;chlich um die Eclipse-IDE, bei der es ja
          mittlerweile eine vielzahl von Plugins gibt, welche jeweils
          verschiedene Release-Zyklen haben und daher auch nicht immer
          zusammen passen.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="And Now for Something Completely Different&hellip;">
        <a name="And Now for Something Completely Different&hellip;"
          class="norgie"
          onClick="t('And Now for Something Completely Different&hellip;','And Now for Something Completely Different&hellip;a')"></a>
        <a target="_blank"
          href="http://divby0.blogspot.com/2007/06/and-now-for-something-completely.html
          ">And Now for Something Completely Different&hellip;</a>
      </div>
    </td>
    <td>Nick Boldt</td>
    <td>6/23/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="And Now for Something Completely Different&hellip;a">
        <div class="item_contents">Much like Ian's post the other day,
          I've always wanted to blog that line. Anyway, it's been
          brought to my attention that of late I've been apparently
          posting less-than-positive things about Eclipse, so to balance
          that out, here's my top three cool UI features in Eclipse 3.3,
          in order from oldest to newest.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="CDT 4.0 Review">
        <a name="CDT 4.0 Review" class="norgie"
          onClick="t('CDT 4.0 Review','CDT 4.0 Reviewa')"></a> <a
          target="_blank"
          href="http://www.eclipse.org/newsportal/article.php?id=13441&group=eclipse.tools.cdt#13441
          ">CDT 4.0 Review</a>
      </div>
    </td>
    <td>Richard Gobeli</td>
    <td>6/19/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="CDT 4.0 Reviewa">
        <div class="item_contents">
          The Code formatter is a very good adddition to the CDT 4.0
          project. It comes with 4 predefined code styles: K&R,
          BSD/Allman, GNU, Whitesmiths.<br> Starting with one of the
          predefine styles you can create your own code style.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse Europa sta arrivando">
        <a name="Eclipse Europa sta arrivando" class="norgie"
          onClick="t('Eclipse Europa sta arrivando','Eclipse Europa sta arrivandoa')"></a>
        <a target="_blank"
          href="http://daubau.it/log/eclipse-europa-sta-arrivando
          ">Eclipse Europa sta arrivando</a>
      </div>
    </td>
    <td>Flavio Tordini</td>
    <td>6/19/2007</td>
    <td>Italian</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse Europa sta arrivandoa">
        <div class="item_contents">Ho scaricato il release candidate
          della nuova versione di Eclipse, nome in codice: Europa.
          E&rsquo; difficile descrivere Eclipse, data la vastit&agrave;
          del progetto.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse Europa Review">
        <a name="Eclipse Europa Review" class="norgie"
          onClick="t('Eclipse Europa Review','Eclipse Europa Reviewa')"></a>
        <a target="_blank"
          href="http://bge-kernel-panic.blogspot.com/2007/06/eclipse-europa-review.html
          ">Eclipse Europa Review</a>
      </div>
    </td>
    <td>Benoit Goudreault-Emond</td>
    <td>6/18/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse Europa Reviewa">
        <div class="item_contents">OK, so it looks like I can win a
          t-shirt doing an Eclipse Europa review, and it happens that
          I've been using it since M7 (the last release before RC0). So,
          even if I don't get a t-shirt, I'll post this, because I'm a
          nice guy and I want people to benefit from my living on the
          bleeding edge.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="One Europa Experience">
        <a name="One Europa Experience" class="norgie"
          onClick="t('One Europa Experience','One Europa Experiencea')"></a>
        <a target="_blank"
          href="http://eclipse-debug.blogspot.com/2007/06/one-europa-experience.html
          ">One Europa Experience</a>
      </div>
    </td>
    <td>Curtis Windatt</td>
    <td>6/18/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="One Europa Experiencea">
        <div class="item_contents">
          I swear I'm not just doing this for the free shirt. With only
          2 weeks to go until it is released, I figured it was time for
          me to get a taste of Europa.<br> The coolest thing about
          Europa is that it should make it easy to install a large
          number of tools.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Europe kommt nach Europa">
        <a name="Europe kommt nach Europa" class="norgie"
          onClick="t('Europe kommt nach Europa','Europe kommt nach Europaa')"></a>
        <a target="_blank"
          href="http://www.fleischle.net/index.php?option=com_content&task=view&id=6&Itemid=1
          ">Europe kommt nach Europa</a>
      </div>
    </td>
    <td>Sam Fleischle</td>
    <td>6/16/2007</td>
    <td>German</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Europe kommt nach Europaa">
        <div class="item_contents">Klingt nach einem Heimspiel und wenn
          das kein Erfolg wird: Am 29. Juni ist es soweit: 21 Eclipse
          Projekte ver&ouml;ffentlichen neue stabile Releases. Darunter
          zu finden sind Eclipse 3.3, Mylyn 2.0 (ehemals Mylar) und Web
          Tools Platform 2.0 (WTP).
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Europa gehort die Zukunft">
        <a name="Europa gehort die Zukunft" class="norgie"
          onClick="t('Europa gehort die Zukunft','Europa gehort die Zukunfta')"></a>
        <a target="_blank"
          href="http://www.inforw.de/inhalt/doku.php/blog/110
          ">Europa gehort die Zukunft</a>
      </div>
    </td>
    <td>Rainer Weinhold</td>
    <td>6/16/2007</td>
    <td>German</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Europa gehort die Zukunfta">
        <div class="item_contents">
          Genauer gesagt kommt in 13 Tagen Eclipse Europa, also die
          Version 3.3 herraus! Noch Fragen?<br> Letztes Semester durfte
          ich mal wieder kurzzeitig mit Visual Studio 2005 arbeiten und
          war doch erstaunt wie unproduktiv das ist.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Global Europa, global workspace">
        <a name="Global Europa, global workspace" class="norgie"
          onClick="t('Global Europa, global workspace','Global Europa, global workspacea')"></a>
        <a target="_blank"
          href="http://jroller.com/page/eclipse2008?entry=global_europa_global_workspace
          ">Global Europa, global workspace</a>
      </div>
    </td>
    <td>Kiu Liu</td>
    <td>6/16/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Global Europa, global workspacea">
        <div class="item_contents">Eclipse Europa is coming, and my
          project will go to the end of game phrase soon,celebrate!! I
          work with a company which is a parnter of Eclipse community.
          By leveraging Eclipse, we speed up the simultaneous
          development of our new product development with Eclipse's
          release.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse Europa Review">
        <a name="Eclipse Europa Review" class="norgie"
          onClick="t('Eclipse Europa Review','Eclipse Europa Reviewa')"></a>
        <a target="_blank" href="http://www.bogner-it.at/blog/?p=6
          ">Eclipse Europa Review</a>
      </div>
    </td>
    <td>Manuel Bogner</td>
    <td>6/15/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse Europa Reviewa">
        <div class="item_contents">
          Hello,<br> I&rsquo;m testing the new Eclipse Europa since
          version M1. Yesterday I installed version RC4. Herse some
          comments about the new version. If you want to download an try
          on your own: http://download.eclipse.org/eclipse/downloads/
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div
        id="Eclipse europa unter der Lupe - Was mir besonderes gut gefallen hat...">
        <a
          name="Eclipse europa unter der Lupe - Was mir besonderes gut gefallen hat..."
          class="norgie"
          onClick="t('Eclipse europa unter der Lupe - Was mir besonderes gut gefallen hat...','Eclipse europa unter der Lupe - Was mir besonderes gut gefallen hat...a')"></a>
        <a target="_blank"
          href="http://pro-pix.de/joomla/index.php?option=com_content&task=view&id=40&Itemid=1
          ">Eclipse europa unter der Lupe - Was mir besonderes gut gefallen
        hat...</a>
      </div>
    </td>
    <td>Christian Baranowski</td>
    <td>6/15/2007</td>
    <td>German</td>
  </tr>
  <tr>
    <td colspan="4">
      <div
        id="Eclipse europa unter der Lupe - Was mir besonderes gut gefallen hat...a">
        <div class="item_contents">In einigen Tagen wird die neue
          Eclipse Release erscheinen (ab Heute 15.06.07 noch 14 Tagen).
          Sie tr&auml;gt den Codenamen Europa. Bei Europa ist es wieder
          wie letztes Jahr bei Callisto, eine Menge an Projekten bringen
          am gleichen Tag ihre Release heraus.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse Europa Release Review">
        <a name="Eclipse Europa Release Review" class="norgie"
          onClick="t('Eclipse Europa Release Review','Eclipse Europa Release Reviewa')"></a>
        <a target="_blank"
          href="http://thecodersblog.blogspot.com/2007/06/eclipse-europa-release-review.html
          ">Eclipse Europa Release Review</a>
      </div>
    </td>
    <td>Felipe Lang</td>
    <td>6/15/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse Europa Release Reviewa">
        <div class="item_contents">
          Eclipse Platform<br> Improved workspace switching: switching
          between workspaces is now quickly and more efficient, since it
          allows to copy the workbench layout and the working sets,
          keeping the style of the workspaces consistent.
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Eclipse Europa is coming..">
        <a name="Eclipse Europa is coming.." class="norgie"
          onClick="t('Eclipse Europa is coming..','Eclipse Europa is coming..a')"></a>
        <a target="_blank"
          href="http://blog.arunkumarm.com/2007/06/eclipse-eurpoa-is-coming.html
          ">Eclipse Europa is coming..</a>
      </div>
    </td>
    <td>Arun Kumar</td>
    <td>6/14/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Eclipse Europa is coming..a">
        <div class="item_contents">21 Projects... One gathering...
          Eclipse Europa... One of the huge Annual release is happening
          16 days from The Next Total Eclipse now.. Adobe released its
          Suite of products, Oracle is planning on its Fusion release
          and Eclipse is bringing up 21 Projects to all of us.. So whats
          the difference?
        </div>
      </div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="Keen for WTP 2.0">
        <a name="Keen for WTP 2.0" class="norgie"
          onClick="t('Keen for WTP 2.0','Keen for WTP 2.0a')"></a> <a
          target="_blank"
          href="http://radio.javaranch.com/davo/2007/06/01/1180698512171.html
          ">Keen for WTP 2.0</a>
      </div>
    </td>
    <td>David O'Meara</td>
    <td>6/14/2007</td>
    <td>English</td>
  </tr>
  <tr>
    <td colspan="4">
      <div id="Keen for WTP 2.0a">
        <div class="item_contents">I have never really had the
          opportunity to be the cutting edge guy. Hey, like to get the
          latest tool occasionally and have a play, but we usually lag
          behind in technology at work and are forced to stick with the
          safe and secure option.
        </div>
      </div>
    </td>
  </tr>
</table>
