April 24, 2007

Dojo Offline - Running Web application Offline!

Ok! There is yet another beta product that you can add to the list of Apollo,Silverlight and Dekoh. This time the beta product is from Dojo an ajax library. According to Dojo team the Dojo Offline is "a free, open source toolkit that makes it easy for web applications to work offline" . Yes, this has striking similarities with Apollo, Silverlight and Dekoh (Read my previous post for comparison) as all these beta products aims at "Integrating web with desktop"! and all these products define it in their own way.

Dojo Offline have been in development from some time during Jan 2007 or even before that. It has been developed by Dojo, SitePen and Brad Neuberg, a San Francisco-based software architect and programmer. Dojo Offline claims to the small,easy and open. It consist of two parts : a javascript library (the dojo library) with web pages and a cross-platform, cross-browser runtime that will help to cache the web application interface and run. The small caching is done by polipo a caching web proxy developed by Juliusz Chroboczek. This small runtime is only 300K (compared to its competitors this is very small). It also comes with tools to build UI, helps to store data and important part - its 100% open source! and the runtime is BSD licensed.

The runtime is available for download for developers. For end users only the windows and Mac OS X. You can have a look at Hello World application here.


Ubuntu brings Java to users

Ubuntu has been steadily climbing to become one of the best Linux distros available. this community built Linux have become one of the stable and user-friendly OS available. The installation process is simple compared to other linux distros and with each new release, Ubuntu have come a long way in building desktop version of linux (They also have server versions).

The new release, Ubuntu 7.04 is going to offer a "java combo". The combo will contain Sun's J2EE with GlassFish, JDK 6, Derby based java DB and NetBeans IDE 5.5. This offer comes after Sun Microsystem partnered with Canonical Ltd, the commercial sponsor of Ubuntu. The combo will be available for download from the Ubuntu repository.

The main aim of this move is to catch up with the RedHat/Jboss which is already available. The Sun's choice to pick Ubuntu is really good because, Ubuntu have been growing fast. The main reason for this growth is its free online support, free CD distributions, forums along side the commercial support. Apart from this they have done a good work to bring out a very user-friendly desktop OS!

So with Sun and Ubuntu providing this new combo, lets see how the other rivals compete.

April 17, 2007

Adobe unveils its media player

Abode is keep their camp rolling! They just unveiled their new product ( the Adobe Media Player ) at National Association of Broadcasters (NAB) trade show. NAB seem to be a happening place with Microsoft launching its Silverlight. The battle is on!

Adobe's Media player seems to be developed in Apollo and will be one of the first Apollo application from Adobe. The player's name is Philo and its download will be available only by mid 2007. It's going to support the Flash format playback for which there is no player from Adobe. It will have both online and offline playback with capabilities for demand streaming, live streaming, progressive download and protected download-and-play.

I am sure, they will provide a excellent user-friendly user interface and will have capabilities to share the media content and will have support for open standards like RSS and SMIL.

April 16, 2007

Microsoft launches Silverlight

At last Microsoft moves WPF/E to Silverlight! This shows Microsoft is not far from Abode's Apollo and Pramatic's Dekoh in the race of building cross-browser and cross-platform for developing rich interactive applications (RIAs) for the Web. All these three products are in race head to head and I recommend you (web developers) keep a close look on these technology because these are going to transform the web! Even though all these (including Silverlight) are in their pre-release and is meant for developers to test they are brilliant and highly innovative work from these companies.

Now looking into Silverlight, the first change here is Microsoft gave WPF/E (the project codename) to Silverlight and display it as a development procduct rather than keeping it in MSDN. And this is the only major change I can see!!! They have given it a name, site and yah, its more publicly accessible.

Microsoft's definition of Silverlight is :"
Microsoft Silverlight is a cross-browser, cross-platform plug-in for delivering the next generation of media experiences and rich interactive applications (RIAs) for the Web". But I am still wondering will they support linux this time around and provide the runtime? Or will the mono project develop the runtime as they developed the .Net counter part for linux?


