Wednesday, April 2, 2008

Brief review of Informative-workspace

Informative workspace is a project to utilize a 9 monitors LCD screen to provide development team some kind of software engineering information. Detail can be found here.

It is mainly a Java web app project using Wicket framework. I am just start learning Wicket and found it amazingly cool. It turns web app elements such as page, form and text field into java classes. Developers can handle these components by handling java classes, which they are much more familiar with. Then the code turn out to be more resemble to Swing application. Another cool thing is Wicket does not introduce specially HTML tag. all its tags are simple standard HTML, which means we can use all kind of HTML editor such as Dreamweaver to design our pages. This is extremely cool.

Back to the informative workspace project. Their main component is a project overviewer, which intend to show some overview of a project we are interested in. The viewer looks pretty nice, and its code is good written, with rich documentation. But when importing the project into Eclipse, I found that the project's build path is empty. I have to add all the Wicket and Hackystat libraries manually. It is not a big deal to me, but might be a big deal to some new developer that not quite familiar of Wicket or Hackystat. Hope the development team will settle this problem. 

Another issue I notice in that the developer just left his Hackystat account and password in their code. It is OK for a on going project does not have a external configuration component. But at least they should change or remove their account information temporarily before making the release distribution. It might not be a big deal in this case. It is just all about good developing habit.

About the functionality of the viewer, its idea, which shows the files editing state of the project, is good, but the implementation, based on file tree, does not emphasis the goal. I will suggest to separate the viewer into two: a file viewer and a developer viewer. 
The file viewer shows when and by whom is the file last modified and how often it is modified, and the files should be able to group by the last modified date. Then we can tell what files are active and what are stable from change. 
The developer viewer shows what file they are working on, and highlight it if there is some other developers are working on it as well.

Tuesday, April 1, 2008

Execution Permission in Macintosh/Unix

Today I have downloaded a latest tomcat and tried to install it. But surprisingly I cannot get the tomcat run. The error messages are shown as followed:
delia:ambienthackystat ZsxKiNG$ startup.sh
-bash: /Applications/Develop/apache-tomcat-6.0.16/bin/startup.sh: Permission denied
delia:ambienthackystat ZsxKiNG$ catalina.sh
-bash: /Applications/Develop/apache-tomcat-6.0.16/bin/catalina.sh: Permission denied
delia:ambienthackystat ZsxKiNG$ sudo /Applications/Develop/apache-tomcat-6.0.16/bin/catalina.sh
Password:
sudo: /Applications/Develop/apache-tomcat-6.0.16/bin/catalina.sh: command not found
delia:ambienthackystat ZsxKiNG$ 
That's quite weird to me because I used to install tomcat before my last system reinstallation and it worked just fine. It seems to be some permission issue in Unix like OS. 

After some google searching, I finally got the answer: I need to change the binary files' mode to executable for me. It is done by calling chmod a+x catalina.sh . Chmod is a Unix command that change files' mode, such as r(read), w(write) and x(execute). Users are only able to perform these action when the file is set to permit them to do so.
After this command, I did not get the permission denied error any more. Instead, I got a error from tomcat saying BASEDIR variable is not set correctly. This variable come out to should be set by default equal to CATALINA_HOME, but something seems prevent it from doing so. As there are lots of files in bin directory, it is reasonable to guess it is because tomcat need to execute some other file that does not have execution permission. So I just type in chmod a+x *.* and try again, tomcat ran. 

That is a very important experience to me, a new comer to Macintosh from Windows. In windows, authorization is poor and trivial, but in Mac, it becomes dominating. Even the administrator/power user will not be allow to read, write or execute a file if they have not the permission to that file.  It need a lot of practice before get used to it. Knowing how to change files' permission is an essential step.