DoubleCloud Inc Announces “Super vCenter” with Unlimited Scalability

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.

Posted in Software Development, Uncategorized, Virtualization | Tagged , , | 2 Responses

Download Files in PHP Code

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.

Posted in Software Development | Tagged | Leave a comment

How to Work Around Nginx Install Issue on CentOS

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.

Posted in Applications & Tools | Tagged , | Leave a comment

How to Cache Results from Asynchronous Calls in AngularJS

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.

Posted in Software Development, Uncategorized | Tagged , | Leave a comment

VMware ovftool as Development Tool: Good and Bad Parts

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.

Posted in Applications & Tools, Software Development | Tagged , | Leave a comment

Big Data to Tomcat Behind Nginx

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.

Posted in Applications & Tools | Tagged , , , | 2 Responses

How to Build Smaller and Faster Virtual Appliance

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.

Posted in Applications & Tools, Virtualization | Tagged , , , | Leave a comment

VMworld Day Two: Five Imperatives

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.

Posted in News & Events, Virtualization | Tagged , | 1 Response

VMworld Day One: Contain Containers?

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.

Posted in Virtualization | Tagged , | 2 Responses

Authenticating with LDAP Server in Enterprise Java Apps

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.

Posted in Applications & Tools | Tagged , | 1 Response

How to Print out Http Request Headers in Java Servlet

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.

Posted in Software Development | Tagged , , | 1 Response

CentOS 7 for Building Virtual Appliance

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.

Posted in Applications & Tools | Tagged , | 1 Response

Unable to Connect to vCenter Inventory Service

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.

Posted in Virtualization | Tagged , | Leave a comment

How to Change Maven Offline Mode

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.

Posted in Applications & Tools | Tagged , | 2 Responses

Installing vCenter Appliance 6.0: A Few Gotchas

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.

Posted in Virtualization | Tagged , | Leave a comment

Setting Up Development Environement for HTML5 and JavaScript

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.

Posted in Software Development | Tagged , | Leave a comment

Simple Script to List and Remove All Stopped Docker Containers

While using Docker command lines, I found it’s sometime a bit confusing to deal with containers. For the underlying operating system, a container is like a process. That is why the docker command use “ps” as the command to list these commands.

However, the typical “ps” command lists all the running processes. When a process dies, it is gone and there is no need to list it at all. For the containers, the story is different. The container can also be stopped, paused, which is different from running state. But you can still bring them back to running state later.

Posted in Software Development | Tagged , , | Leave a comment

How to Pretty Print JSON with Gson and Jackson

In my last article, I compared two leading JSON APIs in Java: Jackson and Gson. If you have tried the samples there, you may have noticed that the two samples print the JSON string into one line. While it’s pretty efficient for machine, it may not easy for human consumption when the Json string is long. Sometimes I have to copy a long Json string into an editor to find out what are there.

Posted in Software Development | Tagged , | Leave a comment

A Little Known Security Feature in vCenter: Certificate Based Authentication

Although we are all familiar with the username and password based login to the VMware vSphere, it’s also possible to login into vSphere with just certificates. If you are a third party vendor, either IHV (independent hardware vendor) or ISV (independent software vendor), the certificate based login is actually a better and preferred alternative to the one using username and password.

Let me explain why it’s the case, and how it can be done painlessly.

Posted in vSphere API | Tagged , , , | Leave a comment

VMware ESXi esxcli Command: A Quick Tutorial

The esxcli is a command tool that is available on VMware ESXi for managing ESXi. Unlike the vim-cmd command, it focuses on underlying infrastructure and touches lower level of controls of the ESXi hypervisor itself. Although it’s just one command, it packs a lot of functionalities with different namespaces/sub-namespaces, and sub-commands. Because they are organized in nice tree hierarchy, it’s actually quite easy to use most times.

Posted in Virtualization | Tagged , | 5 Responses
  • NEED HELP?


    My company has created products like vSearch ("Super vCenter"), vijavaNG APIs, EAM APIs, ICE tool. We also help clients with virtualization and cloud computing on customized development, training. Should you, or someone you know, need these products and services, please feel free to contact me: steve __AT__ doublecloud.org.

    Me: Steve Jin, VMware vExpert who authored the VMware VI and vSphere SDK by Prentice Hall, and created the de factor open source vSphere Java API while working at VMware engineering. Companies like Cisco, EMC, NetApp, HP, Dell, VMware, are among the users of the API and other tools I developed for their products, internal IT orchestration, and test automation.