Recent updates of the Xtext website

January 7th, 2010

In conjunction with the Eclipse M4 release of Xtext its website has been updated, too. We wanted the new features to reflect how lively the Xtext project is by just looking at the website. At the same time, they should not scare away new visitors but be informative and subtle.

In the end we came up with: Some statistics of the project activity (1), a news aggregator (2), and a condensed (53 secs) introductory screencast (3).

The new Xtext website displays commit statistics (1), recent blog posts plus other web content (2) and a brand-new screencast (3)

The updated Xtext website displays commit statistics (1), recent blog posts plus other web content (2) and a brand-new introductory screencast (3)

Our project website attracted some attention since it has been launched this June. The AMP project reuses its layout and Denis from the Eclipse webmaster team embraces the results, too. From there, the bugzilla 235828 discusses whether the Xtext website should serve as the standard template for new Eclipse projects.

Currently, you can see such an “empty Xtext website” at eclipse.org/default - how cool is that!

The Bells and Whistles

Even if Denis, Matt & Karl will provide a standard template based on the Xtext website you might want to adapt some of our additional features, too. To support you in doing so, I will summarize the underlying technology of the recently introduced features.

To produce the commit stats (1) the page leverages the commit statistics of Xtext and renders the polished data with the Google Chart API on order to match our visual expectations.

The news section has been built with Yahoo Pipes to scan, filter and aggregate different web resources asynchronously. You can even subscribe to the news feed directly to always stay up to date.

For both the commit stats as well as the news section Denis allowed me to install a cronjob that fetches and stores the results independently from the http requests.

The screencast has been recorded and edited with ScreenFlow. Also, thanks to Sven for the audio equipment!

Let me know if you want me to provide more details.

Retrospection of the iPhone Developer Conference 2009

December 7th, 2009

The German iPhone Developer Conference in Cologne (01-02 December) was an exciting event that started with a very informative keynote by Maximilian Reiß who elaborated the tide of iPhone events of the last years. From there, nearly 200 attendees were invited to join business-related presentations and developer-oriented talks on separated tracks over the next two days.

Nearly 200 attendees, 29 talks on 2 days and 3 winners of the best German iPhone App contest at the iPhone Developer Conference

Nearly 200 attendees, 29 talks on 2 days and 3 winners of the best German iPhone App contest at the iPhone Developer Conference in Cologne

I had the chance to introduce the iPhonical project that applies model-driven techniques to produce parts of iPhone applications automatically. The presentation first describes a way to separate generated code from manually written source with the Objective-C concept of categories. From there, I demonstrated that even with powerful frameworks such as ObjectiveResource (an adapter to connect iPhone apps with Rails applications) one can benefit from code generation. With the help of the iPhonical DSL (implemented with Xtext) keeping data-centric classes in sync with the web application was way easier than coding them by hand.

The iPhoneDevCon was a very informative event. Many passionated developers or leads, growing studios and enthusiastic marketing representatives shared their ideas and during the breaks you could easily discuss different viewpoints of today’s opportunities and approaches.

Apart from the 3 winners of the “best German iPhone app” (according to iPhone & Co) a brand-new iPhone and Mac magazine, mac-developer, has been announced. As the name suggests it concentrates on developers and its first issue is quite promissing.

Links

iPhonical at the second German iPhone Developer Conference in December 2009

October 25th, 2009

This December will start with two exciting days when the German iPhone Developer Conference takes place in Cologne. With 28 talks about business and engineering on two tracks the second iPhoneDevCon celebrates the second anniversary of the iPhone itself. Not by accident Maximilian Reiß picks up this coincidence and gives a résumé of two eventful years with apple’s successful device in his keynote.

My talk about model-driven iPhone development in general and the open source tool iPhonical in particular ranks among many other promising talks for developers.

Visit the iPhoneDevCon in Cologne on December 01-02, 2009

Visit the German iPhoneDevCon in Cologne on December 01-02, 2009

If you are planning to attend please contact me in advance. Being a speaker I can give away a limited amount of promotion codes. This might safe you some expenses and allows you to buy me a drink in return ;)

EWiTa 2009 in retrospect

October 24th, 2009

Yesterday’s first Elmshorner Wirtschaftsinformatiktag at the Nordakademie was a worthwhile event. As expected, the lineup arranged by Hinrich Schröder and Frank Zimmermann motivated controversial discussions. Hartmut Herde asked critical questions about MDSD whereas I outlined how MDSD can be applied successfully with the needed knowlege at hand. Anyway, I fully agree with his opinion and enjoyed listening. Try to read his paper in the proceedings if possible.

