Monday, February 28, 2005

Advantage of Direct SQL in ORM

Here is some discussion on comparison of Hibernate (generated SQL approach) and iBATIS (direct SQL approach). Cornerstone Persistence also uses direct SQL, which has been proven to be a great feature in developing production applications.
  • Performance: You can write the optimal SQL for your situation.
  • Debuggability: You can copy the SQL statement printed on debug console and run it in a database tool to see what's wrong. This is most useful when finding data related issues.
  • Simplificity: There is no extra (automatically generated) layer that you need to understand and maybe get around.
Cornerstone Persistence is very similar to iBATIS with the extra feature of customizability.

Monday, January 03, 2005

Predictions for 2005 and Cornerstone

These are not my predications. I read Manageability's predications with the following comments.
4. Javascript will regain dominance in the space of Rich Internet Applications (RIA). XMLHTTPRequest based applications will explode as well as Flash actionsript based applications.
I completely agree on the JavaScript (DHTML) based Rich Internet Applications (RIAs). This is the Rich Thin Client approach Cornerstone advocates (a demo is in the works). As for Flex and similar technologies, I think they will grow also but with limited success compared to the former (just look at how far Applet has gone).
5. Java developers will continue to abandon EJB as the standard way of building Java based server applications. Lightweight frameworks like Spring will continue to take marketshare. Aspect Oriented Oriented programming will make steady progress however will not yet gain mainstream acceptance. IBM will gain more marketshare at the expense of BEA in the J2EE space.
Agreed. The point is less about EJB itself than simplification of developer's life, which is a major goal of Cornestone and a feature.
6. Semantic XHTML will continue to gain mind share as the best way to encode semantic information. XMLSchema will decline in usage. RDF encoding will be simplified such that it would be indistinguishable from Semantic XHTML.
When I first saw XML Schema 1.0 spec in 2001, the first thought was, How can anyone use a spec this thick? I definitely agree the pendulum is swinging back to the simplicity side these days. In fact, how many successful complicated standards have we had in the past? Remember X.500 vs SMTP?
10. Scripting languages will become dominant in addressing the needs of situated software. Speed of implementation will be the game and sloppiness will be the by product. Prototype based inheritance will be favored over static inheritance. The distinction between configuration, specification and instance will be completely blurred. Finally, documentation can be discovered only be reading the source code.
Yes! It's all about developer productivity. Now that we have a vast library (Java and other languages, web services, etc.) to draw from, it's only natural that we make the gluing process as easy as possible. That's why we are working on the invocation composition / orchestration layer of Cornerstone to make it easily scriptable.

Thursday, December 30, 2004

Cornerstone Concepts Paper Published

First draft of Cornerstone Concepts has bee published. It should be interesting read for everyone. We will be adding examples to illustrate the rather abstract concepts.

What Can We Learn from the Comair Snafu?

Today many blogs quoted this article about how a 16-bit counter overrun grounded the entire fleet of Comair on Christmas Day.
The SBS Crew Check system tracks all the details of where each crew member is scheduled and keeps a log of every scheduling change. Tom Carter, a computer consultant with Clover Link Systems of Los Angeles, said the application has a hard limit of 32,000 changes in a single month. "This probably seemed like plenty to the designers, but when the storms hit last week, they caused many, many crew reassignments, and the value of 32,000 was exceeded," he said.
Well, 32,000 does seem a lot to me. However, using a 32-bit counter adds no cost compared to a 16-bit one. So I think we can learn two lessons from this:
  1. Doing the mininum possible to satisfy requirements (an XP principle as I understand it) should be augmented to say: if there is no (minimal) cost increase, build in the greater capability.
  2. Always do the right things and never be lazy. This was the first I learned doing a real job after school. You can be lazy and OK for a moment but will be haunted later if you do care for the health (a word Kent Beck says he likes) of your software.

Sunday, December 26, 2004

Onto Better Templating

