Saturday, September 24, 2005

Install Skype on Fedora Core 4 | de-generationx.net

A good trick, you can use the fedora core 3 version skype rpm.

Wednesday, September 21, 2005

Install XPlanner 0.7 beta 1

I have been used xplanner 0.6.2 for about a year. And I am pretty happy about it. Yeah, I like this small XP tool.

Yesterday, I found there was a new beta release available. So I decide to give it a try. The release is called 0.7 beta 1. And two versions of binaries are available. The "Standalone" one includes Tomcat and HSQLDB and preconfigured. Another one includes ant and SQL scripts so that you can configured xplanner to use your database and deploy the final war to your web container. Since I already have Tomcat 5 and MySQL 4.1 installed, I decided to use the second version. The installation process is not smooth.

Problems I met in the installation process:
  1. There is NO install.txt file or Readme.txt file in the roor directory, which is supposed to be there.
  2. Since there is no document, I got confused by the two properties files located in WEB-INF\classes: xplanner.properties and xplanner-custom.properties. From tomcat's log, I figured out xplanner-custom.properties overrides the xplanner.properties.
  3. c3po just hung there and I had no idea what was going on. After really long time, the log showed that c3po could not get the connection. I guess it must be something related to my old xplanner db set up. So I dropped my old db and created new user and new db. Then the "install new" task finished successfully.

Besides the above problems, everything was ok. I copied the whole "xplanner" sub directory into tomcat's webapps folder and restarted my tomcat 5. After I fired my firefox and typed in http://localhost:8080/xplanner/, I saw the familiar Log in interface. :)

Two more things need to be mentioned:
  1. Since I am using xplanner at home, I believe it's better for me to change the following default connection pool configuration. It's way too many connctions for my own usage. :)
    hibernate.c3p0.min_size=20
    hibernate.c3p0.max_size=100
  2. The new version can automatically detects your locale, which is a nice feature. According to the xplanner's website, it supports 12 languages!
---------------------------------------------------------------------
I got reply from Jacques Morel. He mentioned that the missing INSALL.txt file problem had been fixed for a few days. Looks like I was just unlucky to pick a sourceforge mirrow who has old files. :(

Cameron Purdy talks about GC

In hig blog: "Cameron Purdy", Cameron Purdy shows his ideas on how to localize gc to avoid high GC latency.

PySubMind

PySubMind uses tag in wiki. It addes keyword (tag) search to wiki, which is a small but very useful extenstion to wiki. Typical wiki only has "Title based search" and "free text search", "Tag based search" will definitely make search experience more joyful. It's a so natual add-on, just like the keyword in papers. Should we add "abstract" based search to PySubMind, which will make it more useful for academic research?

Slashdot | TeraGrid Gets an Upgrade

Good to know: Slashdot | TeraGrid Gets an Upgrade: UC really does great job in grid computing area. Their Globus Toolkit is getting more flexible and powerful.

Retroweaver: Develop with Java 1.5 and deploy with Java 1.4

Just found Retroweaver, a nice bytecode weaver to convert java 1.5 binary to 1.4 binary.

Tuesday, September 20, 2005

Hibernate, ActiveRecord and SQLObject

O/R mapping is still a hot topic. For Java developers, Hibernate is a very good choice. It's relatively easy and very powerful. Recently, dynamic programming language users claim they have some even easier solutions to accomplish the same task.

Active Record is an O/R mapping tool written in Ruby. It's also a important component of the HOT "Rails" framework. David Heinemeier Hansson, the author of Rails, wrote a blog to compare Active Record and Hibernate. The application he tries to mimic is the a book sore example mentioned in InformIT's hibernate tutorial. Ian Bicking, the author of Python based SQLObject, also provides his book store implementation based on SQLObject. Just look the code, these two implementations look very similar. Both have less LOC than the hibernate version. Nice work!

So, does this mean Java developers have to suffer bad productivity? Not really. With JDK 1.5, Spring framework, hibernate annotation and Eclipse, java developers can get high productivity, too. Trails is a good example. It learns from Rail and reuses some of Java's best frameworks. Give it a try, it's pretty cool!

-----------------------------------------
Ian points out there is a nice presentation which compares SQLObject and Active Record in details. Thanks, Ian!

Set up: Lighthttpd, fastcgi and Python

Lighthttpd is a light weight web server which runs insanely fast. By using fastcgi and wsgi with this high performance web server, python web applications can achieve good performance and productivity at the same time.

There are two good articles I found online showing us how to run python fastcgi scripts behind lighthttpd. One is "Python, FastCGI, WSGI and lighthttpd". Some comments of this article are quite useful. Another one is "DJango, lighthttpd and FCGI, second take".

Nice blog talking about build system

Noel Llopis wrote a very good article, "The Quest for the Perfect Build System", on build system. He also did some benchmark on the build system. The result is interesting. Ant looks like a good choice. :)

TurboGears and ActiveGrid

TurboGears:

TurboGears is a rapid web development framework written in Python. Using SQLObject, Kid and Cheerpy, it gains the development speed of Rails. I decided to give it a try. The joyful installation process is joyful. And the test wiki site starts instantly after I typed a simple command.

The features it provides can certainly fulfill the requirements of my hobby projects. However, just as Rails, I won't consider to use it in my daily work before I am sure it has the enterprise features I want and scales well.

Overall, it's a decent project.

ActiveGrid:

ActiveGrid is another cool project I found recently. I actually downloaded the new 1.0 version and played with it for a while. The idea of using BPEL is very good. Instead of just helping you on writting code, ActiveGrid also provides necessary debugging and version control support in its ApplicationBuilder.

However, it does have some bugs, which is kind of annoying but understandable. It's still fairly new, anyway.

Saturday, September 17, 2005

Python wrapper tool performance

There are a few python wrapper tools available now, such as Boost.Python, SWIG and SIP. Both Boost.Python and SWIG provide good template support and are fairly easy to use. Then which one bring us less performance penalty?

R. Geus gave a talk on this topic, named "Python Wrapper Tools; a Performance Study", at EuroPython 2004 conference. Here is the link of the PDF file. Surprisingly, Code generated by SIP is the fattest, followed by the one generated by Boost.Python. And the one using SWIG is the slowest.