Monday, June 23, 2008

base64 decode

I was playing around with launching the taverna workflow engine programmatically. The answers it spat back out all looked slightly weird.

IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIFByb2dyYW06IGFudGln
ZW5pYwojIFJ1bmRhdGU6IFRodSAxOSBKdW4gMjAwOCAxMjoyNDo0MgojIENvbW1hbmRsaW5lOiBh
bnRpZ2VuaWMKIyAgICAtc2VxdWVuY2Ugc3dpc3Nwcm90OlAwNDYzNwojICAgIC1vdXRmaWxlICIv
ZWJpL2V4dHNlcnYvc29hcGxhYi13b3JrL3NvYXBsYWIyX2VtYm9zczQvU0FOREJPWC9bcHJvdGVp
bl9tb3RpZnMuYW50aWdlbmljXS0yNTc4NTMyNi


According to the taverna user group this is cos the answer is encoded in base64. To see how it should look, stick it through mmencode:
mmencode -u name.txt

A somewhat more comprehensable answer should emerge:
########################################
# Program: antigenic
# Rundate: Thu 19 Jun 2008 12:24:42
# Commandline: antigenic
# -sequence swissprot:P04637
# -outfile "/ebi/extserv/soaplab-work/soaplab2_emboss4/SANDBOX/[protein_motifs.antigenic]-25785326.11a9e381fc5.67f8/o_outfile"
# -auto
# Report_format: motif
# Report_file: /ebi/extserv/soaplab-work/soaplab2_emboss4/SANDBOX/[protein_motifs.antigenic]-25785326.11a9e381fc5.67f8/o_outfile
########################################

#=======================================
#
# Sequence: P53_HUMAN from: 1 to: 393
# HitCount: 15
#=======================================



Now to find the java libraries to do this in code.

Saturday, June 21, 2008

Vim C++ Autocompletion

Download and install vimcppomnicomplete: http://www.vim.org/scripts/script.php?script_id=1520


Install ctags (not the Emacs version): http://ctags.sourceforge.net/

In /usr/include type:

ctags -f ~/.vim/stdtags -R --c++-kinds=+p --fields=+iaS --extra=+q .



Add the following to ~/.vimrc:


set nocp
filetype plugin on
map <C-L> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR><CR>

set tags=~/.vim/stdtags,tags,.tags,../tags

autocmd InsertLeave * if pumvisible() == 0|pclose|endif


The final line closes the completion box when you leave insert mode. Ctrl-L will update the tags (and so let you autocomplete based on new files) files in the current directory. Thanks go to the various places on the interwebs I robs this info from.

Thursday, June 12, 2008

Truecrypt commands

Given that I will probably forget all this I thought it best to write it down.

Create the volume:
truecrypt --create test.tc 


Mount that volume:
truecrypt test.tc /mnt/data/


Unmount it:
truecrypt --dismount test.tc


All stolen from here:
http://www.movingtofreedom.org/2007/02/10/truecrypt-in-ubuntu-and-fedora-gnu-linux/

Wednesday, June 11, 2008

Using fetchmail with Exchange at the Wellcome Trust Sanger Institute

If you ever go work at Sanger and you're a UNIX/mutt/pine user get them to put you on the UNIX mail server not the Exchange server, once they've set you up on one they'll never change it... If you're on exchange it'll be a world of pain and mutt will take 30mins to open your mailbox over IMAP (fact).


However, if you do find yourself on an exchange server you can use fetchmail to grab your mail and filter it in to a mailbox using procmail. Here's the fetchmail config I use at Sanger, put this in .fetchmailrc:



set postmaster YOURUSERNAME

poll exchsrv2 with proto imap user "YOURUSERNAME" there with password "YOURPASSWORD" is "YOURUSERNAME" here keep options stripcr
mda "procmail -f %F"


This is my .procmailrc it also forwards to an external address as well as delivering to a local mailbox:

set postmaster YOURUSERNAME
SHELL=/bin/sh
DEFAULT=/var/mail/YOURUSERNAME
LOGFILE=/Users/YOURUSERNAME/procmail.log

MAILDIR=$HOME/mail
DEFAULT=$MAILDIR/inbox

PMDIR=$HOME/Procmail

INCLUDERC=$PMDIR/rc.subscriptions

:0c # That's colon, zero, lowercase cee
! AFORWARD@ADDRESS.COM # That's exclamation mark, address to forward to


You'll need to configure postfix or whatever (I'm on a Mac) to relay mail via the local SMTP server as well. For postfix/max stick this in main.cf:

relayhost = mail.internal.sanger.ac.uk

Delete duplicate emails in mutt

``Let say you want to delete all duplicate messages in the current mailbox. Just do a tag-pattern (bound to T here), put in ~= as the pattern, then all duplicates will be tagged. After that, you can delete tagged messages (bound to ;d, or just d if you have $auto_tag=yes).''

Robbed from here. However it doesn't work unless you are sorted in thread mode as described here.