There have been many efforts to provide an alternative to JSP: Velocity and all. JSTP is another new one. They reuse JSP syntax (which is not the best syntax to follow) and decouple templating from servlet, which is a good thing. In the Cornerstone Framework, we use a tiny subset of JSP in our MVC module. With Cornerstone Template, we also try to provide an alternative to JSP that achieves the following goals:
  • Templating decoupled from servlet, so that templates can be used outside the context of servlets, for example, when you produce an email to send from a template.
  • Zero coding in templates, so that templates can be done by web designers without expertise of programming
  • Support of a simple and yet powerful expression language (we support OGNL)
  • Support of template nesting, so that complex templates can be built on top of simple ones

Thursday, December 23, 2004

No Non-Web RIAs, Please!

I went to this site and played with the Flex version of BlogReader. Want to know what I think? I am really concerned, to say the least. My question is why are we building a wall between this kind of applications and the Web? The Web is the level playground. When I am inside Flex BlogReader, many questions pop up in my head:
  1. Why are the hyperlinks not indicated in any way?
  2. When I right-click on a link, how do I open it in a tab (instead of a window)?
  3. How do I do a Save Link as ... on it?
  4. How do I bookmark the link directly?
You say, well, all these functionalities can be added to the implementation of this Flex BlogReader. But these are standard browser behaviors and why are they suddenly missing from this exciting new kind of RIAs (Rich Internet Applications)?

RIAs should not be non-Web. They should be part of the web. The user doesn't want to know that s/he is inside 1) a standard browser; OR 2) a special Flex window of the standard browser; OR 3) a special Laszlo window of the standard browser; OR 4) a different Swing/SWT window so that s/he knows how to react. Everything should just be the Web. That's why Cornerstone Framework pursues the Rich Thin Client approach (sophisticated and yet easy to use DHTML client) to RIA.

BTW, what do I use to read blogs? The excellent Mozilla Thunderbird. Its RSS support makes blog reading easy and well integrated with the browser.

References

Other People Worried about RIAs Too
Web or Desktop?

The Cornerstone Promise

I guess if you trace back the single word that began the journey of the Cornerstone framework, it would be Customizability. Cornerstone is built for that purpose from the ground up. Cornerstone philosophy is that Requirements will chnage an hence the framework needs to be built in a manner that it can be re-wired to meet the new requiremetns. In Cornerstone we achieved this by the very unique to Cornerstone concepts of "defining change in multiple dimensions" this is what has made it possible for us to accommodate change in multiple directions. The creators of Cornerstone for many years suffered from using products that were not custmizable and as a result were driven to create the Cornerstone platform that embraces customization in a practical way that Application developers can quickly take on.

This is the promise of Cornerstone, we make it simple, we make it practical, we make very hi tech but yet you wouldn't even notice due to the simplification, we make it performant, and non invasive.

Monday, December 20, 2004

Triumph of Customizability

Niloy and I were working on release 2 of a Cisco internal application. Release 1 was built on Cornerstone. Presentation actions were all written in plain Java and then wired into page flows (they are really continuations) using the registry. Release 2 is the enhancement on some old technology. We need to call release 1 functionality remotely (release 1 and 2 run on two different servers, one with BowStreet and the other Tomcat). So we started tinkering with calling release 1's flows directly. There are many differences in the flows themselves and how they are called. So we could not reused release 1 flows as is. But the customizability of Cornerstone made it very easy for us to create alternative sequence controllers to do things a little differently. Now with only added entries in the registry and zero change to release 1 code, we were able to customize release 1 to the needs of unanticipated usage scenarios in release 2. This is the power of customizability, as is designed into Cornerstone. You can imagine we are very happy to see it work in reality.

Free Licenses for Confluence and JIRA Granted

Atlassian has just granted us a free open source license for Confluence (Wiki) and another for JIRA (issue tracker). We commend their support for open source software. Our Wiki can be found here and also our website. JIRA will be up soon. From here on, Cornerstone Framework will be full-steam ahead.

Friday, December 17, 2004

More Talk about Rich Internet Applications

It looks like more and more people are talking (ref) about the kind of Rich Internet Applications that Cornerstone Framework advocates and implements (ref1 and ref2): rich thin client approach implemented with existing DHMTL standards that has the following advantages:
  1. richness of functionality
  2. zero client deployment
  3. standard (not only implementation technology but also client behavior) compliance
Watch this space for another series on Cornerstone: the Enabler of Rich Internet Applications.