Sunday, April 25, 2010

Taiwan Top Universities 2009

There’re are lots of ranking methodology and results on the Internet. But the list of Taiwan Top Universities I wrote here will be based on QS Top Universities. You can read their university ranking on their website. I’ll list 3-6 top Taiwan Universities grouped by various categories. The Taiwan universities will be ordered based on their ranking on each categories. This post is written by Gandhi Manalu [http://gandhim.wordpress.com].

  1. World University Rankings:

    1. National Taiwan University – NTU (95)

    2. National TSING HUA University (223)

    3. National CHENG KUNG University (281)

    4. National YANG MING University (306)

    5. National Taiwan University of Science And Technology – NTUST (351)

  2. World University Rankings – Natural Sciences:

    1. National Taiwan University – NTU (51)

    2. National TSING HUA University (150)

    3. National Taiwan University of Science And Technology – NTUST (254)

  3. World University Rankings – Engineering/Technology:

    1. National Taiwan University – NTU (47)

    2. National TSING HUA University (84)

    3. National Taiwan University of Science And Technology – NTUST (143)

    4. National CHENG KUNG University (160)

    5. National CHIAO TUNG University (166)

  4. Asian University Rankings:

    1. National Taiwan University – NTU (22)

    2. National TSING HUA University (40)

    3. National CHENG KUNG University (43)

    4. National YANG MING University (47)

    5. National SUN YAT-SEN University (71)

    6. National Taiwan University of Science And Technology – NTUST (72)

  5. Asian University Rankings – Life Sciences & Biomedicine Subject:

    1. National Taiwan University – NTU (10)

    2. National Taiwan University of Science And Technology – NTUST (42)

    3. National SUN YAT-SEN University (66)

    4. National TSING HUA University (67)

    5. National Central University (69)

  6. Asian University Rankings – Natural Sciences:

    1. National Taiwan University – NTU (10)

    2. National TSING HUA University (33)

    3. National Taiwan University of Science And Technology – NTUST (57)

    4. National Central University (60)

    5. National CHENG KUNG University (63)

  7. Asian University Rankings – IT and Engineering:

    1. National Taiwan University – NTU (16)

    2. National TSING HUA University (32)

    3. National Taiwan University of Science And Technology – NTUST (41)

    4. National CHENG KUNG University (49)

    5. National CHIAO TUNG University (52)

The number in the left is the university ranking in Taiwan on particular category whereas the number in brackets denotes the university ranking in each category.This post is written by Gandhi Manalu [http://gandhim.wordpress.com].

Wednesday, April 14, 2010

Yahoo Messenger 10 Profile Directory in Vista

My Yahoo Messenger 10 suddenly crashed, I didn’t know the cause, but it might be the side effect of uninstalling several programs from my computer.

I wanted to reinstall Yahoo Messenger 10, but first I need to backup my profile that includes my chat history, so that all my recorded chats could be restored later. Usually, I could find my Yahoo profile directory at Program Files installation directory, but I couldn’t find it.

After searching through directories in my computer, I found out that Yahoo Messenger 10 stores its user profile in:

X:\Users\<windows_username>\AppData\Local\VirtualStore\Program Files\Yahoo!\Messenger\Profiles\<yahoo_id>
(where windows_username is user’s windows id and yahoo_id is user’s yahoo id).

I hope this post will be helpful for those who have the same problems as me.

Monday, April 12, 2010

WD 1T External Hard disk drive

Yesterday, I went to Guang Hua, Taipei, to buy a new hard disk drive. At first, I didn’t plan to go there, but to Nova Computer Store at Taipei Main Station. After visited several stores, I found out that the price is about 3,100 NTD, more expensive than the price my friend told me before.

Then I decided to go to Guang Hua instead. Yup, the price in Guang Hua is much cheaper, almost all stores sell with price about 2,850 NTD, and then I found this one store which sells with price of 2,800 NTD. Without thinking much longer, I decided to buy the hard disk drive at this store.

It is WD 1 Terabyte external hard disk drive. It provides a software for smart backup and storage (it installed a virtual CD drive that stores the software). What’s more assured is that it offers a three-year warranty (well actually I wouldn’t stay at this town that longer, but it’s worth noted).

The actual size of the hard disk drive is 930 GB, and I think it’s quite enough to store all my multimedia files :)

Saturday, April 10, 2010

Beef Hotpot at Shida

This afternoon, my friends and I went to hotpot restaurant at Shida area, Taipei. It’s not far from our place so we went there using bicycle, and it took only 15 minutes to get there. From the main road of Shida night market, turn left at the 7-11 intersection, just walk a little more and there the restaurant is. I don’t really know the name of the restaurant, but it’s with an ‘8′ written in its name.
There are lots of hotpot choices, but I ordered beef hotpot because I just like beef :) What’s nice about this restaurant is the price is not too expensive, all food is in the range of 100 – 130 NTD. Better yet, you can take as much rice as you want, and also take as much ice cream and cold tea as you like :)
For the range from 1-10 (where 10 is the most delicious), I give this restaurant a score of 7.0.

