notes, hacks, tweaks, config files, etc.
These are mostly just notes for myself, but I've made them publicly available in case someone might find them useful.
PDL cumuintover function | PDF makefile | .muttrc file | what programs are listening to open ports
LPD printer setup in CUPS |
Convert PS to PNG |
Color PS to Gray |
apt-get
MMap errors
apt-get sources.list
file |
Turning off emacs bars |
ssh config |
exim4 config
cumuintover function for PDL
I've implemented a "cumuintover" function. Analogously to "cumusumover" and "cumuprodover" it returns a piddle with the same dimensions as the input containing the integral over the first dimension.
Note that it will crash if you feed it a piddle with a first dimension of less than 6. If it's of use to anyone, I could modify it to behave like intover and work for dims < 6.
Here is the code and demo of the code using inline, along with the pp_def.Running the demo should give:
$ perl demo_cumuintover.pl x | num | ana | rel err 0 0 0 nan 1 2.13 2.13 8.43e-08 2 14.1 14.1 3.68e-08 3 56.5 56.5 1.91e-08 4 162 162 1.23e-08 5 377 377 9.35e-09 6 758 758 7.95e-09 7 1.38e+03 1.38e+03 7.37e-09 8 2.33e+03 2.33e+03 7.3e-09 9 3.7e+03 3.7e+03 7.62e-09 10 5.63e+03 5.63e+03 8.3e-09
Here's the pp_def:
# from equation 4.1.14, Press et al. 2nd Ed chapter 4.1 pp_def('cumuintover', Pars => 'f(n); int+ [o]g(n);', Code => ' int i; int ns = $SIZE(n); $GENERIC(g) tmp = 0; threadloop %{ tmp = (3.0/8.0) * $f(n=>0) + (7.0/6.0) * $f(n=>1) + (23.0/24.0) * $f(n=>2); for (i=5;ii) = tmp + (23./24.) * $f(n=>i-2) + (7./6.) * $f(n=>i-1) + (3./8.) * $f(n=>i); tmp += $f(n=>i-2); } $g(n=>0) = 0; $g(n=>1) = ($f(n=>0) + $f(n=>1))/2.0; $g(n=>2) = ($f(n=>0) + 4. * $f(n=>1) + $f(n=>2) ) / 3.0; $g(n=>3) = (3/8) * ($f(n=>0) + $f(n=>3) + 3. * ( $f(n=>1) + $f(n=>2) ) ); $g(n=>4) = (1./45.) * ( 14. * ( $f(n=>0) + $f(n=>4) ) + 64. * ( $f(n=>1) + $f(n=>3) ) + 24. * $f(n=>2) ); %} ' );
Makefile for automating the generation of PDF or postscript files from latex source
If you have a latex file called name.tex
you would run
the command make -r name.pdf
. See the comments for a way
to include bibtex processing.
.muttrc file config file for mutt
You'll need to edit it for your own mail server configuration. Look for lines with the comment "replace".
Finding out what programs are listening to open ports
nmap
, lsof
, and netstat
, all fairly standard linux utilities, can help you find out what open ports you have on your machine and what programs are listening to them.
nmap localhost
reveals what ports are listening on the local machine.
lsof -i
as root (or sudo lsof -i
) reveals what programs are listening to what ports.
netstat -lp --inet
as root (or sudo netstat -lp --inet
) also reveals what programs are listening to what ports.
Setting up LPD printers with CUPS in Debian GNU/Linux
based on a Solaris printers.conf fileI looked at a file called /etc/printers.conf
on a Sun
machine that was already set up to print on our network. It had an
entry that looked like this (of course host.domain.name was an actual
host name):
dp_1414:\ :bsdaddr=host.domain.name,dp_1414,Solaris:
Physical inspection reveals that the printer is a Lexmark T420, but I
didn't have a driver handy for that, so I decided to try the "HP 4100
PS" driver that I was already using for another printer. I set up an
"LPD/LPR" printer with "Device URI:
lpd://host.domain.name/dp_1414
", selecting "Make: HP" and
"Model: HP LaserJet 4100 PS". Miraculously enough, it seem to work
(presumably because they both use postscript). I even got it to print
double sided by setting the "Duplex: flip on long edges" and "Duplex
unit: installed" options in CUPS.
Batch Conversion of postscript files to PNG images
I use pstoimg
, often with the -flip
option:
pstoimg -flip cw filenames*.ps
Batch conversion of color postscript to gray-scale
This script works well for me, and allows conversion to either gray-scale or straight black-and-white. I wrote a another script as a quick-and-dirty solution for converting a whole batch of files.
For example:
mkdir bw_figs perl batch_bw_convert.pl bw_figs *.ps
Preventing MMap errors using Debian package management
Running synaptic package manager on my Ubuntu ("Breezy-Badger") system orapt-get
I was getting "MMap" errors after I added a bunch of extra software repositories to my /etc/apt/sources.list
file:
roban@lithops:~$ sudo apt-get update Get:1 http://us.archive.ubuntu.com breezy-updates Release.gpg [189B] Get:2 http://http.us.debian.org stable Release.gpg [189B]...
E: Dynamic MMap ran out of room E: Error occurred while processing synaesthesia (NewVersion1) E: Problem with MergeList /var/lib/apt/lists/http.us.debian.org_debian_dists_oldstable_main_binary-i386_Packages E: The package lists or status file could not be parsed or opened.Found the solution was to create a file
/etc/apt/apt.conf.d/00Cache
with the following contents:
APT::Cache-Limit "141943904";This could probably be a much smaller number, but I'm not having any problems with it, yet.
In one line:
su echo 'APT::Cache-Limit "141943904";' > /etc/apt/apt.conf.d/00Cacheor (note that this uses a subshell to make redirection work with sudo, a trick taken from the sudo man page)
sudo sh -c "echo 'APT::Cache-Limit "141943904";' > /etc/apt/apt.conf.d/00Cache"
apt-get sources.list
file
Turning off emacs toolbar, menubar, and scrollbar
I used to have some lines in my .emacs file like this:(menu-bar-mode 0) (tool-bar-mode 0) (set-scroll-bar-mode nil)But that was a problem because I couldn't properly set the emacs frame (X window) geometry in my .Xresources file because the frame shrinks when the bars are turned off after emacs has started up rather than giving the extra space to the text window. A better solution is to specify that you don't want these bars in your .Xresources file:
emacs.geometry: 80x53 emacs.menuBar: off emacs.verticalScrollBars: off emacs.toolBar: 0Works like a charm. Remember, after editing your .Xresources file, run
xrdb -merge
~/.Xresources
to see the effects of your changes.
ssh config file
My customized ssh config file just has a couple settings changed from the defaults: forward X connections and turn off hashing of the known_hosts file. Turning off hashing allows the bash auto-completion engine to tab-complete host names for the ssh command. This file is~/.ssh/config
on my computer.
exim4 config
After installing exim4 (or running dpkg-reconfigure
exim4-config
) I still needed to get authentication working for
our SMTP server.
To use an alternate port when you want exim4 to deliver mail to a
smarthost, add the line port = 587
(where 587 is replace
with whatever port you want to use) to the
remote_smtp_smarthost
section of your configuration
file (in debian /etc/exim4/exim4.conf.template
).
For our system I also had to add the following lines to
/etc/exim4/passwd.client
mail.astro.columbia.edu:roban:PASSWORD_HERE
sedna.astro.columbia.edu:roban:PASSWORD_HERE
*:roban:PASSWORD_HERE
Then I ran update-exim4.conf
, restarted exim4, and
sending mail worked from mutt.