03 September 2011

GDC in Cologne 2011 Special observations

This year I had the opportunity to go to the GDC Europe and GDC as a press representative. This was very interesting, I've spoke to many cool people, an I've made unexpected observations. Like this one: there were so many iPads, especially used by media people. Of course the notebooks could still be found and their number was not small, but you got the feeling that nearly every one use an iPad. Some people used it as a device for writing AND photographing :)

Beside the public halls which were full and loud even at the professiona-only day (!), I also visited the business center. There, I found a association for supporting game related business contacts to Iran, UK, Netherlands, Abu Dhabi and more. So gaming is really matter of the whole world, which is very very good, I think ! Also, I visited the booth of GAME, the german association for gaming industry.

That gaming can be more than "just playing" (which is itself a value, but not what I want to point out here), it can be used for learning (see my article in the current issue 9/11 of german computer magazine iX, or the web sites seriosgames.org, serios play conference and EDUCAUSE), it can be used to bring sensitivity and money to humanitarian projects. At the GAME booth, I could speak with Jasmin Kassner (CTO) and Kaspar van Treeck (CEO) from the Berlin based company ChawaChawa UG. They do this in a charming way: players play to gain goods, which are relevant for some humanitarian project. In order to give these goods a financial value, they are paid by the money coming in by selling places for ads. Because this ads are in the context of good causes (the games, the portal...) and because online games are a huge user group, placing ads there is a value for companies. But the real charming thing is that it makes humanitarian projects and problems obvious. I could imaging that putting a little bit the game based learning below this there would be a big chance to educate young people (and managers, btw......) about the real problems in the world. Btw, an other good example for this is the game Foodforce of the UN
I think, to find a good balance in this triangle of ads business, humanitarian projects and players is challenging, but definitively worth to try it. Humanitarian projects still needs more attention in our world!

p.s. Thanks Jasmin and Kaspar for your time, I wish you great success for this fine idea!


02 September 2011

Back to Programming - with Smalltalk

Since some years I've never written down one single line of code. Some reason was the change in my profession: starting as a software engineer, I currently work as Safety Engineer, a role which only writes many documents, but no code.

Starting this year, I'm also working on games for game based learning, or Enriched Games (better known by the not irritating term "Serious Games"). In this days of Web and Cloud, it is clear that my sample games have to run as web application. So the question arises, what platform or technology to use for this.

I've seen many programming languages. Haskell I like a lot, but needs sound knowledge of Category Theory to really unwrap its full power. Lua is interesting. Scala is interesting, but a little bit complex. Sometimes, I'm afraid that Scala is in danger to become the next C++. And then there is Smalltalk, my very old love.

It still holds that Smalltalk is a productive environment for me. Together with Aida/Web or Seaside, it is easy to build really fancy web applications. Well, Seaside can get very complex, I remember that I struggled many times about how to do this or that in Seaside. Today, the situation is far better, because there is a lot of documentation about it. And Smalltalk itself still has the very big advantage to be simple - in the environment as well as in the language. Anyway if you are a strong object monk or a functional evangelist, Smalltalk invites you to write down the solution in the way it is convenient for you.

In addition, the last ESUG has shown that there are interesting evolution efforts are ongoing with this old lady. Ok, I'm still missing comfortable remote programming (via web) and the capability of taking advantage of multicores. It seems that Smalltalk has still no strong answer to the coroutines, task pools, STM and whatever constructions introduced in other environments. I hoper there will be progress some day.

For me as one who want to concentrate to solutions, not studying libraries and complex design patterns which only hide the faults of the language design, Smalltalk a natural choice. Reflection and the Debugging on-the-fly make it easy to find out how given code (=libraries) work and to iterate toward the really useful and intended solution.

Smalltalk will not do all in my solutions. CouchDB and therefore Erlang will store data, communicating with XMPP to the Smalltalk application and maybe to other modules as well. But one thing is clear: Smalltalk is for me the best union of all concepts I like with the highest productivity I like. So I will use it - and Happy Smalltalking !

24 June 2011

The base for functional safety: Requirements

There are several myths around functional safety. So it is said that functional safety processes let the project costs grow. As it is true for so many things in the software or system lifecycle, if functional safety activities are not full integrated in all steps of the lifecycle, then it does it more worth than good.

So surprisingly, functional safety starts with requirement engineering ! Requirements are describing the system as it should be, and therefore, they are the base for verification and validation of the system. Roughly said, verification means to demonstrate that the system fullfil the requirements. Simple consequence: no requirements, no verification possible.

Validation means to demonstrate that the requirements are stated such that the system is usable as intended in its operational environment. But to check this doesn't make any sense if the system could not be verified. Conclusion from a wrong preposition gets nothing.

Later activities of the functional safety identify risks which arise if the system goes operational, and which additional functions the system are needed to mitigate the risks down to an acceptable level. Example: a cutting machine induces the risk that you get you hand cut off if you pull it in in the wrong moment. So the mitigation would be a protection system that would stop the machine immediately if any body part crosses a safety border.

Such additional system functions or properties will be noted as additional requirements. And checking if the system is safe includes to verify these safety requirements.

Conclusion: much effort of the functional safety activities can be done efficiently if there is a good requirement engineering in place. It helps to verify and validate the system according the safety functions and the overall safety and to render which are the safety relevant parts of the system.

But how requirements stated will be issue of another post, because this is very important for the value of requirements.

Enjoy !

15 June 2011

The Browsers Future

Today, the web browsers are on the road to become omnipotent: beside the ability to display text they now render complex graphics and video. So many examples in the Web exist providing the user Web pages which are close to pages of an expensive life style magazine with respect of their presentation quality.

