Saturday, August 25, 2007

潘玲玲力抗众美女,游刃有余

最近上档的“宝贝父女兵”里,云集了许多美女。点算一下,有白薇秀、庄米雪、杜慧萍、潘玲玲、徐艳玲。但是资历最深,年纪最大的潘玲玲,仁然是他们当中最 耀眼夺目的。什么小公主,明星偶像,绝对SUPERSTAR都得靠边凉快凉快。不见岁月在潘玲玲的脸蛋留下一丝痕迹,反而让她散发一种成熟女人的魅力。世 南真幸福。

剧照:
Beauties at war

美女之斗, 白薇秀和潘玲玲的对决.从此照可见,很明显的,潘玲玲占尽上风.

Thursday, August 23, 2007

Before catching Daniel Wu in Blood Brothers...

Blood Brothers will start screening tomorrow, but before that you can catch the wackier side of Daniel Wu and his friends in ChiSeen. "Chiseen" means "crazy" in Cantonese. ChiSeen is like the Hong Kong version of Jackass, which basically means you have a bunch of people performing some pretty outrageous stuff like scuba-diving in a fountain, changing clothes in a train and tattooing their tongues (ouch!). You can search for "Chiseen" on Youtube of if you prefer to watch it fullscreen you can catch it on Joost as well. Or, if for some weird reason you want to get it on DVD, you can order one from Amazon.

I've seen quite a few of the clips, my favourite one involves Daniel Wu shooting live fireworks at a guy positioned like 15 metres away. Dangerous? Yes. Stupid? Definitely! Watch out for the guy doing the firefighting afterwards.... he's pretty dumb too.

[youtube]1rRo3IzOn4w[/youtube]

Sunday, August 19, 2007

Debugging a JSP compilation problem on Tomcat 6

I was doing some experimentation with Maven and Tomcat 6 when I hit this error.
SEVERE: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 8 in the generated java file
Only a type can be imported. net.project_00.interview.java.mock.web.SomeThingStupid resolves to a package

An error occurred at line: 17 in the jsp file: /interview-java-mock-web/index2.jsp
SomeThingStupid cannot be resolved
14:
15: <%=new Date()%>
16: <%=new GregorianCalendar()%>
17: <%=SomeThingStupid.getString() %>
18: </body>
19: </html>

Stacktrace:
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
........... (rest of stacktrace)

Steps taken to debug the problem

Now, it appears to me that the error message is telling me that net.project_00.interview.java.mock.web.SomeThingStupid is not a type, but a package. I'm very sure that this is not the case after checking my code and package. Eclipse also does not give me this error when I do the import of SomeThingStupid . Conversely, when I import a package like java.util, Eclipse does give me the error.

Then I went to check that my WEB-INF\classes folder in my web-app's folder in Tomcat contained the class in the correct package. It did.

Not sure what's going on, I went to look for the generated Java class for the problematic JSP in $CATALINA_HOME\work\Catalina\localhost. I looked inside the code, nothing fishy there.

So I googled the error message, hoping to find some indication of what went wrong. Nothing useful turned up, all of them talked about importing of a package instead of a type or the exclusion of a required JAR file. Until I hit this Chinese website.

It mentions something about the Context path and docBase not being set correctly. Suspecting that my directory structure is wrong, I took the JSP page in question and copied it to the corresponding page in a web-app I know was working properly. I also copied the entire directory structure corresponding to the fully-qualified name of the class SomeThingStupid to WEB-INF\classes folder of the working web-app. And the result of the test was that it worked.

Then I checked the directory structure of the 2 web-apps and confirmed that the problematic web-app 's directory structure was wrong.

The structure of the working web-app was: $CATALINA_HOME\webapps\examples

The structure of the wrong web-app was: $CATALINA_HOME\webapps\interview-java-mock-web\interview-java-mock-web

The problem was that it was nested under an additional folder called "interview-java-mock-web" instead of being directly under the folder "webapps".

Reason for the difference in directory structure

I had used Maven2 to build the web-app, and part of Maven's advantage is that it makes the management of build life-cycle simple. However, there is a slight problem in executing "mvn clean". As stated in the "Getting Started" guide, this will remove the target directory with all the build data before starting so that it is fresh. Unfortunately, if your target directory is the $CATALINA_HOME\webapps folder, as indicated in the POM file, you will delete the entire webapps folder. This is not what I want. I want to delete only the files pertaining to the project in question and not the entire "webapps" folder, which contains other projects.

Hence my approach is to change the target directory in the POM file to $CATALINA_HOME\webapps\${artifactId}

Setting the Context element


So to resolve the original problem of the compiler not being able to find the class SomeThingStupid, the Context element has to be set in Tomcat. Taking a look at the docs, I created the file $CATALINA_HOME\conf\Catalina\localhost\interview-java-mock-web.xml

The file contains the following line:

<Context path="" docBase="/interview-java-mock-web"> </Context>

Working, but with a warning

Setting the Context element makes my web-app work, it also solves another problem of erroneous servlet mapping. However, there is a warning message when Tomcat starts up. I haven't found time to solve this.
Aug 18, 2007 10:21:06 PM org.apache.catalina.startup.HostConfig deployDescriptor
WARNING: A docBase C:\Program Files\Apache Software Foundation\apache-tomcat-6.0.13\webapps\interview-java-mock-web inside the host appBase has been specified, and will be ignored

Tuesday, August 14, 2007

MOM’s Report on Wages in Singapore, 2006

The annual report on wages in Singapore has been released recently by Ministry of Manpower. If you're wondering whether your recent pay increment makes your salary comparable to others in your industry, this is the best place to start. Take a look at the the reports here. There's a lot of data in the reports, and it can be used to find certain trends and info.

