Blog

Work Completed

  • Attended KISTI meetingfrom 9pm - 10:30 pm on Wednesday September 23, 2009, presented MAEviz Overview
  • Finished documenting the bridge data, fragility and fragility mapping process with example files and step by step instructions for getting each part into MAEviz, also started the documentation for the building data, fragility and fragility mapping process
  • Started prototyping the ability to drag/drop tabular data on the data catalog view prototype, including process to ingest it. Next I will be working on a viewer that can take the logical model and display it.

Work Planned

  • Document on the wiki the process of adding various MAEviz data types to MAEviz, including building/bridge fragilities, building/bridge fragility mappings and building/bridge data, including examples that users can download and try out. This documentation will be useful for projects such as the potential KISTI project.
  • Attend KISTI meeting and present MAEviz Overview at 9pm on September 23, 2009
  • Start helping Shawn prototype the new Data Catalog.

Comments

This week went as planned

Work Completed

  • MAEviz Integration build has returned to normal and is upgrade to Eclipse 3.5. I also started removing old Eclipse classes that have been deprecated and upgrading to the newer ones. I'm also deprecating old classes in MAEviz that are no longer used to remove old deprecation warnings. I've been testing MAEviz as I make some of these changes to ensure that the build is still working properly.
  • Emailed Lisa Cleveland,Can Unen, and Jong Lee to answer a question Lisa sent to them about the inclusion of liquefaction in the pipeline analysis and some numbers that seemed strange to her and Amr. Based on the science being used (hazus methodology), the results looked ok and Can agreed.
  • Talked with Jong and Shawn about adding some more wiki documentation about getting started with MAEviz using your own data. We think this will be useful for obtaining funding from sources such as KISTI that might have questions about the requirements of working on a project with us. I will continue drafting what that wiki should look like next week and start adding documentation.
  • Attended Friday CET Staff Meeting

Work Planned

  • Continue working on the Eclipse upgrade for MAEviz
  • Remove old deprecated Eclipse classes that are being used by MAEviz
  • Attend CET Staff Meeting

Comments

This week went as planned.

Work Completed

  • I am nearly finished with the Eclipse build process upgrade. I found the issue with the build that kept it from building the correct configuration file and a separate set of test plugins. Previously it was building them into one zip file and since the test plugins were added later, their configuration file overwrote the correct one. I also cleaned up the build process by taking advantage of some of the new features that allow defined Eclipse features to reach across boundaries for required plugins. Previously, if ncsa.feature.one and ncsa.feature.two each had a plugin requiring ncsa.plugin.one, it would have to be defined as a dependency in both features, making for some ugly features. I have also eliminated outdated plugins. While cleaning these up, something has caused the build to be come unstable since the test feature cannot find some required plugins. I'm not sure why this is and I am looking into the issue. Can Unen was asking about the build so I continue to make the completion of the build upgrade my top priority.
  • Attended CET staff meeting by google chat. I will try to contribute to the wiki pages with comments where I can.

Work Planned

  • Continue working on daily build upgrade to Eclipse 3.5
  • After the build process is stable, I would like to upgrade MAEviz to use Eclipse 3.5 features and remove deprecated classes (e.g. the main RCP class should now extend IApplication and not IPlatformRunnable).
  • Attend CET Staff Meeting on Friday from 1 - 3 pm
  • If Jong is back this week, I will help prepare any TRANSIMS proposal material that we need, otherwise this will be deferred to the following week.

Comments

This week went as planned.  Monday, September 7 was a holiday.

Work Completed

  • Attended TRANSIMS meeting in Chicago at the Dupage Airport on Tuesday September 1, they seem very excited to work with us on a smaller version of our recent proposal to add a graphical user interface to their software, similar to the one in MAEviz. We should be able to leverage much of the MAEviz UI if the project gets funded.
  • Attended staff meetings and left comments about marketing our products
  • Continued to work with upgrading the build server to use Eclipse 3.5. I have narrowed the issue of the incorrect configuration to including the unit testing fragments. If they are excluded, the build gets the correct configuration and the software launches; however, if the unit tests are included, the wrong configuration is created and the software does not launch. It is unclear if the software working after removing the unit testing portion of the ant script is coincidental or not. I will continue to work on this problem.

Work Planned

  • Attend TRANSIMS meeting in Chicago
  • Continue working with upgrading the build server to use Eclipse 3.5. There is an issue with the application not launching due to an incorrectly produced configuration file from the build process.
  • Attend Wednesday and Friday Staff meetings.

