Yakovs Gas station column

Last year I started a column at Java Developers Journal about a Java programmer who bought a gas station and is trying to find the best tools for automation of this small business. In the sixth article of this series I introduce Adobe Flex for writing a GUI part of my Java application. Below are the links to all these articles.

Yakov ‘s gas station 1- Small Business Solutions, July 2005

Yakov ‘s gas station 2 – Dealing with Open Source Software, September 2005

Yakov ‘s gas station 3 – Web Frameworks and IDE in Java, October 2005

Yakov ‘s gas station 4 – Hangover thoughts about Web and Ajax, December 2005

Yakov ‘s gas station 5 – Look mom, no applications servers, look MOM!, April 2006

Yakov ‘s gas station 6 – Creating a flashy monitoring application, November 2006

Yours truly,

A proud gas station owner

Play Station 3 craze

A new Sony game station comes out tomorrow, and people are camping out on the street by the stores for three days. The live as homeless on the street by the electronic store just to be able to get it on Friday. Sony is not capable of meeting the high demand and only a small number of lucky homeless will get it. I ‘ve seen them by the Best Buy store on the Fifth Avenue in Manhattan – due to limited space, they sit/sleep right on the road surrounded by a fence. I ‘ve seen them in New Jersey – lots of room there and people are living in tents. While a number of these people are just crazy addicts, some of them are just making money – if they ‘ll get this $600 game tomorrow, they ‘ll easily sell it on eBay for $2000 or more.

My son ‘s best friend Jared got selected by MTV and he started his 24-hour play session in MTV studios to win the game. But Jared has to play 24-hours non-stop and he has to talk while he ‘s playing. It ‘s an interesting set up – Jared is sitting with a remote in front of the window facing Times Square, while MTV broadcasts the game on a huge screen across the street. Good luck Jared! Check out the MTV site under 24-Hour PS3 Challenge.

But do not get upset – yet another super game station from Nintendo called Wii is coming out in a week or so, and they ‘ve produced enough copies for everyone. My youner son has prepared a PowerPoint presentation showing the great features of this new game explaining that we have no other choice but to buy it to him as a holiday gift.

Why these games do not affect me? I guess I ‘m too old …

Update: Jared won PS3 + 6 games he was playing +2 more games. A guy who was camping out in Connecticut got shot by the robbers.

Great Sun Java Evangelist Visits Princeton JUG

This is a secondSun ‘s Java Technical Evangelist I meet, and once again it ‘s an extremely knowledgeable, passionate and very pleasant person.

Yesterday, Rima Patel from Sun has visited Princeton JUG and delivered a smashing hit presentation on EJB 3.0 and Java Persistence API. After about two hours of heavy duty technical talk I had to stop her – we were running out of time.

We have some really strong Java developers, and they have bombarded Rima with tons of not so trivial questions – she did not have problems answering them.

I ‘m sure, Sun Microsystems knows some secret that allows them to attract such talented people, technologists and speakers as Rima.

I did not read her last book Mastering EJB 3.0 (available for free download ), but after listening this presentation, I can tell you – go and get it, you can ‘t go wrong. Besides, I can confirm that Sun did a really good job with EJB 3.0 and Java persistence API and I recommend you to stick with them as opposed to trying to figure out which of the 50 available open source frameworks to use.

My big thanks to Aaron Houston from Sun, the program coordinator of Java User Groups and other Java projects for help in putting this presentation together.

Rima has delivered one of the best Java presentations of the year. And I ‘ve seen a lot, trust me on that.

And Pedro said, &”Move over, Ravi!&”

What first comes to mind if someone mentions Mexico? Beautiful beaches in Cancun with loaded Margaritas and hardworking people working in the USA in construction, landscaping and other non-attractive jobs. What comes to mind when someone mentions Brazil? Football, Copacabana, and that girl from Ipanema.

I was pleasantly surprised when a friend of mine working for a Fortune 100 firm told me that they used to outsource software development to India, but now they switched to Mexican programmers. Why? Cheaper. Way to go, Mexico! Good for you!

Brazil is yet another emerging supplier of Java programmers.

But is it right to work with a country just because it offers the cheapest prices? I do not think so. The software development outsourcing may be efficient only if you cherry pick the best of the best as opposed to hiring teams for cheap. Work with individuals, not with teams!

