Tuesday, December 30, 2008

mutt forward mail with attachments

1) 'b' bounces the message completely unmodified to a new address

2) 'Esc E' uses a current message as a template for a new message,
can modify attachments and text

*) Esc F to clear the "From" address (Esc F) from the send men

*) S to change subject

Thursday, December 18, 2008

xargs with complicated command line

xargs will pipe to a command. what if it has complex structure?
ls $1 | xargs -I {} -t mv $1/{} $2/{}

here the I command says use {} to replace the piped output

thus we use

find . -iname '*nons*' -print0 |xargs --null -I {} cp {} ../nonstandard-analysis/{}

to deal with
1) spaces in output file names from find we use -print0 and
correspondingly to match we use xargs --null

2) to deal with the xargs applied command which has multiple arguments we use the -I {}
to fill in for the xargs output


Sunday, December 14, 2008

Problem with refiltering a Mail directory

I decided to split my perldl messages from incoming directory
however when I foolishly decided to run

http://markmail.org/message/tz6isa4n4ubyssuc#query:rerun procmail on a maildir+page:1+mid:tukr7f524zmykz7n+state:results

cd Mail/inbox/cur
for file in *; do
procmail < $file

this gave me multiple copies of the original mails
then if I ran this multiple times I had a mess with 30,000 mails in my inbox
instead of 4301
so I had to run this
#!/usr/bin/perl -w
use strict;
use File::Find::Duplicates;
my $in=shift;

