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 , | Leave a comment

How to Enable Remote Management for Docker in VMware Photon

It’s an exciting news that VMware got into container business with the release of Photon. The Photon project is not container engine like Docker and Rocket, but more like the CentOS which is a bare minimum version of Linux. The idea is exactly the same as that of the ESXi – the less it does, the more secure a hypervisor or OS is. Sometimes it’s true for people in certain companies and organizations too. :) It’s a culture thing that is beyond this article.

Posted in Cloud Computing | Tagged , , | Leave a comment

Announcing vijavaNG 6.0 with vSphere 6.0 Support

Even before VMware announced the GA of vSphere 6.0, I’ve started to work on the vijavaNG making sure that vijavaNG will keep up with the latest release of vSphere. Although it may take a bit time for customers and partners to move onto this new release, we want early adopters to have the choice to use the best Java APIs for managing vSphere.

Posted in vSphere API | Tagged , , | 3 Responses

Tricks and Tips on Paypal Integration

After releasing the DoubleClou ICE, I finally got some time to write what I had experienced with Paypal as a user and developer. Because the DoubleCloud ICE is productivity tool that sells within $100, I want people to buy it online quickly and easily. Given Paypal’s #1 position in online payment, I turned to Paypal without much thinking. After that I had gone through all the integration process from initial research to bring the site to production.

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

DoubleCloud ICE: the IDE for Managing Clouds

After almost one year of intensive development, I am happy to announce the first release of DoubleCloud ICE. It’s an integrated tool for cloud management, in particular VMware vSphere with which you can do a lot of interactions easily and quickly.

The idea was inspired by the IDEs. Once upon a time, we all used editors like vi, Emacs to write code, then compile, link, and debug them using command lines. As time evolved, the IDE came out so we can do all these tasks (actually more) nicely and efficiently in one application. The result? Better user experience and higher productivity.

Posted in Applications & Tools, Cloud Computing | Tagged , , , | 6 Responses

Gson vs Jackson: Which to Use for JSON in Java

There are many JSON libraries for Java. While it’s nice to have many options, it can also be frustrating to decide which one to use. If you do an online search, you will find many opinions and all these libraries are used somewhere. When in doubt, the best thing to do is: stop searching and start coding. It doesn’t take long to get the ultimate answer for you.

Posted in Uncategorized | Tagged , , , | 5 Responses

How to Recover Corrupted Virtual Machine in VMware Fusion

I just spent quite some time helping a friend to recover a corrupted virtual machine in VMware Fusion. It’s indeed a long and interesting (sometimes frustrating too) process that I learned quite some that I would never otherwise. I think you might find it useful as well. Hopefully, you don’t get a corrupted virtual machine, but in case you do, I am sure the post will help you.

Posted in Uncategorized | Tagged , , | Leave a comment

Getting Started with Go Programming Language

Go is a relatively new programming language coming out of Google. It’s getting popular with more new projects using it. Two of the container software, Docker and Rocket are both using Go.

At high level, the Go programming language is very much like C but with many improvements. To my curiosity, I started to study Go and get ready for future consulting projects. Here are the note on installation and a few samples along my learning path.

Posted in Software Development | Tagged , | Leave a comment

Ruby Hashie Library

Ruby is a very interesting programming language. One powerful feature is its meta programming capability, which allows you to change the programming constructs at run-time. For example, you can change the definition of an existing class from standard library, which could be useful and dangerous at the same time. That is of course a whole other topic.

Posted in Software Development | Tagged | 2 Responses

Commonly Used Git Commands With Samples

Git is a powerful version control system. One big differentiator from traditional version control systems is that it’s fully ditributed. In other words, there is no central repository and everyone can have a full clone of everything.

There are many articles and tutorials about GIT already. A while back, I also wrote a few articles on the Java APIs to the JGit implementation. This post is simply a collection of some commands that I use on daily basis. This is just for my quick reference or cheat sheet and nothing more. If you find it’s helpful, it’s great.

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

Simulating APD Event with ESXi

APD stands for all path down. It’s a storage issue that is discussed in VMware KB article Intermittent NFS APDs on VMware ESXi 5.5 U1 (2076392). You can install a patch to address the issue with ESXi 5.5.

Posted in Virtualization | Tagged , | Leave a comment

Vagrant for Software Development

I came across Vagrant a while back at a bookstore. After browsing it, I didn’t get my hands dirty with it until recently. I started to play with it because one of my clients uses it in setting up development environment for convenience and consistency.

Posted in Applications & Tools, Software Development | Tagged , | 1 Response

Rotating Log Files with Logback

Just fixed an issue related to configuration of Logback recently. You may be wondering why the Logback is used given that it’s much less known than Log4j and Java Logging. Very good question. This page from Logback may provide you some insights. I haven’t tested the performance, but it’s said to be 10 times faster than others. There is also an independent version of comparison on StackOverflow. After browsing it, I didn’t have an impression that I have to use one over the other.

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

OAuth For HTTP and REST API Authentication

Authentication is to verify users are really whom they claim they are. Since its inception, HTTP(s) has used different approaches like BASIC authentication, Form based authentication. Both require passing the user name and password from the client to the server. It’s definitely not good idea to use HTTP because the password is passed as it is or with very limited encoding like BASE64 – very easy to intercept the IP packets and extract out the password. When HTTPs is used, it’s much harder to get the password as all the traffic are encrypted. Still it’s subject to attacks like man-in-the-middle.

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

Gradle for Building Java Applications

Building software is a very important part of software development cycle. In the C/C++ age, we used make and continue to use it today. When it came to Java age, two important build tools emerged: Ant and Maven. The former is very similar to make, but instead of script it uses XML. Both make and Ant describe HOW to build software in steps. The Maven takes a quite different approach – it describes WHAT the built software is using XML, and leaves the how to the Maven and its plugins.

Posted in Software Development | Tagged , , | 1 Response

Harmful Big Data

In one of my recent projects, I got into a “big data” issue. One of the open source components emits so many logs that it quickly fills a hard disk. After isolating problem, I found huge number of log entries by the “find” command in a single log file whose size exceeds 50G – too big data for most system to handle.

The following is an example log entry in the log file:

b81995961441938a239a81ee0f92bad5194

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

How To Get vCenter Database Records from VMware Support Bundle

If you want to find out the information in the vCenter database, the VMware support bundle comes handy. For example, if you want to analyze the event history, task history, you can dig out these information from the support bundle. By default, the vCenter support bundle is collected as part of the VMware support bundle on standalone client, but not on the vSphere Web Client. So make sure to mark the check box if you want the vCenter info.

Posted in Virtualization | Tagged , , , | Leave a comment

vSphere Web Client URL Patterns

Although I don’t think vSphere Web Client is a good choice as main GUI for vSphere administration, it has done one thing right and well – it has a unique URL for almost everything you can browse the vSphere Web Client. The benefit is that you can bookmark a URL and open to the page without many clicks.

Posted in Virtualization | Tagged , , | Leave a comment
  • NEED HELP?


    My company develops products like 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.