SCL – miscellany

Prelude. Unless stated otherwise, all work here is free (open source), under a BSD license. You can also find several of these items in my misc repository on GitHub.

gr1c – a tool for GR(1) synthesis and related activities

There is not yet a dedicated website, but a good URL to remember is Two places to start are the README and API documentation.

wrapltl – Web wrapper for J. Klein's ltl2dstar

wrapltl (draft)

To improve accessibility to Joachim Klein's ltl2dstar, and inspired by Paul Gastin's web interface to LTL2BA, I made a very thin wrapper (or interface?).

SD card interface for dsPIC33F

sdspi, example snapshots

This is an elementary implementation of the SD card communication protocol, v1.9/2.00, over SPI on the dsPIC33F chip family. Specifically, I have only tested it on the dsPIC33FJ128GP710 chip. However, I expect this to work without modification (aside from header file and linking details) for PIC24H chips. And it should work with little porting effort for other PIC 16-bit families’ chips.

The code is maintained as part of the BatStack project. (Here are convenience links to direct copies of sdspi.h and sdspi.c in that repository on GitHub.)

The only decent related work I've found is k9spud's code for dsPIC30F.

pullpdfs snapshot

a handy tool (written in Python) for extracting full URLs of all links to PDF documents on a given website.

For example, consider the website for a ‘‘a penultimate draft’’ of the book Algorithms by S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani. Every chapter is available for individual download, in addition to the entire book. provides an easy way to extract all desired URLs, which can then be fed to a download program, such as wget. E.g.,

./ \~vazirani/algorithms.html | wget -i - should work with a standard Python installation on any major operating system. (I recently tested with version 2.6.5, under GNU/Linux 2.6.32.) To pipe the extracted PDF URLs as in the example, you will need wget, which is available on any decent Unix-like system. Note that I escape the ‘‘~’’ character (with ‘‘\’’) to stop the shell from treating ‘‘~vazirani’’ as special, e.g. a user on the local system.

Please do not use this tool to do indiscriminate automated downloads, unless you add a reasonable time delay between each download. snapshot

Generate section lists (i.e. quasi table of contents) for books on the NCBI Bookshelf for which browsing is otherwise not supported. Confer the companion article that describes the hidden navigation tags and this generator script.


ACE-ASE-83 snapshot

a Matlab/Octave implementation of the system described in A.G. Barto, R.S. Sutton and C.W. Anderson (1983). Neuronlike Adaptive Elements That Can Solve Difficult Learning Control Problems. IEEE Trans. on Systems, Man, and Cybernetics. 13(5): 834-846. This example is released under the GNU GPLv3.

gArch, the Gmail Archiver

gArch snapshot

a Python script which, when given a gmail address and password, downloads all emails available via POP3 (through SSL; optionally disabled) and compresses them into a GZIPped TAR archive.


I have or continue to participate in the following projects. This list is not exhaustive.