Also, browsers are already an runtime environment. See Flash(TM) and JavaScript for example. Look at all the games and interactive websites available in the internet. WebGL and SVG in combination with JavaScript bring you a full desktop like experience into the browser. So it is possible to run a Smalltalk environment in a browser. The current top of this evolution is Googles ChromeOS notebook, where in fact the browser is the operating system and the only thing the user see.

But this is the moment to start thinking in another direction. Why should a single application - the browser - get bigger and bigger ? I always dream about a software ecosystem, were small little code fragments in the sum give you the value. Every fragment, which may be an app or even smaller, has a limited role in the ecosystem and only their dynamic interaction let emerge the value to the user.

And this is the important term: interaction. Every fragment in the sense above shall have a range of processing capabilities. They shall not be limited to much, but broad enough to gain value for different non-forseeable situations. And we now all the solution for this: descriptive languages, like HTML, XML etc. In fact, a browser can handle many things by "just" implementing the HTML language. In the same ways, these fragments should implement one such a language, like SVG for graphics, X3D for 3D graphics, MathML for mathematics etc.

All this things exist, yes, but as one big bunch of software (that many things are implemented as plug-ins doesn't change anything substantially). My vision would be, that the fragments for SVG, MathML, CellML and what ever should be independent small code fragments, which could running on the local machine or anywhere in the network. In this software landscape, the browser would be just a collector and lay-outer of (ready drawn) canvases. And the communication between this fragments should be only ASCII text stream or a (video) stream of bitmaps.

Of course it is difficult to control a collaborative system in its emergent behaviour. But the main question for the future is: do we have to control all behaviour of future systems in detail ? Anyway, my wish would be that the future of software moves away from monolitic systems to a network of small fragments controllable just by descriptive languages.

Enjoy !

04 June 2011

Splitting my idendity

Twitter is for me a often used tool, not just to hear what's about in the world, but to get noticed about technology, events and to get connected to other interesting people.

Now, because I am also working on own Serious Games, which I call "Enriched Games" (which is a story not for this blog), and because I am a Safety Engineer with all parts of my being and feeling there was now the time, to split up my Twitter account in 3 theme centered accounts:

From now on, I have
  • @haenbee for all things of life, news, technology and science in general. It was my first account on Twitter, and I want to keep it for all the stuff which match not one of the themes listed below
  • @EnrichedGamesHB for all things about Serious Games (aka Enriched Games), including Seaside, Pharo and WebDesign and Computer Graphics. In fact, not just gaming, but all issues which are related to the realization of my games will be covered here. For my plans, I choose Seaside and SVG, because here I have the most experience (which is not much, either) and Smalltalk is still one of the most productive environments
  • @QuMeSA_HB, the account which is connected to this blog, and where I consider things about Software, SW Architecture, Modeling, Functional Safety etc. Especially I want to discuss about the problems I sketched in the last post.
A special role plays AI: also one of my interests, also for gaming, but this theme is really spread over all fields: it touches human being, gaming, software, science in the same time. So you will find AI issues in all three accounts until I have a better idea ;)

So feel free to follow me or discuss with me, I really be happy for every follower and discussion peer to talk about my ideas and of course his or hers. Discourse is one of the most important things, and the Internet today gives us the chance to really do this crossing any borders and culture.

Enjoy !



02 June 2011

Functional Safety of Software

Since 3 years, I'm working as a Safety Engineer. Starting in the Air Traffic Control domain, I now have to consider the functional safety of locomotives. So in parallel, my perspective is extended to physical, mechanical things, which is really cool.

Along with this evolution, my interest is focusing on the question how software has to be built in a functional safety related context. This is a question which strongly relates to the problem of how to overcome the human imperfection and avoid human errors in concept, architecture and in the whole technical realization of a system from the beginning. It is a question for methods, provability and well known and well tested engineering practice.

In consequence, today my view on modeling of requirements, system architecture and function networks as well as on the computer science itself has changed. I see now the challenge and the benefit of tool based software development in a different light. I see, that we need a information science, not a computer science. I understand, that we are still searching for the rules of information which correspond to the rules of physics in the mechanical engineering. Software Architects, Software Engineering, are terms with today expanded meaning.

Therefore, I want to add functional safety as theme for this blog, and this is well done, because metaphysics is the only hope to get further :) I will tell stories about communication from software engineers to safety engineers, the amusing stories as well as the horror at work.

So stay tuned :)

14 December 2010

Programming on the iPad

Since a half year I use my iPad every day - for reading emails, reading the Web, reading my Perry Rhodan issues and other magazines and books. A few weeks ago, I started using iPad to write protocols and use the Numbers App from Apple more and more.
What I am missing is to write programs. I'm not talking about big software but really useful small programs. How could that be?

The iPad is the accessor to the Web. In consequence, programming on the iPad doesn't mean to program the iPad itself, but to program in the Web. Thanks to Google and others, office documents can be produced and changed in the Web. So why not programs ?

But what would a Web - or better said - Cloud hosted program look like ? In the age before the cloud, creating software was done by accessing the capabilities of the operating system - the APIs - to fetch data, build graphics, to persist data and create a data and control flow with a programming language. Well, the Cloud has no operating system, but it has also capabilities to fetch or send data, to create graphics via SVG or WebGL and to store data. Even such kind of API are available, which in fact are the REST, SOAP or other interfaces. Twitter, Facebook and other portals use such techniques. The problem is the language. If there would be such kind of editor in the web, and a programming language - or let's better say if there would be a Cloud hosted development environment, which would allow to use and bind this "Web API" with data and control flow, yes, then I could program with the iPad. I could program algorithms, create visualizations and would not have to think much to store data, or to access data. Where my programs are stored would not be relevant at all. Just make data processing in it's strikt and pure sense.

Unfortunately, I don't know such a Web Development Environment. Is there any ?