Showing posts with label microsoft. Show all posts
Showing posts with label microsoft. Show all posts

Monday, August 20, 2007

jQuery - Javascript on Steriods



For wildcat!, someone requested a wish item to add dynamic popup windows to see a preview of messages when they place their mouse over the message link. Since this request was ditto but many others, I explored adding "balloon tips" for these previews.

I found an javascript module jTip.js and this was very simple to implement into wildcat! mail template pages. Suddenly we have PREVIEWS!

But it wasn't perfect, so I looked for other javascripts and found a "enhanced clone" of jTip called ClueTip!

What was common between the two was that they both were plug-ins for a phenomenal new javascript framework called jQuery.

I checked out this jQuery and all I can start to describe this is by saying "WOW!"

jQuery is basically another language, a wrapper language more specifically that enhances the use of JavaScript. It basically makes it easier to create Web 2.0 applications with less javascript programming - "Write less, Do more" is the jQuery motto.

It does have a different language syntax that takes getting use to, but once you get over that hurdle, it is really quite flexible and I may say elegant as well with its ability to "chain" jQuery methods together in one line.

Here is a quick example of how jQuery improves javascript coding used in Wildcat!

Mail Inbox and listings have select checkboxes. The following javascript in wcMsglib.js is used to get the total selected:

Using raw DOM/Javascript:


// Find nodes by class name

document.getElementsByClassName = function(className) {
var children = document.getElementsByTagName('*') || document.all;
var elements = new Array();
for (var i = 0; i < children.length; i++) {
var child = children[i];
var classNames = child.className.split(' ');
for (var j = 0; j < classNames.length; j++) {
if (classNames[j] == className) {
elements.push(child);
break;
}
}
}
return elements;
}

function msgTotalSelected()
{
var nTotal = 0;
var msgitems = document.getElementsByClassName("msgitem");
for (var i = 0; i < msgitems.length; i++) {
var e = msgitems[i];
if (e.type == "checkbox" && e.checked) nTotal++;
}
return nTotal;
}



Using jQuery:



<script type='text/javascript' rc='/public/js/jquery.js'></script>

function msgTotalSelected() {
return $('msgitem:checked').length;
}



In short, jQuery handles all the typical complex DOM operations you would do to find DOM nodes, elements, classes and objects on a web page and provides a very elegant language syntax to give you all the functionality you need to create awesome web pages very quickly.

Do we need jQuery for Wildcat! web development?

Of course not. It is another tool, but a great one at that! It can make programming Web 2.0 easier.

jQuery also has a growing list of add-ons called "jQuery Plugins" that many people have written to glorify your web pages and make it more interactive.

jQuery also supports cross-browser functionality. This is one thing that will definitely reduce testing a web site against different web browsers.

The jQuery documentation is good (needs more examples) and I particularily like the Visual jQuery Reference site! In addition, the jQuery mailing list support group is very active and helpful as well.

Since I found some very useful jQuery plugins, it is a pretty good bet we will begin to implement jQuery with Wildcat! in many of its client areas. I've been exploring how to use jQuery template concepts, AJAX and other things and I have already found that we can scale the Wildcat! server more by moving a good bit of the server-side template processing to the Browser. I can't go overboard with this because jQuery will add overhead to the Browser thus making it appear more sluggish.

If this all jQuery exploration holds up, I might be setting up a jQuery support area for wildcat! developers and sysops at Santronics Online. This will allow Wildcat! customers to discuss jQuery and how they might be able to further use it with Wildcat! I'll make an announcement when the mail and files areas are ready.

--
HLS

Thursday, May 10, 2007

Rebranding Wildcat! Navigator Clients as "Web 2.0 Widgets"



The latest development fad today are "widgets". Google has them, Yahoo has them, Adobe has them, Microsoft has them. Each is doing it in their own ways with their own set of API toolchest:

o Microsoft - ActiveX, .NET and now SilverLight
o Google - A new comer Web Toolkit
o Yahoo - A new comer, Yahoo Widget API
o Adobe - Flash, Flex and now Apollo


For Wildcat! people, Wildcat! Navigator is a perfect example of "widgets" on your desktop. The above are all basically designed under the same idea as was done for over 10 years with your desktop Wildcat! Navigator (WCN) client or your html Wildcat! Web Clients:

Each of these WCN client are design with a single source API/SDK system. When using the Web, you can also display the clients in separate pages, making them appear as "widgets."

Widgets, smidgets! Maybe we will start calling Wildcat! Client as Widgets! :-)

The beauty of WCN clients is that under Wildcat! communications framework, the WCN clients can work with any connectivity device; WEB, GUI and TEXT mode!

So for those who believe "Social Networking" and "Widgets" were just recently invented with the Web, think again. This stuff existed for at least 20 years in the BBS world. You should know that the popular ONE ISPCON trade show was once called ONE BBSCON before the Internet exploded.

If you are interested, click on one of the WCN client links to see Wildcat! Client "Widgets" in action.

If you have Wildcat! Navigator (WCNAV) installed, your browser will start the desktop client. If you don't have WCNAV installed, you will see the web client. The chat client under the web, will start a JAVA desktop client. For text, you have to login under Telnet mode or Dialup. (For people who don't have an account on our system, try using the GUEST account - userid: guest pwd: guest).

Anyway, I think we will explore using Apollo/Flex to "glorify" Wildcat! Navigator clients. A technical challenge for us would be to see how we will bridge the Wildcat! RPC (WCRPC) communications framework with the various AJAX stacks and APOLLO for Java-based clients. A XML/RPC bridge might work but I haven't decided which way would be the best. Here is a drawing that illustrates the Wildcat! RPC framework showing some of the current industry considerations for Google Web TookKit, SPRY, Flash, SilverLight on the web side, and Apollo/Flex on the java side of the desktop.

