Web 2.0 is the new trend for anything and everything in new web sites, particularly the look and feel has to make a significant impact. Of course there is no precise measure, guidelines and parameters to define any website to make a site web 2.0. But probably looking at few sites you might get an idea of how a web 2.0 site should feel like. Logo of the site is as important as anything else and should be very prominent, having a 3D effect and should show a positive attitude. Now how do we determine that? It is again a feel factor. Here is a fantastic site that displays some of the famous “Corporate Logos redesigned” in Web 2.0 style. This should give a fair idea of the feel factor and a comparison benchmark.
Archive for July, 2006
“There is a learning curve involved…” is a common phrase in a software organization environment. I literally understood what that means after seeing this “learning curve” image.
phpMyAdmin is an excellent tool for MySQL administration. It is an open source PHP based web based application and will require a web server such as Apache with PHP enabled. The advantage of using a web based administration tool is that once installed on a server, anyone in the team can access it without the need to install a database administration tool. If there are multiple MySQL instances to be connected you can have multiple copies of phpMyAdmin running against each MySQL instance with different URL aliases. More than anything all you require is a system to setup and all of the necessary software comes for free. The best way to install all of these in one single shot is to use XAMPP (X stands for any OS, A for Apache, M for MySQL, P for PHP and P for Perl). The package also consists of phpMyAdmin.
At Compassites we have project developments on Ruby on Rails and J2EE. Now that we have realized the power of rails and its power to create rapid application development we are using it to boost our development productivity on the J2EE applications as well. As we are executing our projects using eXtreme programming techniques, development happens as and when requirements are clear. But this also means that we assume certain dependencies of incomplete requirements. There might be a data dependency from a requirement that is not complete. In such situations with the available information we create temporary table structures. When the business analysts and the testers test the application at the end of an iteration they need to have some valid content in these temporary tables.
We create the CRUD (create, read, update, delete) screens rapidly using ruby on rails that connects to the same database as the application does. Then the BA’s and testers use the rails application to add the data they want through these CRUD screens . Even in the development environment it saves a lot of time to manipulate these temporary tables and none of us have to run SQL against the database or need to understand to use a database tool. Since the rails application is throw away, we don’t need to add any validations, error or exception handling checks. So within minutes the CRUD screens are ready for use. This is like data mocking equivalent to the object mocking.
I am a big fan of Martin Fowler and have tried to follow his preachings as much as I can. I like his articles very much as it has clear explanations of concepts with advantages and disadvantages. His recent article on his site “Using an Agile Software Process with Offshore Development” explains how agile principles can be applied in an onsite-offshore development model. This foundation stone comes when I read through one of the statements where he talks about how important understanding the business behind the requirements. Here is the exerpt.
“Building software off just a list of requirements misses out a lot business context - developers are told what to do without being told why it’s important. The why often makes a big difference in doing the what properly.“
So true that knowing “why” is a very important information for every programmer to be effective. Understanding why the requirement is needed from the business perspective makes it easy to decide what to do to meet that requirement. In effect there is a great chance that what is done is effective.
Flash has got some attention from web applications perspective. There are frameworks/plugins that send back response from server which can be processed by a Flash player. Here is couple of them which I bumped into recently.
- Fjax - Fjax (F replaces A in Ajax and stands for Flash) works similar to AJAX. It utilizes the built in power of Flash’s XML parser to process the XML response from the server. Here is an interview with the developers, Steve and Jay in WebMonkey that has explanations of how Fjax works.
- Juggernaut - Juggernaut is rails plugin that uses the push technology. Once a communication is established between the client and server through the Flash socket, the information can be pushed from the server side to the client side. The concept is somewhat similar to the Reverse Ajax. Refer the Ajaxian article “Juggernaut: Comet for Rails?” for more information on this.
Looking ahead there will be more of such frameworks and plugins coming into picture because of the need for rich UI web application and Flash can definitely be helpful of what it already has the capability for.
Apache has released an application server called Geronimo. There are many open source application servers, so what is special with Geronimo? The answer is that Geronimo can be configured easily to suit your application needs. Typically an application server contains different containers that specifically do a particular job. For example an EJB container will be responsible for EJB related requests and there could be a transaction container that is responsible for handling all the transactions. In most of the application servers these come by default and whether your application uses it or not some of them run by default. This could be an unnecessary consumption of memory and server startup time.
Geronimo’s componentized application server model can be configured to run only the containers that are required for your application. The building block of Geronimo is what is called as GBeans (Geronimo Beans). GBeans are objects that are responsible for handling specific task within the application server. Geronimo extensively uses Dependency Injection pattern, also called Inversion of Control (IoC) pattern (if you want to know more about IoC pattern an excellent starting point would be Martin Fowler’s article on “Inversion of Control Containers and the Dependency Injection pattern“) wherein a container helps in adding the individual services to the kernel and the kernel does not need to know what services it has to run when it starts. OnJava.com has published recently an article “What is Geronimo?” that introduces Geronimo with instructions to deploy a simple application.