Rick Walker
Rick Walker was born in San Rafael, California in 1960. He received his BS degree in
Engineering and Applied Science from the California Institute of Technology in 1982, and his
MS degree in Computer Science from California State University at Chico in 1992. Rick worked at
Agilent Laboratories (formerly Hewlett-Packard) from 1981 until 2003, where he was a principal
project engineer specializing in phased-locked loop theory, high-speed clock recovery design, and
data coding techniques for fiber-optic data transmission. He has authored
numerous
professional papers and holds 40 U.S. patents
in the areas of high-speed links and circuit design. In
particular, Rick was the inventor of the 64b/66b line code adopted by the IEEE for
use in 10Gb/s Ethernet.
Linux software
-
Nrm - "new rm".
-
A recoverable file delete and undelete program for Linux. Use it to replace
your stock 'rm' program to recover deleted files up to three days later.
-
Pdplot
-
A public domain re-implementation of Bob Jewett's autoplot X11 graph program.
Pdplot takes x,y pairs from standard input, interspersed with optional
formatting commands and creates a nicely scaled graph in an X11 window.
-
Piglet
-
A public domain re-implementation of HP's Piglet technical drawing editor.
Piglet is notable for it's hierarchical definitions of drawings, something
that is very rare in PD CAD drawing programs.
-
Post
-
A post-processor for Ngspice, Berkeley Spice and HSPICE raw files.
Post() provides a shell interface with command line history, and a yacc-based waveform math and measurement
language. It is a from-scratch implementation loosely modeled after
HP's internal post() tool for plotting and analyzing HPSPICE rawfiles.
Post() is in early development, so expect changes in the waveform processing
language with each release. Please contact me if you are interested
in post() and I'll keep you in the loop about latest releases. This
version uses Gnuplot for the graphing engine. This current
version lets you load a raw file with ci "rawfile". The basic data type
is the piece-wise-linear (PWL) complex waveform. A waveform can be either
loaded from a SPICE run, or defined with something like "a={0,0 1,1 2,3+4*i}"
You can do math on piece-wise-linear waveforms such as "a=mag(v1+sqrt(5)*v2)" or
"deriv=(v2-delay(v2,1u))/1u". (yes, engineering suffix notation is supported in the parser).
There are waveform measurement verbs such
as "t1=xcrossp(v1,5)", which translates to finding the time of the fifth
positive-going zerocrossing of a waveform "v1". Some interesting features: An RC low-pass
filter can be created with "lpf(p1,tau)". Of course a high-pass signal is
just "1-lpf(p1,tau)". Post() solves the differential equation for each segment
of the PWL and then outputs an anti-aliased uniform-sampled waveform for subsequent
processing. You can graph several signals: a,b,c,d on on graph with "gr a,b,c,d",
or on two seperate y-axes with "gr a,b;c,d". You can limit the x-axis range with
"gr a,b;c,d xl 1 10". Each graph can be similiarly scaled and limited in the yaxis
by using the "yl min max" command. Read the HELP file for a current list of functions
and commands.
-
velo
-
A command line program that takes ASCII data consisting of lines of x,y,z,w coordinates and computes
coordinate stepper motor drive pulses for feeding to a 4-axis CNC. Can be used in conjunction with piglet(1)
above to do engraving with DXF and Hershey fonts. Simple awk or perl programs can easily machine expeller
screws or parabolic surfaces. The program source includes velo(1) the trapezoidal velocity and acceleration constrained optimizer, and feed(1) which sends the encoded step pulses to a simple USB PIC processor for converting
to standard step and direction pulses for controlling a stepper driver. The input files to velo(1)
can easily be plotted with pdplot(1). A simple awk script can be used to select any two of x,y,z,w to give an
orthogonal projection of the toolpath.
-
bbsim
-
A bang-bang Phase-locked-loop (PLL) simulator written in C, which allows quick
development of design intuition by simulating bang-bang loops under lots of cases quickly...
-
aplay - "audio playing program".
-
A pitch-shifting, speed-shifting program to play or loop any desired segment of
a cd-format .wav file. Invaluable for musicians to learn licks by playing them
at slow speeds, or to learn a song in a different key by pitch-shifting a classic
cover tune.
-
tm - "typemon, monitor keyboard mouse usage and suggest rest breaks"
-
Tm attempts to reduce repetitive stress injury (RSI) by monitoring
mouse and keyboard activity to suggest periodic rest breaks. If the
consecutive time of typing or mousing exceeds the user-defined limits,
then a warning window pops up advising the user to take a rest break.
The window remains until there has been no typing or mousing for the
user-defined rest time. A log file ~/.typelog keeps track of the total
cumulative typing and mousing times for each day. This data can be
plotted in histogram form using the script typehisto.
Tm is a graphical tck/tk program written for modern linux kernels.
It uses the /proc/interrupts file for keyboard and mouse monitoring, but
can be easily modified for other platforms.
Other links
-
Papers, Talks and Patents
-
PDF files of papers, public talks, and issued patents.
-
Carnivorous Plant Database
-
A taxonomic database of all carnivorous plants (with photos!)
-
Recent Paintings
-
Paintings that I've done at the AHA! Center from 2004-present.
Rick Walker
rick_walker "AT" omnisterra.com