Dekoh Alpha Released!

Pramati Technologies just announced the public alpha release of their new RIA (Rich Internet Application) platform, Dekoh Desktop. Dekoh has already challenged Apollo as Desktop/Web Platform and now they are giving their Alpha to public. This is a great opportunity for web developers to test both Dekoh and Apollo at their alpha stage and find their likes and dislikes. And finally reduce the desktop - web gap!

Looking at the Dekoh architecture, it consist of there parts:

1. Dekoh Desktop: the developer platform; the core runtime engine that runs on Windows, Linux or Mac OS. This consist of a personal web server and runtime (You will be needing JDK 1.5).

2. Dekoh Applications: the initial set of applications that can make the platform sufficiently interesting for end users to install and try. They have come up with some interesting applications for the developers and users to try and have a feel. Some of these are : Thumbnail Maker , TagCloud.

3. Dekoh Network: the sharing platform for end users to create personal networks in the typical web2.0 style right on their desktop. It also ensures secured and controlled sharing of applications or content on the desktop.

Dekoh developers can find their development portal here and the wiki home is a good start for the starters. But there are still pages that say "comming soon"!!!

April 13, 2007

Apollo , WPF/E and Dekoh a comparison

Adobe has come up with a innovative cross-OS desktop platform called Apollo and definitely evey innovation is copied,cloned or imitated. That how I see Mircosoft's WPF/E and a new product called Dekoh. Now lets look how all these products are defined by their creators.

Apollo: "Apollo is the code name for a cross-operating system runtime being developed by Adobe that allows developers to leverage their existing web development skills (Flash, Flex, HTML, JavaScript, Ajax) to build and deploy rich Internet applications (RIAs) to the desktop.
Apollo enables developers to create applications that combine the benefits of web applications – network and user connectivity, rich media content, ease of development, and broad reach – with the strengths of desktop applications – application interactions, local resource access, personal settings, powerful functionality, and rich interactive experiences.
"

WPF/E: "“WPF/E” is the Microsoft solution for delivering rich, cross-platform, interactive experiences including animation, graphics, audio, and video for the Web and beyond. Utilizing a subset of XAML (eXtensible Application Markup Language)-based Windows Presentation Foundation technology, “WPF/E” will enable the creation of content and applications that run within multiple browsers and operating systems (Windows and Macintosh) using Web standards for programmability. Consistent with Web architecture, the XAML markup is programmable using JavaScript and works well with ASP.NET AJAX. Broadly available for customers in the first half of 2007, “WPF/E” experiences will require a lightweight browser plug-in made freely available by Microsoft."

Dekoh: "
Dekoh Desktop is a cross-OS desktop platform that brings several key J2EE, database and web services modules together, in a compact footprint package ready for end consumer use. Dekoh as a platform enables building a new breed of applications that combine advantages of the web and the PC. Dekoh applications bring rich interface, interaction and functionality using personal media and local devices on the PC. These applications can work even when offline and provide a web 2.0 style sharing and community networking features. "

Here we have three products aiming to bring "web to desktop" or the other way around! Either way, the aim is to increase collaboration, user experience, easy of use which are all properties of Web 2.0. So Web 2.0 is moving to a better way unlike some authors who say "Web 2.0 is over and out!". Looking deeper into these products, its really worth comparing as these are definitely here to stay and change the way we interact with web.

On comparing these products you will see that both Apollo and WPF/E are from software giants, and Dekoh is a new product being born from
Pramati. Looking how these software giants perform, we know Microsoft runs the largest share of PC, but at the same time Abode has 97% of penetration for its flash player which its cross-OS platform is based on. So looking at market, these two giants, already have their base built for launching their platform and there are enough developers and customers they can get hold on. In this part Dekoh fails!

