Who’s On Phirst

Official blog of Phurnace Software.

Casey Marshall's Blog
Description:
Phurnace welcomes our new developer, Casey Marshall, to the team. Follow him at http://twitter.com/cmars.

Posted by: Casey Marshall on

Summer is here, which means it's time to cool off in the San Marcos river and escape the Texas heat. It's also time to download a new Eclipse -- Eclipse Galileo (3.5) released today. Phurnace Deliver builds on Eclipse technology, so I follow the latest developments in the community.

I want to highlight just a few of the features that have impressed me the most so far in Galileo, which has much general appeal for Java & web developers.

Eclipse Memory Analyzer
I've been using the Eclipse Memory Analyzer (MAT) for several months now, and it's helped me through some tricky memory leaks. MAT provides detailed memory usage reports and charts from a Java heap dump (created with jmap, for example). In the latest MAT release for Galileo, MAT has added stack frame information to the memory analysis -- you can more easily find where the leaks are, in addition to what's leaking. The new support for IBM JVM heap dumps could prove useful for diagnosing leaks, even in a live WebSphere instance. Once you get Galileo installed, here is a guide on getting started with the latest MAT, with some nice screenshots of the new stuff!

XML Tooling
If you muck around at all in large XML files (IBM WebSphere Portal snapshots come to mind), the new Web Tools Platform (WTP) release is reason enough to download Galileo. You can now test XPath queries directly on XML documents open in the editor and jump to the matching nodes. This has all sorts of potential for XSLT and custom XML parser development, but most importantly, it can be a powerful navigation tool. Read more in Eclipse Galileo: XML gets some love!

And More...
There are over 33 projects included in the Galileo release. For an overview of what else is included in Galileo, check out Eclipse Galileo - A Quick Glance on DZone and Eclipse Galileo Feature Top 10 List on EclipseSource.

In Eclipse GalileoEclipse
Comment (0) Read More...


Posted by: Casey Marshall on

At Phurnace I'm leveraging the Eclipse Modeling Framework (EMF) to streamline our development and add some exciting new features. EMF was difficult to get to know at first, if only because the modeling terminology seemed new, strange, and kind of dry. The time invested in learning EMF was well-spent; once I "got EMF", it seemed pure genius.

My initial impression of modeling and model-driven architecture was kind of comical too; I imagined (with great disdain) this self-proclaimed "enterprise architect" in an ivory tower, trying to solve all manner of problems by dragging UML diagrams around. "Of course 'real software development' is never so simple!", I'd think. Like so many other technologies, modeling is heavily diluted with enterprisey buzzwords, and there probably *are* architects in ivory towers somewhere trying to generate all their code from UML tools... but this is only a comical extreme of the modeling spectrum.

For example, consider the popular web framework Django. Django, like so many other of the dynamic-language web frameworks, provides an object-relational mapping library in which you first define... models in your application. These frameworks introspect on your definition of the models to generate parts of your web application automatically for you. "Scaffolding" in Rails, the "admin" interface and newforms in Django all demonstrate a "model-driven architecture".

As far as I'm concerned what EMF does for the Eclipse platform (or elsewhere -- EMF is not limited to the Eclipse platform) is conceptually no different. Just as Django dynamically generates forms and content based on the structure of your models, EMF can generate a UI for interacting with your models and much more. Knowing this simple fact would have helped me at a time I was struggling to learn Eclipse RCP and considering EMF; it was not entirely clear to me at first, as an outsider, what EMF exactly was, what it could do for me, and why I should use it. It would be silly and somewhat inaccurate for EMF documentation to say "EMF: It's kind of like ActiveRecord!", but in a way, that's how I've come to know & relate it.

Of course, EMF can do much more than a typical web framework's model layer. The tooling is highly adaptable to custom development workflow demands; you can customize your generated model code, or avoid code generation altogether. Models can be defined with Java code, XSD, Ecore, or dynamically at runtime. EMF brings a powerful level of introspection to modeling, since the definition of your model (Ecore) is itself a model that can be manipulated in the same way. In this respect, EMF is "turtles all the way down".

In other news, I'm looking forward to the upcoming Galileo release of Eclipse (Eclipse 3.5). I've already had a chance to try a few of the new features (native Cocoa & 64-bit Java support for OS X, improved PDE tooling) and it's looking great. Last week I became a Friend of Eclipse, a great chance to contribute back to a community that's given me so much -- plus I get early access to releases and an exclusive, blazing-fast download mirror.

In Eclipse Modeling FrameworkEclipseDjango
Comment (0) Read More...