Monday, June 25, 2007

Dealing with PDF with pdftk

pdftk is a tool that can help you to manipulate PDF files even though you don't have Acrobat installed. The most common usage is to merge/split PDF files.

General syntax:

pdftk <input PDF files> cat [ <input PDF pages> ] output <output PDF filename>


Example
  • Extract page 1-3 from in1.pdf and save as out.pdf
    pdfhk A=in1.pdf cat A1-3 output out.pdf
  • Extract page 1-3 from in1.pdf, page 4-6 from in2.pdf, merge it and save as out.pdf
    pdfhk A=in1.pdf B=in2.pdf cat A1-3 B4-6 output out.pdf
  • Extract page1 from in2.pdf, and every even pages (2,4,6...) of in1.pdf, merge it and save as out.pdf
    pdftk A=in1.pdf B=in2.pdf cat B1 A1-endeven output out.pdf
Actually pdftk can also rotate, encrypt/decrypt and do more. Details usage can refer the link below.

Ref: http://www.pdfhacks.com/pdftk/

Sunday, June 17, 2007

How many Email accounts do you have?

How many accounts do you have? For me, it's ... many. Apart from the company email, I am holding the following accounts:

Emails that provide capacity:

  • The one provided by the ISP
  • Hotmail free account
  • GMail free acount
  • Yahoo! free acount, with one alias
  • FlashMail free account
  • One personal mail server, setup with a friend

Email Forwarding Address(with Alias):

  • University Alumni Email
  • Account from e4ward, 2 aliases in total
  • Account 4warding, 5 aliases in total
In terms of Email address, I have 15 address. Yet, what I am using actively are just GMail, Flash Mail and the personal mail server. For the others, besides Hotmail, all Emails will be redirected/forwarded to GMail, and GMail will keep a copy and forward to the personal mail server. Hotmail is just a 'sub-product' when creating MSN Messenger account, basically I don't use it at all. So for checking mail, I just need to check my personal mail server and FlashMail.

So why should we hold so many accounts? For me, this can help to separate the sender and control spam mail. I would give my alumni account to my University friends, for other friends I will give Yahoo! account instead. FlashMail is just for job hunting. And for other cases, especially when you need to leave an address when you subscribe something, I will simply use e4ward or 4warding. In case I was attacked by Spam Email, I can use delete or rename the alias address.

So which Email service are the best? Of course I vote for my own personal mail server (with QMail, with POP3 and IMAP4), very flexible. My second choice is GMail. If you can use the Label function wisely, that's a good service. Also it's my email backup repository. If my mail server are out of service, I can still get the mail from GMail.

Sunday, May 06, 2007

Portable Apps

I don't like the Windows. One of the reason is that the registry goes wrong after installation some applications. In fact, registry is not a great design. When you install software in Windows, there is no guarantees that you can 'completely' uninstall it afterwards. From my experience, something must be left in registry and it will be forever until you reinstall the Windows later.
So anything can help? Sure, and the answer is so called 'Portable Application'.

From my understanding, Portable Application is orginally designed for storing application in USB flash drives, with configuations file store in files instead of registry. Therefore, the applications do not depend on the Windows registry and can be installed anywhere.

One successful example is the PortableApps.com, it releases dozens of free application which can be installed in a USB, or any directory of the hardisk (including USB/IEEE1394 external hardisk, of course). Another advantage of using portable apps is that we do not need the administrator rights to install those applications. For example, I do not have administrator account to the PC in my company, and Internet Explorer is the only browser installed. Too bad right? But now I can download Portable Firefox, and click the exe file, then I can use Firefox without installing to the system.

Apart from Portable Firefox, there are also other applications which are useful. There are IM, Email client, Media Player and even WebServer! Please refer to the reference below and I am sure you will find some good applications for you.

Ref:
http://en.wikipedia.org/wiki/List_of_portable_software
http://portableapps.com/

Friday, April 20, 2007

Google Notebook

I found that Google Notebook is a very convenient online "wiki". With the notebook plugin, I can put any things to notebook and then it's available whenever I get a browser.

The notes can also be shared to other people. I think this is the real 'knowledge sharing'

Friday, March 16, 2007

TrueCrypt in Linux

Installation

  1. The following package are needed:
    • kernel-source
    • dmsetup
    • device mapper
    • ./build.sh
      ./install.sh