We are over with one comparison and that's not enough, lets look and the developer community now. Microsoft has a vast developer community, with its Visual Studio .Net the community's size have definitely increased. Abode on the other hand have been attracting developers to its product by releasing SDKs for its different products like Acrobat to Photoshop. They also devloped ColdFusion which has also caught market share. Pramati Technologies is an end-to-end Enterprise Java platform vendor with a product suite that includes application servers, component development tools, and an extensible web based management framework. But I doesn't have it's own technology. So as such no developer community (other than their employees and closely related developers ).

But but but,.. their is a major point that changes view among these three technologies. We all know both Microsoft and Adobe are money makers! They have their SDKs free for (poor) developers and charge for the commercial versions of all their product. Here is where Dekoh shine! Dekoh is going to be open sourced and open to community( I am presently not sure under which license its going to be released ).

Now lets get technical.. All three have a different approach to the same aim. Microsoft is going to use their .Net XAML along with ASP.NET and Ajax (for sure) as their development path. In case of Apollo, Adobe has its extension of Flex and ActionScript as the main development path, but the developer can make use of HTML,flash and interact with javascript and Ajax. An important point here is both these products have their dedicated development path i.e, XAML of Flex, but Dekoh is going to make use of the existing technologies like DHTML,Ajax,Java,PHP and has support for Flash and Flex. So making use of the exisiting technology like Java and PHP which have a very large development community is one major plus for Dekoh.

Another point of difference is the runtime environments that runs these technology! Definitly Microsoft has released its WPF/E runtime environment for download, it is supported only on Windows and Mac (No Linux in sight and still they call cross-platform?) . Adobe makes use of its flash player technology and has a Apollo runtime (Alpha) ready for download. But Apollo too is only for Windows and Mac, but I am sure Linux Apollo runtime is on its way. Now looking at our new product, Dekoh makes use of Java 1.5 and higher as its runtime environment!!! We all know JRE is having a very strong hold in all sectors of the computer industry and this is going to be a major plus in case of Dekoh.

Coming back to developer community, Java has a very strong community compared to Adobe and even Microsoft (you may disagree). Developers tend to be lazy to study new language as it take time to be an expert. Taking this scenario, Dekoh has another plus to its pocket. But, just using the Java technology is not going to make is successful. Adobe as already been seen hunting java and other web developers to use Flex to overcome the complexity of using vast number of Ajax libraries.

So, with these new technology at you door steps, what are developers going to choose? Which one will rule the Web ? We are yet to find out ;) Have a good weekend!

April 12, 2007

A quick change!

Every blogger during his blogging career goes through this period. He gets bored with his theme and hunts for new one. When I hunt for new themes, my eye catches only the WordPress themes and even at times I have thought of shifting to it. But, end of the day; I keep what I have because i am a Google fan ;) .

For the past few days I was on hunt for a three column theme for blogger and finally found something that suits (but still not happy with)! And here it is, I have converted my blog to a three column blog and I am quite happy with the looks :) . Even though this is a real surprise move, I am working on some small changes into this theme. I plan to bring in a Tag Cloud rather than have the tags listed. Apart from that, I also plan to put in links to my friends blogs.

You will find these updates when I publish my next blog entry, till then bye bye!

Parsing XML response in Ajax

Ajax technology can do magic, but its all about handling ajax the right way! Industry have two wings of browsers (FF and IE) which behaves differently when manipulating DOM. A Ajax programmer need to handle certain "issues" so that you can get same results on both these browsers. One such thing is parsing of XML. You can find lot of XML parsers written in java script but when you are into building custom application that don't make use of Dojo,GWT or any other ajax library. Here I will explain the proper technique to parse XML response and render it on screen. Using this method you will get the same output in FF and IE.

First lets take a look and the wrong code. I have simple set of java script functions to do login, Any server side scripting (I used servlet) may be used.Its just a simple authentication code at the server side, but the important part is the response. We are going to get a XML response which we will try to parse and display the result on the web page. Here is the code:

function getConnection() {

var cObject;
if(window.XMLHttpRequest) {
cObject = new XMLHttpRequest;
} else if(window.ActiveXObject) {
cObject = new ActiveXObject("Microsoft.XMLHTTP");
}

return cObject;
}

function doLogin() {

conObject = getConnection();
conObject.onreadystatechange = displayResult;
conObject.open('GET','/dctmfx/LoginServlet',true);
conObject.send(null);

}

function displayResult() {

if(conObject.readyState == 1){
document.getElementById('result').innerHTML="Loading...";
}
if(conObject.readyState == 4) {

var xmlDoc = conObject.responseXML;
var root = xmlDoc.getElementsByTagName("action");
var tempData = root.getElementsByTagName("message")[0].text;

document.getElementById('data').innerHTML=tempData;
document.getElementById('result').innerHTML="done";

}
}

The HTML page is given below:
<body>
A sample web application...
<a href="#" onclick="doLogin()" > Click to Login >/a>
<div id="result">
</div>
<div id="data">
</div>
</body>

A XML response is given below:
<action>
<message>OK</message>
<action>

When you work on IE, everything is smooth and runs good. Your application will start acting weired when you try access the same web application using FF. And the reason for this is : The way we parser the XML response.
The solution, is to parse the XML using DOM and the basic way is to use the properties in DOM. If we make use of the DOM properties, you can achieve a must robust application. Here is the right code:

function getConnection() {

var cObject;
if(window.XMLHttpRequest) {
cObject = new XMLHttpRequest;
} else if(window.ActiveXObject) {
cObject = new ActiveXObject("Microsoft.XMLHTTP");
}

return cObject;
}

function doLogin() {

conObject = getConnection();
conObject.onreadystatechange = displayResult;
conObject.open('GET','/dctmfx/LoginServlet',true);
conObject.send(null);

}

function displayResult() {

if(conObject.readyState == 1){
document.getElementById('result').innerHTML="Loading...";
}
if(conObject.readyState == 4) {

var xmlDoc = conObject.responseXML;
var docRoot = xmlDoc.getElementsByTagName("action")[0];
var tempData = docRoot.childNodes[0].firstChild.data;



document.getElementById('data').innerHTML=tempData;
document.getElementById('result').innerHTML="done";

}
}

Here you can see, we have made use of firstChild.data to get the same text data that we obtained using *.text. The first case is proper utilization of DOM properties and you will see things working in any browser.
For your reference to DOM properties, make use of this site.

April 11, 2007

Suggesting features for Gmail

Google is going around collecting new features that is to be added to Gmail. Looks like the next mega update that is around the corner is going to be for Gmail. And I would love to see some of them. You can suggest features here. All you have to do is check the features you google to add and put your innovative idea in the end!
The new feature list includes some interesting features like:
  • Rich text signatures
  • Ability to block a user from sending mail to your account
  • Hierarchy of Label system
  • Additional chat emoticons
  • Integration with other Google products
  • Add notes to messages
  • To-do list
  • Multi-person chat
  • Export messages to a CD for storage
  • ...
Lets see what all features are going to come out. But i am disappointed because Google calendar has not yet got a face lift (I wish it had "To-do list" and much more). The major feature I am looking forward to see in Gmail is integration with other Google products like Calendar,Picasa and Google Talk. Another Integration option Google missed out to mention in their list is to integrate google docs and spread sheets. I also wish we could have a better navigation method to other google services which is presently on top left corner!

Suggest you features for Gmail

April 09, 2007

Draft of BCC ( Bloggers Code of Conduct)

Tim O'Reilly recently called for a Blogger's Code of Conduct after some firestorm about violent and disturbing anonymous comments popping on one of the blogger's site. People have started contributing to a draft a Blogger's Code of Conduct. Here is the latest extract from the conduct:

1. We take responsibility for our own words and for the comments we allow on our blog.

