Skip to main content

Posts

Programming Introduction for Primary School with ScratchJr, Pico Projector and Google Chromecast

Invitation I was lucky that my daughter asked me whether I would answer all the questions of her classmates - most of them are nine years old - about my profession. They had "professions" as the topic of their general knowledge lesson. So my daughter told me that they invited teacher, school caretaker, stewardess, nurse and also me software developer. Her classmates and she would ask the invited person some questions. I directly said yes because I think that the new generation needs to be introduced in software stuff especially that the current professions will change a lot in the near future. Reuters had a very interesting article about how Robots and Artificial Intellegence will cost five millions jobs by 2020 . In my opinion software development will be much more important by 2020, so this is my chance to introduce my profession to the kids in my daughter's class. Preparation In my preparation I thought that I need to show them something cool so I began to goog...

Enterprise Applications Customization with Microservice

Introduction Today in highly paced enterprise environment you, as the leader of enterprise IT division, need to be fast. Simplicity is the key for the speed . What are the key factors to simplify your IT? Three different areas are very important to take care of: Technology , Organisation and Environment ( TOE Framework : http://goo.gl/tQlX5z ). Here are some detail points for technology and organisation : 1. Technology: in most enterprises there are already one or more ERP and CRM solutions the so called Enterprise Applications . We need to manage them carefully as they support the business processes. In context of the core compentencies most enterprises customize the enterprise applications to fit their needs. We need to manage the customizations in detail as they represent the core competencies and at the same time the differentiation of our enterprise to other competitors. 2. Organisation: working in a small team with different roles and functions is already ...

Platform as a Service: What Should We Choose?

Today if you want to deploy your webapp or webservice you first think to do this in the cloud by using PaaS (Platform as a Service). The problem is you have many alternatives in this area: - Microsoft Azure: http://azure.microsoft.com - Google AppEngine: https://cloud.google.com/appengine - Amazon AWS (Elastic Beanstalk): http://aws.amazon.com/elasticbeanstalk - Heroku (from salesforce): https://www.heroku.com - OpenShift (RedHat): https://developers.openshift.com - CloudFoundry (Pivotal): https://run.pivotal.io The problem: what PaaS should you choose? This presentation helps a bit: http://goo.gl/dGnpGP BTW.: if you want to run Docker, AWS Elastic Beanstalk is the easiest way to do: http://goo.gl/mtMk5J  It would be nice to hear your opinions! Cheers, Lofi

Automatically Generating MagicDraw Report

Someone asked me how to generate MagicDraw HTML report from a certain UML model automatically. This feature is actually quite practical since if you are working in a group of business analysts, architects, developers, quality assurance personnel and operators, you mostly don't want to tell them to use MagicDraw to open the MDZip file. In this case you have two choices available: Export the diagrams as pictures (JPG or PNG) and put them somewhere like in your company Wiki. This can be done easily but you lose the structure of your model and you need to copy the structure in your Wiki which kind of unpractical. Export the whole MDZip file as a HTML (dynamic) report, which can be browsed nicely afterwards. MagicDraw gives you an example how to do this from Maven, so you can generate the report automatically. So here are the steps: Create a Maven plugin project to run MagicDraw: You need to build a Maven Plugin project which should be used later in your main project. Copy the ex...

Why Should We Dump Java EE Standard?

Prologue I never thought that I have to write about this topic again, but I have to since a couple months ago I have to justify a decision of using Spring Framework in an enterprise environment. The decision to be made was whether we are going for Java EE or using Spring Framework . The constraint was very clear: We need to support both batch and web apps. For web apps we only can use an old OAS (Oracle Application Server) with Java EE 1.4. Commercial support has to be available for the framework and the runtime environment. We are going to update the app server for Java EE 6 or 7 soon, so it should be possible to have a smooth migration. We would like to minimize the use of our home grown frameworks. Still there was such a quarrel in the team because there are already some Java EE web apps run in OAS upgraded with JBoss Weld CDI 1.0. Normally JBoss Weld 1.0 won't run out of the box in OAS but with some patches we got it run. The problem with all those web apps is we had...

Smart Home Sweet Home with Gigaset Elements?

Introduction Last week I had a chance to try the Smart Home solution from Gigaset Elements . I read some articles about this product which said how easy to install this product for dummy users. Those articles woke my interest and I began to google products for Smart Home solutions. In this article (German language) you will find a nice overview about  some products for Smart Home , which can be bought in Germany. The Nest product from Google is still not available in Germany. Although it seems that RWE will offer Nest products in Germany  in couple of months. The installation of Gigaset Elements was really easy. The problem I encountered was to add the siren   sensor. I had to push hard the button on the siren sensor at the same time with the button on the base , so that they can communicate with each other. After about one hour I managed to install everything properly. Points to mention Generally the idea is very nice. Gigaset Elements try to push KISS (Keep it...

Nobody can save Microsoft Mobile and Tablet Devices, also not Sundar Pichai

As we heard from the news , it seems that Sundar Pichai is a hot candidate for Microsoft CEO . In my opinion it does not play any role who will become Microsoft CEO, nobody can save Microsoft with all those Windows mobile technologies . Why? Windows Phones or tablets with its operating system is not a bad thing but who needs another mobile or tablet devices? We have enough offering from Apple with iOS and Android offering. I know that in the beginning everybody says "who needs another browser". At the end Google Chrome is very successful thanks to Sundar Pichai. One thing makes here a big difference: Google Chrome is an Open Source product. If Sundar can build Open Source Windows operating system, then we will see a different story. Open Source and Microsoft is just a tough story , although they offer CodePlex for hosting Open Source projects. But wait a second: Microsoft Xbox is very successful hitting Sony Playstation and Nintendo? Yes, this is just analog to Google Ch...

New Article at heise.de Developer: (Bi)Temporal Data Management in Java with Open Source Frameworks

If you ever need to handle (bi)temporal data in your Java app, check out my new article (in German language) at heise.de about: (Bi)Temporal Data, Implementation in Java with Open Source Frameworks: http://goo.gl/g8Lec4 Actually you always need to handle this topic in your Java business apps, a must read. All the examples can be found at Github: http://goo.gl/30Xy15 Have fun!

TigerTeam TRIMM - Model Driven Generator just went Open Source

TigerTeam TRIMM – Model Driven Generator is just Open Sourced in July 2013. I myself never heard of this product before and found this product by coincidence as I tried to find a JPA 2 standalone cartridge / generator available in Internet. I know that AndroMDA has some cartridges to persist Java objects but as far as I know AndroMDA only support persistence in the context of EJB 3 not as standalone JPA. After I found this product I began to analyze the code at Bitbucket.org and found out that the idea with the Events and Listeners as Extensions  is a very good idea. TRIMM also uses Maven completely and does not have any dependencies to Eclipse plugins, so you are Eclipse independent. Special to this framework is that it uses its own metamodel and does not use UML2 metamodel for the generators. TRIMM should work for MagicDraw and Enterprise Architect and it can read the files directly from those UML tools. It also uses its own Java code generator which is basically based on...

CDI vs. Spring Framework Core

Another question I got in my Spring Framework training is: is it worthwhile to switch from Spring Framework 3.x to CDI with JBoss Weld or Apache OpenWebBeans implementation? After googling around I found some good articles and blogs about this topic. These two articles are the best in my opinion: Spring DI and CDI Comparative Study CDI 1.0 vs. Spring 3.1 feature comparsion: bean definition & dependency injection Luckily I had a chance to take a CDI course intensively for two days to be able to see what we actually could do with CDI. After doing two days intensive course of CDI I can sum up this topic as following: CDI takes a lot of good idea of Spring Framework , this is for sure. Anything you can do with CDI (I used JBoss Weld in the course I followed) is not new and you can have those stuffs in Spring Framework as well. In CDI 1.0 (JEE 6) there is still a lot of things which is not supported natively such as "scanning of classes and packages" to turn on ...

Creating Spring Bean dynamically in the Runtime

In my training someone asked me whether it is possible to create an object (a Spring Bean) dynamically so you can choose which implementation you want to have  in the runtime . So at the compile time you don't know what object actually should be created yet. The application should decide what object to be created based on a property file . 1. We create an annotation so we can mark the method which should be able to create the object dynamically: ... package your.package; ... @Retention(RetentionPolicy.RUNTIME) public @interface InjectDynamicObject { } ... 2. Use the new created annotation in your method which should be able to create the object dynamically: ... @Named("customerBo") public class CustomerBoImpl implements CustomerBo { ...     @Override   @InjectDynamicObject   public Customer getDynamicCustomer() {         return this.dynamicCustomer; } ... 3. Write an aspect with Pointcut a...

Software Development Macro and Micro Process

If you think that in year 2012 all companies which produce software and IT divisions in our world have already their optimized software development process, you are wrong. It seems that we - software architects, software developers or whatever your title is - still need to optimize the software development process in many software companies and IT divisions. So what do you do if you enter a software company or IT division and you see following things: 1. There is a perfect project management process to handle all those development of software but it is a pure project management without a context to software development. So basically you only take care of cost, time, budget and quality factors. In the software development you still use the old fashioned waterfall process. 2. From the tooling point of view: you have a project management planning and controlling tool but you are still in the beginning of Wiki (almost no collaboration tool) and you don't use issues tracking sy...

Model Driven Software Development with UML - Back to the Root (or how KissMDA saves our Agile Development with Java...)

After working since 2004 with MDA (Model Driven Architecture) / MDSD (Model Driven Software Development) technologies like AndroMDA, oAW, etc. always in context of Java technology and UML (Unified Modelling Language) I feel like that we need just another MDA tool. Why? Past  The first experience with AndroMDA in the year of 2004 was great! At the end you don't need to code those boiler plate codes in EJB 2.x. AndroMDA generates everything for you. You also have the documentation of your application always up to date. This is a very important thing, since if you have more than one hundred entities you definitely need that actual documentation to be able to extend the application. AndroMDA offers a lot of mature cartridges like EJB 2.x, SpringFramework, Struts, Hibernate, JSF. The idea with cartridges is just gorgeous. IMHO it is possible to have a general application architecture for most business applications. So if you are using SpringFramework and Hibernate you can reuse...