How to realise my ultimate goal, building software without software developers

Posted January 22nd, 2012 by Antoine and filed in Home Automation, Model Driven Software Development

Maybe it’s time to show more about the projects I’m working on at night and in the weekends in relation to my ambitions. As many people know, I’m working on some applications for smart phones for controlling home automation equipment. What some of them know is that the real product behind these applications will be a framework for home automation software. This framework will allow home automation software to be extended easily with support for additional devices, protocols and cloud based services. What nobody (except for myself) knew till now is the real intention behind these projects, developing valuable assets that can be used to realize more ambitious projects.

My projects can be compared with a multistage rocket. To bring one project on a higher stage, it needs anther project to lift on. My home automation projects are projects that are needed to bring other projects of myself to a level they can be launched. From the first stage off launch, untill the last launch, the rocket will look like:

  • Smart phone application for controlling home automation equipment
  • Home automation framework
  • Offering custom build home automation software at licence base
  • Automated software product line for home automation software
  • Platform for creating automated software product lines
  • Platform for automated software creation by using knowledge from expertise systems
  • Automated software creation using AI algorithms

Each stage will result in it’s own products that are part of a much more ambitious vision. Unlike a multistage rocket I hope that jettisoned stages will grow further in a way that they will profit from the results of following stages instead of burning into the atmosphere. However, they are primarily meant to serve a higher purpose. For example the smart phone application will be build in a way that it can grow with the framework. Thereby, the smart phone application will influence the design of the framework. The framework will be designed in a way that it extensions can be made at minimal efforts, making costs more predictable and making it possible to offer custom build software at licence base. And this way it will go further.

The ultimate goal will be a situation in which programs (simple as well as complex) will be created from scratch without the involvement of software developers. This sounds like science fiction, but I really believe it will be possible. Of course it will take us many years to get there, but it will provide us with enough challenges for the next decades.

I will write a blog post about each of the stages. By doing this, I hope to get in touch with people who share my vision and also see opportunities.

Building a low cost network enabled RGB-controller using an Arduino and eControl

Posted January 15th, 2012 by Antoine and filed in Arduino, Home Automation

Recently I build a prototype of a RGB-controller which can be controlled over a home network using eControl (a smartphone application I’m building for controlling home automation devices). The RGB-controller is based on an Arduino with network shield, which should proof that a ‘Internet of things’ with low cost devices is realizable right now.

The Arduino uses a ATmega328 which is a 8bit microcontroller with only 32KB of flash memory and running at a max of 16MHz. The ethernet shield is using a simple W5100 controller, which means that all TCP/IP protocol handling should be done by the micrcontroller. So I’m not cheating by using an ethernet controller with build in webserver. ;)

To compare, the average home router (sold around 25 Euro) contains a 32bit microprocessor running over 100MHz and contains at least megabytes of flash. The average smart phone (sold around 200 Euro) comes is around1GHz containing gigabytes of Flash. For the people not knowing what I’m talking about, it will be hard to find cheaper hardware then the hardware I used for this prototype.

The prototype includes the following functionalities:

  • Automatically obtaining an ip-adress from an home router using DHCP
  • Advertising the device (making it detectable) using a online service connected to using DNS
  • Simple HTTP server making it possible to smartphones, computers etc. to connect
  • HSV like color cycling

And there is even enough memory left for applications like:

  • The addition of an RF Transmitter making it possible to control for example wireless wall switches
  • Running time schedules, scenes etc.
  • Addition of climate sensors
  • Addition of an IR-receiver

A YouTube movie will be created soon!

Best wishes and may 2012 be a tweeting good year!

Posted January 1st, 2012 by Antoine and filed in Home Automation, Model Driven Software Development

Best wishes and a happy 2012 to everyone!

My good intention for this year is to share more about my activities on code generation, home automation and mobile development. I would like to invite you all to follow me on Twitter @a_savelkoul and @ExtundoApps.