We are committed to the "Civility Enforced" standard: we will not post unacceptable content, and we'll delete comments that contain it.

We define unacceptable content as anything included or linked to that:

  • is being used to abuse, harass, stalk, or threaten others
  • is libelous, knowingly false, ad-hominem, or misrepresents another person,
  • infringes upon a copyright or trademark
  • violates an obligation of confidentiality
  • violates the privacy of others

We define and determine what is "unacceptable content" on a case-by-case basis, and our definitions are not limited to this list. If we delete a comment or link, we will say so and explain why. [We reserve the right to change these standards at any time with no notice.]

2. We won't say anything online that we wouldn't say in person.

3. If tensions escalate, we will connect privately before we respond publicly.

When we encounter conflicts and misrepresentation in the blogosphere, we make every effort to talk privately and directly to the person(s) involved--or find an intermediary who can do so--before we publish any posts or comments about the issue.

4. When we believe someone is unfairly attacking another, we take action.

When someone who is publishing comments or blog postings that are offensive, we'll tell them so (privately, if possible--see above) and ask them to publicly make amends. If those published comments could be construed as a threat, and the perpetrator doesn't withdraw them and apologize, we will cooperate with law enforcement to protect the target of the threat.

5. We do not allow anonymous comments.

We require commenters to supply a valid email address before they can post, though we allow commenters to identify themselves with an alias, rather than their real name.

6. We ignore the trolls.

We prefer not to respond to nasty comments about us or our blog, as long as they don't veer into abuse or libel. We believe that feeding the trolls only encourages them--"Never wrestle with a pig. You both get dirty, but the pig likes it." Ignoring public attacks is often the best way to contain them.

Now the question is how will this work out? Will the Code of Conduct live up to for what it was created for? You can always find the latest draft and also contribute here.

Online publishing and collaboration

Some say Web 2.0 is dead. but I disagree! Its not dead, its just started and we have miles to go. Web 2.0 have started transforming the web into more social and globature (global culture). With many new ventures coming up, but I going to introduce two interesting sites I found.You may have used Google doc's that help to create/edit and collaborate the content you write. Definitely Google helps in sharing your content but these two sites are different. that's why they stand out!

1) OpenFloodgate is a open publishing arena. You can create your content and publish. The published content is for public view and you can try reading some interesting stories. The registration process is very simple. With email, name and password you can get started immediately after registration. All content that you create is called "Creation". To create you have to specify the title, format : what your content is (article,poem,story etc..),the language, a brief description. You can also select the category your content falls and who all can view your content.One missing feature in OpenFloodgate is the missing online editor. Presently you have to upload you content which should be PDF or MS-Word file. You also have a provision to add cover image for you content. To start discovering you creativity OpenFloodgate is not bad at all. You can join, create clubs and share your content with you club members. And ya... If you are still shy to publish, you can keep the content for yourself!

2) Storysquared is a typical publishing site where multiple people can contribute to the content. In short you start a story, others add into it and final somebody end it! The twist and turn can take to the limits of creativity. Try reading one of the public stories and you will find some really interesting! Here you need to have access in order to view the "story directory". You get a simple text editor where you can start your story. You can specify how long people can contribute to you story. After that relax and watch how the story flows ;)

The two sites are simple and are sure to attract more users if they add more facility. They lack proper user profiles and editors that will make the users content more realistic. I am sure these short comings will definitely be implemented and take online publishing further!

April 05, 2007

D Programming Language

D is a yet another object-oriented system programming language developed by Walter Bright of Digital Mars. After C and C++ in the field of system programming the next entry is D. D language has been designed from the practical knowledge of how C++ was used to solve different real life problems. It uses many C++ concepts but discards some concepts and have been influenced by concepts used in other programming languages, such as Java,C# and Eiffel.