Thursday, April 8, 2010

Music for My Soul

I usually play particular songs for different states of my mood. Whenever I felt angry, distressful, or disappointed then I’ll play songs from Kenny G. But not all of his songs fits my weary condition. I usually listen for these songs of Kenny G:

  • The moment
  • Morning
  • Theme from dying young
  • Loving you
  • Forever in love
  • Sentimental
  • Silhouette

Whenever I heard those songs my soul becomes calm again. I feel relax. It feels like there’s a calm strength fill my mind. And usually, I gain new power to do cope with my problems and do my activity again.

But it doesn’t mean that whenever I play those songs it means I’m in a weary condition :)

Steps in dealing with procrastination

Procrastination is an evil thing. It comes like a disease, but in a convenient form, yet very disastrous. All of us may have suffered this disease once. Me myself has been dealing with this disease ever since my undergraduate study, and yet it still come tempting me. I've read several book in dealing with this disease, unfortunately it can only help for several weeks. I think I need to always be reminded about this. Lucky me, I've just found an article about the cure, I'll summarize it here (with my own words):
  1. Try to identify the cause of the procrastination.
  2. Plan to do your activity on a certain period of time.
  3. Prepare to do your activity, by preparing things you'll be more motivated on doing the activity.
  4. Just do it.
  5. Reward yourself for things well done on time.
This article has helped me in motivating myself again against procrastination, and I hope it will help you also.

Wednesday, April 7, 2010

Pay attention to the detail

I've been struggling with an anomaly in my code for several days now. I've tried to rewrite the code, change some more variables, add the number iterations but it doesn't work out. But then after re-read the paper again I realize that the problem lies on the number of intervals length, I used a very small number of intervals where actually it need a little more number of intervals length.

How I can miss such information? It's because I thought I've understood the global flow of the algorithm and didn't read small information written at the end of the paragraph. D'oh!

Lesson learned: don't assume you've already understood the program, until you read the whole paper thoroughly and in detail.

Monday, April 5, 2010

Qingming Festival

Today is holiday, let me scream first, Horraaaayyy :)

It is called Qing Ming festival, or usually known as Cheng Beng festival. It's not really a festival in a way like there are parades on the street. No, there are no such thing. In contrary, usually people go back to their hometown and together with their family they go to their ancestors tomb and sweep them, that's why it is also called Tomb Sweeping day.

This tradition is quite similar with what my tribe (Batak tribe) has back in Bonapasogit, North Sumatra, Indonesia. Usually, few days before Easter, a family gather in their ancestors' tomb and clean it. I don't know what's the reason behind this tradition, but I think it's a good one to pay respect to our ancestor.

Could it be that this tradition rooted from the same source? Who knows..

TOP Huayu