Extundo Apps

Posted April 1st, 2011 by Antoine and filed in Home Automation

Today, April 1, I officially started my own (part-time) business. With Extundo Apps, I will focus myself on the development of software for home automation systems.

Within the next year, a number of applications for smart phones and tablets will be developed and released. Many of my ideas that are now just concepts will find their way to the world through these applications.

My second visit to the home automation event in Eindhoven

Posted November 17th, 2010 by Antoine and filed in Uncategorized

This time I will spend less space on my blog to it.

In contrast to the previous year, there were a lot of companies showing home automation interfaces on SmartPhones and Tablets. Together with developments like Philips leaving this market with its Pronto remotes, we can conclude that the market is moving rapidly and new market segments will get in reach. However, one of the most important things to make tablets a really interesting replacement for dedicated remotes is to improve the user interfaces. I am sorry that I have to say it, but in general they are still awful!!! Companies are often still trying to push as much as possible on a single screen or are nearly literally copying the user interfaces of there competitors because they seem to miss the initiative to do some research themselves.

There was also a lot of attention for Smart Metering. Not only companies specialized in Smart Metering could been found on the event, but also a lot of general purpose home automation systems were showing energy statistics on there touch panels, web interfaces and whatever you can think about.

The lower-end market was, just like previous year, underrepresented. There was only one company that really got my attention after speaking with them. This start-up will enter the market March next year with surprisingly low priced home automation sets. For a little bit more than 200 Euro for a starter set containing a small remote with display, internet gateway, two switches, two dimmers and two energy meters it will be still difficult to attract people who are still thinking about spending a tenner for a wireless remote set from the DIY-shop. But I am sure it will attract people that realize that a Z-Wave set is much more value for money than a set from the DIY-shop. Other people need something more.

At the end of the day I can conclude that there are a lot of opportunities for my own plans for home automation. I am nevertheless still missing something that will make home automation really attractive for the mass public. Looking at the popularity of the overpriced iPad, I am sure that this will no longer be the price. The fun-factor has become the main focus of the public and needs therefore to be taken into consideration.

New look

Posted November 16th, 2010 by Antoine and filed in Uncategorized

Some people already noticed it. I recently migrated my blog from Community Server to WordPress and I am playing with a more personal look and feel. The reason for this is that I moved from webhoster and took the opportunity to choose a better blog engine. However, because of the rush around my marriage (yes, I am a married men by now!) and developments around other projects, I did not yet take the time to redirect the old permalinks and restyle my old blog posts. I’m sorry for that.

Next big step, building my own modeling tools. Let’s blog again!

Posted July 2nd, 2010 by Antoine and filed in Model Driven Software Development

I have a so many ideas I would like to write about, but it is difficult to find the time to really do my ideas justice. Therefore, I decided to focus myself more on development then writing.
Shortly after my previous blog post I made a start with my first prototype for the home automation DSL for which I decided to use MetaEdit+. I do have to confess that this was the first time I really made use of MetaEdit+. However I do not regret spending my time on getting used with it. In other words, I am impressed by how quick I got my self familiarized with the tooling (only a matter of hours). The concept MetaEdit+ uses to store models is in line with what I expect from a language workbench. Objects, properties and relations are well separated and offer the flexibility needed during the design process of a language. You can modify the language without the need to regenerate a document model or the visual representation of it.
SLP prototype DSL in MetaEdit+ 

However, from the usability perspective I still see room for improvements. MetaEdit+ is definitely one of the more intuitive and flexible domain modeling tools. Nevertheless, the user still has to get used to concepts as languages, visualizations and models. From a technical perspective I really prefer this clear distinguish, but for domain experts who would like to create models without being forced to use a language pre-defined by others it might be interesting to make this as transparent as possible. 