Finally, to help us decide which way we should focus, I took a small quick survey to see how people are connecting to a Wildcat! system or to read mail. It was a stupid question because people who connected via their favorite method indicated as such the device they were currently using - DUH! However, what I found very interesting is that the response was spread across the board - the market is there for all the device type of connection devices.

Wednesday, May 09, 2007

CATSPRY - Wildcat! SPRY Framework




Folks, in my continue endeavors to bring you the good things in Wildcat!, I think I found a good AJAX framework called SPRY by Adobe.

Wildcat! already has a similar conceopt with its WCT (Wildcat Template System), but SPRY will help make Wildcat! XML ready.

Check this out this SPRY demonstration.

Soon I will have the CAT SPRYing! Stay Tune!

Web 2.0 - The New Simplicity: Interfacing with users



To borrow a current catch phrase, "At the end of the day," when it comes to writing computer software products, its success is how it best communicates with the end-user, the people, you are presenting and extracting information from.

Currently, there is a renewal of the old-age battle of what is best for the user: the offline (fat, downloaded software) client versus the online (thin) client.

The beauty of the web was in its simplicity with basic I/O with the user. Today, with video, music and the shifting of the brick and mortar business to the Internet, the explosion of information, requires a new paradigm of both mixed thin and fat clients.

There seems to be a battle between various companies competing for your mindsets in defining what that new "simplicity" is: Microsoft, Adobe, Google and Mozilla. We can include Apple, but they seem to be in a league of their own.

To explain all this, requires research and tabulation of all the various efforts currently available or current in development to define this New Simplicity. It is a mind boggling effort. One day soon, I will finish my research and try to provide a summary report of Web 2.0 efforts.

But in the mean time, here is a short synopsis of the situation:

Google and Mozilla

When it comes to thin client, you have Mozilla (FireFox, Thunderbird) who have defined their own open standard methods of creating presentations. Overall, the "Browser" is the solution to everything. Since Google does not have an operating system like Microsoft, its only method of penetrating the market place is by using its Search dominance as a platform to attract a world-wide community of users to essentially build its own network-based operating system of components called Google widgets. See iGoogle for a example of all this.

But how does Google get their technology? Well, for the most part it all seems to be coming from the open source Mozilla community. In fact, the new FireFox 3.0 currently in development is infested with Google branded.

Microsoft, Adobe (and Sun too)

When it comes to the fat clients, these two gorillas are battling it out for desktop clients. In short, you have to download or install software. Microsoft built its dominance by providing everything they think you need into the Windows Operating Systems. So when you installed Windows or purchased a new PC, it came with Outlook Express, Internet Explorer, and "Junior" or "Trail versions" of their elaborate Office products.

Adobe is an interesting company. I'm not sure when it decided to take over the world, maybe it was in self-defense, but their recent Web 2.0 story probably begins with Sun.

Adobe is most famous today for having captured at least 90% or more of the PC market place when it comes to online Video and Music playing with their Flash and Shockwave stuff. This fact has got Microsoft all stressed out, and that's putting it mildly.

Nonetheless, Flash is a small piece of software called a "plug-in" that users must install with their browser in order to play video and songs. Flash competes with the Microsoft Windows Media Player (WMP) already installed on the computer. But as FireFox became more popular, not everyone could use WMP. WMP is based on ActiveX and ActiveX is a NO-NO in FireFox (for security reasons). Flash really exploded into the market place when the immensely popular YouTube used Flash instead of WMP for its video sharing service.

But that was not enough for Adobe. This is how Sun comes in.

Sun is famous today for its Java Run Time Engine - yet another piece of software you download in order to run Java-Based Applications.

Sun and Microsoft have long battled each other over the Thin vs Fat client market. So much so, that Sun sued Microsoft when Microsoft tried to take over the Java Market with their separate "modified" version. Today, Microsoft no longer supports Java. Instead, they have .NET. Another piece of software you have to download to run .NET based products, however, since Microsoft owns Windows, all Windows versions now have .NET automatically.

So on your PC today, you have essentially three "Run Time Engines" in order to run "fat clients."

- Google/Mozilla with browsers using JavaScript
- Microsoft ActiveX and .NET
- Sun Java

Since ActiveX is part of .NET and required, we can lump it together, leaving us with .NET and Java.

But today, Adobe is using Sun's Java as a platform to write their own new "Media Player" and new development platform to define the new "simplicity" with their new Flex and Apollo framework.

Not to be out done by Adobe, Microsoft now has release "SilverLight" which will compete with Flash, Flex and Apollo. As mentioned, Microsoft is really worried about Adobe's Apollo/Flex efforts, so much so, they were forcing SilverLight into every one's desktop with all new security patches and Windows updates. This didn't go over too well with the market place, plus it has Anti-Trust ramifications. So Microsoft has backed off that "Throat Stuffing" SilverLight distribution. It is now optional (Wink Wink).

In the end, we have the following competing forces to define the New Simplicity:

- Microsoft with Internet Explorer
- Google/Mozilla with Firefox browsers
- Microsoft ActiveX and .NET
- Sun Java
- Adobe Apollo/Flex
- Microsoft SilverLight

Wasn't that simple?

And it really doesn't end there. There is so much more in the internal details of all the above. It isn't a pleasant concept to follow.

To most users, possibly none of this really matter doesn't. They will use the browser, and the widgets will use the browser, the .NET and the Flex stuff. If a vendor is forcing or offering a "desktop" component down their throat, most users will use it too. At worst, they will have a bloated machine that will require three Cray mainframes to smoothly run all these stuff.

But for developers, its a living nightmare!!