Last week I decided to take a Test of Proficiency (TOP) Huayu. It's a certification test for Mandarin language organized by Steering Committee of the Test of Proficiency Huayu (SC-TOP). You can image it as a "TOEFL" test for Mandarin language. I enrolled on the test not only because it's free (at the time, a promotion I guess) but also because I want to measure how my Mandarin language goes. I took a beginner level, and the test was conducted at Technology and Science Institute of Northern Taiwan.

TOP Huayu

I've downloaded the sample mock test provided at SC-TOP website, and also review book 1 Practical Audio-Visual Chinese. I thought it was all enough. But the test was just not as expected. There are lots of new characters that I've never known before, and the audio voice was just so fast.

One Japan-born American I met at the test said that the real test is indeed a lot more difficult than the mock test, and he said that there are a special book for the test preparation. Darn! I just knew it at the D-day. I hope I'd knew that several weeks before the test.

Well, this is not an excuse, but a lesson. Next time, prepare well, in a way that read books that are specially designed for the test. What I was doing is just like "taking an English conversation class" for facing "TOEFL" test. That was just not right.

I hope I'll perform better for the next test. Jia you!

Sunday, April 4, 2010

Happy Easter 2010

It's Easter now, so I'd like to say Happy Easter to all of us. May God bless us. Compare to my Easter experience last year, today I didn't come late :)

Since I didn't got any real Easter egg today, I'll give you another type of "Easter egg" :)

To do this, you'll need an Open Office application suite. I'm using version 3.2.0.
  1. Open a new spreadsheet
  2. Type "=game()" at the cell and press Enter, the cell will display "say what?"
  3. Now type "=Game("StarWars")" and press Enter again
  4. A new window for the game will be opened
  5. Have fun :)
After playing you might feel like playing it again. Well, repeating the same procedure will give you a funny response, the application will say "oh no, not again!" :) So you need to close the Open Office application (along with the quick starter at your task bar) and start over again.

Spring is Coming

Yey, Spring is coming..

Spring

or not :( (while writing this post the weather is still very cold, not the kind of Spring I imagined).

Particle Swarm Optimization (PSO) Sample Code using Java

Yes, I'm still coding and I'm proud of it :)

This post assume that the reader has already known about Particle Swarm Optimization (PSO) method, and hence I wouldn't spare a space to explain about it. But if you'd like to ask the method's component on the code I provide below then I'll be gladly explain it in greater length. [This post is written by Gandhi Manalu - gandhim.wordpress.com]

In this post, I'll describe and provide a sample code of PSO method for solving a very simple function optimization. Let say that the function to be minimized is as follow:

$latex f(x,y) = (2.8125-x+xy^4)^2+(2.25-x+xy^2)^2+(1.5-x+xy)^2$

With the following constraints: $latex 1<=x<=4; -1<=y<=1$

In order to solve this problem using PSO, we'll need these classes:

  • Position: to represent Position part of the particle
  • Velocity: to represent Velocity part of the particle
  • Particle: the particle itself [This post is written by Gandhi Manalu - gandhim.wordpress.com]
  • SimplePSO: the main control of the program
  • PSOConstants: an interface to define parameters used in the PSO
Since we're going to solve two-variable function optimization, we'll need to provide two-dimensional position and velocity. For the Position we have:

package org.gandhim.pso;

/**
*
* @author gandhim
*/
public class Position {
private double x;
private double y;

public Position(double x, double y) {
this.x = x;
this.y = y;
}

public double getX() {
return x;
}

public void setX(double x) {
this.x = x;
}

public double getY() {
return y;
}

public void setY(double y) {
this.y = y;
}
}

For the Velocity we have:

package org.gandhim.pso;

/**
*
* @author gandhim
*/
public class Velocity {
private double x;
private double y;

public Velocity(double x, double y) {
this.x = x;
this.y = y;
}

public double getX() {
return x;
}

public void setX(double x) {
this.x = x;
}

public double getY() {
return y;
}

public void setY(double y) {
this.y = y;
}
}
And the Particle is as follow:[This post is written by Gandhi Manalu - gandhim.wordpress.com]

package org.gandhim.pso;

