Wednesday, December 3, 2008
Tuesday, December 2, 2008
Monday, December 1, 2008
Sunday, November 16, 2008
Like Ed, it looks as though I may need to clone myself in order to participate in everything I want to here at ESE. I haven't decided yet which talks I'll attend, but I suppose I had better do that soon, before things get really busy. At this point I know I'll be participating in the Eclipse Members' meeting tomorrow (Monday) and the Modeling Symposium on Tuesday.
On Wednesday, I'll be delivering two short talks. The first, entitled "Data Models at Eclipse", will provide an overview of the different kinds, or levels, of data models and explore how they are supported by projects/components at Eclipse. The second, "What's New in MDT?", will provide an overview of the Model Development Tools project and, in particular, some of its noteworthy recent additions. If you're going to be at the Summit, I hope to see you there. Of course, if you can't be there for whatever reason, you can always view the slides from the submission page(s)...
Monday, October 27, 2008
The bottom line is that the status quo will no longer suffice. Design by committee and vendor politics won't get us anywhere. Neither will closedness and opaqueness. In his webinar on ecosystem development the week before last, Mike suggested that ecosystems could be evaluated on the basis of five key concepts (see below). In order for the ecosystem of specifications (languages) that exists at the OMG to survive, I'd say its health in these areas needs to be measured and improved.
Co-evolved innovation. There's certainly a lot of innovation happening at the OMG, and by a lot of players. But sometimes I wonder how relevant the innovation is (in the absence of reference implementations) and how coordinated the activities are (sometimes chairing a task force seems a lot more like cat-herding than coordinated evolution).
Alignment of Vision. The OMG has a vision - MDA (Model Driven Architecture). But how aligned are the various OMG specifications with this vision? How long will the industry wait for it to be realized?
Degree of openness. The OMG is an open organization, in the sense that its reason for being is to produce open specifications. But its processes are less open than other organizations like Eclipse, and that has garnered it some negative press. To borrow from Bjorn's analogy, I think the OMG would benefit from being an openness bear that's "just right".
Degree of modularity. I think this is at the heart of the 'separation of concerns' problem. Languages like UML and its relatives are in fact designed to be modular - they're structured as sets of packages, or "capabilities" and then merged into various compliance levels... but something went wrong along the way, because subsets of these languages aren't as reusable as they were originally intended to be.
A network of niches. A set of vertices without edges is not a graph - it's just a set of vertices. I think many of the niches (UML, BPMN, IMM) are falling into place at the OMG; now, we just need to connect the dots.
Mike also talked about the importance of an open, extensible platform as the basis for a successful ecosystem. I think that's what's missing in the OMG ecosystem. Yes, it has MOF, but that's not a platform on its own; MOF is to the OMG as OSGi is to Eclipse. The OMG needs a platform (a working version of what the InfrastructureLibrary in UML was intended to be) upon which MOF-based languages can be built.
So, here's what I think should be done to solve the 'separation of concerns' problem in UML. Direct the renewed interest and energy in "fixing" UML toward defining a platform of shared concepts upon which UML (and other specifications like BPMN and IMM) can be based. Implement (yes, implement!) a proof a concept that demonstrates the benefits of refactoring UML based on this platform using mechanisms from the emerging Diagram Definition and Semantic MOF specifications, and extrapolate to infer how the same benefits could be reaped by other specifications like BPMN and IMM. Then, and only then, submit responses to the RFPs for Diagram Definition, Semantic MOF (MOF 3.0?), and UML 3.0.
Some say that making changes like this will only serve to disrupt the industry, to scare away the vendors and users once and for all ("they waited forever for UML 2.0; if we propose UML 3.0, we'll lose them for good!"). That's just FUD, if you ask me and, well, desparate times call for desparate measures. The way to avoid this disruption is to make the changes in a more open and transparent way than before, for example, in a project at Eclipse. Of course, we'd try to maintain backward compatibility if at all possible or, at the very least, provide an explicit migration path for existing tools. But let the (proven) technology speak for itself. If we build it, they will come. The time is now.
Friday, October 24, 2008
Friday, October 17, 2008
Thursday, October 9, 2008
Tuesday, October 7, 2008
One of the things that came out of the Orlando meeting was the formation of a UML Roadmap working group, participation in which is open to any OMG member. As homework for today, participants were asked to come up with the top three things that they feel are wrong with UML. I'm sure many will cite complexity as a major problem with UML, but as I've said before, I think this failure is largely in the tools, not necessarily the metamodel. Rather than been passing the complexity of UML on to the end user, vendors should work smarter (not harder) to find innovative ways to make consumable products.
I don't claim to know everything about UML, but after spending several years developing and maintaining the de facto reference implementation of UML at Eclipse, I have a few opinions about what's wrong with the language. While difficult to choose only three, here's what I think my picks (mostly related to interchange) are.
1. Un-intended inheritance
The hierarchy of metaclasses in UML is deep and wide, and riddled with multiple inheritance. The designers of UML strived for a rich architecture with many reusable levels of abstraction; unfortunately, one of the side-effects of such a design is that concepts which make sense in one context (metaclass) are unintentionally inherited in another (metaclass). This is further exacerbated by package merge, which combines mutltiple flavours of a metaclass, from various contexts, into one overloaded representation.
2. Undefined namespaces for standard stereotypes and primitive types
The UML specification defines standard stereotypes for use in its higher compliance levels, but fails to define a normative URI via which the profiles containing them can be referenced. Similarly, UML defines a set of four standard primitive types, but rather then defining a model library with a normative namespace URI so that they can be reused, it merges them into the langage itself, forcing other related languages to do the same.
3. Inability to create a usable XML schema for UML
Currently, it's not possible to produce a working XML schema for UML because of its extensive use of multiple inheritance. Even with a schema produced using the XML extension mechanism a copy-down inheritance, a given UML instance document couldn't be validated, because UML doesn't make a consistent distinction between base classes and mixin classes.
Here's hoping this new working group will bear some fruit.
Wednesday, October 1, 2008
I've been spending a lot of time planning lately. So much that I've had little time to come up for air. In addition to looking at what I'd like to release in the next versions of ER/Studio, ER/Studio Enterprise Portal, and other Embarcadero products in 2009, I've been looking at what will be part of next year's incarnation of MDT as part of the Galileo simultaneous release in June.
Plans for Eclipse projects were due yesterday, and I'm pleased to say that the MDT component leads were able to pull together plans for the MDT components just in time. There's a new, standard format for plans now, which I think is a good thing. One of the nice aspects of the standard plan format is that much of a plan's content can be populated dynamically using Bugzilla queries. Projects like EMF have been doing this for years; I'm glad that more projects will now be able to take advantage of this time-saving approach to planning.
Unfortunately, one of the not-so-nice aspects of the standard plan format is that much of a plan's content can be populated dynamically using Bugzilla queries. I'm cool with the notion that a plan is a "living document", and that using Bugzilla queries allows plan items to transition from "proposed" to "committed" or "deferred" without having to update the document. But this approach also allows bugs to be added and removed from a plan without an easily consumable record of these changes or why such decisions were made. Where's the accountability? In my mind, a plan is not just a document that you can point to at the end of a release to say what you ended up actually doing - that's what release notes are for.
One of the challenges I encountered early on while trying to put together the plans for my MDT components was the desire to view a plan after a release and have it still accurately reflect what was originally planned. Depending on how the Bugzilla queries in a plan are written, it seems that items (particularly ones with version-agnostic target milestones like "M6") which are on the plan for one release could conceivably disappear from that plan and reappear on the plan for a subsequent release. In the absence of the ability to assign multiple target milestones in Bugzilla (one of the features of JIRA that really like) I realized that I needed a way to tag a bug such that it would always be affiliated with the plan for a given release.
I proposed the introduction of a 'galileo' keyword (for bugs that are part of the plan for the Galileo release), but some folks were concerned about the proliferation of keywords (because they are global elements in Bugzilla). Then Denis suggested an even better idea - a 'galileo' flag that could be made available only for projects that wanted/needed it. As it turns out, it's quite a useful thing. Not only can I now tag bugs as being committed (galileo+) or deferred (galileo-) items on my Galileo plan (in perpetuity), I also have a way of marking bugs that get fixed in the Galileo release but weren't originally on my plan (indicated by the absence of the 'plan' keyword). Thanks, Denis!
Thursday, September 11, 2008
Wednesday, September 3, 2008
Saturday, August 30, 2008
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?
Friday, August 29, 2008
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
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
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.
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
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
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.
Friday, August 22, 2008
A few weeks ago, my wife and I were at the window of a leading coffee company's drive thru to pick up the drinks we had ordered, and were somewhat surprised when they were handed to us in a tray. We explained that we had no need for a tray since there were only two drinks which could probably be managed just fine with the cupholders in our vehicle, and asked that the tray be taken back. To our dismay, the dutiful employee refused, saying that the tray had been used (despite our argument that it in fact had not). We suggested that perhaps they should ask their customers whether they would need a tray at the time the order is placed, but were told that, due to a new policy that was being enforced, employees were not allowed to ask that kind of question. We asked how, then, environmentally conscious customers could avoid wasting trays that they have no intention of using, and the response was that customers should remember to specify explicitly that they will not need a tray when placing their orders. Upon asking what we were to do with a tray that we clearly had no use for, we were directed to a blue recycling box several feet ahead of us in the drive thru... which, not surprisingly, was overflowing with "used" drink trays. Stupefied, we got out of our vehicle, picked up the trays that were strewn about, added ours to the pile (after stomping on it a few times), and pulled away, questioning whether that coffee company deserved our business in the future.
Just today, I was waiting in the drive thru of another leading coffee company (this time, a Canadian one) with my regular Friday lunch crowd, and was drawn into a recurring argument about minimization of greenhouse gas emissions via idle reduction. One of my friends has always maintained that an anticipated idle of longer than ten seconds justifies turning off the engine and restarting it. Another friend argued that, as he learned recently, the threshold is actually 60 seconds. In the midst of the discussion, they both stopped and asked whether vehicles needed to idle at all in drive thrus. They then proceeded to put the car in neutral, turn the engine off, get out of the car and, I kid you not, push the vehicle along, despite puzzled stares from patrons inside the restaurant and obvious looks of frustration from the drivers of the vehicles behind us.
Both of these are examples of fastidiousness. As with all things, I think it's important to have standards, and it often pays to be fastidious, especially in a role like mine. But sometimes we need to question whether those standards make practical sense...
Thursday, August 21, 2008
A program manager at Embarcadero is a cross between a product owner (in the agile sense) and a project manager. We "own" the user experience; that is, we determine how requirements get turned into functionality that appears in our products. Organizationally, as a program manager, we're part of two triads.
As part of the external, or customer-facing, triad (the "cone of silence"), a program manager works with a product manager (PM) and a product marketing manager (PMM) to gather requirements, assess the market, validate product roadmaps, and analyze the competition. Being a keelboat racer, I like to think of this triad as as the strategic part of my job. In sailing, strategy is what you'd plan to do to win the race if there were no other boats on the course. For more insight into this side of the business, check out the interview that Greg did recently with my PM (Jason Tiret) and PMM (Josh Howard).
As part of the internal, or engineering-facing, triad, a program manager works with a software development manager (SDM) and a quality assurance manager (QAM) to deliver a product which satisfies its requirements, on time and with quality. I like to think of this triad as the tactical part of my job. In sailing, tactics is how you actually make it around the course when there are lots of other boats out there trying to do the same thing. There are typically two kinds of software projects: time-based (where the product is released on the scheduled date, even if the scope needs to change to do so) and content-based (where the product is released with the planned content, even if the date needs to change to do so). At Embarcadero, our projects are of the former kind, and "he who ships, on time, speaks".
Oh, one more thing. We're always looking for good people, so if this role sounds attractive to you, drop me a line. ;)
Wednesday, August 20, 2008
In my opinion, tool vendors have failed. MDD is a sham, at least the way it has been employed in tools to date. Rather than contorting the artifacts, interface, and user (!) to meet the needs of the model or modeling language (UML, DSL, or otherwise), tools should be applying MDD (and visualization in general) where it makes sense to bring about real productivity and result in better quality software. I know there’s increased productivity and quality to be gained from modeling because I (and many others I know) have experienced it. But then I tend to be more accepting of the whole “no pain, no gain” mentality than most users. Tools need to evolve to make consumption of this stuff painless.
What's interesting to me, despite reports of UML's decent into darkness, is that a once long-time detractor of UML has recently changed its tune and started incorporating support for it into one of its tools. Maybe this really is the beginning of the end. UML is dead! Long live UML!
Tuesday, August 19, 2008
Looking back at how we got to this day, I'm reminded of a major reason why I came to Embarcadero in the first place - the people. A lot has been, and will be, said about the many virtues of this product. But when I think about it, I can't help but focus on the people that persevered through many challenges so that this product could see the light of day. This is what the word "team" is all about. w00t!
Friday, August 8, 2008
Or is that FLOSS? The product I'm about to release is based on an open source platform that, believe it or not, isn't Eclipse (gasp). Their approach to open source, dubbed "professional open source", is somewhat... different from that of Eclipse. It seems ironic (at least to me) that a platform which boasts freedom from closed, proprietary software would switch to a more restrictive license mid-stream... it's almost like it was part of the grand plan all along.
So what does 'open source' really mean, then? According to the Open Source Initiative (OSI), which officially owns the definition, the distribution terms of open source software must comply with ten criteria. The OSI maintains a list of the open source licenses which have successfully gone through their approval process and comply with these criteria; both EPL and that other license are on it, as are many others. So what's the big deal? Just ask one of the customers or OEM partners who, if they want to adopt the next major version of said platform, may be forced to decide between releasing some of their software under the new open source license and purchasing a commercial license for the platform...
Wednesday, August 6, 2008
Rather than repeat everything that Greg said, I'll focus on a lesser known aspect of one of the portal's main features. Despite the incredible value of its shared reports, explore dashboard, ad hoc query interface, and administration console, perhaps the most popular (and most scrutinized!) feature of the portal thus far has been its search capability.
One of the cool things (at least in my mind) about the search capability of the ER/Studio Enterprise Portal is that, like other Web-based search interfaces, it can be integrated into the search bar of your favorite browser. I'll walk through the steps to do this for Internet Explorer as an example.
1. Select the 'Find More Providers...' item from the search bar's drop-down menu.
2. From a different browser window, type 'TEST' into the search box of the ER/Studio Enterprise Portal and hit
This will open a dialog asking you to confirm that you want to add the search provider (click 'Add Provider').
Tuesday, August 5, 2008
I don't mention Ian above because, alas, Ian has decided to move on to another pasture (I don't say greener since, as Ed often says, the grass on the other side only looks greener because you're looking at it from an angle). So, things aren't exactly status quo around here, for various reasons.
I'm glad. Not about Ian leaving, because we'll really miss him, but about things not being status quo. The problem with status quo is that it tends to stifle innovation. I get frustrated (and did just recently, in fact) when faced with a situation where "our users have come to expect that it works this way, and if we change it, we'll never hear the end of it". I'm sure many of you have been in the same boat. There's no doubt we'll be facing scenarios like that with e4.
There's this old story about a woman who always cut the ends off a roast before putting it into the oven. When asked why by one of her kids, she realized she didn't really know - her mother had always done it that way. The next time she saw her mother, she asked the same question, and her mother explained that she had to because she didn't have a large enough pan to fit a whole roast.
The real challenge, IMHO, is to face opposition in the name of progress. Sometimes we need to consider new, potentially better, ways of doing things. That's what innovation is all about, after all...
Friday, August 1, 2008
So where have I been? So much has happened since my last entry, it's hard to remember it all...
- I participated in the e4 Summit in Ottawa. I know, old news, but now there's an actual proposal for the e4 project. What area will you be contributing to?
- I had a chance to meet with my CodeGear brethren in Scotts Valley for the first time, and I'm very excited about what we'll be able to accomplish now as a combined company. Stay tuned!
- I co-hosted the second of two Eclipse/OMG Symposia in Ottawa, and I'd venture to say that it was even more fruitful than the first!
- I played a part (as lead of the MDT project) in ensuring that Ganymede, in all its glory, was successfully released. w00t!
- I took a much needed vacation (they're never long enough!) - one week camping in New Brunswick and a second week at a chalet in Charlevoix. Oh, the stories...
- I helped orchestrate a summit for Embarcadero's Software Consultants in Toronto. What a great team!
- I did a deep-dive on one of my products that is about to release in the coming weeks.
Friday, May 9, 2008
Can you see what’s wrong with this picture? The intent of the modeler was to express the fact that a bicycle has two wheels, one of which is the ‘front’ wheel (from the perspective of the rear) and one of which is the ‘rear’ wheel (from the perspective of the front). If you think about what an instance of this model might look like if it were mapped directly to classes and fields in a programming language like Java (using EMF, for example), you’ll realize that each instance of the 'BicycleWheel' class would need a reference to the bicycle’s other wheel, but also to itself – in order to satisfy the multiplicities (both association ends are required, i.e. they have a lower bound of 1), each wheel must reference both the front wheel and the rear wheel of the bicycle; obviously not a desirable result. In fact, it’s currently impossible to create a valid instance of this model using Java code generated by EMF, since an attempt to set a reference from the front wheel to itself (to satisfy the multiplicity) would result in its reference to the rear wheel being discarded.
What’s interesting (at least to a modeling geek like me) is that this redundancy could, in theory, be eliminated simply by making the association ends (the 'frontWheel' and 'rearWheel' properties) navigable owned ends. What does that mean? Well, in UML 2.x, it’s possible to designate a navigable association end as being owned either by the end type (as in the diagram above) or by the association itself. In the latter case, a mapping to Java would require a class to represent the association; now, in addition to there being an instance of the 'Bicycle' class and two instances of the 'BicycleWheel' class, there would be (at a minimum) an instance of the class representing the association which, in turn, would only need to reference each of the wheels once to satisfy the multiplicities. Ed and I have been giving some thought as to how owned association ends might be mapped to Java using EMF, but this special case makes me think that we still don’t have it quite right – see below.
I think there would still be an issue here with respect to navigability, because given a bicycle wheel, it's supposed to be possible to navigate to both the front wheel and the rear wheel (according to the model). Would this require redundant entries in the maps? What if a front wheel is passed as an argument to the 'getFrontWheel(BicycleWheel)' method? What if the owner of the bicycle rotates its wheels every season? I’m starting to wonder whether it should be considered valid at all to model a bidirectional association with required member ends and one end type. In the absence of an answer to that question and/or EMF support for mapping navigable owned ends to Java, there are a number of ways the model could be changed and still (or better) express the original intent. The model we ended up going with (or, rather, a reasonable facsimile thereof) is below. What might you have done differently?
Wednesday, May 7, 2008
Friday, May 2, 2008
One of the challenges of developing an OMG specification is the lack of tooling support for CMOF (Complete Meta Object Facility) models. This was one of the many topics that were discussed during the “Mega Modeling Mania” BoF (and again during the Eclipse/OMG Symposium) at EclipseCon in March. Based on those discussions, there does appear to be some demand for tooling that will make it easy to create, serialize (in CMOF-compliant XMI), and document metamodels that form the basis for open specifications. In response, I agreed to coordinate a proposal for a new component in the MDT project (tentatively dubbed “Metamodel Specification Tools”, or MST) to provide this kind of tooling at Eclipse.
The idea would be for the MST component to customize and/or extend the existing (or forthcoming) UML editors (primarily for class and package/profile diagrams) to expose CMOF concepts which are missing in UML (like identifiers, namespace URIs, and XMI tags), leverage the CMOF (de)serialization support that was introduced in the UML2 component as part of the Ganymede release, and provide a mechanism for generating a specification (or at least a decent boiler plate for one) directly from the metamodel using BIRT. Of course, it might also be desirable for the component to automate the mapping between a metamodel and its profile representation (if there is one) and possibly to make use of the Eclipse Process Framework (EPF) to document and coordinate the specification development process. If you’d be interested in contributing to such a component, I’d like to hear from you!
Tuesday, April 29, 2008
Have you ever been asked the question, "What planet are you on?" I know I have... Going forward, I'm afraid I'll have to confirm peoples' suspicions when I respond, because I'm actually on more than one planet now that Embarcadero has launched its new blog aggregator, Planet Embarcadero. It makes me wonder whether I should start calling my blog a "planetesimal" instead of a "pob"...
Monday, April 28, 2008
Wednesday, April 23, 2008
Speaking of fests, Embarcadero recently launched db FEST, a series of challenges that, in addition to introducing the world to its professional grade database tools, will provide each participant with a free T-shirt. I’ve already got mine, and I have to say that they’re pretty cool. Have you taken the challenge?
Another occasion that’s been on my mind lately is EclipseWorld 2008. Submissions were due on April 16, so I spent some time last week putting together a couple of abstracts for technical classes. One of my submissions, entitled “RESTful EMF”, would highlight the ways in which EMF supports the design principles of REST, and identify some best practices for working with resources using EMF. This is especially pertinent, IMHO, given the many enhancements the EMF team has made as part of the upcoming Ganymede release to support things like URI handlers and content type definitions, among other things.
Friday, April 11, 2008
I personally think the symposium was a success. Admittedly, we didn’t have nearly enough time to discuss the issues that were raised (which, in my mind, is better than having no discussion at all), and the participants might have felt a greater sense of purpose had there been an “official” OMG representative in attendance (the fact that the OMG Technical Meeting took place in Washington the week just before EclipseCon made this infeasible)… but I think the level of participation and the quality of the presentations were a testament to the fact that people are indeed committed to a future that involves more collaboration between Eclipse and the OMG. Of course, this was just the first of two symposia being jointly hosted the two organizations – the second one is scheduled to take place at the OMG Technical Meeting in my home city on Wednesday, June 25. I heard a rumor that there might also be an Eclipse DemoCamp that same week, so there will be more than one reason to join the party in Ottawa. Hopefully I’ll see you there (here)!
Friday, April 4, 2008
What is it that makes a community really successful? Is it not a critical mass of members that are committed to doing The Right Thing? Do the members of a community not get to decide what The Right Thing is? What if those members don't see eye to eye? Are the inevitable conflicts that arise not actually good for the community in the end? Is conflict not a necessary prerequisite to growth?
Projects at Eclipse have a responsibility to build and be responsive to three communities – contributors/committers, users, and adopters. What happens when what’s in the best interest of one of those communities is at odds with what’s in the best interest of another? I had to face a situation like this during the Birds of a Feature session that I moderated recently at EclipseCon 2008. The current leadership of the UML2 Tools component stated that one of their goals, in attempting to address the needs of the adopter community, was to regulate the commoditization of UML tooling at Eclipse. Many of the attendees seemed surprised to learn this, and made it clear that while working towards eventually being able to completely generate tooling using GMF is a noble pursuit, what the user community really needs now is a set of robust, usable editors for UML models. I’m quite happy with outcome of the session – representatives from at least four different parties (so far) have offered to pool their resources (nearly three times as many as the number of committers on the current component) in building a complementary set of exemplary end-user UML tools at Eclipse (most likely as part of a new component of the MDT project). Some may argue that this will only serve to further add to the confusion that already exists within the Modeling project, but I’m not sure I agree. Regardless, I’m encouraged by the prospect of what appears to be a true community-driven initiative to do The Right Thing at Eclipse...