Frank Zimmermann explained how Eclipse Modeling and Xtext in particular can be used to produce SAP applications. He even gave a live-presentation of the tools his students developed during a research project.

Simon Zambrovski took some photos at the EWiTa

Simon Zambrovski took some photos at the EWiTa

Since the slides I used at the EWiTa were an excerpt from a former talk at the Code Generation 2009 in Cambridge I will only list the related talks I mentioned in the end:

Links

Eclipse Modeling Days 2009 in New York and Toronto

October 20th, 2009

This November you are invited to learn more about modeling with Eclipse at the Modeling Days in New York (November 16th) and Toronto (November 18th). Both one-day long events will get together experts of different modeling domains and will give you the chance to get in touch with them.

Learn more about modeling with Eclipse

Meet us at the Eclipse Modeling Days in New York and Toronto

Personally, I am looking forward to the talks

to learn more about two exciting topics I am curious about. Of course, itemis will be there as well. Make sure you don’t miss

Head over to the wiki page to browse the abstracts and register for one of these free events or read some other announcements.

Looking forward to seeing you over there!

Focus on Modeling at the first Elmshorner Wirtschaftsinformatiktag

October 14th, 2009

On Friday, October 23rd the first Elmshorner Wirtschaftsinformatiktag near Hamburg will open its doors to elaborate on the topic “Modeling the Business”. I will give a talk about some best-practices itemis applied in MDSD projects based on Eclipse Modeling. An ongoing project at Deutsche Börse AG offers insights in how even established and widely known modeling techniques such as UML or code generation can be optimized with some pragmatic adjustments.

First Elmshorner Wirtschaftsinformatiktag at the Nordakademie near Hamburg

Elmshorner Wirtschaftsinformatiktag at Nordakademie near Hamburg

Other talks such as

show great promise for interesting discussions. Please note that the aforementioned talks as well as every other talk will be held in German (I freely translated the titles for you).

There’s no conference fee and the organizers will be happy to welcome you at the Nordakademie if you register before October 23rd. So, if you happen to be around Hamburg that Friday don’t miss the 1st EWiTa!

Burlington Ducky iPhone App

October 2nd, 2009

The people at itemis provide a vast range of skills beyond model-driven engineering. For me, this versatility yielded an iPhone project in cooperation with Weischer Mobile and phi mobile media where a funny marketing app had to be delivered. The design concept presented to Burlington drafted a line (water), a circle (duck) inside a rectangle (iPhone) and an arrow (movement). Some bullet points completed the requirements of the part I was asked to implement. Even though the final app offers some more features such as a movie, funny photo tricks and wallpapers, I was responsible for the ducky only. This is what I came up with:

Under the hood, the animated ducky as well as the illusion of water is based on a hand-crafted physics engine. The water is implemented as a particle-based fluid simulation. Matthias Müller published a paper with the same title and great slides for SIGGRAPH 2007 as a starting point if you are interested in this topic. The ducky itself interacts as rigid body with these particles where buoyancy had been implemented explicitly. Play with Erik Neumann’s demo to have fun with rigid body physics. These concepts had been adjusted and combined with the accelerometer and touch sensors built into the iPhone to let the user interact with the simulation.

Different techniques had been applied to realize the illusion of a ducky swimming in water

Different techniques had been applied to realize the illusion of a splashing ducky

Having just dots and circles as one could look at the physics engine was obviously not the ultimate goal. From the raw data of the simulation the water surface area had to be derived, the ducky had to be put in shape and some smooth animations and sounds were needed to round out the illusion of an interactive bathtub.

Without going into every detail I want to emphasize that the iPhone is not a MacBook Pro. Where you traditionally use marching cubes/squares to convert distinct particles into a cohesive area the processing power of mobile devices requires you to squeeze out every cycle by thinking outside the box and taking advantage of hardware acceleration. In this case, OpenGL ES offers a variety of techniques including framebuffers, blending functions and alpha tests to perform the needed steps by the GPU.

metaball technique from particles using blending and alpha functions

metaball technique from particles using blending and alpha functions

Some other findings during the project include the unreliability of sensor data as well as users’ unpredictable behavior. Be aware that humans and machines act differently under certain circumstances. For applications where the interaction between those both is crucial you should do usability tests early, often and extensively before delivery, again.

