I have been reading Martin Fowler’s book Domain-Specific Language during last two months. Now I am not fully done with the book but have a good idea because the rest of the book is about individual DSL patterns, which I think are better read when used.
I got two key points from the book. One is that the key to DSL is semantic model (“The semantics of a program is what it means – that is, what it does when it executes”). You can implement semantic model as APIs/frameworks in system languages like Java. If you are confused by the question, “what is the difference between DSL and normal code on top of high level APIs? Read more... (527 words, estimated 2:06 mins reading time)
After Shreyas shared his experience with Vaadin in his comment on my previous post, I started to play with the web framework. As it advertises, it’s “a Java framework for building modern web applications that look great, perform well and make you and your users happy.”
Based on my experience, I think it’s a great framework that is very intuitive yet powerful. All you need to do is to write Java code in a similar way to using Java AWT and Swing for standalone applications. The minor different is Read more... (401 words, estimated 1:36 mins reading time)
Many APIs have emerged since the inception of computer software. Its root can be traced back to the layered software architecture in which high layer calls to low layer. The low layer is not necessarily called APIs, but the other way is mostly true.
Initial APIs were inside a single or multiple vertical call stacks that share same memory space. As a result, you have good performance and ease of use. After that, inter-process communication (IPC) emerged and allowed API services to run in a different process for better Read more... (321 words, estimated 1:17 mins reading time)
After I touted the idea to have a meetup last week, I got quite positive feedbacks from the community. More importantly, I secured sponsorship from my employer VMware so that we can have the event at VMware headquarter. Due to a little time conflict, we will have it on May 18, instead of May 25 as I planned before. It’s still a Wednesday and food/drinks will be served with no charge.
This event was designed for professionals like developers, system administrators. Even if you are not but interested in virtualization and cloud computing in general, you are still very welcome to join us.
The first 100 registers for onsite will have chance to win Read more... (249 words, estimated 1:0 mins reading time)
If you want to read information about a virtual machine from the guest OS running on it, the vSphere Guest API is for you. It’s a C library coming with VMware Tools. Unlike the vSphere API which can be used anywhere, the vSphere Guest API is only available in the guest OS.
High Level Characteristics Read more... (376 words, estimated 1:30 mins reading time)
- It’s read only. You can use it to retrieve state and performance of a virtual machine running on ESX, but you can NOT
If you think vSphere Client exposes everything, you are wrong. The vSphere APIs actually expose more features than the vSphere Client, which is a great product. This is one reason why system administrators should learn vSphere APIs.
While writing my book, for example, I noticed that vSphere APIs actually allow you to change guest OS screen size with a simple call setScreenResolution(int width, int height).
Given the time pressure, I didn’t summarize these API only features at that time. To be honest, Read more... (215 words, estimated 52 secs reading time)
By this May, the open source VI Java API will turn 3 year old. While there is a big community out there, we haven’t organized any event for people to meet each other in person.
I think now is a good time to do so. How about a meet up in the silicon valley around May
25(Update: 18 as new date) which is a Wednesday?
Agenda Read more... (251 words, estimated 1:00 mins reading time)
- 6:30PM-7PM. Reception and Networking.
It has become a conventional wisdom in software development that you should NOT re-invent a new wheel – reuse an existing one instead. There are many compelling cases in which re-inventing wheels had caused catastrophic failures as described in Joel’s article Things You Shoud Never Do (Great article BTW). One famous example there was the NetScape’s loss to Microsoft in the browser war more than a decade ago.
Nothing is absolute in software however. You can find opposite cases like Microsoft’s successful re-inventing Windows from Window 95 to Windows XP. Actually in a longer term, you cannot stick with a wheel forever; otherwise we are still using wooden wheels in the pre-industrial age. Same is true for software.
I think the question is really not whether to invent a new wheel, but when. In other words, Read more... (676 words, estimated 2:42 mins reading time)