As I put the finishing touches on one of my presentations for EclipseWorld 2008 on this, the last day of blaugust, I'm reminded of how far the resource model in EMF, and in the Eclipse platform itself, for that matter, has come over the past few years. Nearly gone are the days where applications assume that everything is on the local file system or that a file extension dictates the content of a resource...
And, after reading Kevin's blog entry about declarative styling, I'm excited about how much farther we may yet be able to go. e4 will indeed change the way we, and the industry as a whole, think about Eclipse; if it doesn't, I believe it will have failed. I'm anxious to start making contributions, particularly in the area of the new platform's resource model. How do you plan on contributing to the future of Eclipse?
Saturday, August 30, 2008
Friday, August 29, 2008
On Conferences...
As Ian pointed out recently, it's almost conference season again. Although I'm not sure whether I've recovered from the last one yet (EclipseCon 2008, the Washington and Ottawa OMG technical meetings, and two Eclipse/OMG Symposia), my autumn is shaping up to be a busy one. So far I'm committed to attending OMG technical meetings in Orlando and Santa Clara, and I'll be speaking at EclipseWorld 2008 in October.
I'm also hoping I'll be able to attend Eclipse Summit Europe (in November) for the first time this year. I've submitted a few talk proposals, so with any luck one (or more) of them will be accepted. If you're thinking of submitting a talk, now is the time to do it, as the deadline is on Monday! The Modeling symposium on the day before the summit should also prove to be interesting. It sounds like Ed will be there too, as will many of the usual Modeling suspects. Come join in the festivities!
I'm also hoping I'll be able to attend Eclipse Summit Europe (in November) for the first time this year. I've submitted a few talk proposals, so with any luck one (or more) of them will be accepted. If you're thinking of submitting a talk, now is the time to do it, as the deadline is on Monday! The Modeling symposium on the day before the summit should also prove to be interesting. It sounds like Ed will be there too, as will many of the usual Modeling suspects. Come join in the festivities!
Thursday, August 28, 2008
On Good Intentions...
They say that the road to you-know-where is paved with good intentions. Unfortunately, good intentions aren't enough to sustain a project at Eclipse. As I've said before, to be successful, an Eclipse project must adequately address its three communities (contributors/committers, users, and adopters). This takes work.
We've had to make some difficult decisions in the Modeling project lately, to deal with some projects/components that didn't quite pan out as they were originally intended. To be clear, Eclipse is not a hosting facility (i.e. dumping ground). It's an ecosystem where like-minded individuals can work together to build extensible frameworks and exemplary tools.
In the Modeling project, we like to think of it being relatively easy to create a project, but hard to keep one. We don't want to stifle innovation, but at the same time we hold our projects to the same high standards that Eclipse had gained a reputation for. The mechanism for creating Modeling projects may change a little now that the new Eclipse development process has been approved, but our attitude will remain the same.
The good news is that, while some projects fade away, new projects are always on the horizon. The Papyrus component of MDT was recently approved for creation (stay tuned for the announcement), and a couple more proposals for new MDT subprojects are in the works. If you're interested in being part of the excitement, let me know!
We've had to make some difficult decisions in the Modeling project lately, to deal with some projects/components that didn't quite pan out as they were originally intended. To be clear, Eclipse is not a hosting facility (i.e. dumping ground). It's an ecosystem where like-minded individuals can work together to build extensible frameworks and exemplary tools.
In the Modeling project, we like to think of it being relatively easy to create a project, but hard to keep one. We don't want to stifle innovation, but at the same time we hold our projects to the same high standards that Eclipse had gained a reputation for. The mechanism for creating Modeling projects may change a little now that the new Eclipse development process has been approved, but our attitude will remain the same.
The good news is that, while some projects fade away, new projects are always on the horizon. The Papyrus component of MDT was recently approved for creation (stay tuned for the announcement), and a couple more proposals for new MDT subprojects are in the works. If you're interested in being part of the excitement, let me know!
Wednesday, August 27, 2008
On Schedules...
The Pentaho BI Platform, on which ER/Studio Enterprise Portal is based, makes use of a Quartz database to schedule its jobs. Quartz is a full-featured, open source job scheduling system can can be integrated with virtually any Java application.
Unfortunately, the schedule administration interface provided with Pentaho is somewhat cryptic (and hence difficult to use), in part because it uses cron expressions to specify job schedules. There are several tutorials on cron triggers available on the Internet, so I won't provide a full tutorial here. However, I thought it would be helpful to describe what the format of a cron expression looks like and show a few examples that might be useful to, for example, set up a schedule for the synchronization of the reporting database with the ER/Studio repository database.
A cron expression is a string of six or seven fields separated by white space. Specific values, as well as certain special characters, are allowed for each field, as follows:
I won't go into detail on all of the special characters, but * means "all values" and ? means "no specific value" (useful when you want to specify either day of month or day of week but not the other). Here are some examples:
It's important to note that schedules between midnight and 1:00 AM can result in either a skip or a repeat depending on changes due to daylight savings time.
Unfortunately, the schedule administration interface provided with Pentaho is somewhat cryptic (and hence difficult to use), in part because it uses cron expressions to specify job schedules. There are several tutorials on cron triggers available on the Internet, so I won't provide a full tutorial here. However, I thought it would be helpful to describe what the format of a cron expression looks like and show a few examples that might be useful to, for example, set up a schedule for the synchronization of the reporting database with the ER/Studio repository database.
A cron expression is a string of six or seven fields separated by white space. Specific values, as well as certain special characters, are allowed for each field, as follows:
- Seconds : values are 0-59, special characters include , - * /
- Minutes : values are 0-59, special characters include , - * /
- Hours : values are 0-23, special characters include , - * /
- Day of Month : values are 1-31, special characters include , - * / L W
- Month : values are 1-12 or JAN-DEC, special characters include , - * /
- Day of Week : values are 1-7 or SUN-SAT, special characters include , - * / L #
- Year (optional) : values are 1970-2099, special characters include , - * /
I won't go into detail on all of the special characters, but * means "all values" and ? means "no specific value" (useful when you want to specify either day of month or day of week but not the other). Here are some examples:
- 0 0 0 * * ? = midnight every day (the default schedule in the portal)
- 0 30 1 L * ? = 1:30 AM on the last day of every month
- 0 0 2 ? * 0#3 = 2:00 AM on the third Sunday of every month
- 0 0 * * * ? = every hour
It's important to note that schedules between midnight and 1:00 AM can result in either a skip or a repeat depending on changes due to daylight savings time.
On Changing Tack...
In the world of sailing, the term 'tack' is fairly overloaded. In one sense it refers to the front bottom corner of a sail, in another it refers to the side of the boat on which the main sail is being carried (relative to the wind), and in yet another sense it refers to the action of turning the boat through head to wind (e.g. changing from a port tack to a starboard tack). When on a windward leg in a race, it's important to pay attention to variations in the wind direction that may force you to point the boat closer to the wind ("head up") or further away from the wind ("bear away") in order to stay on a close hauled (i.e. fast) point of sail. In sailing terminology, these are referred to "lifts" and "knocks". Generally, a knock on one tack corresponds to a lift on the other tack, so if you're frequently getting knocked, it's advantageous to tack (see, I told you the term was overloaded).
I've found that the same often applies in software development - a change in the way you are attempting to solve a problem can put you in a better position than you would have been with the original approach. I have been "knocked" for over a week now trying to regenerate the source code for the UML2 component of MDT in a runtime workspace. I've always done it this way because I typically need to use recent changes in UML2 itself to regenerate the UML2 source code. No matter what I tried (clean workspace, more memory, builder settings) I could not get one of the code generation templates to compile. What was most frustrating was that the same template compiled successfully in my development workspace.
So, I decided it was finally time to change my approach and make use of a PDE enhancement that was made as part of the recent Ganymede release. I used the 'dropins' folder as my workspace (e.g. -data "C:\Eclipse 3.4 MDT Galileo\eclipse\dropins") and the settings for my runtime workspace as the development properties (e.g. -dev "file:C:/Eclipse 3.4 MDT Galileo/eclipse/dropins/.metadata/.plugins/org.eclipse.pde.core/MDT/dev.properties") and, voila, I was able to bootstrap UML2 and my template compiled successfully. Not only did this solve my problem, but it also means I have one less workspace to configure and maintain!
I've found that the same often applies in software development - a change in the way you are attempting to solve a problem can put you in a better position than you would have been with the original approach. I have been "knocked" for over a week now trying to regenerate the source code for the UML2 component of MDT in a runtime workspace. I've always done it this way because I typically need to use recent changes in UML2 itself to regenerate the UML2 source code. No matter what I tried (clean workspace, more memory, builder settings) I could not get one of the code generation templates to compile. What was most frustrating was that the same template compiled successfully in my development workspace.
So, I decided it was finally time to change my approach and make use of a PDE enhancement that was made as part of the recent Ganymede release. I used the 'dropins' folder as my workspace (e.g. -data "C:\Eclipse 3.4 MDT Galileo\eclipse\dropins") and the settings for my runtime workspace as the development properties (e.g. -dev "file:C:/Eclipse 3.4 MDT Galileo/eclipse/dropins/.metadata/.plugins/org.eclipse.pde.core/MDT/dev.properties") and, voila, I was able to bootstrap UML2 and my template compiled successfully. Not only did this solve my problem, but it also means I have one less workspace to configure and maintain!
Tuesday, August 26, 2008
On Memory...
It's been a week now since ER/Studio Enterprise Portal was released, and so far the response has been overwhelmingly positive. Yesterday I mentioned that, while testing the portal, I find the Tomcat service management utility helpful. One of the things, in particular, that I do is change the amount of memory that the application server's Java virtual machine makes use of.