/**
*
* @author gandhim
*/
public class Particle {
private Position location;
private Velocity velocity;
private double fitness;

public double getFitness() {
calculateFitness();
return fitness;
}

public void calculateFitness() {
double x = this.location.getX();
double y = this.location.getY();

fitness = Math.pow((2.8125 - x + x * Math.pow(y, 4)), 2) +
Math.pow((2.25 - x + x * Math.pow(y, 2)), 2) +
Math.pow((1.5 - x + x * y), 2);
}

public Position getLocation() {
return location;
}

public void setLocation(Position location) {
this.location = location;
}

public Velocity getVelocity() {
return velocity;
}

public void setVelocity(Velocity velocity) {
this.velocity = velocity;
}
}

Pay attention to the calculateFitness() method, it is where we put the function evaluation. Now, we're ready for the main process of the PSO. In this class, we'll need several methods:
  • initializeSwarm() - to initialize the swarm used in the method
  • execute() - the main part of the process[This post is written by Gandhi Manalu - gandhim.wordpress.com]
Here's the code (partial code):

private void initializeSwarm() {
Particle p;
Random generator = new Random();

for (int i = 0; i < SWARM_SIZE; i++) {
p = new Particle();
double posX = generator.nextDouble() * 3.0 + 1.0;
double posY = generator.nextDouble() * 2.0 - 1.0;
p.setLocation(new Position(posX, posY));

double velX = generator.nextDouble() * 2.0 - 1.0;
double velY = generator.nextDouble() * 2.0 - 1.0;
p.setVelocity(new Velocity(velX, velY));

swarm.add(p);
}
}

public void execute() {
Random generator = new Random();
initializeSwarm();

evolutionaryStateEstimation();

int t = 0;
double w;

while (t < MAX_ITERATION) {
// calculate corresponding f(i,t) corresponding to location x(i,t)
calculateAllFitness();

// update pBest
if (t == 0) {
for (int i = 0; i < SWARM_SIZE; i++) {
pBest[i] = fitnessList[i];
pBestLoc.add(swarm.get(i).getLocation());
}
} else {
for (int i = 0; i < SWARM_SIZE; i++) {
if (fitnessList[i] < pBest[i]) {
pBest[i] = fitnessList[i];
pBestLoc.set(i, swarm.get(i).getLocation());
}
}
}

int bestIndex = getBestParticle();
// update gBest
if (t == 0 || fitnessList[bestIndex] < gBest) {
gBest = fitnessList[bestIndex];
gBestLoc = swarm.get(bestIndex).getLocation();
}

w = W_UP - (((double) t) / MAX_ITERATION) * (W_UP - W_LO);

for (int i = 0; i < SWARM_SIZE; i++) {
// update particle Velocity
double r1 = generator.nextDouble();
double r2 = generator.nextDouble();
double lx = swarm.get(i).getLocation().getX();
double ly = swarm.get(i).getLocation().getY();
double vx = swarm.get(i).getVelocity().getX();
double vy = swarm.get(i).getVelocity().getY();
double pBestX = pBestLoc.get(i).getX();
double pBestY = pBestLoc.get(i).getY();
double gBestX = gBestLoc.getX();
double gBestY = gBestLoc.getY();

double newVelX = (w * vx) + (r1 * C1) * (pBestX - lx) + (r2 * C2) * (gBestX - lx);
double newVelY = (w * vy) + (r1 * C1) * (pBestY - ly) + (r2 * C2) * (gBestY - ly);
swarm.get(i).setVelocity(new Velocity(newVelX, newVelY));

// update particle Location
double newPosX = lx + newVelX;
double newPosY = ly + newVelY;
swarm.get(i).setLocation(new Position(newPosX, newPosY));
}

t++;
}
}

And the last is the interface for storing the constants:

package org.gandhim.pso;

/**
*
* @author gandhim
*/
public interface PSOConstants {
int SWARM_SIZE = 30;
int DIMENSION = 2;
int MAX_ITERATION = 300;
double C1 = 2.0;
double C2 = 2.0;
double W_UP = 1.0;
double W_LO = 0.0;
}

