Sunday, October 19, 2008

Quotes

Real generosity is doing something nice for someone who'll never find it out.

It is better to light one small candle than to curse the darkness.

“It is strange how often a heart must be broken before the years can make it wise”

The intelligent man is one who has successfully fulfilled many accomplishments, and is yet willing to learn more.

Never take anything in your life for granted. Always be prepared for radical change.

If you make people think they're thinking, they'll love you. If you really make them think, they'll hate you.

No man is fit to command another that cannot command himself.

It is not enough to have a good mind; the main thing is to use it well.

Right is right, even if everyone is against it; and wrong is wrong, even if everyone is for it.

The man who follows the crowd will usually get no further than the crowd. The man who walks alone is likely to find himself in places no one has ever been.

You were born an original. Don't die a copy.

The difference between truth and fiction: fiction has to make sense.

Don't cry when the sun is gone, because the tears won't let you see the stars.

Work like you don't need the money, love like you've never been hurt and dance like no one is watching

Do not lose courage in considering your own imperfections.

Don't tell other people your troubles. Half of them aren't interested, and the other half will think you deserved it.

Stupid people do stupid things, but people who are smart enough can do something really stupid.

Better to remain silent and be thought stupid than to speak and remove all doubt.

A man wants to be a woman's first love, a woman wants to be his last.

When women hold off from marrying men, we call it independence. When men hold off from marrying women, we call it fear of commitment.

The most valuable of all talents is that of never using two words when one will do.

Tuesday, October 7, 2008

Mono 2.0 lets .Net apps run on Linux

Source: http://www.infoworld.com

By: Paul Krill, IDG News Service
October 06, 2008

Mono 2.0, an open-source runtime enabling .Net-based applications to run on Linux, Mac OS X, and Unix, is being released Monday, featuring capabilities for a number of .Net technologies.

Considered a major upgrade, the open source Mono 2.0 runtime leverages Microsoft's .Net Framework 2.0 programming model. With Mono developers can build desktop and server applications using Microsoft-based environments and deploy them across multiple platforms, including Windows. Novell is leading the Mono effort.

"The existing apps you build on Windows, you can now run those applications on Linux or MacOS 10. Different people have different reasons for doing so," such as platform consolidation, said Miguel de Icaza, vice president of developer platforms at Novell and Mono project maintainer.

Mono 2.0 supports the C# 3.0 language and LINQ (Language Integrated Query) for querying of data across databases, objects, and XML content, de Icaza said. Also, users can move over server applications built for .Net and client applications built with Windows Forms.

Version 2.0 of Mono, however, lacks support for key .Net 3.0 and .Net 3.5 APIs, specifically Windows Communication Foundation, Windows Workflow Foundation, and Windows Presentation Foundation. These are not currently supported because they were not amongst the most requested technologies sought by early users of Mono, de Icaza said.

"We don't support them because we haven’t developed those pieces yet," he said. Work on WCF support is planned for next year.

Also featured in Mono 2.0 is MoMA (Mono Migration Analyzer), a tool to assess the readiness of Linux environments for migration of .Net applications.

Microsoft's reaction to Mono has been mixed, according to de Icaza. "I guess it depends on who you ask. In some cases, of course, they would rather have people stay on Windows," he said. Microsoft is working with de Icaza and Novell on Moonlight, which will enable applications built for Microsoft's Silverlight browser plug-in to run on Linux. Moonlight 1.0, a more complete release than what has been available, is set to be released by the end of this month.

Mono is intended to help more applications be moved to Linux and help developers reach a larger market. "From our position, we want more developers to be able to start deploying their third-party applications on Linux. We want to enrich the Linux ecosystem," de Icaza said.

He estimated that 45 percent of applications will run on Mono 2.0 out of the box while 18 percent will require developers to spend a couple of weeks to make some changes due to operating system differences. About 20 percent will require significant work, taking about three to six months, if the application is tightly integrated with Windows, de Icaza said.

Current Mono user Mindtouch, maker of the Deki collaboration platform, opted for Mono because it sought to provide cross-platform solutions, said Aaron Fulkerson, Mindtouch founder and CEO.

"I think Mono is fantastic for us," he said. Mindtouch founders and many of the company's developers had worked at Microsoft and sought to leverage Windows-based development skills, he said. But .Net lacked platform independence.

"We very seriously considered going with Java and then [took] a good hard look at Mono," Fulkerson said. Mono was determined to be a "sufficiently mature technology to build on," he said.

"In fact, we developed our product and deployed solely on Mono and Linux up until this month," just now adding support for Windows, said Fulkerson.

The Mono 2.0 runtime is offered under the LGPL, while class libraries and compilers are available via the MIT X11 license.

Mono was built using Microsoft documentation pertaining to the .Net engine and languages, which are ISO standards, de Icaza said. Work on Mono 2.0 has been going on for about two-and-a-half years. The Mono project itself was begun in 2001.


Knowing AJAX


As the Internet has become more mature, rich applications featuring responsive user interfaces and interactive capabilities have become increasingly popular. The capabilities represent a way to make programs easier to use and more functional, thus enhancing the user experience.

Developers have used a variety of applications from companies such as Macromedia, Microsoft, and Sun Microsystems to add these capabilities in the past, as discussed in the “Developing Large-Scale Rich Web Applications” sidebar. However, Web applications have generally exhibited problems such as slow performance and limited interactivity, particularly when compared to typical desktop applications, noted Nate Root, research director for Forrester Research, a market analysis firm.

