To Read

It's been a while since I've messed around with Squeak/Smalltalk.  The Squeak community has been busy!  After searching just a little bit,  I've found a lot of great catch-up reading:


Posted in Labels: | 0 comments

2007 personal study/projects review

Here's a break down of how I spent my personal study/projects time in 2007

The good
# of new programming languages studied: 2
Studied programming languages grokked: Squeak Smalltalk
Studied programming languages mostly understood: Common Lisp

The bad
# of fiction books read: 3
# of personal projects completed: 0
# of personal projects started: 0

The fact that I didn't start and finish a single project this year is really disappointing. The reason for this was lack of time. The time that I do have to study and work on projects occurs late at night, usually after the kids have gone to sleep. This year I spent all of it on learning the two languages.

In retrospect, I am very happy to have focused on Smalltalk and Lisp. There is a lot to be learned from both, and the mind expansion you get from studying them is worth it even if you don't end up using them.   

For 2008, I'd like to focus on projects.  There are several ideas that I have been thinking about for a while, and I'd like to get them out of my brain and functional.   Initially these will be done using Django, but who knows where the next year will take things.   

Writing the Seaside tutorial was a great experience:  it forced me to focus on understanding the concepts and techniques behind the framework more than just doing recipe-style programming.  I highly recommend this approach to learning something new.   I plan to keep doing this, and would be interested in reading anything you create.

For those who are still reading:  thanks for your positive comments, sorry I didn't write much in the second half of the year, and hope you didn't mind the focus shifts.  Here's to hoping there are some good posts in me for 2008. 

Posted in Labels: | 0 comments

An implementation of cons, car, and cdr

We can build rational numbers and line segments and vectors and all of this stuff in terms of pairs ... out of nothing at all--pure abstraction.

- Hal Abelson, SICP video lecture 2b


(define (cons a b)
(lambda (pick)
(cond ((= pick 1) a)
((= pick 2) b))))
(define (car x) (x 1))
(define (cdr x) (x 2))

Practical? Who cares! Learning stuff like this is an antidote to this:
  1. Create table
  2. Create DAO
  3. Create View
  4. Create template
  5. Sync changes
  6. Deploy
I'm enjoying the heck out of reading SICP slowly, working through the exercises, and watching the videos.

Posted in Labels: , | 0 comments