Tag Archives: software

Redefining Software in Cloud Age

As software professionals, we may still use the same programming languages and tools as 10 years ago. But there has been a fundamental shift in how we think of software, and make and consume software.

Static blueprints

Traditionally software really means blueprints, which are used to construct running software instances. The blueprints include binary code, installer, and related documentations guiding the installation and configuration of the software. Software vendors make the software packages and sell them to customers who then deploy and run them.

Posted in Cloud Computing, Software Development | Also tagged | 2 Responses

What Is Missing in Current Software?

If we look closely at the software today, we will find some important pieces missing. For example, the software code defines logical behaviors of a system, but not the performance and scalability aspects. In other words, the operational aspects of the software are not clear even if you have a software product.

Posted in Software Development | Also tagged , | Leave a comment

Random Thoughts on Software Design

Three months ago, I wrote an article Random Thoughts on IT Automation. I think it’s a pretty good style for capturing ideas without worrying much about content organization and flow. So I decide to use it again on software design which I have been practicing and thinking for many years.


Posted in Software Development | Also tagged , | Leave a comment

Recent Hot Topics in Software Development

InfoQ, one of my favorite sites on software, recently posted an article Key Takeaway Points and Lessons Learned from QCon London 2012. If you missed the conference but are still interested in recent trends of software development, it’s definitely a great read.

I browsed through the article, and found several interesting points there including the comments on Spring framework that VMware bought in 2009. In the following, I just list a few interesting or surprising comments and tweets from the article. If you are interested who made the comments based on which session, just check the original article.

Posted in Software Development | Also tagged , , | Leave a comment

Chasing Moving Targets

As John F. Kennedy put it, “everything changes but change itself.” This is particularly true in computer industry where things move faster than other industries. It’s further complicated when you also have dependencies that also move fast.

A good example is that your software project depends on another product which is also under development. Sometimes we call it synchronous development. The payoff could be huge if you can ship your product at the same time as the dependent product which presumably has bigger user base. You can then leverage the go-to market opportunity as first player in the bigger community.

Posted in Software Development | Also tagged | Leave a comment

1xN to Nx1: The World Is Flat In Computing

The first part of the title of this article may seem like mathematics, but it’s really not. This is just about software packaging – a topic not so often discussed. In plain English, it basically says something like: one application with N features vs. N applications, each of which has one feature. More generally speaking, it can describe software entity with sub-elements. I will discuss it in the contexts of mobile/desktop, and virtual/physical.

Posted in Cloud Computing, Virtualization | Also tagged , , | 3 Responses

Why So Many Programming Languages?

While checking out the search engine terms to my blog, I found an interesting one there: “why so many programming languages?” A great question indeed. If you take a look at the Wikipedia page on programming languages, you will be surprised by the number of programming languages today. To give you a hint, the languages are categorized into different sections by their first letters. When I browsed the page, I found most of them were new to me and will definitely remain so in the future. :-)

Posted in Software Development | Also tagged , , | Leave a comment

Maven Again

Because my new team at VCE uses Maven, I just picked it up again. Last time I used it was when I helped to port the CloudTools to vSphere for the CloudFoundry demo for VMworld 2009 keynotes. Because the project founder Chris Richardson had chosen Maven, I just followed his footsteps forward. After that, I didn’t use Maven.

Posted in Software Development | Also tagged , | 3 Responses

Best Practices for Best Practices

Like many other industries, IT industry has all sort of best practices, from how to use a product to how to design software. I have personally contributed top 10 best practices on how to use VMware vSphere APIs (part 1, part 2).

Given the complexity of IT systems, it makes sense to capture the expert knowledge in the format of best practices. I think there are just too many of them and not all of them are of high qualities, thus I have a mixed feeling about best practices these days.

Posted in Cloud Computing, Software Development | Also tagged | Leave a comment

How I Customized My WordPress Blog

At the beginning of this year, I changed the theme of my WordPress based blog. Upon checking the site, several folks said it looked familiar and like facebook.com. In fact, when I searched for a new theme, I did use facebook as a keyword because I like the clean and simple look and feel. As you can check at the bottom of the blog, the new theme is called Crybook by Themetation and Crynobone, which you can hardly link the name with facebook except the word “book.”

The issues

After switching to Crybook, I really liked it but also found several minor issues with the theme. First of all, the “read more” link is not placed right in the overview of an article. Instead, it’s placed at its bottom. As a result, a reader may be confused where to read next. Secondly, it puts a line at the bottom at an article overview, and two links below the line. At a first impression, the two links seem more related to the next article than to the current one. Thirdly, it does not have the tags explicitly listed with the article as I expected. Tags are important to navigate through articles.

So I decided to customize the theme for my own preference which I hope leads to better reader experience.

Posted in Software Development | Also tagged , , | Leave a comment

Critical Lessons Learned at Facebook on Scalability and Reliability

Facebook.com is no doubt the biggest web site surpassing Google in terms of Web traffics in an article published half year ago. Given its scale, the lessons learned would be very helpful for others to build scalable IT infrastructures. This post is based on my notes taken at the talk by Robert Johnson and Sanjeev Kumar at LISA 2010 conference. Should there be any mistakes, they are all mine.

According to the speakers, the architecture of Facebook.com is relatively simple: Web servers in the front, databases at the back. In the middle is a caching layer with a lot of memcached servers. If you recall my previous post, they use PHP extensively.

Unlike other sites, like email sites, whose users are well mapped and isolated to different servers, social Websites like Facebook have unique challenges in that their users are linked together. Errors in one part of a system may cascade easily and bring down the whole site.

Here are several important lessons Facebook learned while building software and operating the site:

Posted in Software Development | Also tagged , , | 1 Response

Hardware Designers vs. Software Designers

Just read part of the book Founders At Work over the weekend. Although I haven’t decided to be a founder of a startup company, I found the stories there are trully inspirational. You can read part of the book at Google book.

One interview with Hotmail cofounder Sabeer Bahatia is very interesting with his thoughts on the differences of software and hardware designers:

Posted in Software Development | Also tagged | 2 Responses

    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.