More Scheme projects I would like to work on

Here are some more fun and/or interesting Scheme projects that I would like to work on (eventually, and in addition to these):

  • DrScheme: Add line numbers to the editor window
  • DrScheme: Execute code in editor in another Scheme system
  • Port SchemeUnit to R6RS Scheme
  • Scribble the SRFI docs
  • Write a debt-elimination application
  • A Scheme API for generating Graphviz diagrams
  • A Scheme API for managing complex SVN projects
  • Make Scheme screencasts
  • Brush up on the PLT Scheme GUI API
  • Research currency and produce a SRFI for it

Would you find value in a Scribbled version of the SRFI docs?

The Scheme SRFIs are a collection of useful and portable Scheme code meant to provide commonly used functionality not included in the specification. The standard documentation format is HTML. For example, here is SRFI 1. While this format works fine, I am wondering if a Scribbled version would be a useful addition. Scribble is the tool used to document PLT Scheme. Here is an example of how their documentation looks.

Doing so would be pretty easy by implementing it as a PLaneT package; the documentation itself could be distributed via PLaneT or a simple file download for anyone interested.

What do you think?

A Favorite Passage on Programming

Like Geoff, I find the following passage from HTDP to be one of the most inspirational pieces I have ever read about programming.

Yet programming is more than just a vocational skill. Indeed, good programming is a fun activity, a creative outlet, and a way to express abstract ideas in a tangible form. And designing programs teaches a variety of skills that are important in all kinds of professions: critical reading, analytical thinking, creative synthesis, and attention to detail.

We therefore believe that the study of program design deserves the same central role in general education as mathematics and English. Or, put more succinctly,

everyone should learn how to design programs.

On one hand, program design teaches the same analytical skills as mathematics. But, unlike mathematics, working with programs is an active approach to learning. Interacting with software provides immediate feedback and thus leads to exploration, experimentation, and self-evaluation. Furthermore, designing programs produces useful and fun things, which vastly increases the sense of accomplishment when compared to drill exercises in mathematics. On the other hand, program design teaches the same analytical reading and writing skills as English. Even the smallest programming tasks are formulated as word problems. Without critical reading skills, a student cannot design programs that match the specification. Conversely, good program design methods force a student to articulate thoughts about programs in proper English.

Paralell Programming with PLT Scheme

Via plt-dev:

I’m pleased to announce the initial release of parallel futures, a construct for fine-grained parallelism in PLT. Roughly speaking, a programmer passes a thunk to ‘future’ and it gets run in parallel. That “roughly” holds a few gotchas, partly because we’re just getting started and partly due to the technique we’re using. See the documentation for more details:
http://pre.plt-scheme.org/docs/html/futures/