Comments

This week went as planned. Next week I will focus on the daily build server and any help I can give to the various strategic planning efforts and for the possible TRANSIMS project.

Work Completed

  • Attended Eclipse e4 webinar II on August 26, 2009, it is interesting to see some of the UI approaches being taken in e4 with more declarative UIs (e.g. toolkit model), decoupling the UI to make software in e4 more flexible. They are committed to Eclipse 3.x for 5+ years so there is time for transition. Many details in e4 still need to be fleshed out, they seem to only be at the tip of the iceberg right now.
  • I spent more time learning the Eclipse build process and successfully built MAEviz on my desktop machine using Eclipse 3.4 and 3.4.2, I am working now on an error I am seeing when it builds on 3.5, the latest Eclipse. I also fixed our build server (the integration build was failing) and I upgraded the server to the latest version of Hudson. I noticed that our Hudson instance would not render properly in Firefox 3.5 using Linux. This issue was fixed with the upgrade to the latest version of Hudson.
  • Sent email to Liang, a graduate student, regarding the MAEviz retrofit fragilities for bridges.
  • Attended Processes meeting using Google Video Chat.
  • I am following the Eclipse e4 dev mailing list so I can stay up to date on the latest discussions involving the new Eclipse platform.

Work Planned

  • Continue learning the build process so I can upgrade our build server to use Eclipse 3.5 for building MAEviz.
  • Attend Eclipse e4 Webinar II on August 26, 2009
  • Attend Processes meeting via google chat.

Comments

This week went as planned. I will continue next week working on the build server with Eclipse 3.5.

Work Completed

  • Got a simple demo application with a view and some small widgets working in Eclipse e4 and wrote a blog entry describing the steps to write an e4 application including using some of the new features such as css styling. I am hoping to expand on the demo after the second webinar which should cover some more advanced topics.
  • The e4 webinar mainly covered running the e4 demos that are available on the web. I believe the next webinar which is this week will go into more details about the advanced features in e4 and what the designers are thinking about for e4 that is not in the system yet. There is a lot of functionality that has not been implemented and some sounds like it is still in the design phase (e.g. adding menus/menu items in 3.5 is done declaratively through the command framework, there is no equivalent in e4 yet).
  • Started learning the MAEviz build system by replicating the build process on my desktop machine. Once the build is up on my desktop machine I will then start building with Eclipse 3.5. Some of the work involved re-writing the windows batch files as equivalent shell scripts for linux. This work would also allow us to use a linux box to build MAEviz in the future.

Work Planned

  • Continue working with Eclipse e4
  • Attend Eclipse e4 webinar
  • Learn MAEviz build system and upgrade the build to use the new Eclipse 3.5

Comments

This week went as planned.

Work Completed

  • Attended CET Staff meeting by google video chat.
  • Attended Data Catalog meeting by google video chat.
  • Continued working with Eclipse e4 to better understand the future of Eclipse. I've been following varies demo examples to learn more about the new features and how we might incorporate them in our future products.

Work Planned

  • Attend CET staff meeting on August 10 from 1pm - 2pm.
  • Attend Data Catalog meeting on August 10 from 3pm - 4:30pm.
  • Continue working with Eclipse e4
  • Work on data catalog when we have enough of a framework to proceed with development.
  • Help support finding new funding sources and writing proposals to win new funding.

Comments

I took personal days on August 12 - August 14, 2009. This week went as planned.

Work Completed

  • Continued exploring the features of Eclipse e4, got a simple SWT demo working with databinding that I will post to a blog soon. The major feature shown off is writing and eclipse application using the new application framework (based on Eclipse Modeling Framework - EMF) and it shows off using CSS to style the User Interface.
  • Started working with more of the e4 demos that are available that highlight the new features coming in e4, including SWT cross compiled to Flex, XML Windows Toolkit (XWT), and the other demo showing off CSS and some other new features coming in e4. I have already ran the e4 contacts demo which showed some of the CSS features and the e4 photo demo.

Work Planned

  • Explore more of Eclipse e4's new features, get the demos working and write small sample demo's to learn more about using the new e4 features and to display features not demonstrated in their simple demos. Most of the demos I have been trying to get compiled are here.

Comments

This week went as planned, next week I plan on taking 2.5 personal days to bring my total down to the maximum carry over, the planned days off are Wednesday, Thursday and Friday afternoon.

