Web 2.0 – the next generation of the web page

OnJava.com have a great article about where the web and webpages as we have known them up until this point are heading and how web technologies are evolving.

Web2.0 is not any one or a collection of technology standards, but rather an evolved (and evolving) way of thinking about how the web can be used to achieve goals. The changes are subtle but noticible. In most cases Web2.0 encompases how evolving web based technologies are being used to enhance the user experience on the web, with the trend towards collaboration, sharing and community driven sites and community interaction.

For example, mid-90s personal web sites were ‘the thing’ for self-promotion and telling the world about yourself, your hobbies and your cat. Mid-90s personal websites were typically static sites. Today, ‘the thing’ for publishing personal information is the weblog, or blog as it has come to be known. Blogs are now dynamic, growing and living sites, regularly updated with new information as the author updates it. The end goal is somewhat similar, but the use of the internet and web technologies to achieve it has evolved.

This section below is taken from the article “what it Web 2.0” on OnJava.com site:

Web 1.0  	   	Web 2.0
DoubleClick 	        --> 	Google AdSense
Ofoto 	                --> 	Flickr
Akamai 	                --> 	BitTorrent
mp3.com 	        --> 	Napster
Britannica Online 	--> 	Wikipedia
personal websites 	--> 	blogging
evite 	                --> 	upcoming.org and EVDB
domain name speculation --> 	search engine optimization
page views 	        --> 	cost per click
screen scraping         --> 	web services
publishing 	        --> 	participation
content management systems 	--> 	wikis
directories (taxonomy) 	--> 	tagging ("folksonomy")
stickiness 	        --> 	syndication

In most cases you see that the goal has remained the same, but the evolution of technology has allowed the goal to be achieved in a different way taking advantage of the new technology.

This is an excellent article and well worth a read.

Apple announce video iPod and new iMac

Steve Jobs made annoucements about new Apple products yesterday, inluding a new iPod that supports video playback, a new version of iTunes that allows you to purchase episodes of TV programes from ABC plus other video, plus a new improved iMac.

The video capability has received somewhat of a lukewarm reception. The iPod has continued to improve over the years, but the addition of video playback is less of an innovation and more of a catch up to the other competitors portable media player products (there have been audio/video mobile media players on the market for at least the last 2 years).

The addition of video downloads from iTunes though could be it’s savior. The partnership with ABC to purchase and download TV program episodes I think it a good move and a good compliment to the already wildly successful iTunes, so we’ll have to wait and see how well this new feature does.

java.net: Unit testing Hibernate-based DAOs

java.net have an interesting article on Unit Testing Hibernate-based DAOs, that are also implemented using Spring DAO support with the HibernateTemplate.

This article is an excellent checklist of steps needed to Unit Test Hibernate based DAOs. There are a couple of interesting points in the code though will not 100% test your persistence due to the default behavior of Hibernate and it’s caching.

These issues are not addressed until the final point in the article (Step 12: The Session must be flushed) – the author should have mentioned this critical point earlier in the article when showing the code to test persisting a new object and retrieving it. Without the flushing and clearing of the session retrieving an already referenced object by it’s id within the same Session returns the same instance of the object from cache (ie a == b). Although this won’t break the JUnit, unless you had read all the way to the end of the article you might have missed this important point. Without the flushing and clearing of the Session (or using a new Session), the retrieval of the newly persisted object will return a reference to the same object, without actually executing any SQL to retrieve it from the database.