The Purpose Driven Life

I've been reading The Purpose Driven Life as part of a small group at my church. A quick Google search turns up a large number of PDL critics, who mostly concentrate on nitpicking theological and stylistic nuances in the book, and I find myself in the same boat. I've been pretty underwhelmed by this book, it's not that I find myself disagreeing with what Rick Warren says, but rather that it didn't move me. Considering the hyperbole in the preface and on the back cover, that's a disappointment. Warren takes 36 chapters to finally reveal that as a Christian, the purpose for your life is to fulfill the Great Commission, which isn't exactly a new idea to me. I think that Warren trivializes the task, though, concentrating on an individual's reasons for being reticent to talk about their faith, but not placing enough emphasis on the difficulties: what does it mean to love God and your neighbor? How about your enemies? I think that part of the problem is also that this book is a victim of slideware. It occurred to me last night that transforming the Purpose Driven life into a PowerPoint slideshow would be a pretty trivial transformation. There's no flow to it, and he doesn't have a chance to develop a point before it's time to click to the next slide. But who am I to argue with success? If this book helps people to see God, then great. But I feel like the book builds up to an anti-climax, and de-emphasises the more difficult issues. Ultimately, it's easy to tell people what you believe. It's a lot harder to love people, in spite of what they believe.

— Gordon Weakliem at permanent link

The Purpose-Driven Life: What on Earth Am I Here For?

Tree-Structured Languages

Patrick Logan responds to my comment on tree-structured languages. I knew had in the back of my mind that trees are a degenerate case of lists, which is why I commented that to say Lisp is list oriented is oversimplifying. I do realize that most every Lisp text tackles this, I know that ANSI Common Lisp does, as does SICP. It's just that these approaches all seem to be designed for a specific tree structure (for example, binary trees), and aren't built into the language, per se. Now I don't know a great deal about pattern matching on lists, and maybe this is the missing link for me, but what I'm getting at is that you can make a dict look like a tree, and you can make a list look like a tree, but what would be ideal is to have operations that operate on a tree baked into the syntax of the language. Lisp can be extended up to create that syntax, but as far as I know, it has to be built by the programmer. What would the best practices be for handling trees in CL or Scheme? SSAX is one approach, but I'm guessing that there's more out there that I'm not aware of. Actually, this brings up a point that the CL community is fragmented enough that it's hard to find libraries. Scheme at least has the SRFI process, what is there for CL? The other night, the guys from Franz were talking about ways to encourage development and sharing of CL libraries, a CPAN for CL, even on a much more limited scale, would be awesome for the community, if the libraries were portable (I know that Franz is more interested in ACL support, but even as an ACL user, I feel like some level of cross platform compliance would be even better). Right now, the default answer is to extend the language up to your problem domain, but CL would be much more approachable if we'd do more sharing of generic solutions.

— Gordon Weakliem at permanent link

Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science)

A Word A Day

I've been an email subscriber to A Word A Day since 1996, and now they have a long overdue Syndicated Feed. I've looked at other "word of the day" feeds, and they just don't compare to the work that Anu Garg has done. I just emailed a suggestion to Anu that the syndicated feed contain the entire content, rather than just the definition. For instance, compare the RSS version with the long version. Also, check out the Internet Anagram Server (aka I, Rearrangement Servant, aka Inert Net Grave On Mars) for some fun (YMMV, depending on how you define "fun").

— Gordon Weakliem at permanent link

Cookies and Continuations

Avi has an excellent point:
the idea of using opaque URLs to reference transient session objects (rather than the session as a whole) goes back at least as far as NeXT and WebObjects, if not further.
Since Amazon is the de facto strawman for arguments about RESTful behavior, here's my Amazon homepage, and here's the homepage for a user that's not signed in. The diff on these two is only in the part of the URL following the /, and when I paste the latter into a browse that has been signed into Amazon, I get redirected to the former, and I'll bet that if you click on the former, you'll get your own home page. I haven't delved deeply into this, but I'm sure a cookie is involved. It seems to me that a URI scheme needs to pass the following tests:
  1. Does cut and paste work?
  2. Can you prevent session hijacking when necessary?
Amazon seems to pass these two tests, though it may be susceptible to session hijacking if the hijacker has access to your cookies, I haven't checked that. I suspect that a completely secure solution to the 2nd problem would be difficult or impossible, but certainly solvable for the simple case I've demonstrated.

— Gordon Weakliem at permanent link