Let ‘s apply the 80/20 rule for an offshore team of five that charges $100 a day for a programmer. The daily offshore payroll is $500. Such a team needs a local full-time manager here in the US, which makes, say $600 a day. We ‘ve got $1100 a day just for the payroll. Four out of five offshore programmers will definitely under-perform to say the least.

The better model is to hire one excellent offshore programmer for $150 a day, which will need two hours a day of the local manager ‘s time (another $200). In this case the daily payroll is $350, and the chances of delivering your project on time will dramatically increase.

This formula won ‘t work if your IT shop is run by a mediocre manager who does not won ‘t to innovate and goes by the flow working with the offshore partner given from above.

Its official – Java goes open source

SANTA CLARA, CALIF., — November 13, 2006 — Sun Microsystems, Inc. (NASDAQ: SUNW), the creator and leading advocate of Java(TM) technology, today announced it is releasing its implementations of Java technology as free software under the GNU General Public License version two (GPLv2). Available today, are the first pieces of source code for Sun ‘s implementation of Java Platform Standard Edition (Java SE) and a buildable implementation of Java Platform Micro Edition (Java ME). Details are available at: at http://www.sun.com/opensource/java. In addition, Sun is adding the GPLv2 license to Java Platform Enterprise Edition (Java EE), which has been available for over a year under the Common Development and Distribution License (CDDL) through Project GlassFish(TM) at http://glassfish.dev.java.net/.

This announcement represents one of the largest source code contributions under the GPL license (under which the GNU/Linux operating system is also distributed) and the open sourcing of one of the industry ‘s most significant and pervasive software platforms. With over 3.8 billion Java technology enabled devices, Java technology is showing explosive growth, appearing in volume everywhere. From mobile phones and smart cards to enterprise applications and supercomputers, Java technology provides a unifying platform for software innovation. By open sourcing Java software, while offering commercial products with indemnity for our customers, Sun expects Java technology to become even more pervasive.

“By open sourcing Sun ‘s implementation of Java technology, we will inspire a new phase of developer collaboration and innovation using the NetBeans(TM) Integrated Development Environment (IDE)and expect the Java platform to be the foundation infrastructure for next generation Internet, desktop, mobile and enterprise applications, ” said Rich Green, executive vice president of Software at Sun. “With the Java Development Kit (JDK(TM)) released as free software under the GPL, Sun will be working closely with distributors of the GNU/Linux operating system, who will soon be able to include the JDK as part of the open source repositories that are commonly included with GNU/Linux distributions. ”

“Everyone has been expecting that one day Sun would open source Java technology, but no one expected just how far they ‘d go – GPL. A bold move, and a great opportunity both for Sun and for free and open source software, ” said Tim O ‘Reilly, founder and CEO of O ‘Reilly Media.

_*Java SE*_

Sun is releasing three significant software components today for the ongoing development of Sun ‘s open source implementation of Java SE in the Java.net community: Java HotSpot(TM) technology, the Java programming language compiler (javac(TM)) and JavaHelp(TM) software. Sun expects to release a buildable JDK in the first quarter of 2007, following established free software community practices for licensing virtual machines and their associated libraries. Java HotSpot technology and javac are two of the most important elements of Java SE; Java HotSpot technology is the Sun implementation of the Java Virtual Machine (JVM(TM)) and the core component of the Java Runtime Environment (JRE), which translates Java code to the specific operating system and chip architecture, allowing Java software to run everywhere and javac is the compiler that analyzes Java source code for correctness and generates proper bytecodes for execution. JavaHelp software is the documentation system to complement the JDK.

These first components of the OpenJDK(TM) project will allow developers to experiment with the compiler, try out new language features, learn how a world-class virtual machine is built, port the JVM to new hardware architectures and operating systems, fix bugs and contribute new features. Through the OpenJDK project, developers will be able to directly influence the future of the JDK implementation, participate with their peers in an open community and help take Java technology where it hasn ‘t been before.

_*Java ME*_

Available immediately in the Java.net community, is the source code for Sun ‘s feature phone Java ME implementation, the next generation version of the platform that currently enables rich mobile data services in over 1.5 billion handsets. Also available is Sun ‘s source code for the Java ME testing and compatibility kit framework, the foundation for Sun ‘s Java ME compatibility tests. Later this year, Sun will release additional source code including its advanced operation system phone implementation and the framework for the Java Device Test Suite.