The D language inherits many of the C++ features. The most highlighting feature is automatic memory management ( know as garbage collection ) . Another major change is C++'s multiple inheritance is replaced by Java style single inheritance, interfaces and mixins. Other changes are first class arrays, associative arrays, dynamic arrays and more. A comparison of D with languages like C++,Java and C# will help you get more details on features. Unlike newer languages like Java and C#, D is not a interpreted language and needs no runtime. Upon compiling the source code you get the executable file that runs without a runtime like JVM or .Net framework!

D language is a very new language. Its version 1.0 was released only on January 2, 2007 and is still under development. There are mainly two implementations of the complier available:
  1. DMD Compiler : the Digital Mars D compiler, the official D compiler by Walter Bright.
  2. GDC : GDC is a D language front end for the GNU Compiler Collection
I downloaded the DMD compiler and had a taste of D. I just downloaded the complier from the Digital Mars web site and extracted it. Upon extracting you will find six folders that contain the complier, library files, html and man documents, sample programs and source code of the DMD compiler. To get started I added the complier's path to my windows environment variable PATH and simply opened a notepad. With some help from the D language's wiki site.Here is my Hello world program in D :

import std.studio;
void main() {
writefln("Hello World");
}

To compile dmd . The file extension for D's source file is "*.d". I also tried changing the extension and compiling the code but it simple gave me an error! Thus I moved on to my next program. This time I made a program that is object oriented. There is the code:

import std.stdio;

class Test {
private int number;
private char[] name;

public:

//constructor
this(int n, char[] c) {
number = n;
name = c;
}

int getNumber() {
return number;
}

char[] getName() {
return name;
}

}

void main(char[][] args) {
writefln("A simple application:");

Test obj = new Test(142,"abdel");

writefln("Number: %d",obj.getNumber());
writefln("Name: %s",obj.getName());
}

One thing you can see here is that, D like C++ allows the programmer to follow the procedure oriented and is not a strict object oriented language like Java or C#. Another interesting concept I found is
D provides direct access to C runtime library functions and operating system API functions. You will find integration with SWT, GTK+ and much more. Ah, before I end you can find IDE plugins to many popular IDEs.

So is D language worth it when we have C, C++ for system and embedded programming? How will the programmer community take this language and to what extend will it change the programming world? But I don't know D is yet made a impression and many people are yet to know about it! What's your opinion?

April 03, 2007

Flex Atom reader

Here my first useful Flex application! For the past few week I have been building Flex applications that was not useful in any sense except that I got to learn hot to make use of different components, ActionScript etc. You can view the AtomReader from here and also download the source code.

AtomReader is a very simple feed reader that read the feed of Flex Team and display it. For now, the AtomReader just displays the summary and doesn't link to the appropriate blog entry. The next version of AtomReader will have following facilities:
  • User can enter any atom feed and view the result.
  • User can also click on the title a view the complete entry.
  • A better user interface than the first version.
Building my AtomReader was not easy for me! The major trouble was parsing the XML response that is received upon requesting the feed URL. What I intended was to parse the XML using the XML class and not using any available parsers. For unknown reason I failed and had to go for a simpler method to complete the application. Another problem faced during development was the usage of URLLoader and URLRequest classes. I will how these thing work in the coming days and the next version of AtomReader will have the above promised features.

Running Example : http://flexguide.googlepages.com/atomreader
Source Code : http://flexguide.googlepages.com/Atom.mxml

April 02, 2007

Google's new service: Google TiSP

Yet again Google comes up with a great innovation. This time its FREE in-home wireless broadband service named Google TiSP. The most interesting part is to know how it works! Google is going to make use of the municipal sewage lines to connect your home with their TiSP Access Node. Here how it's done:
Google is having a "Do-It-Yourself" guide to install TiSP kit. They are also going to provide service for installation and setup. That's not all!! The TiSP is provided for enterprise with 24-hour on-site technical support in the event of backup problems, brownouts and data wipes. And you can get your kit from Google Checkout ;)