The portal isn't officially supported on Windows XP, but it will run on it. Depending on how much RAM the machine has, and how many other applications are running, the maximum memory pool needs to be lowered to something like 1024 or 512. There's a way to do this via the command line as well:
"c:\Program Files\Embarcadero\ERStudioEnterprisePortal1.0\tomcat\bin\tomcat5.exe" //US//Tomcat5ERSPortal --JvmMx=1024
The portal isn't officially supported on Windows XP, but it will run on it. Depending on how much RAM the machine has, and how many other applications are running, the maximum memory pool needs to be lowered to something like 1024 or 512. There's a way to do this via the command line as well:
"c:\Program Files\Embarcadero\ERStudioEnterprisePortal1.0\tomcat\bin\tomcat5.exe" //US//Tomcat5ERSPortal --JvmMx=1024
Monday, August 25, 2008
On Service Management...
It's hard to believe that blaugust is drawing to a close... where did the summer go? Given that I have a few more blog entries left before I hit my target for blaugustFEST, I'll be spending some time this week covering lesser known aspects of Embarcadero's ER/Studio Enterprise Portal product (launched last week). While somewhat product-specific, I hope that this information will also be of general interest to those of you who may be using Tomcat as an application server or Pentaho as a business intelligence platform...
The Enterprise Portal makes use of Apache Tomcat as its application server, and installs it as a service in Windows. One of the things I've found, while testing and using the portal, is that I often want to know the current status of this service and/or do things like shut it down and start it back up again. Fortunately, Tomcat provides a service management utility to do this and other maintenance tasks related to the service. To launch it, type (something similar to) the following from a command prompt (or in the Run dialog available from the Start > Run... menu item):
"C:\Program Files\Embarcadero\ERStudioEnterprisePortal1.0\tomcat\bin\tomcat5w.exe" //MS//Tomcat5ERSPortal
After doing this, an icon will appear in the system tray (on the right-hand side of the task bar). If you double-click the icon, a window will open which allows you to start/stop/restart the service, change the way it logs on to Windows, set the logging behavior, configure the application server's Java virtual machine, among other things.
The Enterprise Portal makes use of Apache Tomcat as its application server, and installs it as a service in Windows. One of the things I've found, while testing and using the portal, is that I often want to know the current status of this service and/or do things like shut it down and start it back up again. Fortunately, Tomcat provides a service management utility to do this and other maintenance tasks related to the service. To launch it, type (something similar to) the following from a command prompt (or in the Run dialog available from the Start > Run... menu item):
"C:\Program Files\Embarcadero\ERStudioEnterprisePortal1.0\tomcat\bin\tomcat5w.exe" //MS//Tomcat5ERSPortal
After doing this, an icon will appear in the system tray (on the right-hand side of the task bar). If you double-click the icon, a window will open which allows you to start/stop/restart the service, change the way it logs on to Windows, set the logging behavior, configure the application server's Java virtual machine, among other things.
Subscribe to:
Posts (Atom)