Selling your software – a brief review of two articles by Eric Sink

Closing the Gap, part 1 talks about the function of proactive sales in a small ISV.
Closing the Gap, Part 2 describes an alternative to hiring a sales guy.

Both parts elaborate on closing the gap between your product and a prospective customer.
Part 2 also has links to further reading about the subject.
Those parts and several other articles by Eric Sink are worth the time spent reading them.

What happens if we cross physics with Scheme?

The data structures in Scheme (and for that matter, also in Lisp) can be used to model different realities. Functional programming corresponds to closed systems, which evolute in time without interaction with their surroundings beyond initial conditions and harvesting of computation results. Imperative programming corresponds to open systems, which interact with their surroundings and their state contains a record of such interactions which occurred in the past.

So I am wondering whether additional models of reality can be investigated by means of Scheme. Such as open systems, which hold memory of both past and future events.

In my Google search, I found only the following:
SCMUTILS Reference Manual, which is referred to by Christopher Browne’s Web Pages. However SCMUTILS is not what I am looking for.

Source of inspiration: chapter 3 of the SICP 2nd edition.

PyGTK Hell

I am prototyping a keyword search based application.

For easy programming, I use Python.
For easy GUI design, I chose glade.
So I have to use PyGTK.
The application is not demanding in terms of innovative technology or software versions, so I use a PC with RedHat 8.0.

However, I ran into a snag:
I wanted to use the gtk.TreeRowReference binding to refer to rows of a listbox, which I want to delete.
However, it turns out that the Python bindings of GTK didn’t cover 100% of the GTK’s API. One of the missing APIs is… gtk.TreeRowReference, which was added only to PyGTK 2.4.
The PyGTK version which came with RedHat 8.0 is 1.99.12.

I worked around the problem by using paths. Since paths (unlike references) become invalid if rows are inserted/deleted into the listbox before the row referred to, I had to delete the rows in reverse order – from the end to the beginning.

I promise to myself that next time I install Linux from fresh, I’ll use Debian. Then I’ll be able to solve the problem by upgrading packages until I get PyGTK 2.4 and the appropriate versions of packages upon which it depends.

Another book on software development methodology

Joel on Software recommends Mike Gunderloy’s book Coder to Developer.
There are additional rave reviews.

I am still in middle of Richard Dawkins’ A Devil’s Chaplain (about evolution theory, religion, etc.).

How do other people cope with 20 excellent books waiting to be read, especially if they have family obligations?

Websites for lifetime students

If you have free time to learn something new for the sake of learning rather than for grades, diploma, degree or qualification:

Red Rock Eater News Service – http://polaris.gseis.ucla.edu/pagre/rre.html
This is mostly about social and political aspects of computing and networking.

Troubleshooters.com(R) – http://www.troubleshooters.com/troubleshooters.htm
If you, like everyone, need to troubleshoot something such as a malfunctioning car or a mysterious software bug, read what this Web site has to say about being more productive troubleshooter.

Perfecting the art of building embedded systems – http://www.ganssle.com/
For those fortunate to have a career developing software for embedded systems.
Several articles have relevance also for people, who do not do embedded development.