I made the interface just for the sake of flexibility. A sample of running the program is as follow: PSO Result

As we can see from the result, the program found the solution of the problem for (x=3.0 and y=0.5). You might have noticed that the program is not optimized yet, for example it could have been stopped when it already found the solution.[This post is written by Gandhi Manalu - gandhim.wordpress.com]

Actually, there are other PSO's components that have not been implemented in this program, for example constraints handling. But since the problem we solved here is a very simple one it doesn't really need the constraint handling.

I hope that this post is useful for you.

New Year's Resolution: Current State

I don't know why, but it just came into my mind about nine (yes, it's nine!) new year's resolutions that I made on the very first day of this 2010 year.

I'm trying to count how many of them have been realized or at least being attempted. Well, though the progress is not aggressive I'm happy to say that all of them are being proceed. Some is 50% done, the other is still 30% done, but at least they're all started to improve day by day (well at least week by week). I don't want to make a speculation, or even planning an "alternative" resolution in case of some of my resolution are not able to be achieved (on time). All of them are important, so they're all have to be achieved. Though I still have 8 more months to go, I realize I couldn't waste my time again.

So I have to focus to speed up the progress. Stop at doing unproductive activities. Eliminate procrastination spirit. And just do it!

Prof. Kaoru Hirota's Visit

Prof. Kaoru Hirota

Several weeks ago, Prof. Kaoru Hirota from the HIROTA LAB, Titech, visit our lab. His lab's research topics are interesting. I hope to go there sometimes in the future. Hopefully :)

Free Pop Yahoo Mail

Actually this trick is a very old one, but it still works until now, and I've been using it for quite some time now. It just came to my mind to share it with those who haven't known about this yet.

Yes, it's true. You can easily pop your yahoo mails into your desktop based email client like Thunderbird or Windows Live Mail. You just need to change your time zone setting. Don't worry, your email address will be stay the same (endings with @yahoo.com, it won't change into @yahoo.co.id whatsoever). I didn't have much time to provide the visual steps, but I guarantee that the textual steps is comprehensive enough for you to follow.

Here are the steps: [These steps provided by Gandhi Manalu - gandhim.wordpress.com]

  1. Open your web based Yahoo Mail (I use the All-New version).
  2. At the right hand side of the window there is an Options menu, click on it and choose "More options...".
  3. At the left hand pane you can see several menus, chose Accounts.
  4. At the right hand pane click "Add or edit an account". A new window will be opened to add or edit an account.
  5. Just choose the default one (the one titled Yahoo! Mail) and click Edit button.[These steps provided by Gandhi Manalu - gandhim.wordpress.com]
  6. Now you have several options at the left side, choose "Account Information".
  7. You'll be asked to enter your account information (password) again. Just enter it and press "Sign In".
  8. Scroll down to "Account Settings" box, you'll find "Set language, site, and time zone" menu, just click it.
  9. In the new setting, just choose Yahoo! Asia.
  10. Press finished. Now, your time zone will be Yahoo! Asia. Don't worry, it won't change your time zone, you can adjust it under the time zone drop box. [These steps provided by Gandhi Manalu]
  11. Now go back to window opened at step 3. You'll find "POP & Forwarding" menu there. Click it.
  12. At the right side pane choose "Set up or edit POP & Forwarding". A new window will be opened.
  13. Choose "Web & POP Access" to enable POP Access and don't forget to press the "Save" button at the left bottom side of the window.
  14. Now, you can pop your Yahoo email freely into your desktop based email client application.

Depends on your email client application, you can setup a new Yahoo email account. Use this setting while configuring your email client: [These steps provided by Gandhi Manalu - gandhim.wordpress.com]

  • Incoming mail (POP 3): pop.mail.yahoo.com. Port number: 995.
  • Outgoing mail (SMTP): smtp.mail.yahoo.com. Port number: 465.

And you're ready popping your Yahoo email, freely! Have fun.