Skip to main content


This site is operated by

Dr. Blasius Dewanto
Kav. Polri 1084 Jelambar
Jakarta, Indonesia

Contact for questions regarding data protection

Dr. Blasius Dewanto


The design of this page as well as any text and graphics are copyright © Dr. Dewanto.


Despite careful control we assume no liability for the content of external links. Should you find content to which we link that is of dubious nature, we ask you to promptly notify us at

Popular posts from this blog

Why "Polyglot Programming" or "Do It Yourself Programming Languages" or "Language Oriented Programming" sucks?

Last year we saw the launch of a new Web programming language Dart - Structured Web Programming from Google. A very interesting approach to support web application development. Not so long after Go, Groovy, Ruby, Scala, << name your DSL here >> ; we see Dart. Is it a good thing to have at least one programming language to solve one problem? The answer is, like we already know, it depends. Some important backgrounds you should know about the multi programming language paradigm are following: 1. You can read Martin Fowler article about language oriented programming with language workbenches which enables you to write small programming languages easily. In this article I see everyone writing their small languages, everywhere. In this concept we see DSL (Domain Specific Language) as the future of our programming activities. Source: 2. Neal Ford talked about Polyglot Programming, combining multiple programming language

J2CL (Java to Closure Transpiler) is Open Source!

After waiting a long time, Google has Open Sourced #J2CL (Java to Closure transpiler). This is great since #Java devs have an alternative to #JavaScript frameworks like #React , #Angular and #VueJS . Check out my article @heise Developer (in German): Enjoy reading, Lofi

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 and Advise which change the ob