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.
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.
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.
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.
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.
Essays, programming examples, and views on interesting things.
- CIN: Demo Video
01-03-2012 | Demo
- Entity Alias Pattern
27-02-2012 | DSL Pattern
- CIN: Cloud Infrastructure DSLs
23-02-2012 | Programming
- rbFeatures: Feature-Oriented Programming in Ruby
05-02-2012 | Programming
- FOSDEM 2012 - The Free and Open Source Developer Conference in Europe
05-02-2012 | Open Source
- Superscope Pattern
18-01-2012 | DSL Pattern
- Seamless Constructor Pattern
22-12-2011 | DSL Pattern
- Method Chaining Pattern
12-12-2011 | DSL Pattern
- Keyword Arguments Pattern
10-12-2011 | DSL Patterns
- Global Day of Coderetreat
07-12-2011 | Event
- Block Scope Pattern
04-12-2011 | DSL Patterns
- Pattern Structure
02-12-2011 | Patterns
- The RSpec DSL
29-11-2011 | DSL Patterns
- The Alexandrian and the Structured Pattern Form
27-11-2011 | Patterns
- How to build DSLs in Ruby
26-11-2011 | DSL
- TAP is a better 'Hello World' - Or The Challenge of Web-Application Development
20-05-2010 | Programming
- Understanding Metaprogramming as Scope Manipulation
14-05-2010 | Programming
- Combining and Testing a joint Ruby Rack and Sintra Application
28-03-2010 | Programming
- Short Taxonomy of Domain-Specific Languages
08-03-2010 | DSL
- Ruby Rack Using Objects and defining Middlewares
01-03-2010 | Programming