Sun is releasing these technologies as free software in order to accelerate the development and evolution of the platform, reduce fragmentation and drive down development costs throughout the Java ME ecosystem. In addition, this move will provide easy access to the latest versions of Java ME platform technologies and, for the first time, enable the whole Java ME community to follow the activities of and participate in the development of these technologies.

******************

Sun Press Release

******************

13.November.2006-Sun believes deeply in creating communities and sharing innovations and technologies to foster more participation. Today in a historic move, Sun is opening the door to greater innovation by open sourcing key Java implementations-Java Platform Standard Edition (Java SE), Java Platform Micro Edition (Java ME), and Java Platform Enterprise Edition (Java EE)-under the GNU General Public License version 2 (GPLv2), the same license as GNU/Linux.

Sun is now the biggest contributor to the open-source community. Already Sun has released open-source implementations of its Solaris Operating System, NetBeans, Project Looking Glass, Project JXTA, Jini, OpenOffice, OpenSPARC, and Java EE technologies and is continuing on its path to open all of its middleware. By adding a second GPLv2 license to Java EE, which was previously available under the CDDL license through Project Glassfish, Sun is now open sourcing all core Java technologies under the same license.

Through this move, Sun is helping to:

Fuel innovation and build broader developer communities by enabling interested Java developers, as well as developers in the GNU/Linux community, to contribute more easily to the evolution of Java technology Drive faster evolution of the Java platform and adoption by new developers and in new markets while ensuring platform quality and flexibility Allow the 5 million Java developers worldwide to leverage platform enhancements and speed time to market for new applications Enlisting the World to Innovate

For the past 11 years, Java technology has enabled developers to Write Once, Run Anywhere. Sun ‘s commitment to compatibility and choice has made Java the most widely deployed application platform. Java technology is currently used on more than 4 billion devices worldwide, and the Java ME platform ships on more than eight of every 10 mobile handsets.

Sun believes Java technology has reached the right level of maturity, adoption, and innovation-with widespread use across enterprises and devices-to move into the next stage of its evolution. In the largest single contribution under the GNU GPL, Sun is releasing all of its key Java implementations under this widely respected free-software license:

Open-Source Java SE: Today Sun is releasing the source code for the Java HotSpot virtual machine, the Java programming language compiler (javac), and JavaHelp online help software. Release of a fully buildable Java SE Development Kit (JDK) based nearly entirely on open-source code is expected in the first half of 2007. Open-Source Java ME: Sun is first releasing the source code for Sun ‘s Java ME Feature Phone implementation based on Connected Limited Device Configuration (CLDC), which currently enables rich mobile data services in more than 1.5 billion handsets, and the source code for the Java ME testing and compatibility kit (TCK) framework. Later this year, Sun will release additional source code for the Advanced Operating System Phone implementation for based on the Connected Device Configuration (CDC) specification and the framework for the Java Device Test Suite. New Developer Communities: Tapping its experience in building dynamic and transparent open-source communities, Sun is launching the OpenJDK Community and the Mobile amp; Embedded Community to support developer participation in evolving the open-source JDK and open-source Java ME implementations respectively. Developers wanting to get started right away can take advantage of the best tool for open-source Java application development: the NetBeans Integrated Development Environment (IDE). The NetBeans IDE provides complete support for the entire Java platform, from Java ME to Java SE to Java EE. To further speed time to market, Sun is also providing pre-built NetBeans projects at netbeans.org for the Java language components being open sourced and is making the Sun Studio development environment available at developers.sun.com/sunstudio for the native Java language components.

Open-Source Opportunities

By open sourcing its Java implementations, Sun will open new market opportunities, fuel innovation, and drive broader adoption of this Web 2.0 platform while minimizing fragmentation in the mobile community by delivering a consistent application platform across devices.

Developers and ISVs can build differentiated Java technology-based applications and value-added Web. 2.0 services more quickly through access to the latest Java source code. Developers can improve platform quality and functionality by contributing feature enhancements, bug fixes, and testing results to the open-source Java initiatives. Customers can lower costs and protect technology investments by taking full advantage of open-source business models that allow for free substitution of alternative operating systems, architectures, middleware, and devices on industry-standard hardware. Governments and educational institutions can reap the benefits of open-source Java technologies while ensuring security, privacy, and datacenter control. GNU/Linux distributors can add no-cost Java implementations to their distributions, while customers with stringent open-source requirements can deploy a free, reliable Java software stack on most GNU/Linux distributions. Sun is taking careful and deliberate action as it open sources its Java technology implementations to help ensure that Java remains a central unifying standard for the Internet. Whether developers and customers choose to use Sun ‘s commercial Java platforms or new open-source implementations, Java technology will continue to deliver the compatibility, stability, and quality required to turn Web 2.0 advancements into competitive advantage.