The iPhone is different from other mobile devices or the emulator. Generally, floating point arithmetic will be evaluated more efficient than fixed-point. Some GPU operations are executed faster on the device than on the emulator, others are of poor performance though. Therefore, you should profile on the device to test different approaches of your design regularly. And: You must not forget to do so with sound enabled since sound processing might take more than 30% of your overall processing power.

So, go ahead and grab your version of the Burlington Duck on the app store:

If you are interested in details (e.g. “unpredictable human factor”, production of the screencast, etc.), please let me know and use the comment function of this post.

Profiler for Xpand/Xtend/Check

September 25th, 2009

A polished version of the announced profiler will be part of the upcoming 0.8.0 M2 release of Xpand next Tuesday. It acts as a callback for any expression-based workflow component to measure the execution times of Xpand templates, Xtend functions and Check validations. Also, it constructs a call-graph model to introspect callers and callees and their corresponding call times. From this model you can then generate an HTML report as part of your generator workflow.

Output of the profiler from the Xpand Sample-Project

Output of the profiler from the Xpand Sample-Project

If you stay with the text-based GProf output format (another option to dump the collected data) you can also use tools like Gprof2Dot to visualize hot spots with colors and callees as painted connections.

Same workflow visualized with Gprof2Dot without reduction of nodes with no impact

Same workflow visualized with Gprof2Dot without reduction of nodes with no impact

The updated documentation explains how you can integrate the profiler into your workflow. Also, the Xpand Sample-Project Wizard creates a second workflow “generatorWithProfiler.mwe” where I have generated the above results from.

In a real-world project we were able to reduce the execution time of a workflow that originally took nearly half an hour down to less than 3 minutes using an earlier version of this profiler. It can also help you detecting unwanted indirections and recursions.

openArchitectureWare working group at Eclipse

September 21st, 2009

Over the weekend we have finally announced openArchitectureWare’s move to Eclipse at the respective websites. You will now find a landing page at openArchitectureWare.org that announces the move. The letter of intent summarizes the ideas behind the move for the loyal oAW 4 community.

openArchitectureWare moved to Eclipse

openArchitectureWare moved to Eclipse

The homepage of the working group at Eclipse offers links to ready-to-use distributions and we are working on update sites, too.

I want to thank Peter and Karsten for their help with this. Hopefully, this public notice will encourage even more users to migrate to the more stable and feature-rich version at Eclipse. Again, if you need professional support around oAW itemis will be glad to assist you.

Xtext goes SAP

September 11th, 2009

In a recent cooperative project between the Nordakademie, cimt AG and itemis AG we explored the possibilities of model-driven approaches in combination with domain-specific languages in the field of enterprise software (read: SAP). A group of nine students used Xtext and other Eclipse modeling components to express bid estimates of ocean carriers to derive and deploy database tables, Dynpros and ABAP code with a one-click solution.

MDSD process shortens development cycles where different estimates are needed by the customer.

MDSD process shortens development cycles where the customer expects specific applications to calculate different classes of estimation bids

My work as the “technical facilitator” was mainly enjoying the progress and providing alternatives during the sprint review and planning meetings (yes, the group decided to go with Scrum). Without excessive help the students were able to develop a DSL that is able to

  • make simple and complex existing data types of the SAP system available to the editor,
  • express business formulas based on variables of these types,
  • provide a comfortable editor that checks many constraints and guides the expert, and
  • describe layout of the UI based on these values.

From this input some Xpand templates generate

  • a testbed for these formulas that allows domain experts to capture their expectations within a spread sheet application,
  • database table descriptions to store estimates for reference,
  • a dynpro frontend including search masks to fill in the needed dimensions and displaying results in real-time, and
  • the needed ABAP code to perform the calculations as well as glue code for the SAP system.

Prof. Frank Zimmermann published a short description of this project in the in-house magazine Capusforum of the Nordakademie (German). There will be more material on these results soon: The students are preparing a publication addressing MDSD for Enterprise systems in a larger German magazine. The cimt AG and itemis will use this project to demonstrate the possibilities as well.

For me, this research project is just a proof of concept. I am sure the vast majority of SAP projects can benefit from MDSD principles. Thanks again to Prof. Zimmermann from the Nordakademie, Michael Neuenstadt, Michael Flemming as well as Dr. Kuhlmann from cimt AG and last not least the students. It was a pleasure to work with you!

If you have detailed questions -technical or commercial- don’t hesitate to contact me or the responsible sales representative, Asaf Ikram.