« In Defense of Prolog | Main | Ahem... »

January 09, 2005

Recipes, Prolog

Alex has been digging up a lot of interesting recipes lately, so I went ahead and added a few of them to my recipes page. I hope this isn’t copyright infringement, but it probably is. :) Soon we’ll all be using BitTorrent to download recipes, and various food megacorps will bemoan the state of affairs when twentysomethings can actually prepare interesting food without paying them licensing fees for the intellectual property which is and algorithm for producing a particular taste.

Of the three books I got recently, I’ve had the hardest time putting down the Prolog book. Richard A. O’Keefe’s English is just too awesome. Here’s a paragraph of his from the beginning of the book (page 2, The Craft of Prolog) that really struck a chord:

If I may intrude a personal element here, one of the things which distinguishes imperative programming in C, Pascal, Fortran or whatever from declarative programming in Prolog, Scheme, ML or whatever for me is a big difference in feeling. When I code in C, I feel that I’m on a knife-edge of “state”—I focus on statements and what they do. I’m worried about the behavior of a machine. But when I’m writing Prolog, the predicates feel like geometric objects and the data flow between goals feels like lines of tension holding the goals together into an integrated whole, as if the program fragment I was working were a large Rubik’s cube that I could handle and move from one configuration to another without destroying it. When I fix mistakes in a Prolog program, I look for flaws in the static “spacial” configuration of the program; a mistake feels like a snapped thread in a cobweb, and I feel regret for wounding the form. When I’m coding in C, I worry about ‘register’ declarations and pointer arithmetic. When I’m coding in Prolog, I worry about getting the interface of each predicate just right so that it means something and has the visible perfection of a new leaf.

One thing I’ve realized since getting this book: I need to understand Prolog better! So next up is The Art of Prolog and we’ll see if I can actually learn it as well as I’ve wanted to since, well, forever.

One of the first computer books I ever held in my hand was The Secret Guide to Computers. It’s published by this guy out of his house in the north east somewhere. He puts his phone number in it, and offers to answer any question to the best of his ability, for free, at any hour, to anyone. I recall calling it and asking him about DriveSpace 3 (he basically said, “you’re fucked”). Anyway, in this book he had snippets of a few dozen programming languages, and the one I was most taken with from his selection, was definitely Prolog. I should try and find that book again. I typed up his Coin Flipping game in QBASIC at least a dozen times, and tried to re-implement it in a number of other languages (most recently, Io).

The book I’ve spent the second-most time with is Learning Bayesian Networks. I wish I could say at this advanced state that I’m no longer afraid of mathematics, and I can almost say it, but books like this one put the fear back in. It’s a really interesting topic, especially from the perspective of someone who has an inkling of interest in expert systems and artificial intelligence. I wish I had been exposed to more of that kind of thing at Tech. If Dr. Lassez had been around when I got there, maybe I would have. Oh well. I’m going to try and work through this book, but the material is really dense.

Baird and I have been talking a lot about network filesystems and their implementation. I hope this goes somewhere.

I restrung Faust’s guitar tonight. I think I did OK for a first-time attempt, though at least one of the strings you have to turn the wrong way, and it doesn’t look right to me, but Alex says it’s probably fine and it does sound fine. I’d kill for a metal tutor up here. I’m not very trusting of online documentation about how to play guitar. We’ll see. I probably should have gone ahead and purchased my own guitar.

Posted by FusionGyro at January 9, 2005 10:37 PM

Trackback Pings

TrackBack URL for this entry:
http://www.clanspum.net/~fusion/blog/admin/mt-tb.cgi/79

Comments

Post a comment




Remember Me?

(you may use HTML tags for style)

Want HTML? Use Textile instead.