Go to sun.com/opensource/java for more information.

Comparing the syntax of Java 5 and ActionScript 3

Below is a short comparison table of major elements/concepts of these two languages for a quick reference.

You can read this table either left-to-right or right-to-left, depending on what “s your primary programming language is today.

This list is not complete, and your input is appreciated.

Concept/Language Construct

Java 5.0

ActionScript 3.0

Class library packaging

.jar

.swc

Inheritance

class Employee extends Person{ hellip;}

class Employee extends Person{ hellip;}

Variable declaration and initialization

String firstName= rdquo;John rdquo;;

Date shipDate=new Date();

int i;

int a, b=10;

double salary;

var firstName:String= rdquo;John rdquo;;

var shipDate:Date=new Date();

var i:int;

var a:int, b:int=10;

var salary:Number;

Undeclared variables

n/a

It “s an equivalent to the wild card type notation *. If you declare a variable but do not specify its type, the * type will apply.

A default value: undefined

var myVar:*;

Variable scopes

block: declared within curly braces,

local: declared within a method or a block

member: declared on the class level

no global variables

No block scope: the minimal scope is a function

local: declared within a function

member: declared on the class level

If a variable is declared outside of any function or class definition, it has global scope.

Strings

Immutable, store sequences of two-byte Unicode characters

Immutable, store sequences of two-byte Unicode characters

Terminating statements with semicolons

A must

If you write one statement per line you can omit it.

Strict equality operator

n/a

===

for strict non-equality use

!==

Constant qualifier

The keyword final

final int STATE= rdquo;NY rdquo;;

The keyword const

const STATE:int = rdquo;NY rdquo;;

Type checking

Static (checked at compile time)

Dynamic (checked at run-time) and static (it “s so called lsquo;strict mode “, which is default in Flex Builder)

Type check operator

instanceof

is ndash; checks data type, i.e. if (myVar is String){ hellip;}

The is operator is a replacement of older instanceof

The as operator

n/a

Similar to is operator, but returns not Boolean, but the result of expression:

var orderId:String= rdquo;123 rdquo;;

var orderIdN:Number=orderId as Number;

trace(orderIdN);//prints 123

Primitives

byte, int, long, float, double,short, boolean, char

all primitives in ActionScript are objects.

Boolean, int, uint, Number, String

The following lines are equivalent;

var age:int = 25;

var age:int = new int(25);

Complex types

n/a

Array, Date, Error, Function, RegExp, XML, and XMLList

Array declaration and instantiation

int quarterResults[];

quarterResults =

new int[4];

int quarterResults[]={25,33,56,84};

var quarterResults:Array

=new Array();

or

var quarterResults:Array=[];

var quarterResults:Array=

[25, 33, 56, 84];

AS3 also has associative arrays that uses named elements instead of numeric indexes (similar to Hashtable).

The top class in the inheritance tree

Object

Object

Casting syntax: cast the class Object to Person:

Person p=(Person) myObject;

var p:Person= Person(myObject);

or

var p:Person= myObject as Person;

upcasting

class Xyz extends Abc{}

Abc myObj = new Xyz();

class Xyz extends Abc{}

var myObj:Abc=new Xyz();

Un-typed variable

n/a

var myObject:*

var myObject:

packages

package com.xyz;

class myClass { hellip;}

package com.xyz{

class myClass{ hellip;}

}

ActionScript packages can include not only classes, but separate functions as well

Class access levels

public, private, protected

if none is specified, classes have package access level

public, private, protected

if none is specified, classes have internal access level (similar to package access level in Java)

Custom access levels: namespaces

n/a

Similar to XML namespaces.

namespace abc;

abc function myCalc(){}

or

abc::myCalc(){}

use namespace abc ;

Console output

System.out.println();

// in debug mode only

trace();

imports

import com.abc.*;

import com.abc.MyClass;

import com.abc.*;

import com.abc.MyClass;

packages must be imported even if the class names are fully qualified in the code.

Unordered key-value pairs

Hashtable, Map

Hashtable friends = new Hashtable();

friends.put( “good “,

“Mary rdquo;);

friends.put( “best “,

“Bill rdquo;);

