Tuesday, December 23, 2008

User Timer in Linux/Unix

#include <sys/time.h >
<signal.h >
#include <stdlib.h >
#include <stdio.h >

#define MAX_COUNT 100

/* This flag controls termination of the main loop. */
volatile sig_atomic_t counter = 0;

/* The signal handler just clears the flag and re-enables itself. */
catch_alarm (int sig)
signal (sig, catch_alarm);
// printf("\nCatch an alarm!\n");

void do_stuff (void)
static unsigned long c = 0;
printf ("Doing stuff while waiting for alarm (myCounter = %u, Counter=%u) \r", ++c, counter);

void set_timer_val(struct itimerval *t, const unsigned long ival_usec, const unsigned int val_usec)
//period between successive timer interrupts
t->it_interval.tv_usec = ival_usec % 1000000;
t->it_interval.tv_sec = ival_usec / 1000000;
//period between now and the first timer interrupt
t->it_value.tv_usec = val_usec % 1000000;
t->it_value.tv_sec = val_usec / 1000000;

int main (void)
struct itimerval ival, oval;

/* Establish a handler for SIGALRM signals. */
signal (SIGALRM, catch_alarm);

/* Set an alarm to go off in a little while. */
// one-shot timer
set_timer_val(&ival, 1000000, 500000);
setitimer (ITIMER_REAL, &ival, &oval);

/* Check the flag once in a while to see when to quit. */
while (counter < MAX_COUNT)
do_stuff ();


Sunday, December 21, 2008

Creative XtremeGamer on Linux is Ready

The XFi driver is now available from Creative website. It's the first version (I think it is the first collaboration result between CreativeLabs and ALSA community). Although it supports very limited (very basic features: 2.0 speakers, no enhanced audio processing etc.) right now. At least, my OpenSUSE can spit out sound!

Get it from here.
extract it, but don't make it yet. Modify ctdrv.h. In my case, it shows like below:

#ifndef CTDRV_H
#define CTDRV_H

#define PCI_VENDOR_CREATIVE 0x1102
#define PCI_DEVICE_CREATIVE_20K1 0x0005
#define PCI_DEVICE_CREATIVE_20K2 0x000B
#define PCI_SUBSYS_CREATIVE_SB0760 0x0024
//#define PCI_SUBSYS_CREATIVE_SB0880 0x0041
#define PCI_SUBSYS_CREATIVE_SB0880 0x6003


#define CT_XFI_DMA_MASK 0xffffffffUL /* 32 bits */

That is because when I do:

Make a sound card as default in Linux