my @dupes = find_duplicate_files("$in");
my $length;
foreach my $dupeset (@dupes) {
my $length= scalar @{$dupeset->files} ;
if ($length >= 1) {

for (my $i=0; $i<$length -1 ;$i++) {
#print $ { $dupeset->files} [$i]; print "\n";
unlink $ { $dupeset->files} [$i];
where I got File::Find::Duplicates from CPAN

Tuesday, December 9, 2008

disable ssh timeout how to

Disable SSH timeout


By default, most SSH servers are configured to forcibly disconnect inactive or idle clients, or actually those with no network activity. This is not good for some people especially if one is setting up a (reverse) tunnel to the server where the tunnel should remain established whenever they need it.

There are 2 methods to overcome this problem,
1) not to stay idle or by keeping the network activity busy, and
2) if you have root access to the server, change the SSHd configuration at the server.

How can the network be kept busy while you are not attending the session? The trick is to run any program that keep updating the screen, such as mtr or top. The program should generate some network activity, and keep the session active and connected. Use the program screen to create virtual terminals where one terminal is dedicated to the program mtr or top.

If you have root access to the server, you might want to just change the SSHd configuration file. To do this, edit the file /etc/ssh/sshd_config and change the following options as in the example below;

TCPKeepAlive yes ClientAliveInterval 30 ClientAliveCountMax 99999

Don’t forget to restart the SSH server afterwards with the following command;

# /etc/init.d/sshd restart

Friday, November 28, 2008

build perl modules the debian way


apt-get install dh-make-perl

tar -pzxvf Locale-Hebrew-1.04
dh-make-perl Locale-Hebrew-1.04/

cd Locale-Hebrew-1.04
cd ..
ls *.deb
dpkg -i liblocale-hebrew-perl_1.04-1_amd64.deb

it works nicely.

Thursday, November 27, 2008

combine pdf files to one

2 ways

install gs or pdftk

pdftk first.pdf second.pdf cat output firstANDsecond.pd

or else

gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=firstANDsecond.pdf -dBATCH first.pdf second.pd

finnix a debian testing distro with lvm2


wget http://www.finnix.org/releases/92.0/finnix-92.0.iso


If we want to use lvm2 we need to be able to boot from a live distro and access the data.
Will we find this with knoppix/kanotix etc?

we need to be able to do

say we have a volume group data on a physical volume 'data'
vgchange -ay data

(if it was formally exported before from old system (fat chance) then you can do
vgimport data

mkdir /data
mount /dev/data/ /data
say to load the information

2. Lets say to start a new physicalvolume and create a volume group

vgcreate volgroup1 /dev/sda1


lvcreate -L5G -n logicalvolume
mkfs.ext3 /dev/volgroup1/logicalvolume

then can mount it

mount /dev/volgroup1/logicalvolume /data


Thursday, November 20, 2008

convert images to right size and format for presentations

convert a bunch of images to the right size for a presentation
try this

convert -sample 936x720 infile.xfc outfile.jpg

will do the job

Sunday, November 16, 2008

unwanted taps on trackpad while typing

a common problem for laptops.
what to do?


https://wiki.ubuntu.com/InstallingUbuntuOnADellXPSM1530#Touchpad stays on while typing

Touchpad stays on while typing

To fix this, the best answer I could find was this one, where you simply install a deb package to add a file to the Xsession.d directory, which gets run every time your start X. Here's are contents:

# Starts the Synaptic daemon which deactivates the touchpad while typing
# This executes for all users

SYN_IDLE=1 #Seconds to wait after last key press before enabling touchpad

if [ -x $SYNDAEMON ]; then

This is a very simple and elegant way to fix the problem. Click here to download the package directly.

dpkg -L xserver-xorg-input-synaptics

includes this program:

syndaemon - a program that monitors keyboard activity and disables the
touchpad when the keyboard is being used.

Thursday, November 13, 2008

create pdf of articles and books

Nice instructions are available from

on how to create pdf files from scanner of articles.
take a look at this.

Saturday, November 1, 2008

grab a few pdf files on web

#!/usr/bin/perl -w
use strict;

open (IN, "list");
my @data=;
my @out= map { local $_ =$_; s/(.*href=\")(.*)(\".*)/$2/; $_} @data;

my @out1;
my $pref='http://ocw.mit.edu';

foreach my $example (@out) {
my $out=$pref.$example;

foreach my $stuff (@out1) {
#print "$stuff \n";
system("wget $stuff");

Using regex in Map function

need to localize if you want not to get all 1's as output of the map (since match return is
only 1, regexp substitution occurs in place with $_).

#!/usr/bin/perl -w
use strict;

open (IN, "list");
my @data=;
my @out= map { local $_ =$_; s/(.*href=\")(.*)(\".*)/$2/; $_} @data;

see merlyn at


Friday, October 31, 2008

PDL upgrade debian perldl again

Ok we need a new version of pdl because the one pdl graphics demo in debian sid does not work with perl 5.10.

so go to cpan and get
from chris marshall CHM (search under authors).
also get

then install them (you will need gfortran ... and
apt-get install dh-make-perl
apt-get install buildessential
debscripts (debuild)

then follow


dh-make-perl PDL-X/
cd PDL-X
cd ..


dpkg -i pdl_2.4.3-7_amd64.deb
dpkg -i libpgplot-perl_2.20-1_amd64.deb

Sunday, October 26, 2008

emacs like editors

mg zile jed joe

Climacs / Drei Common Lisp An Emacs-like editor in Common Lisp,
e3 none
Edwin Scheme Start with: scheme -edwin -edit
EmACT Minimal Lisp Fork of Conroy's MicroEmacs
Ersatz Emacs none A very minimal imitation of GNU Emacs
fe none Small and easy to use folding editor—successor to Origami
GNU Emacs Emacs Lisp
Hemlock CMU Common Lisp S
Jasspa's MicroEmacs custom Also as NanoEmacs with USE=nanoemacs
JED S-Lang
JOE macros Joe's Own Editor
Jove none Jonathan's Own Version of Emacs - a light emacs-like editor without LISP bindings
µEmacs/PK custom MicroEMACS 3.9e with enhancements by Petri Kutvonen
Mg none Micro GNU
Ng none Nihongo micro Gnu emacs, maintained by CJK team
QEmacs none Quick Emacs
SXEmacs Emacs Lisp In XEmacs overlay


Implementations Available For No Charge

  • AMIS
  • Anthony's Editor
  • Aquamacs
  • AxE
  • Barry's Emacs
  • Bzdired
  • Climax
  • Demacs
  • E3
  • Edwin
  • Elle
  • Emacs
  • Emacs for HP49G and HP49G+
  • Emacs for NeXTstep
  • Emacs for OS X and OS 9
  • EmACT
  • Epoch
  • Ermacs
  • Evi
  • FINE
  • Folding Editor
  • Freemacs
  • Freyja
  • Gnome
  • GNU-Emacs, Macintosh port
  • Gnu TeXmacs
  • Gulam
  • Hemlock
  • Jade
  • Jasspa
  • JED
  • JEmacs (Kawa)
  • JOE
  • JOVE, Jonathan's Own Version of Emacs
  • KEmacs, Kanji Emacs
  • ME2, Mutt Editor II
  • Meadow
  • MG, MicroGNU Emacs
  • MicroEMACS
  • MicroEMACS #2
  • MicroEMACS #3
  • MicroEMACS #4
  • MULE, Multi-Lingual Enhancment to Emacs
  • Nemacs, Nihongo Emacs
  • NILE
  • NotGNU
  • NTEmacs
  • Ntemacs.exe
  • Nitemacs
  • OEmacs
  • PE, PalEdit
  • QEmacs
  • SXEmacs
  • Tint
  • TkEmacs
  • Tovj, Tom's own version of Jove
  • Treemacs
  • Xedit
  • XEmacs, Emacs the next generation
  • Xyzzy
  • YR-Emacs
  • Zile, Zile is lossy Emacs
  • Sunday, September 28, 2008

    rm stream to mp3 or wav

    mencoder input_file.rm -ovc frameno -oac mp3lame -of rawaudio -lameopts cbr:br=128 -o output_file.mp3

    capture streaming audio

    capture streaming audio

    wget http://www.bbc.co.uk/radio/aod/rpms/hitchhikers.ram

    cat hitchhikers.ram


    mplayer -dumpstream rtsp://rmv8.bbc.net.uk/radio4/comedy/thu2300.ra

    (Time passes while mplayer writes a file named “stream.dump”.)

    Now convert the stream.dump file to pcm/wave:

    mplayer -ao pcm stream.dump

    (Time passes while mplayer writes a file named “audiodump.wav”.)

    Convert that wave file into mp3:

    lame --preset standard --tt "Episode 1" --ta "BBC Radio 4" --tl "The Hitchhiker's Guide to the Galaxy, Tertiary Phase" --ty "2004" --tn 1 audiodump.wav episode1.mp3

    Hooray! One down side I’ve seen so far: the stream.dump RealAudio file is just under 10Mb, while the mp3 produced by this process is over 37Mb. I should probably use different options when running lame.

    copied from: http://www.elsewhere.org/journal/archives/2004/09/25/howto-capture-streaming-audio-for-later/

    Monday, August 25, 2008

    persistent eth0 or eth1 values problem?? solved on debian-user today!

    the below is thanks to Clifford Hansen in debian-user mail list!

    I believe it's doing this because the network card has a different mac address to the previous machine
    (albeit virtual)

    Have a look in the following file:
    % cat /etc/udev/rules.d/z25_persistent-net.rules

    You should see lines like the following:
    # PCI device 0x14e4:0x1677 (tg3)
    SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="xx:xx:xx:xx:xx:xx", NAME="ethx"

    where xx:xx:xx:xx:xx:xx is the mac address and ethx is the device name

    just delete all ethx lines and then on reboot eth0 should be eth0 again...


    Saturday, July 26, 2008

    fixing apt-get upgrade issues

    apt-get install -f
    dpkg -i --force-overwrite /var/cache/apt/archives/whatever.deb

    crash during apt-get dist-upgrade how to recover

    My nieces were playing (penguin racer i think) on my ppc running debian while it was being upgraded and the machine froze. After turning off I could not reboot into the system.

    What to do? I downloaded a ubuntu live ppc disc and I booted into it.

    Then I ran a root shell and did
    mounted the /dev/hda4 partition which was my root partition.
    mount /dev/hda4 /mnt

    chroot /mnt /bin/bash
    mount -a
    then i still needed to set up a proc directory
    so I did
    mount -t proc proc /proc
    then i did
    ifup eth0
    and then i did
    apt-get update
    apt-get upgrade
    apt-get install -f
    and I was able to reboot into the system!!

    Yay for debian!

    Wednesday, July 23, 2008

    lvm how to cool

    2) drive 2 setup as lvm!

    fdisk /dev/sda
    (use full disk) setup /dev/sda1 type 8e
    pvcreate /dev/sda1
    sets up the drive to be a physical volume
    vgcreate lvm-vol /dev/sda1
    sets up the volume group on the drive(s)
    (could do vgcreate lvm-vol /dev/sda1 /dev/sdb1)
    lvcreate -n 2005-big1 --size 221g lvm-vol
    mkfs.ext3 /dev/lvm-vol/2005-big1

    lvcreate -n 2005-big0 --size 221g lvm-vol
    mkfs.ext3 /dev/lvm-vol/2005-big0

    a) mount on machine
    b) copy data to two partions

    now can mount them all in raid-mount-script

    how to do adjust and expand size of a partitions

    what can do to find out:


    How to expand?

    umount /dev/lvm-vol/2005-big0
    lvextend -L+100g /dev/lvm-vol/2005-big0
    e2fsck -f /dev/lvm-vol/2005-big0
    resize2fs /dev/lvm-vol/2005-big0

    now we are expanded

    Other commands?

    lvremove kills contents
    lvrename to renam
    lvreduce make smaller
    lvextend to make bigger

    /etc/lvm/archive has list of commands performed on my machine!

    How to move a volume group to another machine?
    (call the volume group lvm1 say)
    1) unmount file system say we have ie the logical volume 2006-data on the volume group lvm1
    umount /dev/lvm1/2006-data

    2) mark volume group inactive
    vgchange -an lvm1

    3) export from old system
    vgexport lvm1

    4) plug into new computer

    5) pvscan to identify it

    6) vgimport lvm1

    7) mount /dev/lvm1/2006-data /mnt

    You forgot to export from old system?
    Then you try vgimport and get an error message

    "Volume group "lvm1" is not exported"
    ??? what to do????

    vgchange -ay lvm1
    will activate the volume even though was not exported

    vgscan will identify that it exists:
    will indicate

    --- Logical volume ---
    LV Name /dev/lvm1/2006-big0
    VG Name lvm1
    LV UUID BZCkFH-MjH1-LS5r-giPN-g4GF-yiat-wCGtaC
    LV Write Access read/write
    LV Status available
    # open 0
    LV Size 359.00 GB
    Current LE 91904

    Now you can mount it
    mount /dev/lvm1/2006-big0 /home/big0
    and you are done.

    ? how to automatically mount it on the machine.

    1. Problem just putting it in the /etc/fstab
    it seems not to find it if I just put
    /dev/lvm1/2006-big0 /mnt ext3
    in the /etc/fstab
    I get a hang during boot up.
    2. Howrver this works: Create a perl boot script
    that does
    system("mount /dev/lvm1/2006-big0 /mnt");
    runs fine;

    ? why does the output of the command look like
    df -h
    /dev/mapper/lvm1-2006--big0 354G 348G 5.8G 99% /mnt

    when I did mount /dev/lvm1/2006-big0 /mnt?
    what is meaning of /dev/mapper
    what is meaning of the extra "-" dashes in the /dev/mapper/ name???

    now what to put in the /etc/fstab to get it all to work???

    Best sources:

    Tuesday, July 15, 2008

    software update for etch

    i need to look at the changes for etch



    need to make sure that the database is working before running script

    debian useful reference


    free dynamic dns services

    Free Dynamic dns services

    dyndns.com or dndns.org

    Thursday, July 10, 2008

    centricty log files

    type platinum\service\logs\CentricyWS-Audit-log.xml|find "changed"
    and look for changed to dictated

    may have to look at the ones with log.xml.1 amd log.xml.2 and find the cases.

    irritating. need perl script to parse log file better.

    automating script to do rsync to another machine

    You need to set up ssh without offering a passphrase. How to do this?

    go to the

    source machine

    ssh-keygen -t rsa

    accept the default location .ssh/id_rsa and .ssh/id_rsa.pub
    then do (empty passphrase)

    and now you can use the generated file .ssh/id_rsa.pub

    scp .ssh/id_rsa.pub distal.host.ip.address:/home/yourid/.ssh/authorized_keys

    (of course we are coming from only one preimage, otherwise just add line to authorized_keys

    Friday, July 4, 2008

    wireless issue on debian powerpc

    i started to have difficulty on reboot of power macbook on debian and wireless about b43-cutter
    so I updated all including kernel to linux-image-2.6.25 (i had trouble with sbcl kernel bug due
    to lack of flag siet up)

    so what to do about bcm43 cutter issue in broadcome

    so i installed latest b43-fwcutte and I ran

    i still get error

    loading firmware version 351.126 (2006-07-29 05:54:02)
    b43-phy0 warning you are using an old firmware image. support for old firmeware will be removed july 2000.
    go to
    and download latest firmware (version 4)


    Monday, May 26, 2008

    Postgreql full text search support

    Cool look at


    DocMGR is a complete, web-based Document Management System (DMS). It allows for the storage of any file type, and supports full-text indexing of the most popular document formats. It is available in many different languages and is easy to translate into new languages. DocMGR runs on PHP, the Apache webserver, and Postgresql. It optionally uses tsearch2 for full-text indexing which provides for faster search results and result ranking. DocMGR supports LDAP authentication, the ability to easily add and remove "objects" for storage in the system, document workflow, object subscriptions, WebDAV access, and an ever-growing set of features revolving around content storage.

    Wednesday, May 21, 2008

    annotating pdf files creating presentations

    I just watched a friend annotating pdf files with Preview and then
    using grabber to take a picture of part of the PDF and put it into his mac
    presentation application.

    So what is the linux equivalent?

    1. what to annotate pdfs?

    i notice xournal. someone writes


    The rest of the document has to do with configuring xournal in such a way that it is more convenient to use it to highlight text inside PDF files. Although some of these settings can be set from within xournal’s graphical interface, I recommend editing the configuration file directly: /home/gnot/.xournal/config, since it contains more options than those available in the GUI.

    The ruler exists in order to make life easier when you highlight text. It is highly recommended that you enable it for text highlighting:


    If highlighting text is your main use of xournal, then you can make it the startup tool as well.


    The following options make xournal’s window to start maximized and set the initial zoom to 150% respectively.


    The following options configure the highlighter. You can set the 3 pre-defined levels of thickness and which one will be the default one, set the default color and finally set the opacity (the default opacity level of 50% is just too much).



    No one said that annotating PDF files in Linux is an easy task. I have tried many open source tools for that job, but xournal seems to be the best one at the time of writing.


    Cool I will try that today and see how it works.

    2. I have been using emacs text application to make presentations. I need to grab screen shots.
    what is the equivalent of mac grabber.

    xsg i see, xwd, xgrabsc Xscreencap ,

    This is really simple. Run gimp (The GNU Image Manipulation Program). Click on Xtns and then Screen Shot, seleccaptscsct whether you want to capture a single window (the Include decorations option means capture the frame and title bar along with the rest of the window) or the whole screen, then click Grab. If you selected the whole screen it will open a new image containing it immediately, else if you chose single window you will have to click on the particular window you want to capture. Edit as necessary and save.

    3. he uses spotlight to find files. is there a linux spotlight that searches pdf files???

    Tuesday, March 25, 2008

    ubuntu conference 2007 talks

    see talk on clonezilla and virtual machines.

    Monday, March 24, 2008

    qemu creation of images

    How do you create your images? Do you want to have a BIG file or a SMALL file

    qemu-img create debian.img 5G

    this creates a large file
    which is SPARSE thus is capable of being compressed
    tar -cjSf debian.tar.bz2 debian.img

    which can be moved.

    On the other hand you can make a qcow small file to begin with.

    qemu-img create debian.img -f qcow 5G

    this is a small file.
    And can make a copy file to use.

    qemu-img create -b debian.img -f qcow stable.ovl

    this second is a very tiny copy file, just stores the diffs.

    Sunday, March 23, 2008

    qemu and vmware and kvm and live view

    I have been playing with qemu. I have a vmware machine and now I would like to get a qemu version. When I get a new cpu with virtualization in hardware I can try out kvm as well.

    Here is some nice stuff.

    He wrote:

    I have a Windows XP SP2 installation that I use for work, while my current personal OS of choice is Windows Vista. I only work weekends, so rebooting wasn’t too bothersome initially. Over time it has become more and more of a chore, as I can’t easily switch from one development environment to another without rebooting. I decided it was time to make my work installation a virtual machine.

    I had some additional complications that made the process a little non-standard. I originally tried using VMWare’s converter tool, but it would fail at 97% of the creation of the disk. I then tried using a Windows port of the Unix utility ‘dd’ to create a raw image of the disk, but because the Windows volume manager was accessing the disk, dd would give me access errors. Additionally, the VMWare converter doesn’t support converting from a raw image (…grr…), so Qemu’s qemu-img tool would have to be used to convert the raw image to a disk in VMWare’s vmdk format.

    The steps to reach our goal aren’t too complicated, and can be replicated by others easily. To do it, I used:

    • VMWare Workstation
    • A Linux installation or LiveCD (I used my existing Debian installation, but something like Knoppix would work fine)
    • Qemu
    • NTFS-3G (if you plan on writing out to an NTFS partition from Linux, as I did)

    I started by booting into my Linux install. Linux only mounts the disks it uses (hint hint, Microsoft) so we can access all sectors of the partition to make a dump of the disk with dd. I first had to mount the partition where I wanted the output file to reside, which uses NTFS:

    ntfs-3g /dev/sdb1 /mnt/external

    Next, create the image. I did this with the following (substitute your device/partition and output file):

    dd if=/dev/hdc3 of=/mnt/external/diskImage/XPSP2.img bs=1024

    When that finishes, the file specified with the ‘of’ option in dd will contain a block-by-block exact copy of your partition. However, it is in a raw format - we need it in a format VMWare can read. This is where Qemu comes in. Qemu is distributed with qemu-img, a tool used for creating, manipulating, and converting images. Specifically, our goal is to use qemu-img’s convert functionality to convert from a raw image format to the vmdk format. This is accomplished with:

    qemu-img convert -f raw /mnt/external/diskImage/XPSP2.img -O vmdk /mnt/external/diskImage/XPSP2.vmdk

    Be prepared to wait. For a 40gb image, this process took roughly 12 hours. Since qemu-img provides no status as to how far it has come, I kept tabs on it just by monitoring the filesize of the output image. This is entirely unnecessary, but if you want to do the same, just open a new terminal and type the following:

    while [1 -gt 0 ]; do du -hs /mnt/external/diskImage/XPSP2.vmdk; sleep 10; clear; done

    This will just print out the size of the file on your screen so you can watch it grow.

    When the process is completed, boot back into Windows (or if you are using Linux as the host, stay put) and create a virtual machine around your new disk image. Don’t forget to remove the original img created with dd, it is a huge waste of disk space :)


    1. This process is really only feasible if you have a lot of disk space. At worst, the disk requirements are greater than 2*P, where P is the partition size of the virtual machine you wish to create. However, qemu-img only writes out actual data, not empty sectors, so your output image will be the size of the used space in the input image. For my conversion, I used over 40gb (input)+15gb (output) of disk space, which was reclaimed with the deletion of the output of dd, and resizing another partition to use the old physical installation’s space.
    2. qemu-img doesn’t support stream input, which is why we can’t pipe dd’s output directly into qemu-img convert. This would have reduced the disk requirements to only the size of the vmdk image, and sped up the process substantially. Bug the Qemu developers to implement this feature :)
    1. u may be able to skip the dd command. Try this command:
      qemu-img convert -f raw /dev/hdc3 -O vmdk boot.vmdk

      I think this should work just fine. dd is just reading from the disk and qemu-img would not know the difference.

      I tested on /dev/hda1 (/boot) and it worked just fine.


    2. Further to my previous post - I think you may have stumbled on the single most simple way of converting the system from physical to virtual.

      I think the following procedure would work, however I have not had time to test it.

      on the machine to be converted (physical machine) nfs mount vmware host drive where you will be putting the virtual disks. Then run the qemu-img convertion from /dev/hda putting the output on the nfs mounted partition. This will be a one step conversion directly to the final location. It might be best to shut down as many processes as possible on the source host.

      I’ll give this a go and report back.

    3. ran into the same problems you did. VMWare apparently *really* doesn’t like using images created from individual partitions. The reason isn’t documented, but I believe it is because the partition table for the disk is located at the beginning of the disk, which isn’t being copied. So you are left with a single partition that VMWare believes is the whole disk, and no information as to the partition’s geometry. Additionally, there is no room for an MBR at the beginning of the partition, because it jumps straight into the data section. My suggestion is to use LiveView, which I wrote about here:


      If that doesn’t work, then… well, I have ideas, but they aren’t fun :) Let me know if LiveView works for you. Good luck mate!

    Then look at this

    In my last post I chronicled the time consuming process of converting an image produced using the Unix dd utility to a vmware VMDK virtual disk. The process does work, but VMWare will only load it if the image contains a master boot record that still contains the appropriate information when removed from the rest of the system. Additionally, I think it is appropriate to mention again how terribly slow it is. We can circumvent these problems with Live View for Windows, a program developed for forensic work by Carnegie Mellon University.

    The process for creating the image with dd is the same as last time, IE, by doing something along the lines of:

    dd if=/dev/hdc3 of=/mnt/external/diskImage/XPSP2.img bs=1024

    Once that image is generated and you are back in Windows, simply launch the Live View utility and… the rest is pretty self explanatory. Once the dd image is generated, the Live View program takes only a couple minutes to create the new vmdk, configure the virtual machine, and launch it. Sweet, sweet efficiency!

    now what is live view?

    Live View 0.6 is now available for download.

    This version adds support for third party image formats such as EnCase with the use of image mounting software such as Mount Image Pro or Physical Disk Emulator. This release also adds support for the newest versions of Java and VMware, improves the boot preparation process to allow a wider variety of system configurations to boot successfully, and fixes a number of bugs. For more information, see the changelog.

    We appreciate the feedback and encourage you to continue to report bugs and make suggestions to help make this tool more useful for everyone. The best way to do this is to post to the forums.

    Live View is a Java-based graphical forensics tool that creates a VMware virtual machine out of a raw (dd-style) disk image or physical disk. This allows the forensic examiner to "boot up" the image or disk and gain an interactive, user-level perspective of the environment, all without modifying the underlying image or disk. Because all changes made to the disk are written to a separate file, the examiner can instantly revert all of his or her changes back to the original pristine state of the disk. The end result is that one need not create extra "throw away" copies of the disk or image to create the virtual machine.

    Live View is capable of booting

    • Full disk raw images
    • Bootable partition raw images
    • Physical Disks (attached via a USB or Firewire bridge)
    • Specialized and closed image formats (using 3rd party image mounting software)

    Containing the following operating systems

    • Windows 2003, XP, 2000, NT, Me, 98
    • Linux (limited support)

    Behind the scenes, Live View automates a wide array of technical tasks. Some of these include: resolving hardware conflicts resulting from booting on hardware other than that on which the OS was originally installed; creating a customized MBR for partition-only images; and correctly specifying a virtual disk to match the original image or physical disk.

    which is amazing because boot failure due to changing underlying hardware machines is the main issue i have often with windows. you can't just plug a machine into a different machine! now you can

    i have not gotten this working myself.
    my machine just reboots over and over again.

    Sunday, March 9, 2008


    free dyndns is available at
    reverse-dns.net is the target

    Monday, February 18, 2008

    upgrading to postgresql 8.3 in debian from 7.4

    me:/home/me# pg_dropcluster 8.3 main --stop
    me:/home/me# pg_upgradecluster 7.4 main
    Checking for users and groups with the same name...
    Creating new cluster (configuration: /etc/postgresql/8.3/main, data: /var/lib/postgresql/8.3/main)...
    Moving configuration file /var/lib/postgresql/8.3/main/postgresql.conf to /etc/postgresql/8.3/main...
    Moving configuration file /var/lib/postgresql/8.3/main/pg_hba.conf to /etc/postgresql/8.3/main...
    Moving configuration file /var/lib/postgresql/8.3/main/pg_ident.conf to /etc/postgresql/8.3/main...
    Configuring postgresql.conf to use port 5433...
    Disabling connections to the old cluster during upgrade...
    Disabling connections to the new cluster during upgrade...
    Re-enabling connections to the old cluster...
    Re-enabling connections to the new cluster...
    Creating globals...
    Fixing hardcoded library paths for stored procedures...
    Upgrading database LTA_FIS...
    Analyzing database LTA_FIS...
    Fixing hardcoded library paths for stored procedures...
    Upgrading database CTNControl...
    Analyzing database CTNControl...
    Fixing hardcoded library paths for stored procedures...
    Upgrading database LTA_IDB...
    Analyzing database LTA_IDB...
    Fixing hardcoded library paths for stored procedures...
    Upgrading database template1...
    Analyzing database template1...
    Copying old configuration files...
    Copying old start.conf...
    Stopping target cluster...
    Stopping old cluster...
    pg_ctl: postmaster does not shut down
    Disabling automatic startup of old cluster...
    Configuring old cluster to use a different port (5433)...
    Starting target cluster on the original port...
    WARNING: connection to the database failed, disabling startup checks:
    psql: FATAL: the database system is shutting down

    Success. Please check that the upgraded cluster works. If it does,
    you can remove the old cluster with

    pg_dropcluster 7.4 main
    wustl@me:~/perlscripts$ ./startctn.pl
    both the archive_agent and archive_server processes have started yay!
    wustl@me:~/perlscripts$ 170162 DB specific error (PostgreSQL:(null)) in PG_Open
    140162 Could not allocate connection handle. dbinit()/dblogin() failed in PG_Open
    40192 Bad Database/Table [LTA_IDB/PatientLevel] in IDB_Open
    Fatal error during startup
    170162 DB specific error (PostgreSQL:(null)) in PG_Open
    140162 Could not allocate connection handle. dbinit()/dblogin() failed in PG_Open
    40172 Failed to open table ApplicationEntity in function DMAN_Open
    bfff4 APP Failed during startup: Could not open control database
    120172 DMAN Illegal handle passed to function DMAN_Close

    Sunday, February 17, 2008

    xorg.conf hebrew settings

    Section "InputDevice"
    Identifier "Generic Keyboard"
    Driver "keyboard"
    Option "CoreKeyboard"
    Option "XkbRules" "xorg"
    Option "XkbModel" "pc104"
    Option "XkbLayout" "us,il"
    # Option "XkbCompat" "group_led"
    Option "XkbVariant" "lyx"
    Option "XkbOptions" "grp:switch,grp:alt_shift_toggle,grp_led:scroll"

    Wednesday, February 13, 2008

    GNU Emacs and UTF-8 locale

    shamelessly copied from


    GNU Emacs and UTF-8 locale

    I recently wanted to shift to a UTF-8 locale, because I wanted to play with stuff like writing in Arabic, and because it seems to be the road forward.

    So I switched and GNU Emacs starts to enter garbage in my buffers. I type “������ ��“, but Emacs gives me “æøå��� éí�“. Ever so slightly less useful, and less readable too.

    I tried fiddling with “Options | Mule | Language Environments” and “Options | Mule | Set Coding System”, but to no avail.

    Somewhat deluded I gave up and went back to Latin 1, mostly at least. Every once in a while I tried again, and one day I stumbled over a reference to the Emacs file etc/PROBLEMS, a section on problems with UTF-8 support in GNU Emacs. Unfortunately the section was gone from my copy, but I found it on the net.

    The solution to all my problems: add the following lines to ~/.emacs:

    (setq locale-coding-system 'utf-8)
    (set-terminal-coding-system 'utf-8)
    (set-keyboard-coding-system 'utf-8)
    (set-selection-coding-system 'utf-8)
    (prefer-coding-system 'utf-8)

    The problem went away and haven’t been seen since.

    BTW, I’m using GNU Emacs 21.3.1, installed from Debian testing and unstable (tried them both).


    Oviyam a new open source dicom web viewer





    uses the
    framework from


    and dcm4che which supports wado

    Tuesday, February 12, 2008

    precompiled headers .gch?

    i dont know about this yet here is something from gtkmm july 2004

    • From: "Cristian Adam"
    • To: gtkmm-list gnome org
    • Subject: [gtkmm] precompiled headers [revisited]
    • Date: Wed, 21 Jul 2004 21:47:36 +0200 (MEST)

    Take this small gtkmm application:

    #ifdef USE_PCH
    #include "precompiled.h"

    int main(int argc, char* argv[])
    Gtk::Main kit(argc, argv);

    Gtk::Window window;


    return 0;

    #ifndef PRECOMPILED_H
    #define PRECOMPILED_H



    The command to create the precompiled header was:
    g++ -o precompiled.h.gch precompiled.h `pkg-config --cflags gtkmm-2.4`

    The command to compile hello was:
    time g++ -o hello hello.cpp `pkg-config --cflags --libs gtkmm-2.4` -DUSE_PCH

    The results are below:

    With PCH Normal
    0m1.172s 0m6.955s
    0m1.168s 0m6.930s
    0m1.173s 0m7.154s
    -------- --------
    0m1.171s 0m7.013s

    The compilation was ~6 (six) times faster with precompiled headers!!!

    Precompiled headers rulle!!!


    • From: Christer Palm
    • To: Cristian Adam
    • Cc: gtkmm-list gnome org
    • Subject: Re: [gtkmm] precompiled headers [revisited]
    • Date: Thu, 22 Jul 2004 01:49:39 +0200

    Cristian Adam wrote:
    The compilation was ~6 (six) times faster with precompiled headers!!!

    Precompiled headers rulle!!!

    OK - I'm seeing similar results now (even with more complex examples - about 4 times faster). I guess my problem was that the precompiled header should be named gtkmm.h.gch and not gtkmm.gch. However, I quickly stumbled across GCC bug 13675 (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13675), which was rather easily worked around by using 2 include files like:
    #ifndef A_INCLUDED
    #define A_INCLUDED
    #include "B.h"


    and then precompiling B.h, while including A.h in my source files. So it seems that it's not quite ready for prime time yet, but I still think it'd be rather interesting to have a build target for gtkmm.h.pch in the standard gtkmm makefile.
    Christer Palm

    and from

    The next thing to alter is the stdafx.h precompiled
    header file. At the time of this writing, many Windows programmers are
    familiar with the concept of precompiled headers. However, many Unix
    programmers are not, as precompiled header support was only recently added
    to GCC (in version 3.4) and is still not used in most open source projects.
    Unix programmers may be tempted to just disable precompiled headers
    altogether, but think carefully before doing this. Proper use of precompiled
    headers provides a much improved compile time when using gtkmm, and will
    save you many hours over the course of a project.

    Thursday, February 7, 2008

    emacs read-only buffers

    27.7 Read-Only Buffers

    If a buffer is read-only, then you cannot change its contents, although you may change your view of the contents by scrolling and narrowing.

    Read-only buffers are used in two kinds of situations:

    • A buffer visiting a write-protected file is normally read-only.

      Here, the purpose is to inform the user that editing the buffer with the aim of saving it in the file may be futile or undesirable. The user who wants to change the buffer text despite this can do so after clearing the read-only flag with C-x C-q.

    variable: Buffer-read-onlyThis buffer-local variable specifies whether the buffer is read-only. The buffer is read-only if this variable is non-nil.

    Tuesday, February 5, 2008

    gtk-perl and focus; Gtk2::Gdk::Keysyms; asciidoc

    you need to have the focus or even just focus capability for the keyboard entries
    to have any affect on a widget.

    thus drawingarea needs $drawing->can_focus to capture signals from key_press_event

    thus its not enough to do add_events

    (also: I am not sure: perhaps if you do -> can focus, you may not even need set_events(["key-press-event]) in the flag .. )

    use Gtk2::Gdk::Keysyms;

    this gives you a LOT of flexibility in using keypress events

    whereas the a valid flag for the $state= $event->state; flags does not include all of them
    thus we have a Control_L or Control_R in Gtk2::Gdk::Keysyms;
    as well as Alt_L and Alt_R, they don't exist in the this list of valid state flags....

    Invalid flags GdkModifierType value control-l-mask, expecting: shift-mask / GDK_SHIFT_MASK, lock-mask / GDK_LOCK_MASK, control-mask / GDK_CONTROL_MASK, mod1-mask / GDK_MOD1_MASK, mod2-mask / GDK_MOD2_MASK, mod3-mask / GDK_MOD3_MASK, mod4-mask / GDK_MOD4_MASK, mod5-mask / GDK_MOD5_MASK, button1-mask / GDK_BUTTON1_MASK, button2-mask / GDK_BUTTON2_MASK, button3-mask / GDK_BUTTON3_MASK, button4-mask / GDK_BUTTON4_MASK, button5-mask / GDK_BUTTON5_MASK, super-mask / GDK_SUPER_MASK, hyper-mask / GDK_HYPER_MASK, meta-mask / GDK_META_MASK, release-mask / GDK_RELEASE_MASK, modifier-mask / GDK_MODIFIER_MASK a

    see man Gtk2::Gdk::Keysyms for more information.


    an interesting python program
    it generates man/html/docbook/can generate pdf
    from ascii format similar to that used by mjd in txt2slides

    Thus is a python program similar to the
    marc dominus perl program
    txt2slides. tgz which itself uses
    txt2html by seth golub which uses a
    model of html.pl package of Oscar Nierstrasz
    which is similar to CGI.pm module conversions to html.

    general idea

    this is a header

    Monday, February 4, 2008

    mutt delete message moves off C-p or C-n moves back to it

    mutt delete message
    how to undelete? seems to skip the message with n or p

    answer control key!
    C-p or C-n moves back to it!

    Thursday, January 31, 2008

    dicom standard where?

    Where are the different VR value representations defined?
    PS 3.5 means section 5 - page 24-33 in 2006 then some encoding examples follow
    where are general image attributes
    PS 3.3 talks about each type of image type
    I think CP14 is the supplement that helps to understand data elements.

    Tuesday, January 29, 2008

    minicom error message Phonelist garbled. What to do?

    I could never figure out how minicom stores its state information. Where
    does it put the phone numbers anyway???? Not it /etc/minicom or such.

    Now ordinarily this is not a problem: let minicom worry itself
    However today there was a problem.
    When I startedup minicom:
    error message:
    Phonelist garbled:
    and lo and behold:
    i can't dial my list of numbers -
    it apparently doesn't remember any of them!!!

    error message:
    Phonelist garbled.

    I dont even know where minicom keeps them. This is irritating!

    Well I did this
    strings /usr/bin/minicom

    and i looked around to see what it had in there: and looked for Phonelist garbled :)

    minicom: cannot setreuid(%d, %d)
    Error writing to ~/.dialdir!
    Manually entered number
    Phonelist corrupted
    Phonelist garbled (?)
    cp %s %s.%hd
    Old dialdir copied as %s.%hd
    No connection: %s.

    so clearly there is something about .dialdir

    so now I did
    strings .dialdir (it is a binary file :))

    and I found my old modem target phone numbers.
    so I copied it to a new file minicom-old-dialdir :)
    and I re-entered the minicom dialto numbers and
    on restarting minicom it has regenerated a new .dialdir.

    Sneaky program. Resoureful user!

    raid 1 loses a disk how to add back in

    cat /proc/mdstat
    Personalities : [raid1]
    md6 : active raid1 sda1[1]
    488383936 blocks [2/1] [_U]

    unused devices:

    what to do?
    if can find the drive on line
    (fdisk -l )
    then do
    mdadm /dev/md6 -r /dev/sdb1

    mdadm /dev/md6 -a /dev/sdb1

    to add back in and then monitor with
    at /proc/mdstat2:/home/wustl# cat /proc/mdstat
    Personalities : [raid1]
    md6 : active raid1 sdb1[1] sda1[0]
    488383936 blocks [2/1] [U_]
    [>....................] recovery = 0.0% (279680/488383936) finish=145.4min speed=55936K/sec

    unused devices:

    Sunday, January 27, 2008

    postgresql 7.4 obsolte

    installation of postgresql-8,3 will automatically create cluster postgresql-8.3
    need to port old to this new.
    however the upgrade automatically creates 8.3 cluster which must be dropped
    before the transfer of old data to 8.3 version.
    thus need to run

    exim4 mail configuration files /etc/exim4/exim4.conf.template

    there is sometimes a problem with verizon mail authentication
    with the default setup of exim4

    in file

    need to set


    see my posting of may 29 2007

    giant Xsession error logs fill drive. /etc/X11/Xsession

    I had noticed a bug a while ago that there were hidden error log files in my home directory as
    large as 25G in size!

    the solution to that was
    to modify the file


    #old contensts were
    #exec >>"$ERRFILE" 2>&1
    #my modification
    exec > "$errfile" 2>&1

    1. who needs these X error logs anyway?
    2. even if we want em, let up should _overwrite them_ not add to the tail!
    they can get really large over months!

    see this post at


    This problem just should be fixed. A running Debian system just
    kills itself by filling the hard disk with .xsession-errors
    files. Unless, of course, the administrator or all users
    know how to prevent it.

    I fixed it by editing my /etc/X11/Xsession:

    Changed this:
    exec >>"$ERRFILE" 2>&1

    to be like this:
    exec >"$ERRFILE" 2>&1

    Now the .xsession-errors file is initialized everytime when
    a user logs in.

    Best regards,

    -- Harri --

    Wednesday, January 23, 2008

    how to keep track of index in perl grep

    well the idea is that
    map { express ? $_:() } @list;
    is equivalent to
    grep exp @list;

    so therefore

    #!/usr/bin/perl -w
    use strict;

    my @blug = qw (apple bug orange twist app);

    # now create anonymous array reference including the array index

    my $i=0;
    my @newarray;
    foreach (@blug) {
    push ( @newarray, [$_,$i] );

    print "now this certainly works \n";
    foreach (@newarray) {
    print $$_[0] ."\n";

    my @out= map {$$_[0]=~/app/ ? $_:() } @newarray;

    print "and we are done \n";
    foreach (@out) {
    print $$_[0] ."\n";


    Saturday, January 19, 2008

    secure add more space to server to store stuff

    ok a standard process.

    1 added 2 new drives and moved out old one
    have now
    mdo-md6 thus 7 raids = 8 sata drives + 1 pata drive
    i used up all 8 places on the sata300 cards (4+4).

    then when i put in new drives and booted up it did not find /dev/md5 (1 drive in place).
    why not because it was now the device /dev/sdh1 while the
    /etc/mdadm/mdadm.conf file did not have /dev/sdh1 in the first line.
    so when i added it in to fix the line to say
    DEVICES /dev/sd[abcdefgh]1
    then we were ok and
    all the old raids were found and created on bootup.

    next we needed to create new raid /dev/md6.
    so steps
    fdisk -l
    found the two new drives that did not have any formating

    fdisk /dev/sde
    and selected p 1 whole drive type fd
    fdisk /dev/sdg
    and selected p 1 whole drive type fd

    then i did
    mdadm -C /dev/md6 --level=1 --raid-devices=2 /dev/sd[eg]1

    error device /dev/md6 not found
    so i did
    mknod b 9 6 /dev/md6

    and then i did
    mdadm -C /dev/md6 --level=1 --raid-devices=2 /dev/sd[eg]1
    and it worked fine to start creating it
    mkfs.ext3 /dev/md6
    then we wait for the sync of the raid and the formating to happen

    then we do the
    creation of the new
    we need the new UUID for the raid...

    so i did
    cp /etc/mdadm/mdadm.conf /root/mdadm.conf

    mdadm -E /dev/sde1 |grep UUI >>mdadm.conf

    edit the mdadm.conf so that we now use the UUID to build the raid1 for /dev/md6
    made sure that the devices line had /dev/sd[abcdefgh]1 so we can build all of them
    then I edited the
    /etc/init.d/raid_build_mount line to assemble and mount the new raid as
    `mount /dev/md6 /home/big6 `
    and then we are done.

    Tuesday, January 15, 2008

    browse over ssh

    in addition to
    ssh -ND destination.ip.com

    set up in
    about:config in iceweasel
    network.proxy.socks_remote_dns to true!

    then all dns requests go out over ssh instead of over nework directly.

    Friday, January 11, 2008

    freeglut-dev (something like htat
    libs needs -lGLU -lGL

    for gtlglext

    ./configure --prefix=/usr

    for gtkglextmm
    ./configure --prefix=/usr
    and we are ok

    use more space on the drive

    df -h
    shows you are not using whole drive
    tune2fs -l /dev/md0
    shows 5% of space reserved
    can do
    tune2fs -m 1 /dev/md0 drops it down to 1% wasted space. could do 0.
    not on system drive.

    Sunday, January 6, 2008

    Getting Citrix for Carecast working on debian sid amd64

    ok how did i get citrix working on the a debian64 machine.

    download the latest citrix application from the website.


    Now citrix uses 32 bit libs not the 64 bit libs you have native so you need to use


    i actually don't know which of those. maybe just first one?

    so then untar it and run the application


    which installs to

    /usr/lib/ICAClient$ ldd wfcmgr
    linux-gate.so.1 => (0xffffe000)
    libXm.so.3 => not available (or something like that...)
    libXp.so.6 => /usr/lib32/libXp.so.6 (0xf7d35000)
    libXpm.so.4 => /usr/lib32/libXpm.so.4 (0xf7d25000)
    libSM.so.6 => /usr/lib32/libSM.so.6 (0xf7d1d000)
    libICE.so.6 => /usr/lib32/libICE.so.6 (0xf7d04000)
    libXmu.so.6 => /usr/lib32/libXmu.so.6 (0xf7cef000)
    libdl.so.2 => /lib32/libdl.so.2 (0xf7ceb000)
    libpthread.so.0 => /lib32/libpthread.so.0 (0xf7cd4000)
    libc.so.6 => /lib32/libc.so.6 (0xf7b8d000)
    libXt.so.6 => /usr/lib32/libXt.so.6 (0xf7b3d000)
    libX11.so.6 => /usr/lib32/libX11.so.6 (0xf7a50000)
    libXext.so.6 => /usr/lib32/libXext.so.6 (0xf7a42000)
    libXau.so.6 => /usr/lib32/libXau.so.6 (0xf7a3f000)
    /lib/ld-linux.so.2 (0xf7fa2000)
    libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf7a3a000)

    thus notice that we need
    (now this is what it shows after i did copied to /usr/lib32/

    which as a 32 bit binary
    does not seem to exist in debian sid at this moment? or i couldnt find it

    so i went to a 32 bit debian sid machine and copied that file and put it in

    and I did this linking...

    ln -s /usr/lib32/libXm.so.3.0.2 /usr/lib32/libXm.so.3

    now when i run

    ldd wfcmgr

    /usr/lib/ICAClient$ ldd wfcmgr
    linux-gate.so.1 => (0xffffe000)
    libXm.so.3 => /emul/ia32-linux/usr/lib/libXm.so.3 (0xf7d3c000)
    libXp.so.6 => /usr/lib32/libXp.so.6 (0xf7d35000)
    libXpm.so.4 => /usr/lib32/libXpm.so.4 (0xf7d25000)
    libSM.so.6 => /usr/lib32/libSM.so.6 (0xf7d1d000)
    libICE.so.6 => /usr/lib32/libICE.so.6 (0xf7d04000)
    libXmu.so.6 => /usr/lib32/libXmu.so.6 (0xf7cef000)
    libdl.so.2 => /lib32/libdl.so.2 (0xf7ceb000)
    libpthread.so.0 => /lib32/libpthread.so.0 (0xf7cd4000)
    libc.so.6 => /lib32/libc.so.6 (0xf7b8d000)
    libXt.so.6 => /usr/lib32/libXt.so.6 (0xf7b3d000)
    libX11.so.6 => /usr/lib32/libX11.so.6 (0xf7a50000)
    libXext.so.6 => /usr/lib32/libXext.so.6 (0xf7a42000)
    libXau.so.6 => /usr/lib32/libXau.so.6 (0xf7a3f000)
    /lib/ld-linux.so.2 (0xf7fa2000)
    libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf7a3a000)
    now it seems to find it, although I certainly did NOT put it in


    I put it in /usr/lib32/libXm.so.3 which is bizarre! But hell it works. who knows what magic?

    and I was done.

    ( thus notice thus we need to have the
    /lib32 and /usr/lib32 directories
    it looks like the correct ones are /usr/lib32

    then to run citrix. go to the web site you want to go to
    log in to citrix application center
    then when you click:

    it tells you that :

    "you have chosen to open
    which is a ICA file

    open with "Browse for application"

    and browse for the file


    and select that and you will be ok.

    then: Go to the Box:

    "Citrix presentation server client for linux"

    you will see the
    Carecast Pool in the middle of box.
    and go to the Connections menu
    and select Connect
    and you will open up a Carecast client

    and you can log in!
    Good Luck!

    Saturday, January 5, 2008

    where to get audio codecs?


    i am suprised that i didnt have this link here before.

    marillat repositories