Archive

Archive for the ‘Software Development’ Category

More Thoughts On Rich Internet Applications And Applications In General

February 21st, 2010 No comments

Compared with advances in other application development, the rich Web application development using Java is not quite there yet. Instead of simplifying JavaScript, AJAX, and JSF, we need a new head start. Don’t get me wrong, some of them are still needed and continue to work well for plain Web applications.

“Develop Once, Run Everywhere”

Adobe Flex has done a fairly good job for Web. Even better the same code can be easily tweaked to run as a standalone application with Adobe AIR. This was once an expectation for Java when it first came out to run as an Applet. Somehow it didn’t succeed in its birth place, but gained its ground at the server side instead.

JavaFX from Sun is a nice try but too late in the game. More importantly, Sun is not a client software company like Microsoft who was also late with SliverLight but has client side expertise and managed to compete. I don’t think Sun will reclaim its already lost client market at all, and therefore JavaFX is likely a candidate to be axed after Oracle’s acquisition. The investment on JavaFX should have gone to Java Swing, which is a lackluster compared with IBM SWT.

Learning Spring Faces, Security, Testing and Grail

February 19th, 2010 No comments

Done with the four day training, finally! It’s pretty exhausting given that I had to get up two hours earlier to match the Central time schedule.

Spring Faces

I talked about JavaScript and AJAX two days ago. They are all good to some extent, but seemingly disconnected from the server. You have to think and manage the Web app as two pieces, bad for the productivity.

JavaServer Faces (JSF) technology was created to solve this problem. It a server-side framework, which provides GUI components, manages their states from the server side, handles events, and etc. You can then develop a web app more like the standalone application in some sense. Because JSF manages the state from the server side, it uses more resources and less performant than it’s JS/AJAX equivalent.

Spring Faces is not a replacement for JSF, but complements in the “Spring” way. It facilitates deeper JSF and Web Flow integration, manages JSF components’ states, and provides more lightweight JSF components. Therefore, you can get leaner web application than using pure JSF.

Debugging

Several tools can be handy for your debugging:

Learning Web Flow With Spring

February 18th, 2010 No comments

Web flow is the most confusing part so far in RIA with Spring training, therefore a whole day was dedicated to this.

From a very high level, a Web flow is just like a wizard in a stand-alone application. It guides a user through several steps of interactions. Complicated wizards may branch out depending on the information entered in early steps, so do the Web flows.

Well, Web environment has its uniqueness and challenges. Spring Web Flow is designed to ease it. Like any other framework, you have to overcome the learning curve before you can really take advantage of it.

The good news is the Web Flow still fits in the MVC framework overall, just with a new set of handler mapping, handler adapter, plus the new flow executor.

Learning JavaScript + AJAX

February 17th, 2010 No comments

It’s the second day of the four day training. A lot of things were covered:

  • Modern Web UI including progressive enhancement, accessibility, and design.
  • Applying Spring JS, an abstraction around other AJAX toolkit. The coverage includes AJAX events, client side validation, and rich widgets.
  • Working directly with Dojo Toolkit, including DOM scripting and Dojo widgets (Dijit).

The progressive enhancement is a great concept. The basic idea is to have your web pages start with plain HTML and then “decorates” them with richer L&F and more interaction on the fly. The key benefit is better compatibilities with different browsers which all support HTML but not necessarily JavaScript. When JavaScript is supported by the browser, the pages are enhanced by the embedded JavaScript; when not, the pages just render well as normal HTML.

Learning Spring MVC

February 16th, 2010 No comments

Today is my first day in a four day training – Rich Web Applications With Spring. It’s a pretty intensive day from 7AM to 3PM which covered the following:

  • Quick start with Spring Tool Suite  and reference application.
  • Spring MVC essentials, including architecture, controllers, conventions.
  • Using layouts and views, including composite views with Apache Tiles, and multiple rendering technologies like Excel, PDF in addition to the HTML.
  • Processing form pages, including data binding, validation, and form tags.

I used Java Servlet and JSP about 10 years ago while working on a NMS project. At that time, there was no good MVC framework for developing a large web application. You had to program against the Java Servlet APIs directly. Jason Hunter’s book Java Servlet Programming was my favorite book.

CO2: The Formula For A Successful Developer Ecosystem

February 1st, 2010 No comments

Since joining VMware two and half years ago, I have been working like a consultant on partner enablement projects in various technical areas like SDK, SRM array adapter, VI Client plug-in, DRS clustering, etc. While working on these engagements, I always think about more efficient and more effective ways to get my work done and grow our developer ecosystem.

To summarize what I learned and thought, I decide to use CO2 as the success formula because it fits well when we talk about an ecosystem. The CO2 here means differently though. It represents Cash + Open source + Open communication.

Get your hands dirty with self paced labs at PEX 2010

January 28th, 2010 2 comments

Besides the talks on VMware APIs, two self paced labs are there for you to try out the vSphere SDK and PowerShell at PEX. More details are quoted in later part.

As a bonus, you will get a chance to learn VI Java API in the SDK lab. Thanks to VMware TAM Alton Yu for making this happen! I will be there when I am not presenting my talk “Architecting Your Applications for VMware Cloud”, or helping on the BOF, genius bar, etc.

How does LinkedIn.com do the search?

January 28th, 2010 No comments

Search has been a hot topic since Google successfully monetized it with advertising business model. Besides general Web content search like Google does, there are many other types of searches needed for other Internet companies.

LinkedIn.com, with which most of us have created profiles, offers search capabilities based criteria like keywords, names, location, industry, companies currently with and before, school, etc. Because what Linkedin.com has is well structured data, you and I expect it to do a better job than Web searches. In fact, it does.

Why does C# Web Service code look weird?

January 25th, 2010 No comments

Today I read a posting at VMware community forum about the weird code required by C# Web Service. If the following line is missing, then the vSphere API call to get properties doesn’t work:

VimApi.VimService.PropertySpec.allSpecified = True 

But the problem is that there isn’t any property defined as allSpecified in the object PropertySpec according to vSphere API Reference.

So, where does the allSpecified come from? and why is it needed?

Why DoubleCloud? The mission statement in short

January 21st, 2010 No comments

After setting up this blog site, I updated my LinkedIn profile. This morning, my colleague Gilbert left me a comment saying “why not hybrid cloud?” I know he was kidding, but it’s a good time to explain why I got this name.

The basic idea behind the name is the following equation:

DoubleCloud = PublicCloud + PrivateCloud

or as some people prefer

DoubleCloud = ExternalCloud + InternalCloud

Tips working with older versions of VMware Infrastructures using VI Java API 2.0

January 20th, 2010 No comments

Among many well know improvements like huge performance boost, VI Java API 2.0 has a big feature that we don’t talk much. It’s the full compatibility: one library for all the existing version from 2.0, 2.0 to 4.0.

Object Oriented REST?

January 12th, 2010 1 comment

As mentioned in previous blog, REST is a style than a systematic way defining distributed interfaces. Given how it’s used today, there is a big gap between how it’s used and sophisticated software system development.

The gap between REST and OO

REST or SOAP?

January 9th, 2010 1 comment

REST or SOAP?

REST is acronym for Representational state transfer (REST). It is a software architecture style for distributed computing system such as Web.

For whatever reason, it got so popular today that many people equals the future of Web Services to REST. It’s true that REST based API is easy to understand with simple HTTP request/response messages in XML format. You can get some work done using text editor plus web browser.