friends.put( “bad “,

“Masha rdquo;);

String bestFriend= friends.get( “best rdquo;);

// bestFriend is Bill

Associative Arrays

Allows referencing its elements by names instead of indexes.

var friends:Array=new Array();

friends[ “good “]= “Mary “;

friends[ “best “]= “Bill “;

friends[ “bad “]= “Masha “;

var bestFriend:String= friends[ “best rdquo;];

friends.best= rdquo;Alex rdquo;;

Another syntax:

var car:Object = {make: “Toyota “, model: “Camry “};

trace (car[ “make “], car.model);

// Output: Toyota Camry

Hoisting

n/a

Compiler moves all variable declaration to the top of the function, so you can use a variable name even before it “s been explicitly declared in the code.

Instantiation objects from classes

Customer cmr = new Customer();

Class cls = Class.forName( “Customer rdquo;);

Object myObj= cls.newInstance();

var cmr:Customer = new Customer();

var cls:Class = flash.util.getClassByName( “Customer “);

var myObj:Object = new cls();

Private classes

private class myClass{ hellip;}

There is no private classes in AS3.

Private constructors

Supported. Typical use: singleton classes.

Not available. Implementation of private constructors is postponed as they are not the part of the ECMAScript standard yet.

To create a Singleton, use public static getInstance(), which sets a private flag instanceExists after the first instantiation. Check this flag in the public constructor, and if instanceExists==true, throw an error.

Class and file names

A file can have multiple class declarations, but only one of them can be public, and the file must have the same name as this class.

A file can have multiple class declarations, but only one of them can be placed inside the package declaration, and the file must have the same name as this class.

What can be placed in a package

Classes and interfaces

Classes, interfaces, variables, functions, namespaces, and executable statements.

Dynamic classes (define an object that can be altered at runtime by adding or changing properties and methods).

n/a

dynamic class Person {

var name:String;

}

//Dynamically add a variable // and a function

Person p= new Person();

p.name= rdquo;Joe rdquo;;

p.age=25;

p.printMe = function () {

trace (p.name, p.age);

}

p.printMe(); // Joe 25

function closures

n/a. Closure is a proposed addition to Java 7.

myButton.addEventListener( “click rdquo;, myMethod);

A closure is an object that represents a snapshot of a function with its lexical context (variable “s values, objects in the scope). A function closure can be passed as an argument and executed without being a part of any object

Abstract classes

supported

n/a

Function overriding

supported

Supported. You must use the override qualifier

Function overloading

supportedn/a

Interfaces

class A implements B{ hellip;}

interfaces can contain method declarations and final variables.

class A implements B{ hellip;}

interfaces can contain only function declarations.

Exception handling

Keywords: try, catch, throw, finally, throws

Uncaught exceptions are propagated to the calling method.

Keywords: try, catch, throw, finally

A method does not have to declare exceptions.

Can throw not only Error objects, but also numbers:

throw 25.3;

Flash Player terminates the script in case of uncaught exception.

Regular expressions

Supported

Supported

Thanks,

Yakov Fain

Will Flex/Flash make Adobe richer?

As any software developer I enjoy working with cool components, and Flex is definitely cool. I also know that Adobe is not a philanthropy firm ndash; they need to make money to stay in business.

Most of Adobe presenters never forget to remind that Flash is ubiquitous (I did not hear this word before applied to any software). There is another ubiquitous product – Microsoft Windows. From the business point of view, the difference between the two is that MS sells Windows, while Flash Player is free, which is great for everyone but Adobe.

There is another company, Sun Microsystems that has ubiquitous free software called Java. While Sun earns its revenues from installing Java in mobile devices, the rest of Java is primarily used to sell servers where free JVMs run. This does not apply to Flex as Adobe does not sell hardware. It does sell professional services. So I assume Flex can bring more consulting gigs to Adobe, but lots of other independent vendors will compete in this space as well.

Almost forgot about yet another ubiquitous free software: Google search. But these guys sell advertisements.

What would you feel if a couple of guys took the free tool that you “ve created and in no time made $1.65B? You do not have to answer. Adobe can be proud of Flash Player hellip; Recently, four senior people including the primary co-creators and architects of Flash Player and ActionScript left Adobe and created a startup hellip; Why? Adobe is a profitable company, Flex is cool, Flash Player 9 is hot, Apollo is coming soon. I can only guess that they also want to capitalize on these great free tools, and it “s easier to do outside of the firm.

