2007/12/14

A False Sense of Security

Creating self signed certs is straight forward:

umask 277

openssl genrsa 1024 > host.key

openssl req -new -x509 -nodes -sha1 -days 365 -key host.key > host.cert

cat host.cert host.key > host.pem


You then import the generated cert in a client; e.g. with php/curl, the incantation is:

curl_setopt($ch, CURLOPT_CAINFO, '.../ssl/host.pem');

Et VoilĂ ! we have a 'secure' communication path between client and server...

2007/12/02

The hunt for AFK's

qcheck(1) is the key to looking for inconsistencies between what portage installed and a live system: qcheck -aTC

or with nice colour: qcheck -aT

Filtering out python, ... etc false positives (AFK appears to be qcheck code for missing files):

#!/bin/sh
DATE=`date +%Y%m%d`
OUT=${DATE}.log

qcheck -aTC >$OUT 2>&1

filter='/usr/lib/python2.4|/usr/lib/gimp/2.0/python|\
/usr/share/javatoolkit/pym|\/usr/kde/3.5/share/doc|\
/usr/share/icons/hicolor|/usr/share/webapps/phpmyadmin'

grep AFK $OUT | egrep -v $filter | sort >${DATE}-afk.log
grep MD5-DIGEST $OUT | egrep -v $filter | sort >${DATE}-md5.log

Slowly going faster

An old/slow gentoo box:

/etc/conf.d/rc:svcmount="yes"
sticks the service deps into a tmpfs

Filesystem Size Used Avail Use% Mounted on
svcdir 2.0M 188K 1.9M 10% /var/lib/init.d

Any speedup isn't noticable, but its one step closer to running root fs out of a pseudo-SSD
(pcmcia memory card adapter + old SD card). Going ro is painful from quick glance.

Anyway usage rises to 344k on a reasonably well configured box, so 2MB is fine.


tmpfs is a real gain for emerges with an fstab including:

shm /dev/shm tmpfs noatime,size=4G,nr_inodes=200k 0 0

and linking /var/tmp to /dev/shm - 4GB is comfortable for building openoffice.

2007/11/21

A brief history

Liking xemacs meta-A to call set-mark-command:

(defun php-hook ()
""
(define-key php-mode-map [(meta a)] 'set-mark-command))

(add-hook 'php-mode-hook 'php-hook)
(require 'php-mode)

I don't care to recall how many times I have had to resurrect this arcane formula over the years.

And php-mode is in portage for emacs, but not xemacs...

2007/11/15

What big documentation you have

I used kdoc to some effect previously. It was a good habit to get into.

doxygen is the generator of choice where I am at the moment.

The incantation I stumbled on
involves:
$ doxygen -g proj.dox
$ vi proj.dox
...
ALWAYS_DETAILED_SEC = YES
JAVADOC_AUTOBRIEF = YES
EXTRACT_ALL = YES
INPUT = x.h y.h ...
GENERATE_MAN = YES
...
$ doxygoen proj.dox


The html is ok and I like the man pages it spits out.

2007/11/14

Command Lines to Forget

Things I find useful to keep handy...

Installing CPAN modules somewhere other than in the system perl directories

perl Makefile.PL INSTALL_BASE=/home/me/perl
perl Makefile.PL PREFIX=/home/me/perl

Generating usable postscript from man pages

groff -man -Tps apage.3pm >apage.ps

Landscape pages from a2ps

a2ps --columns=1 -f 9 -r -o RESULTS.ps RESULTS.txt

Validate XML against an external DTD

xmllint --noout --postvalid --dtdvalid the.dtd the.xml

Extracting an rpm to the current directory

rpm2cpio foo.rpm | cpio --extract --verbose --preserve-modification-time --no-absolute-filenames --make-directories

2007/10/26

C99 or back to the future

Its almost 10yrs since I had to look at any significant C, and it was pleasant to find that C99 has added:
  1. for loop initialisers are supported
  2. declarations can be mixed with code
  3. there is a bool type
  4. the C++ // comment is supported
  5. and some weird array and macro stuff (variable length arrays are broken in gcc)
And C style casting was something that I tried very hard to forget.