OK, after sometime getting used to this new OS, I finally found some weakness as compared to Windows or even Linux GUI. First of all the font rendering. Unlike Windows' ClearType font rendering that is sharp, OS-X fonts are blurry, especially from close distance. Some people on the Internet mention that OSX' fonts look better if we see them from a few feet. Hey, I don't want to work with my keyboard a few feet away from my monitor. How about inevitable built-in laptop screen?
The second weakness is its ability to display true color. Turned out it is not 24-bit RGB. This results much less than 2^24 colors as it supposed to be (my Compaq laptop has true millions of colors. I couldn't find any artifacts/washed out colors when playing movies from DVDs). Don't get me wrong, this issue is only seen on Macbook (or Macbook pro) built-in LCD screen. If we hook up to external LCD monitor, that's gonna be different. I have seen the iMac screen, it is much better.
Wednesday, September 19, 2007
Saturday, September 8, 2007
How fast is Apple Macbook?
My Macbook has Intel Core2 Duo 2.1 GHz. I wrote a small program to do very simple math (trigonometry computation):
#include
#include
int main()
{
double x,y;
long i;
x = 1/3.1415692653;
for(i=0; i<1000000; i++) {
y = i/100000*x;
printf("%lu) sin(%lf) = %lf\n", i, y, sin(y));
}
}
Compile it with:
gcc -mtune=nocona -m64 -msse3 -mfpmath=sse -O3 sin.c -o sin
and execute is as below:
time ./sin
The result is:
real 0m12.345s
user 0m2.624s
sys 0m3.554s
The "real" gives result 12.345 seconds to do 1E6 iterations!, or for each iteration it'd take 12.345E-6 second (12.345 microseconds). Wow!
#include
#include
int main()
{
double x,y;
long i;
x = 1/3.1415692653;
for(i=0; i<1000000; i++) {
y = i/100000*x;
printf("%lu) sin(%lf) = %lf\n", i, y, sin(y));
}
}
Compile it with:
gcc -mtune=nocona -m64 -msse3 -mfpmath=sse -O3 sin.c -o sin
and execute is as below:
time ./sin
The result is:
real 0m12.345s
user 0m2.624s
sys 0m3.554s
The "real" gives result 12.345 seconds to do 1E6 iterations!, or for each iteration it'd take 12.345E-6 second (12.345 microseconds). Wow!
OS-X is 64-bit Unix
Just to prove that my Macbook is a 64-bit machine, I build the following simple program:
#include
int main()
{
printf("sizeof(long) = %d\n", sizeof(long));
printf("sizeof(double) = %d\n", sizeof(double));
}
Compile it with:
gcc -mtune=nocona -m64 -mfpmath=sse -msse3 -O3 test.c -o test
and execute test. If the size of long is 8 bytes, it's 64-bit!
#include
int main()
{
printf("sizeof(long) = %d\n", sizeof(long));
printf("sizeof(double) = %d\n", sizeof(double));
}
Compile it with:
gcc -mtune=nocona -m64 -mfpmath=sse -msse3 -O3 test.c -o test
and execute test. If the size of long is 8 bytes, it's 64-bit!
Sunday, September 2, 2007
Making ipod video files from DVD
Search google for "handbrake", and install it.
Edit/create a new shell script, and paste one of the following:
For low resolution:
HandBrakeCLI -f mp4 -w 320 -l 176 -s 1 -N eng -e x264 -b 700 -2 -d -E ac3 -B 160 -R 48 -T -x "--threads 2" -i /dev/dvd -o $1
For high resolution:
HandBrakeCLI -f mp4 -w 640 -l 368 -s 1 -N eng -e x264 -b 1500 -2 -d -E ac3 -B 160 -R 48 -T -x "--threads 2" -i /dev/dvd -o $1
The /dev/dvd is where the DVD device is located (might be different that this one). While the output file is the only parameter in that script.
Say the script file is named "dvd2ipod". To make a m4v file, we just type:
dvd2ipod, where is replaced with the output file we want to make into. For example, the following is the result after I typed something.
linux-dell:/> dvd2ipod evil_cult.m4v
HandBrake 0.9.1 (2007090200) - http://handbrake.m0k.org/
2 CPUs detected
Opening /dev/dvd...
Scanning title 1...
Scanning title 1...
Scanning title 1...
Scanning title 1...
Scanning title 1...
Scanning title 1...
Scanning title 1...
Scanning title 1...
Scanning title 1...
Scanning title 1...
Scanning title 1...
Scanning title 1...
+ title 1:
+ vts 1, ttn 1, cells 0->6 (2015335 blocks)
+ duration: 01:43:07
+ size: 720x480, aspect: 1.33, 29.970 fps
+ autocrop: 62/72/8/10
+ chapters:
+ 1: cells 0->0, 14566 blocks, duration 00:00:44
+ 2: cells 1->1, 270120 blocks, duration 00:13:49
+ 3: cells 2->2, 274760 blocks, duration 00:14:03
+ 4: cells 3->3, 330130 blocks, duration 00:16:53
+ 5: cells 4->4, 377811 blocks, duration 00:19:20
+ 6: cells 5->5, 345073 blocks, duration 00:17:39
+ 7: cells 6->6, 402875 blocks, duration 00:20:37
+ audio tracks:
+ 1, Unknown (AC3) (2.0 ch), 48000Hz, 224000bps
+ subtitle tracks:
Applying the following x264 options: --threads 2
Modified x264 options for pass 1 to append turbo options: --threads 2:ref=1:subme=1:me=dia:analyse=none:trellis=0:no-fast-pskip=0:8x8dct=0
x264 [info]: using cpu capabilities: MMX MMXEXT SSE
The HandBrake is an open-source application and supports Mac, Linux and Windows platform and is downloadable at http://handbrake.m0k.org/
Edit/create a new shell script, and paste one of the following:
For low resolution:
HandBrakeCLI -f mp4 -w 320 -l 176 -s 1 -N eng -e x264 -b 700 -2 -d -E ac3 -B 160 -R 48 -T -x "--threads 2" -i /dev/dvd -o $1
For high resolution:
HandBrakeCLI -f mp4 -w 640 -l 368 -s 1 -N eng -e x264 -b 1500 -2 -d -E ac3 -B 160 -R 48 -T -x "--threads 2" -i /dev/dvd -o $1
The /dev/dvd is where the DVD device is located (might be different that this one). While the output file is the only parameter in that script.
Say the script file is named "dvd2ipod". To make a m4v file, we just type:
dvd2ipod
linux-dell:/> dvd2ipod evil_cult.m4v
HandBrake 0.9.1 (2007090200) - http://handbrake.m0k.org/
2 CPUs detected
Opening /dev/dvd...
Scanning title 1...
Scanning title 1...
Scanning title 1...
Scanning title 1...
Scanning title 1...
Scanning title 1...
Scanning title 1...
Scanning title 1...
Scanning title 1...
Scanning title 1...
Scanning title 1...
Scanning title 1...
+ title 1:
+ vts 1, ttn 1, cells 0->6 (2015335 blocks)
+ duration: 01:43:07
+ size: 720x480, aspect: 1.33, 29.970 fps
+ autocrop: 62/72/8/10
+ chapters:
+ 1: cells 0->0, 14566 blocks, duration 00:00:44
+ 2: cells 1->1, 270120 blocks, duration 00:13:49
+ 3: cells 2->2, 274760 blocks, duration 00:14:03
+ 4: cells 3->3, 330130 blocks, duration 00:16:53
+ 5: cells 4->4, 377811 blocks, duration 00:19:20
+ 6: cells 5->5, 345073 blocks, duration 00:17:39
+ 7: cells 6->6, 402875 blocks, duration 00:20:37
+ audio tracks:
+ 1, Unknown (AC3) (2.0 ch), 48000Hz, 224000bps
+ subtitle tracks:
Applying the following x264 options: --threads 2
Modified x264 options for pass 1 to append turbo options: --threads 2:ref=1:subme=1:me=dia:analyse=none:trellis=0:no-fast-pskip=0:8x8dct=0
x264 [info]: using cpu capabilities: MMX MMXEXT SSE
The HandBrake is an open-source application and supports Mac, Linux and Windows platform and is downloadable at http://handbrake.m0k.org/
Saturday, September 1, 2007
Internet everywhere with MacBook
This is how to connect to the Internet on the road via GSM phone provided by Cingular/AT&T Wireless (gotta have unlimited data plan though).
First, enable bluetooth on the Cellphone (mine is Cingular 8125) and check the "Discoverable" box. Do the same on Macbook. On the cellphone, add incoming port to this newly discovered device (Macbook). in my case, I use COM6.
From MacBook, click Apple -> System preference -> Bluetooth. Select the newly discovered device (cellphone), check both "Access the Internet with your phone's data connection" and "Use device as handset for this computer". It will auto-configure it. Ensure when we click "Edit Serial Port", it shows a virtual port (RS-232 compatible).
Now, to setup the dial-in configuration, from Apple -> system preference -> Network, add this under "PPP":
Telephone number: *99#
Account name: wap@cingulargprs.com
passwordl: CINGULAR1
Now, if you try to dial in, it will use the bluetooth to your cellphone (acting as a wireless modem), and badaboom...you're connected!
First, enable bluetooth on the Cellphone (mine is Cingular 8125) and check the "Discoverable" box. Do the same on Macbook. On the cellphone, add incoming port to this newly discovered device (Macbook). in my case, I use COM6.
From MacBook, click Apple -> System preference -> Bluetooth. Select the newly discovered device (cellphone), check both "Access the Internet with your phone's data connection" and "Use device as handset for this computer". It will auto-configure it. Ensure when we click "Edit Serial Port", it shows a virtual port (RS-232 compatible).
Now, to setup the dial-in configuration, from Apple -> system preference -> Network, add this under "PPP":
Telephone number: *99#
Account name: wap@cingulargprs.com
passwordl: CINGULAR1
Now, if you try to dial in, it will use the bluetooth to your cellphone (acting as a wireless modem), and badaboom...you're connected!
Subscribe to:
Posts (Atom)