Archive

Author Archive

How to Create Plugin Framework Using AngularJS

February 22nd, 2016 No comments

As I mentioned earlier, the AngularJS is an amazing JavaScript framework. It separates the model from view, and really makes programming in JavaScript pleasant. We actually use it in our recently released product DoubleCloud vSearch. I have personally used it for almost one year now and like it a lot even though I am not yet an expert.

Amazon Web Services: How to Get Volume Snapshots Including Others’

February 18th, 2016 No comments

As I mentioned in my previous post, I started to play with Amazon Web Services, in particular its APIs. As part of the learning process, I tried to invoke different APIs to familiarize myself with their usages.

Most of the APIs worked as expected without much surprise until I called describeSnapshots() method to list all the volume snapshots under my account. Because I hadn’t created any snapshots, I did not expect to see any snapshot returned. But my code actually got me 10,933 volume snapshots.

Amazon Web Service Java SDK Tutorial: Simplest Hello World

February 17th, 2016 2 comments

I looked at Amazon Web Services SDK a while back and started to work with it recently. While searching it the Internet, I got all the results on the first two pages on Google pointing back to Amazon, which is great. After reading these documents, however, I got headaches. Why? For one thing, they are pretty long and sometimes run over different Web pages. Do you want to read for an hour to get your first program running? Or you are like me who would like to get my first program like Hello World to run in 5 minutes or even shorter. We should then read more if we don’t understand some parts. If you have gone through the Amazon documents, you’d know it’s impossible.

Book Review: The Go Programming Language

February 16th, 2016 1 comment

After launching our flagship product “Super vCenter”, I finally got a little time to catch up with my other works. One of these is to write a book review for Alan Donovan and Brian Kernighan on their new book The Go Programming Language. I received a copy a couple months ago from the publisher Pearson which also published my book VMware VI and vSphere SDK in 2009.

DoubleCloud Inc Announces “Super vCenter” with Unlimited Scalability

February 2nd, 2016 2 comments

After leaving VMware and VCE, I founded DoubleCloud Inc. While working with many of my clients, we found it’s really a pain point for people to use vSphere Web Client which is quite slow and based on obsolete Flash technology. The old vSphere Client is a lot better in performance and usability, but VMware stopped upgrading it with new features.

Download Files in PHP Code

January 26th, 2016 1 comment

Although I created my company Web site using PHP a while ago, I actually used only a very basic feature of the PHP that I can include header and footer on very page. Web site is not a typical software, but the DRY (Don’t Repeat Yourself) rule still applies. When a new major product release coming soon, I started to update the Web site and consider some advanced feature of the PHP.

Categories: Software Development Tags:

How to Work Around Nginx Install Issue on CentOS

December 9th, 2015 1 comment

Installing Niginx is very easy and straight forward with yum on CentOS. But I found it stopped to work last night. My installation script aborted with an error saying that it could not find libunwind package, which turns out no longer in the EPEL7 after a upgrade a couple of days ago.

Categories: Applications & Tools Tags: ,

How to Cache Results from Asynchronous Calls in AngularJS

November 17th, 2015 No comments

Coming from many years of Java programming, I started to program a lot with JavaScript from a few months ago. Overall the programming fundamentals are the same except the some differences on the language syntax. These differences can be adapted over the time, not quite easily, but gradually easier with more practices.

These days I found myself typing double quote for Java string and single quote for JavaScript strings, even though the double quote works just fine with JavaScript. But keep that difference helps remind me that it’s Java or JavaScript.

VMware ovftool as Development Tool: Good and Bad Parts

October 30th, 2015 No comments

If you want to export a virtual appliance for internal deployment, it’s quite easy. The vSphere Web Client or ovftool command line can take care of this easily. But it’s a different story to build a virtual appliance based software product, which should not only make it work, but also include product information.

Here are some information I learned and decisions I made from packaging an OVF product recently. Hope it would be useful for you. You can also check another post on how to compact the virtual disk for smallest OVA or VMDK.

Big Data to Tomcat Behind Nginx

October 5th, 2015 2 comments

In a Web application I created, I need to upload some data to a Java Servlet for further processing. I wish JavaScript could be more powerful so that I can process everything in the front end, but I could not find a good JavaScript library for the job.

