My cheatsheet of random computer-related stuff.

Password-less ssh

First generate an authentication key on the host you intend to run the code from:

% ssh-keygen -t rsa

During this procedure you will be prompted for a passphrase – set one or leave empty (no passphrase). Then send the contents of the file “~/.ssh/” created by the previous command to one of the networked Linux machines you wish to use:

% cat ~/.ssh/ | ssh user@machine2 'cat >> .ssh/authorized_keys'

If the file “~/.ssh/authorized_keys” doesn’t exist, create it.

Now password-less ssh to the workstation should work.

screen (e.g., here)

Start screen: screen
Exit screen: exit
Detach from screen (it keeps running in the background): Ctrl+A+D
Return to screen screen -r
If multiple screens running, then screen [-d] -r [pid.] (list of screens from running screen -r)


port selfupdate
port outdated
port upgrade outdated
port installed inactive
port uninstall inactive
port uninstall inactive and not <portname>
port echo depends:<portname>
port dependents <portname>
port installed requested and rdependentof:<portname>
port installed requested
port echo leaves
port setrequested <portname>
port unsetrequested <portname>
port uninstall --follow-dependencies leaves
port select --list python
port select --set python python34

Command line to reduce PDF file size

gs -sDEVICE=pdfwrite -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

Gnuplot examples

set terminal png
set output 'file.png'
plot 'horiz_avg.0' using 2:1 with lines, '' using 6:1 w l, '' u 7:1 w l

Backup using rsync

Backup of home directory:

rsync -Pavvz --delete /Users/johndoe/* /Volumes/Backup/Users/johndoe/

Backup of home directory with exclusion of a directory:

rsync -Pavvz --delete --delete-excluded --exclude 'VirtualBox VMs' /Users/johndoe/* /Volumes/Backup/Users/johndoe/

Backup that involves ssh:

rsync -Pavz -e ssh --delete johndoe@machine:~/* /Volumes/Backup/Machine/

-P = --partial --progress keep partially transferred files, show progress
-a = -rlptgoD archive mode (recursive, copy symbolic links as they are, preserve permission, time, group, owner, devices)
-v = --verbose increases verbosity, -vv talks a lot
-z = --compress compresses the data on transfer
--delete delete files on receiver, that do not exist on sender

Bootable backup (from

Ditto is a command-line utility that ships with Mac OS X. Ditto preserves permissions when run as root and preserves resource forks by default. Ditto can be used to clone your system with the following step:

sudo ditto -X / /Volumes/Backup

rsync can be used to make a bootable clone as well. In addition to basic file copying, rsync also offers the ability to synchronize the source and target volumes — it can copy only the items that have changed, thus subsequent clones, or backups, are much faster. The syntax is pretty easy:

sudo rsync -xrlptgoEv --progress --delete / /Volumes/Backup

That will backup your entire drive, deleting anything from the target that is not on the source drive (synchronizing, that is). Rsync also preserves resource forks (that’s what the “E” argument is for) and will give you a bootable backup just as well as ditto. Learn more about using rsync to regularly backup your drive to a remote machine.

Linux tools

sort, uniq, tr, wc, xargs

New Linux X server restart key combination: AltGr-PrintScreen-K

ssh tunneling

Example: need to connect to lyon through praha

1. Edit /etc/hosts and change    localhost

to    localhost

2. Edit .ssh/config and put there

port 4444

3. Run

ssh -X -f -N -L

4. Then run

ssh -X



Swapping colors:

convert input.jpg -fill to_color -opaque from_color output.jpg

Make a color tranparent (note jpeg’s cannot have transparent bg, need to use gif or png):

convert input.jpg -transparent color output.gif

Mercurial (

$ hg init project
$ cd project
$ echo 'print("Hello")' >
$ hg add
$ hg forget
$ hg commit  OR  $ hg commit -m 'message'  NOTE  commit = ci
$ hg log
$ hg status
$ hg diff
$ hg cp a b
$ hg mv a b
$ hg log -p -r 3
$ hg update 1   NOTE   update = up
$ hg update tip
$ hg update null
$ hg identify -n
$ hg merge
$ hg resolve --list
$ hg resolve conflicting_file
$ hg resolve --mark conflicting_file

Paper sizes and printing

8.5×11 “letter” | 8.5×14 “legal” | 11×17 “tabloid” | 17×11 “ledger”

xdvi -paper letter|legal|tabloid|ledger file.dvi
dvips -t letter|a4 file.dvi
dvipdfm -p a4 file.dvi
a2ps --medium=A4 -o file.txt
a2ps -M A4 -o file.txt

pdflatex creates pdf of correct size corresponding to specification in geometry setting.

Linux double-sided printing long-edge binding:

lpr -Palenka -o Duplex=DuplexNoTumble file.pdf

Linux double-sided printing short-edge binding:

lpr -Palenka -o Duplex=DuplexTumble file.pdf


Handbrake or Mac The Ripper

Strings in Mail

Automatic strings in reply messages, forwarded messages, etc… – edit file:


HP Printer WiFi setup

First part following this YouTube video: but first connect to hpsetup and then print the first network config page

Then should see it in Add printer -> Default (on OS X 10.6)

Thunderbird: specify different “Trash” folder

Linux: Edit → Preferences → Advanced – General tab → Config Editor. Get the server number # from inspecting different values. Right click somewhere in the box, select New → String, name is mail.server.server#.trash_folder_name (with the correct value for #), value is the name of the desired trash folder (e.g. “Deleted Messages”). Restart Thunderbird.

Slow Safari

Disable DNS prefetching: defaults write WebKitDNSPrefetchingEnabled -boolean false

Re-enable: defaults delete WebKitDNSPrefetchingEnabled

Rebuild the LaunchServices database (clean up “Open with” drop-down menu)

sudo /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain system -domain local -domain user

UCB 7th floor printers


Compiling on lstcluster,, access through lstblende,,

ifort -lscs -O3 -r8 -o 2phase 2phase.f90

lstblende – RAM 15.9 GB, 64 arch