Archive

Archive for July, 2011

Java SE 7 released, finally!

July 28th, 2011 1 comment

After Java 6.0 released in 2006, it’s been 5 years during which Sun Microsystem was sold to Oracle. Today the 7.0 is finally GAed. It includes quite a few changes including small language changes as well as new and improved APIs.

The language changes are mostly small and may not affect you, for example, the switch statement now works with strings. The new try-with-resource statement, which is similar to using statement in C#, helps you with cleaner code, see the difference shown in the following

Is Compression Supported in vSphere API?

July 26th, 2011 No comments

There was recently a question in VMware vSphere Web Service SDK forum regarding gzip compression in vSphere API. I understand where the user came from – some of the SOAP responses could be pretty big. If they can be compressed, performance could be improved and network bandwidth reduced.

The case can be a little tricky. On one hand, compressing big data definitely saves bandwidth; on the other hand,

Categories: vSphere API Tags: ,

How to Save With New vSphere 5 Licensing Model

July 25th, 2011 8 comments

Disclaimer: These are my personal thoughts, and strictly mine.

I missed the big launch of vSphere 5 on July 12 because I was having my vacation. When I came back, I found so many discussions around the vSphere 5 licensing change. It’s understandable that people don’t like changes, especially if the changes may have financial impacts.

Technically, the vRAM pooling simplifies the licensing model, as pointed out by Carter Shanklin. Money wise,

My Vacation in China

July 21st, 2011 2 comments

I recently spent two weeks on vacation in China. I’d heard dramatic changes there since my last trip several years ago. My trip definitely confirmed these.

The following are several photos I took while visiting different places:


The Shanghai high speed train station, the end of the world longest high speed railway from Beijing. It started operation on

Categories: Others Tags: ,

Success Story: Cisco Data Center Network Manager

July 20th, 2011 No comments

Today I got an email from Louis Jia who is a Sr. Development manager at Cisco. He told me that the product his team has been working on had been rebranded as Cisco Data Center Network Manager (DCNM) and is formally released. Congratulations to Louis and team!

I don’t normally cover products from vendors, be it an established company or a startup. But this one is different

Three Stages To Master Programmers

July 19th, 2011 No comments

While everyone can learn and practice programming, it’s hard to find a good software engineer, even harder to find a great one. My definition of a great software engineer is someone who can solve real world problems with software expertise, not someone who can only write code, or someone who can only talk about architecture on paper, or someone who complicates real world problems.

Yes, we can all learn programming related concepts, languages, tools, and etc. But how to use them effectively on a business problem is really a test stone for anyone. It’s important to study textbooks, learn from others; even more so to

Reflection on OOP: Inheritance or Generalization

July 11th, 2011 No comments

As software engineers, we most likely have learned the three key characteristics of object oriented programming: inheritance, encapsulation, and polymorphism. Over the years I study and practice OOP, I realized that inheritance is out of date and arguably misleading, therefore should be replaced.

In OOP, inheritance refers to a relationship between two classes in which a subclass inherits the properties and methods of its super class. The term inheritance is not really a good one because

How Many Programming Languages Are Enough?

July 4th, 2011 2 comments

During last 60 some years after computer was invented, there have been hundreds, if not thousands, programming languages. If we include domain specific language (DSLs), which accorinding to Martin Fowler may include regular expression, spreadsheet, etc, the number can be even bigger, not to mention more programming languages continue to emerge.

This would be a big burden if we have to learn all of them. Luckily, we don’t have to. In fact, most of us just need to learn several most popular ones. Even better, these popular languages may look very similar in syntax. As a result,