Now, developers are going back to the future by building Web applications using Ajax (Asynchronous JavaScript and XML), a set of technologies mostly developed in the 1990s.

A key advantage of Ajax applications is that they look and act more like desktop applications, according to Root. Proponents argue that Ajax applications perform better than traditional Web programs. As an example, Ajax applications can add or retrieve new data for a page it is working with and the page will update immediately without reloading. For instance, when users hold down the left mouse button and slide the cursor over an image on the Ajax-based Google Maps beta site (http://maps.google.com) to retrieve a part of the map not shown on the screen, the updates occur smoothly and the image appears to move and change immediately. With typical Web applications, users must spend time waiting for entire pages to reload, even for small changes.

When companies began working with the technology several years ago, before the approach even had the name Ajax, they used it for smaller, less important applications. However, as the component technologies have improved, Google and a number of other companies have started using Ajax for more important enterprise applications.

In addition to its map site, Google has worked with Ajax to build applications such as Gmail and Google Groups, a community and discussion service, said Bret Taylor, Google Maps product manager. Flickr uses Ajax in some parts of its Web site, on which users post and share photographs. For example, Ajax enables the site to let users add and view photo annotations. Expedia has produced features such as pop-up calendars on its travel site via Ajax.

All major browsers now support the technology. Thus, Ajax could pose a threat to Microsoft, Macromedia, and Sun. However, while some companies may decide Ajax is particularly useful for certain kinds of applications, industry observers say it won’t be suitable for all types. And in some cases, companies may use Ajax to complement other Web-application approaches.

Meanwhile, Ajax still faces several technical challenges, such as usage complexity and security.


WHAT AJAX IS

Developers use Ajax technologies to build Web applications with improved performance and interactivity, as well as responsive user interfaces. The applications offer functionality generally available in desktop software but not on the Web, which was designed for communications simplicity, not to enable the development of programs with enhanced capabilities.


Component technologies

Most of Ajax’s component Web technologies were developed and standardized during the past 10 years. These technologies have improved recently, making them more suitable for enterprise use.


Dynamic HTML.

Ajax applications take advantage of dynamic HTML, which consists of HTML, cascading stylesheets, and JavaScript glued together with the document object model.

The technology describes HTML extensions that designers can use to develop dynamic Web pages that are more animated than those using previous HTML versions. For example, when a cursor passes over a DHTML page, a color might change or text might get bigger. Also, a user could drag and drop images to different places.


XML.

Ajax uses XML to encode data for transfer between a server and a browser or client application. The W3C started work on XML in 1996 to enable cross-platform data interoperability over the Internet. The consortium approved the standard’s first version in 1998. XML is a markup meta- language that can define a set of languages for use with structured data in online documents. Any organization can develop an XML-based language with its own set of markup tags.


Cascading stylesheets.

A W3C standard since 1996, CSS gives Web site developers and users more control over how browsers display pages. Developers use CSS to create stylesheets that define how different page elements, such as headers and links, appear. Multiple stylesheets can apply to the same Web page.


Document object model.

The DOM, a W3C standard since 1998, is a programming interface that lets developers create and modify HTML and XML documents as sets of program objects, which makes it easier to design Web pages that users can manipulate. The DOM defines the attributes associated with each object, as well as the ways in which users can interact with objects. DHTML works with the DOM to dynamically change the appearance of Web pages. Working with the DOM makes Ajax applications particularly responsive for users.


JavaScript.

Released in 1995 by Netscape and Sun, JavaScript interacts with HTML code and makes Web pages and Ajax applications more active. For example, the technology can cause a linked page to appear automatically in a popup window or let a mouse rollover change text or images. Developers can embed JavaScript, which is openly and freely available, in HTML pages.

Ajax uses asynchronous JavaScript, which an HTML page can use to make calls asynchronously to the server from which it was loaded to fetch XML documents. This capability lets

an application make a server call, retrieve new data, and simultaneously update the Web page without having to reload all the contents, all while the user continues interacting with the program.

Enterprise application developers have become more interested in working with JavaScript because users have removed some of the technology’s bugs and developed workarounds for various problems.

Because JavaScript is a cross-platform scripting language, Ajax applications require no plug-ins, unlike Macromedia Flash and other proprietary Web application technologies.


XMLHttpRequest.

Systems can use JavaScript-based XMLHttpRequest objects to make HTTP requests and receive responses quickly and in the background, without the user experiencing any visual interruptions. Thus, Web pages can get new information from servers instantly without having to completely reload. For example, users of an application with XMLHttpRequest objects could type in a centigrade amount in one box of a temperature-conversion application and have the Fahrenheit amount appear instantly in another box.

Various browsers—including recent versions of Internet Explorer, Mozilla’s Firefox, Netscape, and Apple Computer’s Safari—work with XMLHttp-Request.


Working with Ajax

In the classic Web application model, user actions trigger an HTTP request to a Web server, which processes the request and returns an HTML page to the client. This makes technical sense but doesn’t always provide a great user experience because, for example, it limits interactivity and requires Web pages to reload for every piece of new data. Ajax applications create a JavaScriptbased engine that runs on the browser explained Forrester’s Root. Instead of

loading a traditional Web page, the browser loads the engine, which then displays the requested material.

The engine intercepts user inputs and handles many interactions, such as simple data validation, on the client side, Root said. If the engine needs more data, it requests the material from the server in the background without locking up the user interface. The engine thus lets users interact with an application independently of server communication, reducing server response wait times.