Creating a file based encryption volume

  1. Can be use normal user
    • $ truecrypt --size 10M
      $ cd /tmp
      $ truecrypt
      $ pwd
      /tmp
      $ truecrypt --size 10M -c 10m.tc
      Volume type:
      1) Normal
      2) Hidden
      Select [1]: 1

      Filesystem:
      1) FAT
      2) None
      Select [1]: 1

      Hash algorithm:
      1) RIPEMD-160
      2) SHA-1
      3) Whirlpool
      Select [1]: 2

      Encryption algorithm:
      1) AES
      2) Blowfish
      3) CAST5
      4) Serpent
      5) Triple DES
      6) Twofish
      7) AES-Twofish
      8) AES-Twofish-Serpent
      9) Serpent-AES
      10) Serpent-Twofish-AES
      11) Twofish-Serpent
      Select [1]: 2

      Enter password for new volume '10m.tc':
      Re-enter password:

      Enter keyfile path [none]:

      TrueCrypt will now collect random data.

      Is your mouse connected directly to computer where TrueCrypt is running? [Y/n]: n

      Please type at least 320 randomly chosen characters and then press Enter:
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


      Done: 9.75 MB Speed: 6.09 MB/s Left: 0:00:00
      Volume created.
      $ truecrypt -p abcd1234 -u 10m.tc /tmp/ttt/
      $ cd /tmp/ttt/
      $ df -k /tmp/ttt
      Filesystem 1K-blocks Used Available Use% Mounted on
      /dev/mapper/truecrypt0
      130794 0 130794 0% /tmp/ttt

      $ truecrypt -d /dev/mapper/truecrypt0
  2. In fact we can create the encryption volume in a partition / LV. But this time root is required.
    • (assume there is a VG called vg01)
      #lvcreate -L 128M -n abc_lv vg01
      Logical volume "abc_lv" created
      #truecrypt -c /dev/vg01/abc_lv
      Volume type:
      1) Normal
      2) Hidden
      Select [1]: 1

      Filesystem:
      1) FAT
      2) None
      Select [1]: 1

      Hash algorithm:
      1) RIPEMD-160
      2) SHA-1
      3) Whirlpool
      Select [1]: 2

      Encryption algorithm:
      1) AES
      2) Blowfish
      3) CAST5
      4) Serpent
      5) Triple DES
      6) Twofish
      7) AES-Twofish
      8) AES-Twofish-Serpent
      9) Serpent-AES
      10) Serpent-Twofish-AES
      11) Twofish-Serpent
      Select [1]: 2

      Enter password for new volume '/dev/vg01/abc_lv':
      Re-enter password:
      Passwords do not match.

      Enter password for new volume '/dev/vg01/abc_lv':
      Re-enter password:

      Enter keyfile path [none]:

      TrueCrypt will now collect random data.

      Is your mouse connected directly to computer where TrueCrypt is running? [Y/n]: n

      Please type at least 320 randomly chosen characters and then press Enter:
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

      Done: 125.55 MB Speed: 15.26 MB/s Left: 0:00:00
      Volume created.
      #truecrypt /dev/vg01/abc_lv /abc
      Enter password for '/dev/vg01/abc_lv':
      #df -k /abc
      Filesystem 1K-blocks Used Available Use% Mounted on
      /dev/mapper/truecrypt1
      130794 0 130794 0% /abc
      #df -T /abc
      Filesystem Type 1K-blocks Used Available Use% Mounted on
      /dev/mapper/truecrypt1
      vfat 130794 0 130794 0% /abc
      #truecrypte -d /dev/mapper/truecrypt1
  3. Please note that vfat/fat32 is the default filesystem. So how about if we want to have an encrypted reiserfs filesystes?
    • #truecrypte --filesystem reiserfs /dev/vg01/abc_lv
      (skip the interactive wizard)
      #truecrypte -N 0 /dev/vg01/abc_lv

      #mkfs.reiserfs /dev/mapper/truecrypt0
      mkfs.reiserfs 3.6.19 (2003 www.namesys.com)

      A pair of credits:
      Joshua Macdonald wrote the first draft of the transaction manager. Yuri Rupasov
      did testing and benchmarking, plus he invented the r5 hash (also used by the
      dcache code). Yura Rupasov, Anatoly Pinchuk, Igor Krasheninnikov, Grigory
      Zaigralin, Mikhail Gilula, Igor Zagorovsky, Roman Pozlevich, Konstantin
      Shvachko, and Joshua MacDonald are former contributors to the project.

      Lycos Europe (www.lycos-europe.com) had a support contract with us that
      consistently came in just when we would otherwise have missed payroll, and that
      they kept doubling every year. Much thanks to them.


      Guessing about desired format.. Kernel 2.6.17-11-generic is running.
      Format 3.6 with standard journal
      Count of blocks on the device: 32752
      Number of blocks consumed by mkreiserfs formatting process: 8212
      Blocksize: 4096
      Hash function used to sort names: "r5"
      Journal Size 8193 blocks (first block 18)
      Journal Max transaction length 1024
      inode generation number: 0
      UUID: 7ffaa516-0015-46bc-bfc0-6fdd7dca59ba
      ATTENTION: YOU SHOULD REBOOT AFTER FDISK!
      ALL DATA WILL BE LOST ON '/dev/mapper/truecrypt0'!
      Continue (y/n):y
      Initializing journal - 0%....20%....40%....60%....80%....100%
      Syncing..ok

      Tell your friends to use a kernel based on 2.4.18 or later, and especially not a
      kernel based on 2.4.9, when you use reiserFS. Have fun.

      ReiserFS is successfully created on /dev/mapper/truecrypt0.
      #truecrypt /dev/vg01/abc_lv /abc
      truecrypt: Volume already mapped
      #truecrypt -d /dev/vg01/abc_lv
      #truecrypt /dev/vg01/abc_lv /abc
      Enter password for '/dev/vg01/abc_lv':
      #df -T /abc
      Filesystem Type 1K-blocks Used Available Use% Mounted on
      /dev/mapper/truecrypt0
      reiserfs 131000 32840 98160 26% /abc