Work Completed

  • Signed up for Eclipse e4 webinar for August 18, 2009 and August 26, 2009.
  • Downloaded Eclipse e4 v0.9 RC2 and started working with some of the available demos to learn about the new features.
  • Compiled MAEviz in e4, but have not been able to get it to successfully launch with the compatibility layer. I decided it would be better to work with a smaller RCP application and get that working before moving on to getting MAEviz running. I have posted questions to the newsgroup about getting legacy RCP applications to work with the new e4 and hope to accomplish that this week.
  • Prepared slides covering Short Term Shelter Needs and Short Term Shelter Supplies for Bernie's Costa Rica visit.

Work Planned

  • I plan to investigate the new Eclipse e4 v0.9 RC2 release so I can learn about what is coming in the next generation of Eclipse. I also plan to try and get a legacy RCP application working so that I can test MAEviz in Eclipse e4.
  • Prepare presentation slides about MAEviz social science algorithms for Bernie's Costa Rica visit.

Comments

This week went as planned. I expect to continue working with Eclipse e4 to gain a better understanding of where Eclipse is going and how we can potentially benefit from the new directions.

Eclipse e4

Eclipse e4

Eclipse e4 is the next generation of the Eclipse Platform. The project has 3 main objectives:

  • Simplify the Eclipse programming model: This simplification will result in reduced development and maintenance costs and enable a larger developer community to leverage the platform in their own Eclipse-based applications. In my opinion, this is great because the learning curve for eclipse has always been very steep
  • Enable the platform for use on emerging web-based runtime technologies: This move will ensure that the platform remains a compelling and viable application framework in a rapidly changing web technology landscape, and it will allow e4-based applications to leverage web technologies, while remaining insulated from specific technology choices that may quickly become obsolete.
  • Broaden participation in development of the platform: This community driven effort reduces the risks associated with building on a platform largely funded from a single source. Having a large and diverse group of commercial backers, will ensure the platform remains vibrant and viable over the long term.

Eclipse e4 Demos

I plan to get some of the Eclipse e4 demos working. I will put comments here and possibly some code if I add to them.  I tried the e4 photo demo, it is very cool to see how things are changing, gone is the application.java class and it is replaced by a more declarative Application.xmi.

My First Eclipse e4 Application

Much of the beginning of this is pulled from here and it meant to supplement it as we extend the functionality discussed in that blog post. We will go further and add menu items with actions. There are a few prerequisites. The first is you will need to have the latest version of Java installed, which you can get here. The second is you will need Eclipse e4 version 0.9, which you can get here. The final requirement is a general understanding of Eclipse. This is not intended as an introduction to Eclipse in general, but more how to use the next generation alpha version of the tools to create a basic next generation application.

You will need to install as you have done previous versions. Once this is complete, start Eclipse.

As of version 0.9 of Eclipse, there is no wizard to help create the basic parts of a new application so we will have to do some of this manually.

To create a new plugin project, do the following:

  • Go to top level menu and select File > New. From the wizard that comes up, select Plug-in Project and click Next.
  • For Project name, enter something like ncsa.e4.sample. Everything else on the wizard page can remain as default. Click Next.
  • Uncheck the box Generate an Activator. Also, do not check the box This Plug-in will make contributions to the UI nor should you select the radio button that you would like to create an eclipse rich client application. Simply click Finish. See the image of the new plugin project wizard below.

We will need to modify the dependencies for this plugin so go to the Dependencies tab of the Manifest and add the following dependencies:

  • org.eclipse.ui
  • org.eclipse.core.runtime
  • org.eclipse.e4.ui.workbench
  • org.eclipse.e4.ui.workbench.renderers.swt
  • org.eclipse.e4.ui.workbench.renderers.swt.contribution
  • org.eclipse.e4.ui.workbench.swt
  • org.eclipse.e4.ui.services
  • org.eclipse.e4.core.services

After doing this, go to the Extensions tab in the Manifest and click the Add... button. Add the org.eclipse.e4.workbench.parts and org.eclipse.core.runtime.products extension points. The org.eclipse.e4.workbench.parts is a new extension point in e4 for defining view parts. This replaces the Views and Editors from the 3.x branch of Eclipse. The second extension point is where we will define our product. A new parameter has been created called applicationXMI which is a parameter to the model of our UI. We'll discuss that in more detail later.

Unfortunately, the UI is not in place to add extensions so at this point we will need to manipulate the plugin.xml file directly. Go the the plugin.xml tab, which should have been added once we added those extension points, and enter the following:

Next, let's create the view we specified in the plugin.xml file called SampleView in the package ncsa.e4.sample.views. When creating SampleView, make sure it implements the org.eclipse.e4.core.services.IDisposable interface.

