Poem from Yes’ Relayer album

Posted by steve | Music | Monday 12 April 2010 1:51 am

In 1974 the progressive rock band Yes created an album that became one of my favorites. Inside the album cover, of a fantastic painting by Roger Dean, was a printed a poem. I still remember the opening lines of that poem and thought about it when awakening this morning. This is the poem:

Snakes are coiled upon the granite
Horsemen ride into the west
Moons are rising on the planet
where the worst must suffer like the rest.

Pears are ripe and peaches falling.
Suns are setting in the east.
Women wail, and men are calling
to the god that’s in them, and to the beast.

Love is waiting for a lover.
Generations kneel for peace.
What men lose, Man will recover
polishing the brains his bones release.

Truth conceals itself in error.
History reveals its face:
days of ecstasy and terror
invent the future that invents the race.

Donald Lehmkuhl
(c) October 1974


Playing Carcassonne in a restaurant

Posted by steve | Board Games | Sunday 11 April 2010 4:47 am

Last night Melissa and I went out for dinner.  I had a wonderful steak and lettuce wedge.  She was driving, so I also enjoyed margaritas with my meal.  We were fortunate enough to end up with a large table/booth because we brought along one of our favorite board games to enjoy while having our meal.

We brought along Carcassonne, the Travel Edition.

This is a special “baby” version of the standard Carcassonne game.  The tiles and the wooden components, known as Meeple, are all slightly smaller.

Photograph by Henning Förthmann

What’s really cool is that the game comes in a little cloth bag which is unfolded and laid flat on the table and used as the score board.

Photograph by Henning Förthmann

The interesting this is that we must have been placed, by the restaurant, in exactly the right location.  During our meal, we played 2 games, and we were frequently stopped by either other dinner guests or restaurant staff with questions and curiosity about the game.

That’s the first time that has happened to us.  Usually no one pays attention.  It was pretty cool having young folks and elderly folks stop over to ask what we were playing and how the game works.  Carcassonne is a beautiful game and an elegant design.

We ended up sharing information about some local game shops where you can purchase the game as well as our favorite on-line games retailer Thought Hammer.  My wife also shared with them the URL for my BLOG about board games A World Without String.  Note to self:  Write more often to your BLOG.

We had time to play 2 games.  The Travel Carcassonne game plays pretty quick because it’s only the basic game and doesn’t have any of those wonderful but game-lengthening expansions.  She beat me in the first game, which happens a lot when we play Carcassonne.  But I won the second game.  We noticed that, for some reason, I played better once I had 2 Margaritas in me.

Playing Carcassonne while waiting for dinner and during our meal was quite a bit of fun.  I’m certain we introduced a few new people to Euro-Games too.


Cincom Smalltalk

Posted by steve | Smalltalk | Monday 5 April 2010 8:22 pm

While I’m busy posting about Smalltalk….

Something very interesting happened to me today.  One of the developers I work with came to me and explained that he downloaded and tried Cincom Smalltalk over the weekend.  He’s already familiar with Smalltalk since we use Visual Age Smalltalk everyday, and he knows I’m also a Squeak advocate.

It was funny to me when he mentioned how impressed he was with the professional quality of the product.  My first reaction was to think “of course it is”.  Then I commented that I think VisualWorks (or whatever they are really calling it nowadays) is one of the finest Smalltalk products on the market.  No, I’m not putting in a plug for Cincom and I don’t owe them any favors.  I used to work with VisualWorks years ago and came to appreciate how well crafted that dialect of Smalltalk is.

I often write here about Squeak but then realized that I’ve never said much about VisualWorks or Visual Age, the 2 leading commercial professional Smalltalk products available today.  They really deserve a look.

Here’s the link for Cincom Smalltalk: Cincom Smalltalk. They offer a non-commercial license and you will find a rich family of experienced VisualWorks developers available in the community.


What I love about Squeak and what I …

Posted by steve | Smalltalk | Monday 5 April 2010 7:55 pm

I’m a long time developer with Squeak. And I’ve seen a lot of the changes and how it has morphed over time. Literally. Remember when everyone using Squeak used MVC? I’ve made a number of contributions over the past 13 years or so to Squeak. So make no mistake about it. I love Smalltalk, I love Squeak and working with Squeak.

This entry is about something that I both love about Squeak and occasionally get frustrated about.

There are about 3 or 4 (but who’s counting?) personal on-going projects I’m developing with Squeak. Over the weekend I was working on one of those projects. And I noticed how frustrating the behavior of the system browsers are when resizing the panes. Here’s what I mean.

This is the standard Squeak system browser when it’s first opened up. Click on the image to see it full size.

Basic System Browser when opened

The browser is highly functional in its current presentation. You may have noticed that I use the Optional Buttons and Annotations Pane for my browsers when I work.

It’s all fine until you resize the browser window. Here’s how it appears when you make it really tall.

Again, click on the image to see it full size.

Standard System Browser made tall

Notice what happened to the Class/Instance switch? Stretched out. And those Optional Buttons and Annotation Pane? Same thing.

It gets especially interesting when you want to shrink it down to something taking up less space on your desktop. Click on the image to see it full size.

System Browser when squeezed

I’m not sure how or when this happened, but I’m 100% certain there were versions of Squeak older than this that didn’t behave this way with code browsers. I remember working with Scott Wallace on the Optional Buttons and Annotations Pane layouts in earlier Squeak browsers maybe 9 to 10 years ago.

Now, I’m not frustrated that this is happening. No, no. Well, maybe a little. It does seem like we get pretty good at “chewing the same meat twice.”

But in fact this leads me to one of the things I really love about programing in Squeak, or any Smalltalk for that matter.

It’s easy to fix.

I spent a couple of hours over the weekend digging around inside the classes that constitute the System Browser and its related components, and created my own version that behaves like this.

Here’s my new System Browser when first opened up. Click on the image to see it full size.

Modified System Browser when first opened

Notice that it looks the same as the original did. I actually think it looks a little “tighter”, with less space, around the optional buttons and annotations pane.

Here’s how it works now when stretched really tall. Click on the image to see it full size.

Modified System Browser stretched tall

The buttons, all of them, stay the same size. This remains true for the annotations pane as well.

And here’s how it works when squeezed. Again, click on the image to see it full size.

Modified System Browser when squeezed

Same result. The buttons remain the same size, and even better, you can still read them.

So that was fun and rewarding in its own way. That’s one of the things I love about Squeak. But alas, this is also one of my frustrations.

I find myself getting distracted by this sort of thing all the time. Instead of working on the task at hand, I find new “interesting” diversions. Sure these have value and it’s always good to dig around inside Squeak to learn how it works under the covers now and then.

As an aside, that’s one of the things I have come to admire about Smalltalk developers that have spent a lot of time with Squeak. Historically, there’s been no documentation to speak about. Books and tutorials have appeared only recently. Well, there were Mark Guzdial’s excellent Squeak books years ago, but for the most part you had to figure things out on your own. You had to learn to read the code and dig things out to understand. Skilled Squeak programmers end up being good at understanding and extending other complex Smalltalk systems and applications.

What I would like to say is that I love how Squeak is open under the covers, and so easy to explore and extend. All the Smalltalk tools do that. But I’m also aware of how these little annoying behaviors about Squeak have more that just a few times caused me to become diverted by yet again another tools enhancement run. The temptation to personalize it, which is exactly what I think Alan Key and Dan Ingalls had in mind, can be great enough to the point of distraction. You just have to remember that.

Comments and feedback on my personal BLOG are welcome.