There’s more than one way to do it

28 Sep
Bug is a very disgusting thing in Computer Science. In one of my subjects project, I was required to write a Hearts card game robot player. I spent several hours finished the code, but it took me 2 days to debug it. :-(. A tiny bug found in the debugging process took me a whole night, which resulted to be mistyping variable Card as C, very embarrassed!
The funniest thing was that in order to find that tiny bug, I used a screen recording software recorded the whole playing process, then simulated the whole process by re-watching the recorded video again and again, but finally came to the conclusion that there was no bug in my program! I was nearly desperate, fortunately, an accidental warning msg “singleton variable” saved my life.
Here is the video I recorded:
after playing for awhile, my robot(bottom one) stopped play.
7 Jun
Finally, I managed to compile a gtk + cairo GUI program by using mingw GNU make and eclipse CDT under Windows XP.
2 Mar
13 Feb
22 Nov
I have tried to run this with both eclipse(CDT)+MinGW and Cygwin+GCC
1 2 3 4 5 6 7 8 9 10 | #include <stdio.h> #include <stdlib.h> #include <float.h> int main() { puts("The range of "); printf("\tlong double is [%Le, %Le]∪[%Le, %Le]\n", -LDBL_MAX, -LDBL_MIN, LDBL_MIN, LDBL_MAX); return EXIT_SUCCESS; } |
but got different results:
This is weird, and I googled it, then just found this http://www.thescripts.com/forum/thread498535.html
The LDBL_MAX of long double is machine-dependent, but why it like this in same machine? I guess it’s the problem with MinGW. Anyone hv any idea?
14 Nov
Today, when I was reviewing the session part of PHP, I suddenly came out a question: how to make PHP to append session ID(SID) to your page links automatically when cookies are forbidden in that browser? I managed to do this in JSP, but not sure whether the PHP can also handle this problem.
I checked the configuration files (php.ini) for my apache server, and there is a session section, under which there is a setting session.use_trans_sid = 0. After I changed this to session.use_trans_sid = 1, and restarted apache, the links of the page which invoked session_start() have now appended the SID. There is also an url_rewriter.tags, with which you can define what elements of a page will be appended.
Here are some demo codes:
sessions.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php ob_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>Untitled</title> </head> <body> <?php ini_set('session.use_trans_sid','1'); //you can also do this instead of modify php.ini session_start(); $_SESSION['test']='right!'; //header('Location: sessions2.php'); //SID won't be appended in this situation //exit(); ?> <a href="sessions2.php">click here</a> </body> </html> <?php ob_end_flush(); ?> |
sessions2.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php ob_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>Untitled</title> </head> <body> <?php session_start(); echo $_SESSION['test']; ?> </body> </html> <?php ob_end_flush(); ?> |
10 Oct
Here is my first Robocode robot - Age.

No need to have an introduction, just have a try if you want. BTW, it uses anti-gravity motion.
31 Aug
Here is the Java program written by me to simulate the Brownian motion. In this prac, I tried to use double buffering to improve the performances, but actually it is triple buffering. That’s because the JPane has already implemented the double buffering, so plus mine own copy of buffer to store the background coordinate system and the path of particles, it is triple! Ho ho
28 Aug
Many Java programmers are befuddled by the three methods repaint(), paint(Graphics), and update(Graphics). This is because they are designed to work in a wide variety of circumstances, and they interact in a non-obvious fashion. This happens in several contexts in Java, but GUIs are the most obvious. The designers of Java wanted Java programs to be able to run on any machine that had a Java VM. So, a particular program might be running on a desktop machine, or a laptop, or a hand-held machine, like a personal assistant or a phone. This presents quite a challenge for the designer of an abstract windows toolkit (AWT). It also makes the job of a novice programmer more difficult than it might otherwise be. So it goes.
i) public void update(Graphics)
By default update(Graphics) fills the drawable area of a Component with its background color, and then sends paint(Graphics) to the object. Thus, flicker that comes from redrawing the background over and over, can sometimes be fixed by overriding update() (see Code Example 9 on page 238, Simple Java).
ii) public void paint(Graphics)
Every Java Component implements paint(Graphics), which is responsible for painting that component in the Graphics context passed in the parameter. When you extend a Component (like when you write a Applet), if you want to display it differently than its superclass, you override public void paint(Graphics) . This was first illustrated in Chapter 3, Simple Java. (more…)
Recent Comments