Sunday, December 31, 2006

Happy New Year 2007

Today is the December 31st, the 365th day of 2006.

T.S.U.L was set up in June 2006

Tuesday, December 26, 2006

apache axis and tomcat

Apache Axis and Tomcat are popular tools on a Java based server.

However, apache, axis and tomcat are not something good.

Sunday, December 10, 2006

Solaris and Sun Studio

First,

Desktop computers older than 4 years old may not be able to run it.
Notebook computers older than 2 years old may not be able to run it.


so, my testing platform is P4 512MB.

Before inserting the dvd (I got the auto installation version), free enough disk (32G in my installation) space for solaris. Some suggests that the minimum is 6G or 8G.

Then insert the dvd. (You might have to set the boot order in the bios).

Should the dvd rom eject if everything works fine. (Well, this is an auto-installation :P). Remove the disk and reboot.

Then gdm starts and everything is easy.

BTW. If you can't find Sun Studio (probably not in the start menu. Did bill create such a menu?). Try type sunstudio with an enter in the console. (Oh.. please. the console is the terminal in linux.)

To be continued...

Next, we are supposed to discuss something about comiplation and start a little program in Sun Studio. Many tools are powerful, but what a pity that we do not even know their names. :D

Thursday, November 16, 2006

Social networks, Wikis, Communication tools, and Folksonomies

That is web 2.0, or the next generation of network.

Folksonomy, or tagging, could not deal with certain cases such that the sequence order of the words (tags) matters. [Example]

Further more, tagging could not understand. The system could find all pictures with triangle tags or circle tags, but it can't tell the difference between triangles and circles. The system could not learn to distinguish a triangle from circles by tags, even one hundred times.

Is tagging a solution? If we would like to find something by tags: First, we must speak the same languages (at least, could be translated). So a bird is not likely to find what it wants with human being's tags. Second, we have to specify enough tags. The word "mathematics" is not likely to help you find what you want. Although this might not be a problem. Third, precise tags. Certain groups of people would use different words to describe the same thing, or would they refer to different things with the same words. This could lead to some difficulties in finding information efficiently. Especially when certain group is very powerful, other smaller groups would submerge.

Friday, October 27, 2006

Above Three Four and Five

Have you ever noticed the three punctations above 3,4,5 on a standard US keyboard?

Yes, they are #(sharp), $(dollar), and %(percent).

You will notice that on a US keyboard, shift-4 is "$", which is the bash variable expansion character. On the keyboard, immediately to the left of "$" is "#". So, you can see that "#" is "at the beginning" of "$", and thus (according to our mnemonic), "#" removes characters from the beginning of the string. You may wonder how we remove characters from the end of the string. If you guessed that we use the character immediately to the right of "$" on the US keyboard ("%"), you're right!


So, #, which is before $, will remove characters from the beginning, and %, which is after $, will remove characters from the end of the string.

"${1##*.}"

"${1%.*}"

The bash is funny, easy while powerful. ;)

For more infomation about bash, click here.

Friday, October 20, 2006

Cygwin is not linux at all

Cygwin behaves strangely.

Gnome can not run.

Althought X works.

Collision with mingw.

Thursday, October 19, 2006

Java Reference

Java passes parameters by reference which brings convinience as well as strange errors. For example:


import java.util.*;

public class Test {
public static void main(String[] args) {
Vector v = new Vector();
int [] a = new int[5];
for(int i=0;i<10;i++) {
for(int j=0;j<5;j++) a[j] = i*j;
v.add(new Obj(a)); // this won't work!
}
for(Iterator it=v.iterator();it.hasNext();) {
it.next().dump();
}
}
}

class Obj {
int [] a;
Obj(int [] a) {
this.a = a;
}
void dump() {
for(int i=0;i System.out.println();
}
}


Well, the line

v.add(new Obj(a));

won't work as expected. Instead all arrays 'a' in 'Obj' are the same.

Change it to

v.add(new Obj(a.clone()));

so that every time a new array is passed.