Top 100 jobs in Singapore

Salary.sg has put up a ranked list (two lists, in fact) of the top 100 jobs in Singapore in terms of pay. While I believe that pay should not be the sole criteria for evaluating a job, it remains a very important one. We do need to put bread on the dining table after all, and pay decides whether that piece of bread is slice of plain Gardenia or loaf from Delifrance.

As for the actual jobs in the list, I've taken a quick look and there's no surprises there. What is disappoint for me is that it appears that the pay for those in the public sector are not factored in, eg teachers, policemen and firemen. I can't find them in the list. It's worse considering that my job should be out of the top 100 if they had been included...lol

Wage differentials between the sexes

There's no doubt that men do earn more than women, something which we all recognize. What is interesting is that the difference is that the gender wage difference
ranged from 5.7% for professionals to 46% for plant & machine operators for those aged 35 – 39. Quoting the full report,
The differential mainly stems from the tendency for females to disrupt their workforce participation for family reasons which reduces the years of service and experience of working women. Other possible factors include differences in skills, qualifications, job nature/level and working experience as well as possibly higher incidence of males working overtime than females.

If this is the case, I see the huge gap as an indication of how some jobs can utilise IT to minimise the impact when women are at the workplace. I believe it's quite common for companies to have flexible arrangements to allow women to work from home.

Little difference between NUS Bachelor of Computing for honours and non-honours

This is somewhat surprising to me. From table 11, the mean monthly gross starting pay for a graduate with Bachelor of Computing is $2,544 while it is $2,600 for someone with honours. In terms of pay alone, the difference is not significant enough to me. The opportunity cost is one year of expenditure, lost income and experience. Perhaps there are other factors like the research experience gained during the extra year and that students with honours are more employable (87.4% vs 79.5% were employed). As a side-note, SMU students from the Information System Management had a mean monthly gross starting pay of $2,975. That's a pretty big difference considering Information Systems students probably learn the same topics in NUS.

Doing National Service increases your pay

It's true, from table 12, people who have served National Service have a higher mean monthly gross starting salary. But why? Does it imply that employers see that National Service makes a person better to handle work?

Sunday, August 12, 2007

Granado Espada - Business model revealed, and bikinis too

Well, the long-awaited business model for Granado Espada has been announced, and along with it a lengthy piece on the rationale behind the decision. The goal is simply to make money, question is how to make it viable. Like, how do make sure 90% of the players don't quit once you start charging them in some form...lol. The dungeons don't seem to be congested with players today. :p

Plenty of talk about it on the forums (here, here, here, here...) and blogosphere. Don't have too much feelings about it, but generally I feel it is (might be?) a fair price to pay, provided they fix a few bugs, get rid of the botters and continue to create new content for the game. So what's the pricing gonna be like?

Granado Espada will run on a hybrid pay to play model.



Gamers will be required to invest at least SGD$9.90/P300/RM$20/USD$5.60 into the game per month via various payment methods. Minus a nominal fee, this amount will transfer into G-Points which can then be used at the cash shop for premium items. Players have the option to invest more than the minimum per month for large cash shop purchases:


Table of charges
Players will get locally priced game value cards from their local distributors. Watch your local distributor's official GE websites for more information.

Not sure if I'm understanding this correctly buy if you spend US $40, you can play for 1 year. That's around SGD $60, or 5 bucks per month. Seems affordable to me. But that's not saying I'm gonna subscribe to the game, cos there's other considerations like time.

And speaking of creating new content, look at what else has been revealed about Granado Espada recently. (First spotted in the House of Reclusion.)
Nice ....

Yeah, that's the scout and fighter with more than their armour removed. (And getting a bit too intimiate too)Summer

The gang's enjoying a bit of the sun and the breeze.

I suppose we'll soon be able to see them on our shores. It's nice to see that new content is being rolled out even as the players have to start paying for the game, hopefully it will enrich the whole experience. Customisation is a huge factor in MMORPGs. IMHO. Check out the Japanese site and the Korean site for more potential content coming our way.

Wednesday, August 8, 2007

At work: Why do you think I can when you can’t?

Received a call from a user to help her solve a problem. I asked her to take a screenshot and send it to me via email.

Woman: What's your name?
Me: I'm XXX.
W: How do you spell that?
M: It's spelt as "XXX".
W: I can't find your name in the address book leh.
M: That happens sometimes.
W: Why ah?
M: I think that there is some problem with the email server's configuration.
W: Are you able to help?
M: Er...it's under the purview of the email team. I'm only responsible for the application you're using.
W: Like that ah?
M: How about you give me your name and I try to find you?
W: Ok. My name is "LLL"
M: Hmm...can't find you either.
W: It's spelt "LLL".
M: Your name is "LLL" right? Nope, it's not here.
W: You scroll down to "KKK".
M: Ok.
W: It's right after that.
M: Nope, I'm having the same problem as you.
W: Cannot be. Look properly.
M: ....

Monday, August 6, 2007

Thunderbird not receiving new messages for RSS feeds

Recently a lot of my RSS feeds in Thunderbird were not updated. There seems to be some issue with receiving new messages, a lot of my feeds were affected, though not all. Here's what I did to resolve the issue.

  1. Right-click the affected feed and choose "Properties.." .

  2. Under the "General Information" tab, tick the checkbox "Check this folder for new messages".

  3. Click the "Rebuild Indexes" button.

  4. Click the "OK" button.

  5. From the toolbar, click the "Get Mail" button.


That managed to solve the problem, but you have to do steps 1 to 4 for each affected feed, before proceeding to step 5. It can be a pain if you have dozens of affected feeds, but I don't know of a better way.