SampleView implements IDisposable
public SampleView(Composite parent, final IEclipseContext outputContext)
{
    Text text = new Text( parent, SWT.NONE );
    text.setText( "Hello World" );
    GridLayoutFactory.fillDefaults().generateLayout( parent );
}

public void dispose()
{
}

Next, we need to create the modeled UI and specify the parts in the aforementioned Application.xmi file. Create a new File in ncsa.e4.sample/Application.xmi, making sure you provide it with the extension xmi. After creating the file, Eclipse might open it with an error message. In the window it opened it in, click on the Open with Text Editor button and add the following content:

<?xml version="1.0" encoding="ASCII"?>
<application:MApplication xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:application="http://www.eclipse.org/ui/2008/Application">
  <windows name="Main" x="100" y="100" width="500" height="320">
    <children policy="VerticalComposite">
      <children xsi:type="application:MSashForm" policy="HorizontalSash">
        <children xsi:type="application:MStack">
          <children xsi:type="application:MContributedPart" id="SampleView" iconURI="" name="Sample View" tooltip="My Sample View" URI="platform:/plugin/ncsa.e4.sample/ncsa.e4.sample.views.SampleView"/>
        </children>
        <weights>100</weights>
      </children>
    </children>
  </windows>
</application:MApplication>

After saving the file and closing it, if you cannot reopen it you probably have a syntax error. You will need to right click on the file and use Open With > Text Editor, or you may have to go edit the file by hand. This seems to be an Eclipse bug of some sort since no xml editor seems to want to open the file. If the text editor will not open the file, close and restart Eclipse seems to fix the issue. When in doubt, close and restart Eclipse is a good way to go. After you have successfully edited the file, you should be able to use Open With > Sample Reflective Ecore Model Editor and see something similar to the image below:

Now that we have a modeled UI, we need to create a product file to launch our simple application. To do this, go to File > New > Other and under Plug-in Development select Product Configuration. Click Next. Where it says File name, enter something like Sample.product. Where it says Initialize the file content select the radio button that says Create a configuration file with basic settings. Click Finish.

Enter the following information in the product file that opens:

After entering the above information, click on the Dependencies tab and add:

  • org.eclipse.e4.ui.workbench
  • ncsa.e4.sample

Finally, click the Add Required Plug-ins button. You should now be able to go back to the Overview tab and click the link Launch an Eclipse application and see something similar to the following:

This application isn't much to look at yet and lacks a Exit menu option. First, let's create an exit handler.

ExitHandler.java
package ncsa.e4.sample.handlers;

import org.eclipse.e4.workbench.ui.IWorkbench;

public void execute( IWorkbench workbench )
{
    workbench.close();
}

Now, we need to edit the Application.xmi to add a File menu and our Exit menu item. Currently, there is no way to contribute commands and menu options from the commands framework without bringing in the entire legacy workbench. This will be added in the future so for now, we must edit the model. See below for the changes:

<?xml version="1.0" encoding="ASCII"?>
<application:MApplication xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:application="http://www.eclipse.org/ui/2008/Application">

  <windows name="Main" x="100" y="100" width="500" height="320">
    <menu>
      <items xsi:type="application:MMenuItem" name="File">
        <menu>
	  <items xsi:type="application:MMenuItem" name="Exit" command="//@command.0" />
        </menu>
      </items>
    </menu>
    <children policy="VerticalComposite">
      <children xsi:type="application:MSashForm" policy="HorizontalSash">
	<children xsi:type="application:MStack">
	  <children xsi:type="application:MContributedPart" id="SampleView" iconURI="" name="Sample View" tooltip="My Sample View"
            URI="platform:/plugin /ncsa.e4.sample/ncsa.e4.sample.views.SampleView"/>
	</children>
	<weights>100</weights>
      </children>
    </children>
    <handlers id="" URI="platform:/plugin/ncsa.e4.sample/ncsa.e4.sample.handlers.ExitHandler" persistedState="" command="//@command.0" />
  </windows>
  <command id="application.exit" name="Exit"/>
</application:MApplication>

After saving the changes, re-launch the application and you should now have a File menu with an Exit option.

Before moving on to the next section regarding CSS styling, let's add a SWT Button to our view so we can demonstrate a few of the CSS options for styling SWT widgets.

CSS Styling

