Category Archives: Applications & Tools

PhantomJS: Convert Any Web Pages to PDF or PNG on Server Side

While developing a new feature for our vSearch product, I found the Javascript’s capability to screenshot a page is quite limited. As normal, the explanation is that it’s designed as such due to security reasons. No one wants a Javascript secretly capture a screenshot of what’s currently viewed. I personally don’t think it’s a good explanation why it’s not implemented as easily as it should have been. Similar, I think riskier, features like exchange clipboard content has been implemented.

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

VMworld 2016 and vSearch 3.0 Preview

The VMworld 2016 is coming in about two weeks. Although I’ve attended every single VMworld after 2007, it’s my first time as an exhibitor myself, to be exact, as a new innovator in the show. If you follow my blog and Twitter, you probably have know the company DoubleCloud that I had founded and the cool products/technologies we’ve been working on. This is the first year for us to promote our products in show. Please come to see our product demos, or simply stop by and say hi. Our booth is 841#4.

Also posted in Cloud Computing, News & Events | Tagged , , , , , | 4 Responses

Install Squid as HTTP and HTTPS Proxy Server

While creating the vSearch 3.0, we needed a HTTP/HTTPS proxy server to test the new features like public cloud support. With a little search, I found the Squid server. It turned out to be pretty easy to install a new one and use it based on default settings.

Install
Like most of the software package on CentOS, Squid can be installed using the yum command line. Here is what’s needed to install and configure it.

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

How to Install Kubernetes to Run Docker on VMware vSphere

Installing Google Kubernetes does not require VMware vSphere or any other virtual machine hypervisor. However, doing that on a VM is very convenient, so it’s highly recommended especially for development and testing environment.

Regardless VM or physical machine, a Linux OS is a must. As always, I picked CentOS 7 which is a fork of RHEL. Once getting a CentOS installed, the rest is easy. If you have a CentOS template already, deploying a new one should be very fast.

Also posted in Cloud Computing | Tagged , , | Leave a comment

Book Review: Docker Containers – Build and Deploy with Kubernetes, Flannel, Cockpit, and Atomic

After the virtualization buzz, the industry is actively looking for the next big thing. The container technology just came in at the right timing. Docker is the clear leader in the container technology, followed by CoreOS Rocket and RancherOS today.

Also posted in Cloud Computing | Tagged , | 4 Responses

Windows 10: WiFi Network Not Found After Hibernation

Windows 10 is definitely better than Windows 8 and 8.1 in terms of usability. I find myself using my labtop a lot more after upgrade from the factory installed 8.0. Compared with Windows 7, however, I don’t see much difference and that is why I haven’t taken advantage of the free upgrade from Microsoft on my desktop.

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

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

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.

Also posted in Cloud Computing | 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 , | 1 Response

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.

Also posted in 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.

Also posted in Virtualization | Tagged , , , | Leave a comment

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

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

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

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.

Also posted in Cloud Computing | Tagged , , , | 6 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

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.

Also 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:

a6a6e85a78a53089c2f640872c5cae3e077

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

Tips and Tricks in Using Logrotate

In my last article, I talked about how to use logrotate to manage logs. As everything else, there are some tricks that are only learned when using it. Here are a few tricks and tips I learned recently. Hope it can save you some time.

Stickiness of Logrotate Rules

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

How to Use Logrotate for Managing Log Files

Logging is an important for software development and operation. Over the time, the log files can grow fast to fill up the disk space. To avoid the problem, log files are rotated, compressed, and deprecated based on certain rules, for example, periodically, over certain size limit, and retention limit.

Most mordern logging frameworks can do log rotation and compression, but different applications may use different frameworks thus configure them differently. If you want to have a solution across different applications for consistent policies, the logrote (https://fedorahosted.org/logrotate/) is a good choice.

Also posted in Software Development | Tagged , , | 2 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.