After seeing and working with tools like the Microsoft DSL Tools, Microsoft SQL Modeling, MetaCase MetaEdit+, MetaEnvironment (CWI) and Intentional Software, the conclusion is that they all have some overlap in concepts, but are unique in their own way. Some tools are more focused on academic people with knowledge about formal languages, others on developers creating frameworks. But in all the tools I am missing something and that is the focus on domain experts and collaboration between people with different kind of expertise. 

For the most part language workbenches seem to follow a process, where as the first step a language has to be designed, then a visual representation and then the models. Before a domain expert is able to define its models someone with knowledge of designing languages should be involved. In some cases, languages and visual representations even have to be compiled and distributed by installation packages before they can be used. This might be no issue when these tools are used in combination with existing software frameworks. A very good example of a successful DSL is the ACA.NET Service Factory from Avanade, build using the DSL Tools from Microsoft. ACA.NET Service Factory is build for a technical domain, meant to be used by developers and to be used at multiple projects to pay back the investment. The DSLs in this case are quite stable, so not using dynamic modeling tools is not a big issue. 

The less flexible a DSL tooling will be, the more time it will take to develop a specific version of a DSL. In my opinion, this will become an issue on projects where custom build DSLs are a key element of the requirements engineering and development process and constantly subject of changes. But how can we make DSM more interesting for to be used in crucial parts of projects where the domain is not clear yet?
In practice, domain experts within companies already created their own languages. They use applications like Excel to write down business roles. One example I have are the medical acceptance procedure from my Masters thesis. The medical advisor used Excell sheets. These sheets had columns to refer to other questions depending on the answers given and columns with values for calculating risks. The sheets however could not be used as input for generating code. 

I am working on a concept that will follow different process of designing languages then currently used when working with other language workbenches. In my concept models are used as a starting point rather than a language design. The first prototype I am creating will definitely support tables, graphs and forms but might also include for example flows and trees in future versions. The first step by the user will be to choose a visualization form it thinks will be suitable to express its thoughts, for example a table. The user then puts the data into the table. When it adds columns, it is has to name them. By doing this, the user is creating a language.
The previous months I have worked on a prototype. The results so far are, despite of a lot of concessions I had to made, very promising. Building a graph tool using WPF (Windows Presentation Foundation) is one of the biggest challenges I am currently focusing on, but will result in a interactive experience for the end user. In the coming months I intend to post about my experiences with WPF and post more details about the design of my prototype.

The end of ‘Oslo’ as a language workbench?

Posted November 27th, 2009 by Antoine and filed in Model Driven Software Development, SQL Server Modeling Services (Oslo)

If you follow blogs of other Oslo enthusiastic, you couldn’t have missed it. Oslo , the codename for Microsoft’s new modeling platform, has been renamed to SQL Server Modeling.  Confirms this that the focus will shift to SQL Server instead of creating a modeling platform for DSLs and storing models?
This development is however something that comes as a disappointment to me. I was hoping for improvements to Oslo which should raise the speed of creating and deploying DSLs. Something I am missing is the possibility to modify language definitions without the need to redeploy your schemes and without losing your models. This is something essential when dealing with changes in DSLs, especially during prototyping. But if Microsoft is really moving their focus to SQL, it will not surprising me if these features will never be developed.

Some other news that is also interesting, but might also be confusing, is the use of SQL Server Modeling Services as underlying application model for Microsoft’s cloud, Azure.
Using DSLs to model applications running within a cloud is something that is in line with my vision for years. If you really want to stimulate people to connect their online services running within a cloud, you should make it easy for them by raising the abstraction level of application development. I believe that DSLs will be the way to make this possible, but I also see that the language workbenches currently available would have to undergo a necessary transformation. I therefore really wonder how this will fit within the direction Microsoft is taking with the SQL Server Modeling Services.

However, I’m still interested in using the SQL Server Modeling Services (Hmm, the name ‘ Oslo ‘ still sounds a lot better) as platform for sharing models. For DSL prototyping however, I will use other tools. Hopefully Microsoft will at the end choose to change the name of there moddeling platform to something like the “Azure Modeling Services” ;) .
To see what other people are writing about the rename:

To read more about the name change, see this post and other blog posts of Douglas Purdy.

Event on Home Automation and Smart Living

Posted November 24th, 2009 by Antoine and filed in Home Automation

Philips ProntoThursday I went – together with my brother (Martin) – to an event on Home Automation (Beurs Domotica & Slim Wonen). On this event a number of installers and manufacturers of home automation equipment were represented. We used this opportunity to do some market research.
Most significant to realize, and what we knew before going to the event, is that the companies at the event focus mostly on the higher segment of the home automation market. Examples are Philips with their Pronto, Siemens with KNX hardware and a lot of manufactures of touch screen units.
Software solutions
We were mainly interested in manufacturers of software solutions. We talked to some of them which gave us a good indication of where the home automation market stands today. Some of the most remarkable things were the user interfaces. Some of them were so messy that we didn’t understand where all the buttons were meant for. Others were kept as generic as possible which made it difficult to distinguish features by importance and type. There were some more impressive ones, but they need to be configured by the installer. We think a lot of improvements are possible here.
Another significant thing is the support of systems of external parties. KNX is by far the most supported standard enabling manufacturer independent extendibility. Some companies will also support the X.10 which is popular in the lower segment of the market. Extensions to other systems like a/v equipment however are something that seems to have a lower priority. One system we saw had an integrated web radio, but this was limited to one party. If they supported DLNA, lots of other a/v applications would be possible as well.
The lower segment 

Within the lower segment of the market we find manufacturers like KlikAan-KlikUit and Marmitek (X.10). They also offer software, but these are very limited in functionality and often support only their own systems or single protocol. Their equipment however is affordable for a much larger audience. An example of not manufacturer specific software is HomeSeer, which offers extensibility through APIs. An advantage of the HomeSeer software is that is has a large community of enthusiastic peopele developing add-ins for even the more affordable equipment. However, the average computer user would not have enough experience with finding and configuring these extensions. So, where the price is the barrier to a large audience within the higher segment of the market, the complexity is the barrier for the lower.
Beurs Domotica en Slim WonenSignificant players in the future
I believe that sooner or later home automation will become as common as the telephone and internet access. A growing market that is related to home automation is that of the Smart Metering. Within the near future utility companies will roll out many electricity, water and gas meters that send ‘usage information’ to a central system. Each meter will have its own data connection. This data connection will however have a lot more potential. This is something companies like Microsoft and Google also realize. These data connections might become a new gate for them to deliver information based services. Smart meters might also contain communication interfaces to home automation systems, so this might also be an opportunity to them to get access to this part of your house to without the need of a home server or internet connection. And so there are many other examples of existing multinationals that might extend their market this way.
Conclusion
Home automation is a living and growing market with enough space for innovations. Complete solutions can been found within the higher market segment. To make these complete solutions accessible to the lower segment of the market, home automation systems will have to become less complex and the need of custom development and configuration needs to be taken away. At this moment a lot of innovations comes from small start-ups, but it would not be inconceivable that large companies like Microsoft and Google will enter the market soon.

Questionnaire DSL at PDC09

Posted November 10th, 2009 by Antoine and filed in Model Driven Software Development, SQL Server Modeling Services (Oslo)

In my previous blog posts and papers I referred to my master’s project. During this project I designed and build a prototype of a DSL for medical statements. My DSL is now used within Avanade Netherlands as a case study for other interns. Michael Wolbert and Bryan Sumter developed my DSL further by making a version of the DSL for Microsoft Oslo, which will be presented at the Microsoft PDC next week. Gerben van Loon wrote a blog post: “Questionnaire DSL with Microsoft “Oslo” overview” about it showing some of it’s details that might be interesting to have a look at.
The master’s thesis of my which is the root of this project will be hopefully made public soon.