Selling Flex Data Services licenses and professional services will bring in some cash, you can add some peanuts from Charting components, Flex Builder and training. Adobe has excellent software engineers in Flex team. But it “s an open market, and in a year or sooner, other firms will come up with open source or cheaper alternatives to FDS, charting or Flex IDE. What ‘s left? The mobile devices.

So does ubiquity spells cash? Why CFO of the company resigns? Flash Lite to the rescue!

Im not Nostradamus, but …

Today, I ‘ve received an invite to participate in the IT predictions for 2007. But first, lemme see how I did last year with my predictions for 2006. Agree, I ‘m not Nostradamus, but it was not bad at all.

Here ‘s a quick review of what I ‘ve written back in December of 2005:

gt;1. Enterprises will finally start using Java 5.

This is about right. Java 6 will be out in December, and development managers are not too afraid of using Java 5 anymore.

gt;2. AJAX hype will calm down.

I was right. It starts to calm down. Still do not beleive me? Just read what the Editor-in-Chief of the AJAXWorld magazine writes in his blog .

gt;3. Fat clients will be more widely used in distributed enterprise applications …. Macromedia tools will become more and more popular.

I ‘ve got this one! Adobe purchased Macromedia, and their tools became popular.

gt;4. Smart development managers will start creating mixed open-source/commercial environments….

Hope so, but I do not have statistics to prove it.

gt;5. A new software architecture for small and mid-size businesses should arise… message-service bus…

I ‘m a bit ahead here, but it ‘s clear that the architecture using the message service bus is getting more and more popular

gt;6. Programming will become a trade of a young generation. …

What do you say? Am I right or am I right?

gt;7. A number of CIOs will come out of the closets and publicly admit that the real cost of the outsourced projects is high.

True.

gt;8. Yahoo will come up with some new innovative Web products that will be able to compete with Google ‘s software…

Yahoo is slower than I thought, but let ‘s give them another year.

gt;9. By the end of the year the broadband Internet will give DSL and cable Internet a run for the money.

Here in America,the adoption rate of the wireless Internet is slower than I thought…

gt;10. Java use will steadily increase despite the fact that various replacements are being offered.

Java is doing just fine..on the server where it belongs. Ruby did not make it.

In general, my predictions were not bad at all. I ‘ll consider tarrot card reading as a plan B for my retirement.

Defining the terms: RIA and Web 2.0

The term Rich Internet Applications (RIA) was introduced by Macromedia back in 2002. To the best of my knowledge, RIA is a combination of low-cost deployment model of the Web browsers and networked platforms and a rich user experience that is at least as good as with today “s desktop applications. In addition to this, RIA do not require entire Web page refresh for updating their data, which translates to much faster response time and more efficient utilization of the network bandwidth. Think of a globally available rich client-server application.

Regardless of when the term was introduced, first RIA applications were born as early as 1995, when Java language has been created. Initially, Java became popular because it has presented small downloadable Java programs called applets (remember the dancing Duke?), which were created with Java AWT (and then Swing) libraries and ran in the Web browser “s Java Virtual Machine (JVM). Ironically, this technology that made the Java language popular, was pushed back, and today Java shines mostly on the server side and in mobile devices.

In 2004, yet another catchy term Web 2.0 was coined by Tim O “Reilly. As of now, no one has clearly defined what makes a Web site to qualify for this term. If someone sees a cool looking Web site, s/he calls it Web 2.0. But the idea of marking better looking products with the version 2.0 , is pretty popular these days. Often, it refers to social engineering sites that allow people to collaborate and build the content of the sites themselves.

Wikipedia offers a lengthy article about Web 2.0 that may give you some idea of what this term means.

I wonder if anyone can provide a definition of Web 2.0 in one sentence? This is one of the fuzziest terms I ‘ve ever heard.

In my opinion, “Web 2.0 defines any cool highly-interactive Web application of the first decade of the 21st century “.

It goes without saying that Tim O ‘Reilly is a good businessman, and while I was trying to come up with a free definition that people would understand, today O ‘Reilly has announced availability of a special report called Web 2.0 Principles and Best Practices . Sounds great! The only little problem is that this one-hundred page report cost $375 USD. Ouch! I ‘d like to read it, but can ‘t afford it.

Here comes the new one: Web 3.0 is referring to a semantic Web hellip; Do you know what this means? Anyone?