CIN: Demo Video

01-03-2012 | Category: Demo | Tags: Cloud Computing, Ruby

In addition to my former article about the CIN Cloud Infrastructure DSLs, here is a video that interactively explains what CIN is about and how it works.

Read more...

Entity Alias Pattern

27-02-2012 | Category: DSL Pattern | Tags: DSL, Patterns, Notation Patterns, Ruby

In a DSL, it is vital to use appropriate domain-specific names for operations and objects. Consider that you want to use built-in classes or another library in your DSL expressions. Often, the operations and objects of these external libraries are not communicating what you need in your DSL. Either this forces you to abandon the external library and write part of it for your DSL, or you risk to "pollute" the namespace of your DSL.

But how to rename built-in classes and external libraries to be consistent with the domain?

Because tight integration of host language and DSL code, using appropriate names, is crucial.

Therefore, declare modules, classes, and methods with domain-specific names that refer to their host language or library counterpart.

Then, you do not need to pollute your DSLs vocabulary.

Read more...

CIN: Cloud Infrastructure DSLs

23-02-2012 | Category: Programming | Tags: Cloud Computing, Metaprogramming, Ruby

Imagine you are a server admin and need to create a complete IT infrastructure consisting of an application server, a database server, and a backup server. First, you need to setup the servers, physically or virtually. Second, you need to install an operating system of your choice. Third, you select, configure, and install the needed applications.

No doubt, these steps are easy manageable for experienced admins. Yet, they are time consuming. And if you need to prepare the larger infrastructures over and over again, for example for testing purposes, this becomes a tedious, repetitive task.

In this post, I present my answer to this challenge. In one of the biggest case studies during my PhD, two students and me developed several DSLs that automatizes the creation of complete IT infrastructures. I shortly present each of these DSLs, and show you how to use them.

Read more...

rbFeatures: Feature-Oriented Programming in Ruby

05-02-2012 | Category: Programming | Tags: Paradigms, Feature-Oriented-Programming, Metaprogramming, Ruby

Feature-Oriented Programming is a paradigm that addresses the configurability of your application. It helps you to modularize your source code according to its functional features. Features can be as coarse granular as complete modules or classes, or as fine granular as statements inside method bodies.

In this post, I present rbFeatures, an extension to the Ruby programming language that enables Feature-oriented programming. With the simple expression Feature.code you can encompass any Ruby code – complete classes, methods, or individual source code lines – to mark what belongs to a feature. Then you just specify which features your program should activate, and you receive an appropriate customized program.

Read more...

FOSDEM 2012 - The Free and Open Source Developer Conference in Europe

05-02-2012 | Category: Open Source | Tags: Conference

The FOSDEM is a platform, forum, and gathering of open source enthusiasts around the world. This weekend, developers from all over the world are flocking to Brussels for this meeting. I visited some talks on the 3rd February, Saturday, and summarize what I learned.

Read more...