Scheme
-
mark-selection.scm is a
Script-Fu module for Gimp to quickly highlight spots
of an image for didascalic purposes as in
this sample image. (The three
spots have been chosen randomly and therefore don't show
anything interesting.)
-
frame.scm is a Script-Fu module
for Gimp to
prepare my photographs for Internet publishing. It adds some
new commands you will find under
Image->Script-Fu->Decor.
Scsh
The following code samples have been tested under Scsh 0.5.3.
-
ppplog.scm is an example of use for
SCSH as report language. This scsh script prints some
statistics taken from the ppp.log files (the user-land ppp
daemon of FreeBSD). It prints, sorted by day, the on-line
time, input and output traffic. Something like this:
daemon# ppplog.scm
24/9 01:59:57 12M 8M
25/9 00:26:10 3M 2M
26/9 01:02:01 13M 1M
27/9 02:18:18 14M 4M
28/9 00:31:47 5M 2M
29/9 00:54:41 8M 3M
-
spmr.tar.bz2,
SPMR. Tired
of messing around with a brain damaged syntax akin at the
anachronistic sendmail cf files,
I eventually decided to write an MDA (Mail Delivery Agent)
that would let me sieve and handle my incoming mail from the
comfort of the Scheme language, with all the expressiveness of
Scheme and with the power of a real programming
language. If you want to be able to deal with mime files you
need mpack as well.
Here is an example of rules file.
All you need to do is to redirect your e-mail to spmr.
Something like this in your .forward
file will do:
"| /path/to/spmr"
where spmr is the trampoline program.
Note that the trampoline program improves dramatically
performances on heavy e-mail traffic, avoiding to run multiple
SCSH instances concurrently, which has the potential risk of
clogging the system.
The spmr.image
should be installed in the same
place as the trampoline.
-
Some functions to generate
business cards in postscript. This requires fps 1.0 and
a patch to correct a bug triggered by
my code. You can start from this example
to find out how to use the library.
-
An utility to help
keeping tidy your FreeBSD distfiles directory.
It removes (or shows) the outdated distribution files.
-
An utility to find
system installation problems, such as missing shared libraries
and stray cat pages (pun intended). It walks through
your search path, or a list of directories you supply. It's
useful if you sometimes removed packages without taking care
of broken dependencies. It has been written for FreeBSD but
its usefulness is not limited to that OS.
-
An utility to find broken
symbolic links. It checks, possibly recursively, a list of
files or your current directory for broken symbolic links.
-
update-cvs.scm is a script to
keep up to date the source code kept under CVS by someone
else.
It fully exploits the available bandwidth by executing
parallel cvs commands up to *max-procs*
.
See the .update-cvs
file.
Hitting the INFO key (normally Ctrl-T, see stty
)
you get a neat summary of what's going on.
-
Extract all the e-mail
addresses from files (HTML pages). Any unethical use of
this script, such as the building of spam lists, will be
punished in the afterlife.
-
Convert to tar (but can be anything)
from any other inferior archive format. Aka, yet
another trivial example of Scsh use in everyday life.
-
Create an ISO-9660 image from
a list of directories. It asks interactively some details
guessing some defaults and proposes you to burn the image
right away. It needs cdrtools and mkisofs.
-
Some syntactic sugar for Scsh (or
Scheme48).
One of the features in the wish list of Arc that I found
cool was the square bracket sexp that expands to a single
argument lambda expression. So that one can do things like:
(map [/ _ 2] '(2 4 6 8 10))
(cond ((regexp-exec re str) => [match:substring _ 1]) ...)
instead of
(map (lambda (x) (/ x 2)) '(2 4 6 8 10))
(cond ((regexp-exec re str) => (lambda (m) (match:substring m 1))) ...)
Disclaimer: I am not advocating Perl-ish syntactic crypticism.
This has been written just as a funny exercise in Scsh
hacking.
Here is a less heretic approach for those using
Emacs:
(defun lisp-insert-lambda ()
"Insert lambda form at point asking for variables."
(interactive)
(insert "(lambda (" (read-string "Variables: ") ") ")
(save-excursion (insert ")")))
(add-hook 'scheme-mode-hook
'(lambda ()
(local-set-key "\C-cl" 'lisp-insert-lambda)))
Sawfish
The following code is made for the Sawfish Window manager.
-
A poor man's dock for WindowMaker dockable
applications.
-
Some simple input/output utilities.
-
A few functions to change the LCD
back light intensity of a Sony Vaio. Under FreeBSD you need to
install the sjog package, because this code
calls
setbrightness
. I recommend to bind
increase-brightness
to the
Super-Button4-Click
event
and decrease-brightness
to
the Super-Button5-Click
event. Tested on a
PCG-XG9.
-
A Ctrl-Alt-Del mapping for Sawfish for
those of us stuck with the MS look'n'feel-sick.
All the photographs on these pages are copyright Walter
C. Pelissero. All rights are reserved. No copy, manipulation or
transfer, beside for the sake of personal view of the page where
they appear on, is allowed. Also the direct linking of web pages to
the single photograph image is forbidden.
If you need to have them, much higher resolution hard copies are
available on request.
Copyright © Walter C. Pelissero, all rights reserved
Last modified: Sat Jun 21 11:37:52 CEST 2014