The first thing we need to do is let the application know we want to use CSS to control the look and feel of the application. To do this, go back to the manifest and click on the Extensions tab. In the same place where we added the applicationXMI property, add another property called applicationCSS with the value platform:/plugin/ncsa.e4.sample/css/UIStyle.css. After creating the property, create a new File called UIStyle.css and add the following content to it:

Text { 
    font: Verdana 16px;     
    color: blue;     
    background-color: rgb(255,255,255) rgb(0,0,0);  
}

Button {     
    font: Verdana 8px; 
}

#SampleView {     background-color: gradient radial #575757 #101010 60%; 

}

You will notice we gave the SampleView an id="SampleView" in the Application.xmi file. This allows us to style the view using the above style sheet, with a reference to the views id. You should see a view similar to the one below:

Eclipse 3.5 Application in Eclipse e4

The next step for me is to try and get some legacy RCP application code working on the e4 compatibility platform. From there I will try to get MAEviz working. It seemed more logical to start with something small and learn from my mistakes before I try to get a large application like MAEviz to work in e4.

MAEviz in Eclipse e4

I'm trying to get MAEviz to launch with the e4 compatibility platform to see where it comes up short and if there are any bugs/features I can submit to the e4 project.  For my reference, I am listing the plugins I had to download to get MAEviz to launch.  I'm hopeful that MAEviz will launch once I fix all the missing plugins, even if all the features don't quite work as expected.

  • org.apache.commons.lang

Work Completed

  • Read Eclipse (e4) whitepaper, a very interesting paper on the next major Eclipse release.
  • Read the Data Catalog Wiki to follow the latest discussions.
  • Finished updating the Eclipse 3.5 reference page. I went through the new and noteworthy features of Eclipse 3.5 and tried most of them out to make sure the instructions were complete, fixing any steps that were missing or assumed you knew.

Work Planned

  • Finish Eclipse 3.5 wiki Reference page, try and test the new and noteworthy features of the galileo release
  • Track the updates to the Data Catalog

Comments

I took a personal day on Monday July 20, 2009. This week went as planned. Eclipse e4 v0.9 is released so if nothing else comes up, I plan to check it out and see where the development is at.

Work Completed

  • I've been updating the Eclipse 3.5 reference wiki on my exploration of the various new features listed in the new and noteworthy section of the eclipse update reference and checking to make sure all steps are accurate and adding them to the wiki with screenshots they've made available so we have it as a future reference.
  • Testing MAEviz in Eclipse 3.5 to make sure that everything still works as expected.
  • Following updates to the data catalog

Work Planned

  • Update Eclipse 3.5 Developer Reference wiki with tips on new features available in various parts of the IDE (e.g. Java editor, Team Synchronization, etc).
  • Make sure MAEviz still functions as expected in Eclipse 3.5

Comments

This week I am taking personal days on Monday July 13 and Friday July 17, 2009. I will continue next week updating the wiki, testing the new and noteworthy features and testing MAEviz functionality with Eclipse 3.5

Work Completed

  • Started evaluating Eclipse 3.5 (Galileo) and created a developer reference. I also included Rob's notes on how to add some of the subversion plugins in headless mode.
  • Added another tutorial on MAEviz advanced features (Interdependent Network Analysis). All steps are included and what datasets I used from the MAEviz Public Repository.
  • Started adding a section on the Network Loss Analysis. This work will continue next week.
  • Discussed paper topics with Shawn and Jong for e-Science.
  • Answered part of Liang's question about the MAEviz Bridge Damage Analysis and an output message he was seeing about bridge spans being greater than 10.

Work Planned

  • Evaluate Eclipse 3.5 (Galileo) and make notes on the developer reference wiki.
  • Add Tutorial on Interdependent Network Analysis
  • Add Tutorial on Network Loss Analysis

Comments

This week went as planned. I will be taking personal days on July 9 and July 10. I intend to continue working with Eclipse 3.5 next week and will make more notes about what I find.

Eclipse 3.5

This page has moved to the developers reference section located at Eclipse 3.5

Work Completed

  • Went through NBSR analysis steps and documented them in the bridge tutorial. I ran into some issues and have sent Jong some questions, but he will probably be slower to respond since he is on leave.
  • Finished Annual Review

Work Planned

  • Finish Annual Review
  • Add sections on Network Based Seismic Retrofit (NBSR) to bridge tutorial

Comments

  • This week went as planned. I took a personal day on Thursday July 1st and July 2nd was a holiday. Until we are ready to move forward with the data catalog, I will continue to document some of the more advanced analyses in MAEviz in the appropriate tutorial(s).