2008年10月29日 星期三

Install command-line BitTorrent client, RTorrent on Ubuntu

rtorrent is a text-based ncurses BitTorrent client

1. install rtorrent

sudo apt-get install rtorrent

2. because ubuntu package of rtorrent doesn't include default configuration file, it would result in a warning messege, couldn't not read resource file: ~/.rtorrent.rc
we have to create the file

vi ~/.rtorrent.rc

--
# This is an example resource file for rTorrent. Copy to
# ~/.rtorrent.rc and enable/modify the options as needed. Remember to
# uncomment the options you wish to enable.

# Maximum and minimum number of peers to connect to per torrent.
#min_peers = 40
#max_peers = 100

# Same as above but for seeding completed torrents (-1 = same as downloading)
#min_peers_seed = 10
#max_peers_seed = 50

# Maximum number of simultanious uploads per torrent.
#max_uploads = 15

# Global upload and download rate in KiB. "0" for unlimited.
download_rate = 0
upload_rate = 180

# Default directory to save the downloaded torrents.
directory = ~/download

# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
session = ~/.rtorrent/session

# Watch a directory for new torrents, and stop those that have been
# deleted.
#schedule = watch_directory,5,5,load_start=./watch/*.torrent
#schedule = untied_directory,5,5,stop_untied=

# Close torrents when diskspace is low.
#schedule = low_diskspace,5,60,close_low_diskspace=100M

# Stop torrents when reaching upload ratio in percent,
# when also reaching total upload in bytes, or when
# reaching final upload ratio in percent.
# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0
#schedule = ratio,60,60,"stop_on_ratio=200,200M,2000"

# The ip address reported to the tracker.
#ip = 127.0.0.1
#ip = rakshasa.no

# The ip address the listening socket and outgoing connections is
# bound to.
#bind = 127.0.0.1
#bind = rakshasa.no

# Port range to use for listening.
port_range = 6890-6999

# Start opening ports at a random position within the port range.
#port_random = no

# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
#check_hash = no

# Set whetever the client should try to connect to UDP trackers.
use_udp_trackers = yes

# Alternative calls to bind and ip that should handle dynamic ip's.
#schedule = ip_tick,0,1800,ip=rakshasa
#schedule = bind_tick,0,1800,bind=rakshasa

# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
#
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
#
# encryption = allow_incoming,enable_retry,prefer_plaintext

# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
# The default is "off". For DHT to work, a session directory must be defined.
#
dht = on

# UDP port to use for DHT.
#
dht_port = 6881

# Enable peer exchange (for torrents not marked private)
#
peer_exchange = yes

scgi_port = localhost:5000
encoding_list = UTF-8

#
# Do not modify the following parameters unless you know what you're doing.
#

# Hash read-ahead controls how many MB to request the kernel to read
# ahead. If the value is too low the disk may not be fully utilized,
# while if too high the kernel might not be able to keep the read
# pages in memory thus end up trashing.
#hash_read_ahead = 10

# Interval between attempts to check the hash, in milliseconds.
#hash_interval = 100

# Number of attempts to check the hash while using the mincore status,
# before forcing. Overworked systems might need lower values to get a
# decent hash checking rate.
#hash_max_tries = 10

3. create directory structure for the need of rtorrent resource file we just made

mkdir -p .rtorrent/session

4. type rtorrent to run rtorrent
about rtorrent operation, check out http://libtorrent.rakshasa.no/wiki/RTorrentUserGuide

2008年10月16日 星期四

Change boot loader of Ultimate Boot CD to grub on a USB stick

1. use hp formatting tool to format usb flash drive as USB-HDD because the formatting function of window will make it as USB-ZIP

2. repeat step 1 ~ 3 in Change boot loader of Slax to grub on a USB stick if your usb stick is not bootable

3. download iso image of ubcd from http://www.ultimatebootcd.com/download.html and extract it

4. download converted grub menus then
delete syslinux, isolinux folders, menus folder and boot.catalog
copy grldr, grub.exe, memdisk, new downloaded menus folder and menu.lst to the iso root directory

5. rebuild the iso

mkisofs -R -b grldr -no-emul-boot -boot-load-size 4 -allow-lowercase -o ubcd411.iso d:\ubcd411


4. copy the new iso to the usb stick then edit menu.lst and add below

title Ultimate Boot CD
find --set-root /ubcd411.iso
map /ubcd411.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)

2008年10月6日 星期一

Batch image resize script on Ubuntu

- be able to specify resolution of image
- create a folder to put resized images in


#!/bin/bash

printf "Batch Image Resize..\n"
read -p "width: " width
read -p "height:" height

[ -d resize/ ] || mkdir resize

ls -1 *.[jJ][pP][gG] | while read file
do
convert -scale ${width}x${height} "$file" resize/"$file"
[ -f "$file" ] && printf "$file\tOK\n"
done

2008年10月5日 星期日

Convert encoding of characters on Ubuntu


iconv input_filename -f input_encoding -t output_encoding -o output_filename

if input_filename is not specified, iconv reads from standard input.
if output_filename is not specified, the result is written to standard output.

2008年10月2日 星期四

Creat filesystem index for searhing purpose on Unix

if there are no updatedb and locate commands available, this is an alternative method on any unix-like os

1. using find to produce a list of all files' name and path

find / > fsindex

2. search for file

grep keyword fsindex