May 20, 2010

Good Free screen video capture / record, works under Vista

A good screen capture / record to video FREE program, directly from Microsoft, is called CommunityClips. It works for Windows XP and Vista. You an download it for FREE at

May 19, 2010

command line email client / mailer for gmail

Two programs:

1. SendEmail:
2. smtp-cli:

I tried SendEmail and it worked fine with gmail TLS SMTP.

The smtp-cli seems to have more features, which also means more complex. :-)

Both programs are written in Perl.

Brother MFC-495CW Inkjet Color

Brother MFC-495CW Inkjet Color

is a good PDF scanner. It scans to USB drive directly without PC.

It also has WiFi and Ethernet connection.

Add color to your linux console program

You can add color to your linux console print outs, such as usage.

#define CSI "\x1B\x5B"
printf("%s1;31m This is color text %s0m\n",CSI,CSI);

red text:
printf "\x1b\x5b1;31m Ignoring callcatcher \x1b\x5b0m\n";

green text:
printf "\x1b\x5b2;31m Ignoring callcatcher \x1b\x5b0m\n";

\x1B is Escape Char, \x5B is '['. They form the control string indicator.

1;31 are two commands
1 means bold color
31-37 are the colors

m: set display attributes command

0m: reset to normal display

color code list:
   Black      0;30       Dark Gray    1;30
  Red        0;31       Bold Red     1;31
  Green      0;32       Bold Green   1;32
  Yellow     0;33       Bold Yellow  1;33
  Blue       0;34       Bold Blue    1;34
  Purple     0;35       Bold Purple  1;35
  Cyan       0;36       Bold Cyan    1;36

  Light Gray 0;37       White        1;37

Other commands (from Wikipedia)
Code Effect Note
0 Reset / Normal all attributes off
1 Bright (increased intensity) or Bold
2 Faint (decreased intensity) not widely supported
3 Italic: on not widely supported. Sometimes treated as inverse.
4 Underline: Single
5 Blink: Slow less than 150 per minute
6 Blink: Rapid MS-DOS ANSI.SYS; 150 per minute or more
7 Image: Negative inverse or reverse; swap foreground and background
8 Conceal not widely supported
9 Crossed-out Characters legible, but marked for deletion.
10 Primary(default) font
11-19 n-th alternate font Select the n-th alternate font. 14 being the fourth alternate font, up to 19 being the 9th alternate font.
20 Fraktur
21 Underline: Double not widely supported
22 Normal color or intensity neither bright, bold nor faint
23 Not italic, not Fraktur
24 Underline: None not singly or doubly underlined
25 Blink: off
26 Reserved
27 Image: Positive
28 Reveal conceal off
29 Not crossed out
30–37 Set text color 3x, where x is from the color table below
38 Reserved
39 Default text color implementation defined (according to standard)
40–47 Set background color 4x, where x is from the color table below
48 Reserved
49 Default background color implementation defined (according to standard)
50 Reserved
51 Framed
52 Encircled
53 Overlined
54 Not framed or encircled
55 Not overlined
56-59 Reserved
60 ideogram underline or right side line
61 ideogram double underline or double line on the right side
62 ideogram overline or left side line
63 ideogram double overline or double line on the left side
64 ideogram stress marking
90–99 Set foreground color, high intensity aixterm (not in standard)
100–109 Set background color, high intensity aixterm (not in standard)

May 18, 2010

Unofficial Smartq V5/V7 Linux Development Guide

This is a backup of the original doc at:

Unofficial Smartq V5/V7 Linux Development Guide

This guide describes how to compile your own linux kernel and how to create SmartqV firmware image for flashing the V5 or V7.
You need a working linux host for development, I'm using Ubuntu.

  1. Download the SmartqV SDK:
  2. Extract SDK to your working directory: tar -xvf SmartqV_SDK.tar.gz
  3. Install ARM toolchain:
    • Extract armv6_codesourcery.tar.bz2 file into /opt directory: tar –xvf armv6_codesourcery.tar.bz2
    • You should see /opt/armv6/... directory created.
  1. Go back to SmartqV_SDK directory and extract the kernel:
  1. Extract fw-utils:
    • tar -xvf fw-utils.tar.bz2
  1. Compiling the kernel:
    • cd mer-smartq-mer-smartq-kernel
  • Create default configuration: make SmartV7_defconfig for V7 or make SmartV5_defconfig for V5.
  • Run ./ and you can find a file named linux.rom under ../fw-utils directory.
  • make modules && make modules_install INSTALL_MOD_PATH=`pwd`/module-collection
    This pulls the generated modules into the ./module-collection directory, which can then be easily transferred with the kernel.
  1. Creating firmware image:
    • cd ../fw-utils
    • For V7: ./compress.v tcboot.V7 linux.rom 0 && mv SmartQV5 SmartQV7
    • For V5: ./compress.v tcboot.V5 linux.rom 0. The tcboot.V5 is not included in SDK, but you can extract it from official V5 image (see below).
    • This will create SmartQV5 or SmartQV7 firmware image.
  1. Copy the image to SD card and flash as usual.
  2. Notes: The firmware image will update only the bootloader and kernel image.
    You can create a full image including rootfs and homefs using compress.v utility.
    Use uncompress utility to extract newest bootloader from official firmware. Extracted files saved in /tmp directory.


May 7, 2010

pause/resume a linux process

To pause:

kill -STOP pid

To Resume:

kill -CONT pid

Works perfectly.

May 4, 2010

Simple NAT for Internet sharing

You need a Linux machine (or virtual machine running Linux, or Colinux) to do this:

#enable routing
echo 1 > /proc/sys/net/ipv4/ip_forward

#flush iptable
iptables -t nat -F

#enable DNAT (also known as IP masquerading)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

#enable port forwarding
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 2401 -j DNAT --to
iptables -t nat -A PREROUTING -i eth1 -p ALL --dport 82:88 -j DNAT --to