In the case that we have more than one sound-card, but to select one of them as the default sound-card, copy the following to ~/.asoundrc. In the example below, it makes the card 1 as the default (type "aplay -l" from shell to see all the cards installed and their associated card #).

pcm.!default {
type hw
card 1
ctl.!default {
type hw
card 1

Sunday, November 30, 2008

OS-X Bootcamp Missing or Corrupt Issue

I got my OS-X Leopard 10.5 a few days ago. After OSX installation, I went to Preference->Utilities->Boot Camp Assistant and then configured it. After reboot and installed the Windows XP, when my MacBook rebooted, it always failed and showed a message as below:

Windows could not start because the following file is missing or corrupt:
Please re-install a copy of the above file

I've tried various attempts with no success. I searched Google but nothing really helped solving the issue. Finally, I retried again by restoring the OSX into single partition and repartitioned it using The Bootcamp and chose 32 GB FAT32 partition for the Windows. During Windows Installation, I did not delete the partition created by the Bootcamp, but instead just chose NTFS Quick format. Out of my suprise, It worked.

So, the main issue before was that I should hadn't deleted the BOOTCAMP partition I shouldn't had used Windows' Partitioner) and just straightly reformat it and install the Windows.

It works now, except it couldn't find the audio driver (all the other devices were recognized and installed through the OSX CD).

Tuesday, November 25, 2008

AVI to MPEG mass conversion

Need a FFMPEG installed.

The following command will convert all *.AVI files into SVCD-format (with MP3 audio) files:

find . -iwholename *.avi -exec ffmpeg -target ntsc-svcd -acodec mp3 -y -i '{}' '{}.mpg' \;

To see all supported format on FFMPEG:

ffmpeg -formats

Wednesday, November 19, 2008

Using Vector template

#if defined(__cplusplus)
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <string>
#include <vector>
error "must be CPP-enabled compiler to compile this program"

using namespace std;

class CPoint {
CPoint(double a, double b) { x = a; y = b; };
friend std::ostream& operator<< (std::ostream& os, const CPoint& val);
double getX() { return x; };
double getY() { return y; };
double x;
double y;

std::ostream& operator<< (ostream& os, const CPoint& pt)
return os << "(" << pt.x << ", " << pt.y << ")" ;

int main()
vector<CPoint> points;
vector<CPoint>::iterator it;
int i;

it = points.begin();

for (i=0; i<10; i++) {
it = points.insert( it, CPoint(10.5+double(i)/11, 22.7 - double(i)/13) );

cout << "Vector Demo" << endl << "-------------" << endl;
cout << "Vector size = " << points.size() << endl;

for (it = points.begin(), i=0; it < points.end(); it++,i++)
// cout << "points[" <<>x;
cout << " " << *it;
cout << endl;

for (i=0; i< points.size(); i++)
cout << "points[" << i << "] = " << points[i] << endl;

return 0;

Friday, November 14, 2008

Making Linux running SUSE as a Bridge

  1. Make sure bridge module is installed in the Kernel

  2. Run the bridge module: sudo modprobe bridge

  3. Install bridge-utils (download it from http://bridge.sourceforge.net) and copy brctl into /sbin (the ifup script is hardcoded to call it from /sbin)

  4. create a new bridge instance (in this example, the bridge name is called br0): sudo brctl addbr br0

  5. Add the interface(s) to be members of this bridge: sudo brctl addif br0 ethx (where x = 0, 1, ...)
  6. To make it permanent, copy /etc/sysconfig/network/ifcfg-template to ifcfg-br0
  7. Modify the content and let have it as below (IPADDR is chosen here as

  8. IPADDR=
    BRIDGE_PORTS='eth0 eth1 eth2'

  9. restart network: sudo /etc/init.d/network restart

Sunday, October 26, 2008

How to figure out Linux Devices and Drivers

These are the steps to know if our devices have drivers installed and what they are.

$ less /proc/devices

Character devices:
1 mem
2 pty
3 ttyp
4 /dev/vc/0
4 tty
4 ttyS
5 /dev/tty
5 /dev/console
5 /dev/ptmx
6 lp
7 vcs
10 misc
13 input
14 sound
21 sg
29 fb
81 video4linux
116 alsa
128 ptm
136 pts
180 usb
189 usb_device
195 nvidia
253 usb_endpoint
254 rtc

Block devices:
1 ramdisk
2 fd
3 ide0
7 loop
8 sd
9 md
22 ide1
65 sd
66 sd
67 sd
68 sd
69 sd
70 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
253 device-mapper
254 mdp

For example, to see what devices the video4linux driver has:

ls -artl /dev | grep 81
crw-rw---- 1 root root 253, 1 2008-10-26 17:17 usbdev1.1_ep81
crw-rw---- 1 root video 81, 1 2008-10-26 17:17 vbi0
crw-rw---- 1 root video 81, 0 2008-10-26 17:17 video0

To see what devices my NVidia driver has:

ls -artl /dev | grep 195
crw-rw---- 1 root video 195, 255 2008-10-26 17:18 nvidiactl
crw-rw---- 1 root video 195, 0 2008-10-26 17:18 nvidia

The major version is the one that we're interested. It's the first number showed when we do 'ls /dev' as well as the numbers showed in /proc/devices

Monday, October 6, 2008

Some useful socat commands

To link serial port ttyS0 to another serial port:

socat /dev/ttyS0,raw,echo=0,crnl /dev/ttyS1,raw,echo=0,crnl

To get time from time server:

socat TCP:time.nist.gov:13 -

To forward local http port to remote http port:

socat TCP-LISTEN:80,fork TCP:www.domain.org:80

To forward terminal to the serial port COM1:

socat READLINE,history=$HOME/.cmd_history /dev/ttyS0,raw,echo=0,crnl

Simple file-transfer:

On the server-side: socat TCP-LISTEN:port filename
To send file fro the server: socat TCP:hostname:port filename

socat - TCP4:www.domain.org:80

Transfers data between STDIO (-) and a TCP4 connection to port 80 of host www.domain.org. This example results in an interactive connection similar to telnet or netcat. The stdin terminal parameters are not changed, so you may close the relay with ^D or abort it with ^C.

socat -d -d READLINE,history=$HOME/.http_history \

This is similar to the previous example, but you can edit the current line in a bash like manner (READLINE) and use the history file .http_history; socat prints messages about progress (-d -d). The port is specified by service name (www), and correct network line termination characters (crnl) instead of NL are used.

socat TCP4-LISTEN:www TCP4:www.domain.org:www

Installs a simple TCP port forwarder. With TCP4-LISTEN it listens on local port "www" until a connection comes in, accepts it, then connects to the remote host (TCP4) and starts data transfer. It will not accept a second connection.

socat -d -d -lmlocal2 \
TCP4-LISTEN:80,bind=myaddr1,su=nobody,fork,range=,reuseaddr \

TCP port forwarder, each side bound to another local IP address (bind). This example handles an almost arbitrary number of parallel or consecutive connections by forking a new process after each accept(). It provides a little security by sudoing to user nobody after forking; it only permits connections from the private 10 network (range); due to reuseaddr, it allows immediate restart after master processes termination, even if some child sockets are not completely shut down. With -lmlocal2, socat logs to stderr until successfully reaching the accept loop. Further logging is directed to syslog with facility local2.

socat TCP4-LISTEN:5555,fork,tcpwrap=script \

A simple server that accepts connections (TCP4-LISTEN) and forks a new child process for each connection; every child acts as single relay. The client must match the rules for daemon process name "script" in /etc/hosts.allow and /etc/hosts.deny, otherwise it is refused access (see "man 5 hosts_access"). For EXECuting the program, the child process chroots to /home/sandbox, sus to user sandbox, and then starts the program /home/sandbox/bin/myscript. Socat and myscript communicate via a pseudo tty (pty); myscripts stderr is redirected to stdout, so its error messages are transferred via socat to the connected client.

socat EXEC:"mail.sh target@domain.com",fdin=3,fdout=4 \

mail.sh is a shell script, distributed with socat, that implements a simple SMTP client. It is programmed to "speak" SMTP on its FDs 3 (in) and 4 (out). The fdin and fdout options tell socat to use these FDs for communication with the program. Because mail.sh inherits stdin and stdout while socat does not use them, the script can read a mail body from stdin. Socat makes alias1 your local source address (bind), cares for correct network line termination (crnl) and sends at most 512 data bytes per packet (mss).

socat - /dev/ttyS0,raw,echo=0,crnl

Opens an interactive connection via the serial line, e.g. for talking with a modem. raw and echo set ttyS0's terminal parameters to practicable values, crnl converts to correct newline characters. Consider using READLINE instead of `-'.

socat UNIX-LISTEN:/tmp/.X11-unix/X1,fork \

With UNIX-LISTEN, socat opens a listening UNIX domain socket /tmp/.X11-unix/X1. This path corresponds to local XWindow display :1 on your machine, so XWindow client connections to DISPLAY=:1 are accepted. Socat then speaks with the SOCKS4 server host.victim.org that might permit sourceport 20 based connections due to an FTP related weakness in its static IP filters. Socat pretends to be invoked by socksuser nobody, and requests to be connected to loopback port 6000 (only weak sockd configurations will allow this). So we get a connection to the victims XWindow server and, if it does not require MIT cookies or Kerberos authentication, we can start work. Please note that there can only be one connection at a time, because TCP can establish only one session with a given set of addresses and ports.

socat -u /tmp/readdata,seek-end=0,ignoreeof -

This is an example for unidirectional data transfer (-u). Socat transfers data from file /tmp/readdata (implicit address GOPEN), starting at its current end (seek-end=0 lets socat start reading at current end of file; use seek=0 or no seek option to first read the existing data) in a "tail -f" like mode (ignoreeof). The "file" might also be a listening UNIX domain socket (do not use a seek option then).

(sleep 5; echo PASSWORD; sleep 5; echo ls; sleep 1) |
socat - EXEC:'ssh -l user server',pty,setsid,ctty

EXECutes an ssh session to server. Uses a pty for communication between socat and ssh, makes it ssh's controlling tty (ctty), and makes this pty the owner of a new process group (setsid), so ssh accepts the password from socat.

socat -u TCP4-LISTEN:3334,reuseaddr,fork \

Implements a simple network based message collector. For each client connecting to port 3334, a new child process is generated (option fork). All data sent by the clients are appended to the file /tmp/in.log. If the file does not exist, socat creats it. Option reuseaddr allows immediate restart of the server process.

socat READLINE,noecho='[Pp]assword:' EXEC:'ftp ftp.server.com',pty,setsid,ctty

Wraps a command line history (READLINE) around the EXECuted ftp client utility. This allows editing and reuse of FTP commands for relatively comfortable browsing through the ftp directory hierarchy. The password is echoed! pty is required to have ftp issue a prompt. Nevertheless, there may occur some confusion with the password and FTP prompts.

socat PTY,link=$HOME/dev/vmodem0,raw,echo=0,waitslave exec:'

Generates a pseudo terminal device (PTY) on the client that can be reached under the symbolic link $HOME/dev/vmodem0. An application that expects a serial line or modem can be configured to use $HOME/dev/vmodem0; its traffic will be directed to a modemserver via ssh where another socat instance links it with /dev/ttyS0.

socat TCP4-LISTEN:2022,reuseaddr,fork \

starts a forwarder that accepts connections on port 2022, and directs them through the proxy daemon listening on port 3128 (proxyport) on host proxy, using the CONNECT method, where they are authenticated as "user" with "pass" (proxyauth). The proxy should establish connections to host www.domain.org on port 22 then.

echo |socat -u - file:/tmp/bigfile,create,largefile,seek=100000000000

creates a 100GB sparse file; this requires a file system type that supports this (ext2, ext3, reiserfs, jfs; not minix, vfat). The operation of writing 1 byte might take long (reiserfs: some minutes; ext2: "no" time), and the resulting file can consume some disk space with just its inodes (reiserfs: 2MB; ext2:16KB).

socat tcp-l:7777,reuseaddr,fork system:filan -i 0 -s >&2,nofork

listens for incoming TCP connections on port 7777. For each accepted connection, invokes a shell. This shell has its stdin and stdout directly connected to the TCP socket (nofork). The shell starts filan and lets it print the socket addresses to stderr (your terminal window).

echo -e

functions as primitive binary editor: it writes the 4 bytes 000 014 000 000 to the executable /usr/bin/squid at offset 0x00074420 (this is a real world patch to make the squid executable from Cygwin run under Windows, actual per May 2004).

socat - tcp:www.blackhat.org:31337,readbytes=1000

connect to an unknown service and prevent being flooded.

Piped Serial Port on VirtualBox

There is another very cool feature on Linux and VirtualBox which might solve compatibilities of old softwares that require serial connections. It's the host pipe serial-port. On VirtualBox, enable Serial port and select "Host Pipe", check "Create Pipe" and in "port path" textbox, type /tmp/com1_sock.

When my Windows XP is runnning, it recognizes the COM1 and is able to communicate. The byte-streams are actually piped to /tmp/com1_sock (if we don't do anything, it just acts as a dummy). If we want to forward it as a listening port (e.g, as a tcp server so remote systems are able to communicate with the COM1 via TCP/IP), on Linux host's shell type: socat UNIX-CONNECT:/tmp/com1_socket TCP-LISTEN:. We can pick any available tcp port, for example 8040.

Here's the example:

socat UNIX-CONNECT:/tmp/com1_socket TCP-LISTEN:8040

From another terminal (either local machine or remote machine) we can telnet to this port. For example, from our own Linux host, we can communicate to the Hyperterminal running under Windows-XP guest via this virtual serial port by telnetting to the port:

telnet localhost:8040

Voila! Our Linux machine will display anything we type on Hyperminal. This opens up a lot of experiments for us.

Sunday, October 5, 2008

Using Host-Interfacing and Bridging on VirtualBox

NAT interface on guest OS gives limitation so we may need to add a new virtual interface to it. This is called 'HIF' (Host Interface).

  1. Install bridge-utils, if not yet installed:
    sudo yast -i bridge-utils

  2. edit /etc/sysconfig/network/ifcfg-br0 and write:

  3. BOOTPROTO='dhcp'

  4. Edit /etc/sysconfig/network/ifcfg-eth0 and change the content to:

  5. Create a new permanent interface:
    VBoxAddIF tap0  br0

  6. Configure the guest to have the second Virtual Network Interace and assign 'tap0' as its name

Friday, October 3, 2008

My BlackJack is dead!

Today my 3-months-old Samsung Blackjack II has died for no reason. I've charged the battery for hours but still no luck to turn it on. No sign of life on the cute gadget. Darn, seems I have to bring it to closest store for fix.

Using Xwindow client-server

Before starting, make sure both client and server (remote machine) have port 6000 open for Xserver (on SuSE, file /etc/sysconfig/displaymanager should contain DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN="yes"). Once you have changed it, restart Xwindow (or refresh it by pressing CTL-SHFT-BKSPACE).

  1. From local shell, type "xhost +". This will allow this client to connect to all hosts
  2. ssh to remote machine as: "ssh -Y -o ForwardX11Trusted=yes ". If after following steps it does not work, try "ssh -X -o ForwardX11=yes " (although this is less secure)
  3. Once we're in remote machine, type "xhost +" as well.
  4. if we just want to redirect a single X application, we can pass -display directly to the application. For example, to bring remote xterm window to our local screen, just type "xterm -display address:0", e.g.: xterm -display
  5. If we want to redirect all new X applications to our local screen, modify environment variable DISPLAY. For example: export DISPLAY= and then type any GUI applications.

Thursday, October 2, 2008

Google IMAP Settings

Incoming Mail (IMAP) Server - requires SSL: imap.gmail.com
Use SSL: Yes
Port: 993
Outgoing Mail (SMTP) Server - requires TLS: smtp.gmail.com (use authentication)
Use Authentication: Yes
Use STARTTLS: Yes (some clients call this SSL)
Port: 465 or 587
Account Name: your full email address (including @gmail.com) Google Apps users, please enter username@your_domain.com
Email Address: your full Gmail email address (username@gmail.com) Google Apps users, please enter username@your_domain.com
Password: your Gmail password

Sunday, August 17, 2008

Mount NTFS disk to Mac OS X

All portable/external had disks currently support legacy FAT (or VFAT as Linux so calls it) from DOS era. The file system is ugly in a sense that it is a 'greedy FS which consumes more space than many other file systems. We can easily use up all the space in our harddisk just by putting many video files into this FAT-formatted harddisk.

Started in NT, a new format was introduced: NTFS (Next-Technology File System). It is quite decent FS, except it seems doesn't fully support journaling (I heard it does, but not sure about that since it is a proprietary format from Microsoft).

Anyway, I don't want to talk too long about the FS, but I just want to talk more about how could the harddisk possibly be mounted to a OS-X based Mac machines? The answer is: use MacFUSE and NTFS-3g!
These opensources were originally targetting the development for Linux, but some folks have ported them to OS-X.

To install, first you need to install MacFUSE (search google to find the location), and after it is successfuly installed, install the OSX version of NTFS-3g. It may require you to reboot. After reboot, try to connect an NTFS-formatted external hard disk to Mac's available USB port. If the system can recognize and mount it, you're done.

I have a 2.5" "WD Passport" 250 GB external hard disk which was I reformatted in NTFS after I bought it. In the beginning, out of curiousity I attached it to my Linux machine running OpenSUSE 10.3. Out of my suprise, It could recognized and mounted it with no issues. I then found out that on my Linux has NTFS-3g in it installed by default. After googling, I found the ported Mac version. Now, all my machines (OSX, Linux, XP) are able to read/write files into this small-but-nice device.

Most influencing Technology

Sometimes, I ask myself about what is the most influencing breakthrough technology in human life? The criteria I ask first that it must be substantial, it must be ubiquotus and found in most every tool, device or anything people use.

My first answer is Transistor. Why? First, it is one of the tremendous invention in 21st century. Secondly, it can be found almost in any household's equipment. Don't believe me? Look at cellphones, TVs, radios, video consoles, computers, cars, airplanes, spacecrafts, security systems, weapons, medical equipments, kitchen appliances, network devices (router, switches, PSTN), satellites, even in our body (pacemaker), ..., and the list would go on and on. Currently, there is almost nobody can live without it.

The second place is taken by LASER. The invention is so great that it has advanced many other sciences and technologies and used in many applications. It is used in medical equipments (e.g, laser surgeries), in telecommunications, industries, military, mining and oil industries or energy in general, basic science research (Cyclotron, etc.), instruments, biotech industries, entertainment (in discotiques, in all cd/dvd players) and even toys!

The inventors should've got double nobel laurates (yes, I know, they all got nobel laurates in the past, but seems it is not enough considering how much their invention has changed our life forever).

The third one is for the invention of computer or the Internet.

Friday, July 25, 2008

Make Blackjack II as Bluetooth modem on AT&T network

In case you're struggling to make the nice Samsung Blackjack II smartphone as a bluetooth modem, I've found what I need here, or in case the site is down, here I copy-paste the steps:


ok so here's the NEW procedure:

Step0.0: Make sure your device is app unlocked!!**(see below note!); run secpolicies.cab first if unsure or the certs won't take!!
Step1: Install the BJ.WM6.ICS.Enable cab file (it might ask you to reboot)
Step2: navigate to \My Documents and click on the certs.cab file
Step4: go to start and run internet sharing
Step5: report back and lemme know if i fux0red anything ELSE up :P

this should work on both BJ1/WM6 and BJ2/WM6

file is temporarily hosted at:

**run this cab and reboot; http://sems.org/content/download/secpolicies.cab

After reset, I could see "Internet Sharing" under "Application (Start -> Applications -> Internet Sharing).  When I ran it, it showed two choices for PC connection (USB and Bluetooth PAN).

On PC (or MAC, with small diffs):

  1. Double click on the desktop icon identifying the connection. If not desktop icon was added go toStart, Settings, Network and Dial-up Connections, GPRS.
  2. Enter Username:
  3. Enter Password:
  4. Enter Password again in the Confirm box: 
  5. Verify that the number to dial is *99# and click dial.
    NOTE: If receiving error 678 or 619 the Phone number can also be entered as *99***1#, or *99***(CID Number)#
    NOTE: By default 1 is the CID, but can change.

I've not tested it yet, but seems to work OK.

Thursday, July 24, 2008

AT&T Wireless Packet-data Settings

Carrier:AT&T (USA)
User name:

Carrier:Cingular (With acceleration) (USA)
Password: CINGULAR1

Carrier:Cingular(NO acceleration) (USA)
User name:

Carrier:Cingular (With acceleration) (USA)
Password: CINGULAR1

Carrier:Cingular (With acceleration) (USA)
Password: CINGULAR1

Carrier:(ex AT&T) (USA)
User name:guest
Password: guest

Carrier:Cingular (USA)
User name:guest
Password: guest

Carrier:Cingular Orange/MediaWorks (USA)
User name:WAP@CINGULARGPRS.COM or blank
Password: CINGULAR1

Carrier:Cingular (USA)
Password: CINGULAR1

Wednesday, July 23, 2008

USBConnect 881U

It's actually a Sierra-Wireless 881U 3G GSM modem.
The settings:

init1 box enter: AT+CGDCONT=1"IP,"isp.cingular"

Enter the following AT command in any terminal application (e.g. Minicom) to obtain the signal quality (RSSI):
A range from -60 dbm to -90 dBm is considered adequate.
Enter the following AT command to see whether your AirCard modem is online:

Enter the following AT command to turn the radio on (if the modem is in low power mode (LPM) the radio is off):

For AirCards modems, the power LED on the card will light up.

Enter the following AT command in any terminal application (e.g. Minicom) to obtain the signal quality (RSSI):
The first number indicates the signal strength above -109 dBm (in 2 dBm increments). A value of 7 or higher (-95 dBm) can be considered adequate.
Enter the following AT command to see whether your AirCard modem is online:

Enter the following AT command to turn your radio on (if the modem is in low power mode (LPM) the radio is off):
For AirCard modems, the power LED on the card will light up.

Sunday, June 1, 2008

Get fit with Wii Fit

Finally I've got this device (I bought it at Best Buy when it had it in stock, I guess not very long would dissapear again). The package is similar to MacBook Pro package with stylist elegant white color and minimalist (not to much graphics but yet still informative to consumers).

The board is quite large, enough to seat my big feet. It's quite heavy (they put some weight for stability, not because of its electronics). I had to add extension (included in the package) to their pegs because carpet in my house is thick enough to make the balance being inaccurate. There is only a single button with a blue color LED at the back for power on switch. As other Wii remotes, it uses Bluetooth to connect hence require synchronization with Wii Console for the first time before use.

The software (called "Wii Fit") has two parts: "Body Test" and "Training". Body Test is all stuff related to measure our weight, BMI, balance and Wii Age. It's really good. It is able to track our daily weight measures and set target to reach our target BMI.

The training section contains 4 sections: Yoga, Strength, Aerobic, and Balance. For yoga, we are guided by an virtual instructor (with preference is set during setup. We can choose to use male or female instructor). It's very easy to follow, although not that easy to do what it is said (I sometimes fidget or wiggle a little and these all are detected with its very sensitive accelerometer in the Wii surve board).

My favorite game is Hulla-hoop, dance (forgot the exact name) and boxing. Similar to other Wii games, some of the games/activities are locked and can only be unlocked by doing more work-out (collecting more minutes over time).

Atom Processor

It's well known, Intel is one of the greatest chip maker in the world. While other companies might have developed mind-bogling processor or SoC architecture, Intel is still on the top of all in the term of fabrication process technologies.

The recent Intel System-on-Chip (SoC) processor called Atom processor reveals the use all new hafnium-infused 45nm high-k silicon technology while packs an astounding 47 million transistors on a single chip measuring less than 25mm².

The power consumption is astounding. While idling, it sucks up only milliwatts of power. In full throttle, it may go up to 2.5 W, which is still far away from the most power-efficient other processors made by Intel. Although a recent news reveals that VIA also is making a competitive processor, yet it is uncomparable to Atom in term of clock and CMOS size (they still use 65nm process).

The family of this processors is named Z5xx series (previously called Silverthorne). With clock frequencies spand from 800 MHz to 1.83 GHz and 533 MHz FSB, this processor is definitely going to compete heavily with it's own elder brother, Pentium4 Centrino.

Te following features are copied-pasted from Intel website:

  • Fastest performance in a sub 3 watt thermal power envelope based on industry leading benchmarks (EEMBC) and web page rendering performance
  • Greater energy efficiency enabled by incredibly low average power (160-220 mW) and idle power (80-100 mW) and scaling performance from 800MHz to 1.86GHz
  • Power-optimized front side bus of up to 533MHz for faster data transfer on demanding mobile applications†
  • Scalable performance and increased power efficiency with multi-threading support²
  • Improved performance on multimedia and gaming applications with support for Streaming SIMD Extensions 3 (SSE3)
  • Improved power management with new Deep Power Down (C6) technology state, non-grid clock distribution, clock gating, CMOS bus mode, and other power saving architectural features
  • 10x lower thermal power level enabled by improved power management technologies delivering high performance to run the real Internet and a broad range of software applications³

I'm eager to see a device using this processor. Perhaps next generation iPhone or googlePhone? Who knows.

Wednesday, May 28, 2008

My Broadband speed is optimum now!

Finally, after more than a year my DSL suffered slowliness due to lack of AT&T responsibility to fix it, now they've fixed it. I subscribe to their DSL Elite, so I am suppose d to get at least 4.5 Mbps download and 600 kbps upload. The recent test I performed gave a very close result:

Monday, May 26, 2008

Wii Transformation

While most games nowadays, either on PC, PS3 or XBox 360 tend to make people become coach-potatoes, Wii (and its new Wii Fit board) could make people being active. You may argue, there are some games (and require extra controllers) that try to imitate the innovation made by Nintendo, yes but they're not the same.

A few weeks ago I bought this Wii because I was trying to buy Wii Fit and it requires Wii Console. At the time of this writing, all Wii Fit boards are sold out in many brick-and-mortar stores. I saw some were available on the Net, but the price tag was scarying me (double or even 5 times more expensive that its MRP).

Although I paid overprice for the console ($340'ish instead of $250), I was satisfied with it. It comes with one remote motion-sensor controller (it uses Bluetooth and IR for connection) and a Nunchuck (some games require it) that can be connected at the end of the controller. The game that comes in the box is WiiSports consisting of Tennis, Baseball, Bowling, Golf and Boxing.
My favorite sport is Tennis, Bowling and Boxing. Playing tennis is almost like playing a real tennis game. The boxing requires nunchuck so your both hands can do jab (not many variations like overcut), but still it is fun. Unfortunately, the console comes with only one set of controller, so I had to spend money to buy second controller (and another sports game for kids).

After playing those games a few days, I've lost 3 pounds of weight and got sore in my arms. My daughter lost 2 lbs and more (wow!). After seeing how fun it is to play with, I bought another two games (Table Tennis and something, I forgot the name). Yes, they mostly require using arms and not much body or leg movements required, but somehow when we played them, we tend to to simulate the real games, like catching the ball, swing etc.

We then bought another one for our daughter. It is Hannah Montana dancing game. Yet it uses mostly hands to play, it looks so fun and our daughter was so excited and addicted to it (in a good way, because she now moves her body more. It's a good work out for her and even me!).

If you want to see a bleeding-edge graphic quality, Wii is not the thing you can compare against PC, XBox 360 or PS3. For PC (which currently is the highest quality graphic among them if we use the top NVidia card and the most expensive one), it is even far better than any consoles (with the downside ofcourse its price tag).

I cannot wait to get the Wii Fit. I saw the ads, it looks more fun. It comes with a CD for playing surfboard, yoga, dancing (now it requires our legs to do steps), hulla-hop, balancing and soccer goalie (and use our head to block ball coming to our goal gate). The official price tag is $89.99 (at least when I checked at Best Buy, Game Stop, Target even they didn't have in stock yet).

Wednesday, May 14, 2008

Burn CD with wodim


function getkey()
read yourentry

wodim dev=${DEV} -setdropts driveropts=singlesession
wodim dev=${DEV} -v -sao -dummy -data speed=18 $1
wodim dev=${DEV} -eject
wodim dev=${DEV} -load

Clone a CD in Linux with wodim

Here's the content of my ~/bin/copycd:

function getkey()
read yourentry
echo Please enter the CD/DVD to copy from ....

readom dev=${DEV} -nocorr f=${TMP_FILE}
echo Please enter a blank CD/DVD and press enter when ready ....

#readom dev=${DEV} -w -nocorr f=${TMP_FILE}
wodim dev=${DEV} -setdropts driveropts=singlesession
wodim dev=${DEV} -dao -v ${TMP_FILE}

wodim -eject

Friday, May 9, 2008

Why VirtualBox is better

I'd tried to load up QEMU or Xen with no success on my OpenSUSE 64-bit ver 10.3 (I am running kernel version 2.6.25).  I then tried VirtualBox OSE (Open Source Edition) downloadable from www.virtualbox.de.  After installing all the needed libraries as instructed and compiled this VB, it worked as charm!

With QEMU or Xen, there were problems I couldn't fix (this because my Linux is heavily customized and not running kernel from openSuSE anymore).  I also tried the pre-compiled (proprietary/non-OSE) version, and this actually even better.  As mentioned on the website, the proprietary version supports USB and file sharing between host and guest O/S.

So far, I am able to run my Windows XP Pro SP3 under this Linux 64-bit with no problem.  I could print, browse internet and even play games (eventhough it is slower than running in native/standalon XP).  With file sharing, I could install Microsoft Office in the guest O/S and share the doc/xls/ppt files.

For the networking, the VB provides a firewall and NAT.  The subnet it gives is in 10.x.x.x subnet, but work with no issues. 

I still have small issue though as the screen resolution under XP is limited to 1024x968, eventhough the host O/S (Linux) has nvidia driver and was running resolution 1680x1050.  But interestingly, on my MacBook running OSX 10.4 Tiger, I could set the screen resolution as much as 1680x1050 (which is even beyond my laptop resolution).  Why?

With Windows XP as host O/S, I initially tried Microsoft Virtual PC.  The interface is good, but when I installed Linux OpenSUSE 10.3 (32-bit), the network worked sporadically and took almost a week to download necessary modules from opensuse.org!   I tried installed offline, the same issue happened.

After this painful waiting, finally I managed to install it, but everytime I rebooted the guest O/S it never came up correctly (the screen stayed blank after the initial OpenSUSE login screen).  I eventually dumped this stupid Virtualization tool completely and install VirtualBox.  Yes, as you might guess, it works like a charm on Windows XP too.  

I still need to try on Windows Vista though.  Will report it later.

What a tool!

Wednesday, April 23, 2008

VirtualBox 1.5.6 with Linux Kernel 2.6.25

While compiling VirtualBox was successful, the loading failed with kernel message (seen using dmesg | tail -f):

release/bin/src ; USER=root ; COMMAND=/sbin/modprobe vboxdrv
Apr 23 22:20:16 linux-hp kernel: vboxdrv: Unknown symbol change_page_attr

With the introduction of the new API, no driver nor non-archcore code needs to use change_page_attr anymore. What I did was to grep for "change_page_attr" in VirtualBox source directory:

grep -R --include=*.? "change_page_attr"

And comment out all calls to this procedure. Loading the module then succeeded:

release/bin/src ; USER=root ; COMMAND=/sbin/modprobe vboxdrv
Apr 23 22:27:53 linux-hp kernel: vboxdrv: Trying to deactivate the NMI watchdog permanently...
Apr 23 22:27:53 linux-hp kernel: vboxdrv: Successfully done.
Apr 23 22:27:53 linux-hp kernel: vboxdrv: TSC mode is 'synchronous', kernel timer mode is 'normal'.
Apr 23 22:27:53 linux-hp kernel: vboxdrv: Successfully loaded version 1.5.6_OSE (interface 0x00050002).

Monday, April 21, 2008

Canon 4200F is still unsupported on Linux

lsusb -d 04a9:221b -vvv

lsusb -d 04a9:221b -vvv

Bus 007 Device 002: ID 04a9:221b Canon, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 255 Vendor Specific Class
bDeviceSubClass 255 Vendor Specific Subclass
bDeviceProtocol 255 Vendor Specific Protocol
bMaxPacketSize0 64
idVendor 0x04a9 Canon, Inc.
idProduct 0x221b
bcdDevice 2.00
iManufacturer 3 Canon
iProduct 4 CanoScan
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 39
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 10mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0001 1x 1 bytes
bInterval 8
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 255 Vendor Specific Class
bDeviceSubClass 255 Vendor Specific Subclass
bDeviceProtocol 255 Vendor Specific Protocol
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0001
Self Powered

Creative XFi driver on Linux 2.6.25

There is still a problem with beta2 version of Creative Sound Blaster XFi driver on Linux kernel 2.6.25. If we do what is said by the driver installation instruction, it ends up with some errors. Here's a trick how to manually compile and install it:

  1. Download the driver from http://us.creative.com/support/downloads/download.asp?searchString=XFiDrv_Linux. or directly from shell: wget http://ccftp.creative.com/manualdn/Drivers/AVP/10530/0xE84AB36F/XFiDrv_Linux_US-1.18.tar.gz
    The latest is version 1.18

  2. Extract the tar.gz file from your build folder:

    tar zxvf XFiDrv_Linux_US-1.18.tar.gz

    This will extract all files to XFiDrv_Linux_US-1.18
  3. cd to the XFiDrv_Linux_US-1.18/drivers
  4. Try to do make (gotta be a root). It will cause some errors (the errors don't appear on the screen. They are logged in /var/log/creative-installer.log and need root access to see it). We can open another window/shell and just type: sudo tail -f /var/log/creative-installer.log to see what's going on.
  5. OK, now we're about to fix these problems. First, just typ: ./configure
  6. Don't do make yet. We need to modify some files.
  7. edit file LinuxSys.c: vi src/ossrv/LinuxSys.c
  8. Goto line 648 and replace SA_SHIRQ with IRQF_SHARED (Kernel 2.6.22 has told us that it was going to deprecate it although still defines it, but in kernel 2.6.25 this SA_SHIRQ is now gone!)
  9. Add the following line after line 33:

  10. #include <linux/fs.h> // for definitions of filp_*
  11. Add the following lines after line 37:

    #include <asm-generic/fcntl.h> // otherwise, some MACROS are undefined

  12. Compile with the following command: sudo make KBUILD_NOPEDANTIC=1 or modify (temporarily!) file /usr/src/linux/scripts/Makefile.build and comment out statements around line 46 as below:

  13.  #ifeq ($(KBUILD_NOPEDANTIC),)
    #ifneq ("$(save-cflags)","$(CFLAGS)")
    #$(error CFLAGS was changed in "$(kbuild-file)". Fix it to use EXTRA_CFLAGS)

  14. Edit file in drivers/ctsound and change the order to:

    drivers="ctossrv emupia ctsfman haxfi ctalsa ct20xut ctexfifx cthwiut"

  15. Install it: sudo make install

Saturday, April 19, 2008

Distributed Compile and Caching

This trick has boosted my compilation several times faster now. Here is the steps:

  1. First, you need to install both ccache and icecream (search on the Internet!). The default place for icecream files are under /opt/icecream.
  2. Create a folder /opt/ccache and /opt/ccache/bin
  3. Create file named "gcc" and type:
  4. #! /bin/sh
    export CCACHE_PATH=/opt/icecream/bin
    export PATH=/opt/icecream/bin:/usr/bin:$PATH
    ccache gcc "$@"
  5. Repeat step 3 and 4, but change line "ccache gcc" to "ccache c++" and name the file c++.
  6. Do the same thing (step 5) for cc abd g++
  7. Modify path (I put this in my ~/.profile): export PATH=/opt/ccache/bin:$PATH

To start icecream, as root do this: /etc/init.d/icecream restart
This will start the icecc daemon (iceccd). Here is my processes:

> ps -ef | grep ice
icecream 3944 1 0 19:33 ? 00:00:03 /usr/sbin/scheduler -d -l /var/log/icecc_scheduler -n icecream -vv
root 3957 1 0 19:33 ? 00:00:06 /usr/sbin/iceccd -d -l /var/log/iceccd --nice 5 -s linux-hp -n icecream -u icecream -b /var/cache/icecream -vv

(Modify file /etc/sysconfig/icecream as you needed (especially the scheduler and netname). I still not able to make my other computer to participate in the parallel compile (it is separated by a wireless router but in the same IP subnet). I don't know the root cause yet (the log said it was not able to find the scheduler, although I explicitly specify it [not thru broadcast]).

NVIDIA driver on Linux Kernel 2.6.25

The current Nvidia driver (NVIDIA-Linux-x86_64-169.12-pkg2.run) is somehow broken with Linux kernel 2.6.25. I googled and found discussion about this. Some people suggested to replace EXPORT_UNUSED_SYMBOL(init_mm) to EXPORT_SYMBOL(init_mm) in
/usr/src/linux/arch/x86/kernel/init_task.c. It didn't work (at least on my machine).

I look at the error log in /var/log/nvidia-installer.log. The last few lines in the file told me the global_flush_tlb() was implicitly declared (meaning, it was no longer exported by the Linux kernel. People in the discussion forum mentioned since 2.6.24 or something) while trying to compile nv-vm.c. This look weird, so I extracted the Nvidia driver with the following command:

sh download/nvidia/NVIDIA-Linux-x86_64-169.12-pkg2.run -a -q -n -x

This command extracted both binary files and its source codes onto NVIDIA-Linux-x86_64-169.12-pkg2/
I then cd to NVIDIA-Linux-x86_64-169.12-pkg2/usr/src/nv and commented out calling to that procedure. Here's my modified procedure of that file:

static void nv_flush_caches(void)
#if defined(KERNEL_2_4)
// for 2.4 kernels, just automatically flush the caches and invalidate tlbs
nv_execute_on_all_cpus(cache_flush, NULL);
// for 2.6 (and later) kernels, rely on global_flush_tlb
nv_execute_on_all_cpus(cache_flush, NULL);
#if defined (NVCPU_X86) || defined (NVCPU_X86_64)
nv_ext_flush_caches(); // handle other platform flushes if present

I then manually compile the code usual way (make module) from that folder and did "make install" (executed as root). For the binary files, I just manually copied them to their proper places.

Nervously, I typed "startx" and voila....my Xwindows started successfuly! So far, I haven't noticed any anomalies nor problems (this blog is actually done from my machine running the new driver). Apparently, the latest kernel doesn't require flushing cache anymore (it must be done automatically elsewhere).

Thursday, April 17, 2008

Virtualization Era!

Rebooting a machine to switch to another OS on multi-operating-system machine sounds out dated now. With recent VT-enabled technology from both Intel and AMD on certain x86 CPUs, virtualization goes smoother and better.

I just tested Microsoft Virtual PC which enable me to install multiple windows or even Linux under my Windows XP host OS. There are other Virtualization software available, either freeware or not. Here I am trying to list some of them:

Non-free ones:
VMWare: https://www.vmware.com/tryvmware/?a=l&eval=workstation-l
Microsoft Virtual PC: http://www.microsoft.com/windowsxp/virtualpc/
Novel SUSE Linux Exterprise VM Driverpack: http://www.novell.com/products/vmdriverpack/

Freeware versions:
Bochs: http://bochs.sourceforge.net/
QEMU: http://fabrice.bellard.free.fr/qemu/
VirtualBox: http://www.virtualbox.de/ (this software has dual licenses: free and proprietary)

While, to just run windows application on Linux, we can use wine or its sibling, the commercialized one: CrossOver for Linux: http://www.codeweavers.com/products/cxlinux/

To learn more about virtualization and/or virtual machine (don't get confused with Java VM as it's not a system VM): http://en.wikipedia.org/wiki/Virtualization

The more complete list of VM packages:

I will report further once I try some of them. In most cases, the host OS will be OpenSUSE 64-bit ver 10.3 with guest OSs will be: Vista Home Premium SP1, Vista Ultimate 64-bit, Mac OSX 10.4 Tiger and some variants of Linux [Redhat, UBuntu, Debian]. The host system will be my desktop CPU: Intel Quad-core 2.4 GHz, 4 GB RAM, with almost 768 GB total space.

x86 Technical Info

Some very interesting technical information related to x86 (besides, of course, Intel/AMD official sites and Micro$oft):


Wednesday, April 16, 2008

HP 1020 on Linux is now working!

Finally, I am able to print to HP LaserJet 1020 from my Linux machine. Thanks to the guys at http://foo2zjs.rkkda.com/.

Just follow the instructions in the INSTALL file, you should be able to successfuly print. One thing I was unaware was to control CUPS via web (in my case, browse to http://localhost:631). From there, I could then test.  Although I've tested remote printing, it shouldn't be a problem because CUPS will handle all!


Tuesday, April 15, 2008

Alternatives to Window$

I've found some alternatives to Windows, which some of them are quite attractive:



OS/2 clones:


Vista Is a Pain in the Butt!

The more I use Vista, the more frustation I get. My Vista has been updated with SP1 (as it always be, because it's been running Update scheduler since day one). Recently, my PC locks up more frequently than before. What I mean "lock up" is really a locked-up condition (freeze) to user. The mouse pointer freezes, there is no way to shutdown/reboot and doesn't get any response for any inputs either from keyboard nor mouse. I notice there is some activity on the hard disk, though.

With this issue, my list of dissapointment with Vista has even longer. Here's some of them:

  1. No support for 4 GB RAM (only 64-bit does support it). What the heck? Mac OS-X and Linux much better (Mac OS-X 10.4 or later is actually a 64-bit OS so no issue, while on Linux 64-bit, support for 32-bit apps are excellent). Why doesn't Micro$oft just sell one version of the OS?
  2. GUI freezes frequently (Yeah, no BSOD, but what's the difference? both render my PC as dead anyway!)
  3. To-much minimum hardware requirements
  4. Many compatibility issues with older applications
  5. Costly (As comparation: Mac OS-X Leopard cost only $100'ish [there is only single version! no home, ultima bla...bla...edition]. Linux is even totally free!). Vista Ultimate? $300'ish!!!
  6. Still immature driver support.
  7. Super-fetch which is not super (it keeps my hard-disk busy for most of the time, although my PC has 4 GB of RAM and it's a Quad-core Intel 2.4 GHz!). Instead of a boost, it slows down the PC.
  8. Slower than XP !! (and takes more space than XP too).
  9. Lack of bundled development environment (Mac OS has XCode comes in its OS installation CD as an optional application. Linux has GCC and many others). Microsoft sells the development packages separately as MSVC, .NET bla..bla and cost hundreds of dollars each.

I now boot to Linux partition more than its Vista. openSUSE ver 10.3 now supports writing to NTFS partition, so there is no issue with mixed partitions. There are some limitations too on openSUSE, but at least I am in control if an application is going south (I can switch to text console, I can force-kill an application, I can even modify the operating system as I want!)

Windows versions

Windows, internally, have been versioned with numbers instead of codename like "Longhorn", "Vienna" etc. For example, Windows XP is internally versioned with "5.x", while Vista is basically Windows version 6. The next windows version (Windows 7) is trully windows version 7.
All are rooted since Windows 3.x Users mostly see product name (e.g, XP or Vista), but developers usually can see the versions (WinAPI doc from MSDN).  The numbers correspond to their major version and revision.  So expect a another big revision from Vista to Windows 7 (although users may not see or feel it, because the changes may be only internal to the system).

Here I try to list the versions:

Windows 3.0 -> winver 3
Windows 3.1 -> winver 3
Windows 95 -> winver 4
Windows NT -> winver 4
Windows 98 -> winver 4
Windows 2000 -> winver 5
Windows XP -> winver 5
Windows Vista -> winver 6
Windows 7 -> winver 7

Wednesday, March 26, 2008

Post a blog Right from WORD

So far I hadn't been much of using Microsoft Word 2007. A few minutes ago I just tried to exlore this look-totally-different-than-before word processor. All the menus were rearranged differently. At first, I got lost as I was only familiar with its predecessors (which had not change the menus that much).

One cool feature is its direct-posting your document to bloggers. such Bloggers, Wordpress etc. Just click "Publish" and select "Blog". The first time we use the feature, we need to set it up. It will guide us by asking which blog site we are going to publish to and then our account and password. That easy!


High Speed USB Video Grabber


SKU: 318714



FCC and CE Radiation Norm


This equipment has been tested and found to comply with limits for Class B digital device pursuant to Part 15 of Federal Communications Commission (FCC) rules. 


This equipment has been tested and found to comply with the limits of the European Council Directive on the approximation of the law of the member states relating to electromagnetic compatibility (89/336/EEC) according to EN 55022 Class B.


FCC and CE Compliance Statement

These limits are designed to provide reasonable protection against frequency interference in residential installation. This equipment generates, uses and can radiate radio frequency energy, and if not installed or used in accordance with the instructions, may cause harmful interference to radio communication. However, there is no guarantee that interference will not occur in television reception, which can be determined by turning the equipment off and on. The user is encouraged to try and correct the interference by one or more of the following measures:



  • High Speed USB Video Grabber
  • User's Manual
  • Ulead® VideoStudio™ 7.0 DVD Software & Driver CD


  • Windows® 2000 and XP
  • CPU: Intel® Pentium or AMD Athlon® 1.5GHz or Higher Recommended
  • 256MB RAM Recommended
  • DirectX® 9.0 or Higher
  • 300MB HDD Space, Additional 4GB Required for every 20 minutes of captured video
  • An Available USB 2.0 Port (backward compatible with USB 1.1)
  • An Available Line-In or Mic Port (for Audio Input)
  • CD-ROM Drive (for driver & software installation)


  • Capture Video Signals from DVD, VCR, Camcorders and Video Game Systems
  • Supports Composite (RCA) and S-Video Inputs
  • Supports NTSC, PAL and SECAM Formats
  • Maximum Resolution 720x480 Pixels at 30 Frames Per Second for USB 2.0, 320x240 at 30 Frames Per Second for USB 1.1
  • Records in AVI, VCD, MPEG and WMV Formats
  • USB 2.0 Compliant
  • USB Powered (no external adapter needed)


  1. Please make sure that you have the latest Windows® updates before installing the driver.
  2. Insert the Driver CD into the CD-ROM Drive of your computer. The Ulead® Products installation menu will start automatically. If the menu does not start up automatically, click "Start", then "Run…", then type in "D:\Autorun.exe" where D designates the letter of your CD-ROM Drive, and then click "OK."

    Note: If D is not the letter of your CD-ROM drive, please substitute D with the correct drive     letter.

  1. Click "Install Grabber Driver" to install the driver.
  2. Follow the on-screen instructions to install the driver files onto your computer.
  3. Connect the USB connector of your Video Grabber to an available USB port and the 3.5mm audio jack of your Video Grabber to the Line-In or Mic port of your computer. (See image below)


  1. For Windows® 2000, your system will automatically detect and install the necessary driver, please continue to step 9. For Windows® XP the "Add New Hardware Wizard" will appear, click "Next" and continue to step 7.
  2. If the Microsoft digital signature box appears, click "Continue Anyway."
  3. Follow the on-screen instructions to complete the driver installation and click "Finish" to close the wizard. Your video grabber is now ready to be used.
  4. If you do not have video editing software installed, please go through the Software Installation procedures to install "Ulead VideoStudio 7.0 SE Basic" onto your computer.


  1. If the Ulead® Products installation menu is not running, refer to Step 2 under Driver Installation on how to run the Ulead® Products installation menu.
  2. Click "Install Ulead VideoStudio 7.0 SE Basic."
  3. Follow the on-screen instructions to complete the software installation.
  4. Restart your computer. For instructions on how to use Ulead® VideoStudio™ 7.0, please click on "Start", go to "Programs", then "Ulead VideoStudio 7", and then select "User Manual" to open the VideoStudio™ User's Manual.

Monday, March 3, 2008

My Dream Digital Camera

Nowadays digital cameras are used every where with various features. The latest news I read last time was a camera that could submit pictures online to a website/blog space.

My dream camera actually is more than that. I am dreaming a camera that has GPS to tell the exact location where I took the picture, an electronic compass to tell the direction where the shot was taken to , and an electronic accelerometer to tell the orientation or tilt of the camera against horizon (e.g, postscript or landscape, altitude etc.). All these data should be stored in the picture's JPEG file as an extension to the existing EXIF format.

So, next time we want to repeat the exact snapshot, the camera can tell you. Seems thi may be helpful for crime investigators too.

Thursday, February 28, 2008

Fundamental of Electric Circuits

Wednesday, February 27, 2008

Surely You're Joking, Mr. Feynman

Read this doc on Scribd: "surely you're joking Mr feynman"

"Surely You're Joking" by Prof. Richard F. Feynman

Tuesday, February 19, 2008

Blue-Ray prevails!

Finally, after years of standard war, Toshiba has lost battleground and quit HD-DVD business. Despite some of their similar picture quality, HD-DVD is relatively cheaper to produce and sell but trade off of being less capacity to store data. Probably it's good to have a single winner, Blue-Ray, which has almost double capacity as of HD-DVD.

If you're in the market of looking for a high-definition player, now it's determined to just buy Blue-Ray! (Sony PS3 has built-in blue-ray drive with $500'ish price).

The complete story can be found here:

Monday, February 4, 2008

Microsoft heard Me!

Finally, folks from Microsoft seem had read my blog :-)
On my blog last time (see "Why Windows sucks"), I listed some weaknesses on Windows XP. Microsoft has added most of those missing features in Vista, although still not as what I expected. First, Vista now has stronger scripting capability on its console/shell. Another thing is, it now is capable of creating symbolic links of actual files.

But, they've also added a supposedly-cool feature, super-fetch, but it turns out swamped most of resouce on my new quad-core PC (which has already 4 GB of RAM). Most of the time my hard disk is busy doing something. I admit, I've installed many applications, but unlike Linux or OSX, the more you install on any Windows, the slowliness you'd get (thanks to its stupid registry, an now super-fetch).

Look, I am not a typical user who just use Office or games for my PC. I am a super-user and love to hack things (well, this is just my self-proclaim :). But from my experience, Windows Vista in general is the most resource-eater among OSs I have tried so far (I've used various O/S, including DEC VMS on VAX machines, IBM OS/2, various DOSes since version 2.x, VxWorks, OSE, all the Windows variants since 3.x, some Linux variants [SUSE, RedHat, Debian], Solaris, Novell Netware, Mac OS9 & OS-X, Unix variants [FreeBSD, SCO, Xenix, Minix, etc.], FreeOS, even the open-source-IOS-like Vyatta).