Everything works well until some big changes got in – it stopped working sometimes and the pattern is not quite consistent. Initially I thought it was because of long time processing at the server side.

How to Build Smaller and Faster Virtual Appliance

September 28th, 2015 1 comment

While building a new server product of its own kind, we chose virtual appliance as the package. During the development phase, we configured thin disk to save space. But for our beta customers to try out, we decided to switch to thick disk for better performance as the product has to do lots of processing and heavy disk I/O. BTW, we still have a few slots for new beta customers with have large vSphere deployments. Please contact me if you are interested.

VMworld Day Two: Five Imperatives

September 1st, 2015 No comments

Today is the second day of VMworld 2015 in San Francisco. The general session started at 9AM for about one and half hours. Today’s topic includes desktop, networking, and 5 imperatives for digital business.

VMworld Day One: Contain Containers?

August 31st, 2015 2 comments

Today is the first day of yearly VMworld in San Francisco (strictly speaking, it started yesterday with reception party). The general session started at 10 AM for about one and half hours. Having been with VMworld for many times, I found this general session was pretty exciting with quite a few things worth sharing.

Categories: Virtualization Tags: ,

Authenticating with LDAP Server in Enterprise Java Apps

August 30th, 2015 1 comment

Creating a new user with password is easy for application developers, but not so convenient for the users. Increasingly we have more passwords to remember than we should. It’s now a common practice to authenticate users with LDAP or ActiveDirectory. If a user changes her password in LDAP server, she doesn’t need to do anything in the app.

Categories: Applications & Tools Tags: ,

How to Print out Http Request Headers in Java Servlet

August 25th, 2015 1 comment

While developing a new project, I need to check a request header from client side AJAX call in Javascript. This is not a difficult problem at all, but I found it’s pretty helpful with the headers printed in the log file, especially while debugging. The following code snippet iterates through all the headers and add their values into the string buffer, and further into logger of the Servlet. Notice that the value of a header is not a primitive value, therefore the inner loop is needed to go over each element.

Categories: Software Development Tags: , ,

CentOS 7 for Building Virtual Appliance

July 28th, 2015 1 comment

I started to play with CentOS 7 recently because I wanted to use it for one of my appliance products. Naturally, I installed the minimum version of the CentOS 7.0.

While it takes time, the installation process is pretty straight-forward like installing any other Linux on a virtual machine. What I did was to upload the .iso file to a datastore, then create a new virtual machine that uses the iso file as CD device. When it booted, the installation started. Although it’s minimal version, but the installer is actually GUI based. So it’s pretty intuitive.

Unable to Connect to vCenter Inventory Service

July 7th, 2015 No comments

When I was doing a demo today, I got an error saying “An internal error has occurred – Error #1099. Reloading the client is recommended, so as to clear any problems left by this error. Click Yes to reload the vSphere Web Client?” After reloading the Web Client, I got the same error. So something has to be fixed on the server side.

How to Change Maven Offline Mode

June 30th, 2015 4 comments

Maven is a great tool when it works; otherwise it’s pretty hard to figure out what’s happening and how to fix problems. Instead of detailing steps to get something done, the Maven philosophy is to let developers to pick what they want. For the common use cases that fit in its convention, Maven is pretty easy. In general, Maven is easy to start, and hard to customize.

Categories: Applications & Tools Tags: ,

Installing vCenter Appliance 6.0: A Few Gotchas

June 29th, 2015 2 comments

There is a big change in the vCenter 6.0 with the introduction of Platform Service Controller. To run vCenter 6.0, there must be a PSC server somewhere: either existing one, or new one installed together with vCenter. For most dev/test environments, you would choose the latter option which is also referenced as embedded mode. Because of this separation of vCenter and PSC, the installation process of vCenter appliance 6.0 is quite different from the previous versions.

Setting Up Development Environement for HTML5 and JavaScript

June 28th, 2015 No comments

While JavaScript getting more popular with HTML5 these days, it’s also getting more complicated with various libraries. It’s no longer an easy, if possible, job to manage the dependencies by hands.

As I started to play with JavaScript and HTML5, I have installed several tools for the development. If you’re intested in HTML5, the following steps and links may be helpful to you too.