To Read
Posted On Thursday, February 21, 2008 at at 8:00 PM by mjIt'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:
- Squeak by Example - I haven't gotten far in this, but love it already
- Squeak Development Example tutorial by Steven Wessels
- Seaside Tutorial by the Hasso-Plattner-Institut
- Ramon Leon's blog is always on point
- Mark Miller has written some thoughtful stuff
2007 personal study/projects review
Posted On Friday, December 21, 2007 at at 10:36 PM by mjHere'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.
An implementation of cons, car, and cdr
Posted On Saturday, December 01, 2007 at at 8:11 PM by mjWe 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:
- Create table
- Create DAO
- Create View
- Create template
- Sync changes
- Deploy