Friday, April 30, 2004

Omaha Smalltak User's Group Seaside Presentation

First off, I would love to thank everyone for coming out and seeing the presentation. I don't think there was one person to walk out of the room and think that they didn't want to use it. In fact, everyone was like "WOW! I wish we could use that in our work!" I must admit Seaside gives great demo especially with the new halo stuff. I'm going to make a Squeak image with the presentation (which is written entirely in Seaside) this weekend and post it. I'm also going to start an Omaha Smalltalk User's Group mailing list so we can discuss the upcoming project that we are going to do. Again, thanks everyone for coming out and the Seaside crew for making such a great product. See everyone next month!

Monday, April 26, 2004

Seaside Presentation

I wrote my Seaside presentation in Seaside 2.5a and it was a lot of fun. I thought it would be cool to let people download it and look at it. Simply, load this into your image via monticello and then, point your browser to http://localhost:9090/seaside/presentation (assuming you have Komanche on port 9090). Download it here. I have two examples included (one a lame number guessing game and the other a bank account application). Anyone have fun and if you have any suggestions let me know. Make sure to use Seaside 2.5a. The halo stuff is very cool and makes it very easy to give a demo of Seaside in Seaside. Did I mention it was a lot of fun to do this? I can't wait to give the talk on Thursday. COME ONE COME ALL!

Thursday, April 22, 2004

Slave To The Lambda

I find myself using more and more block closures in Smalltalk. I attribute it mainly to Lisp. But, I just can't seem to resist using them to make my code more concise. Last night, I was working on the Seaside Presentation and seaside uses blocks in the rendering of html. It makes the html code incredibly small and easy to read. Most of the code that I wind up writing for web applications generally tends to be get very ugly when it gets around the html generation. This was tue especially in the Java world. But, the code I write in Seaside is Smalltalk and the code is generally smaller than the html that I would have generated. Very nice. I attribute most of the elegance and size of the code to blocks. For example, I found myself writing the following code a lot in VisualAge:

| stream |
stream := CfsReadFileStream open: someFileName.
stream isCfsError ifTrue: [Error signal: 'BADNESS'].
["do some stuff on the stream"
] ensure: [stream close].

Well, I decided to move this code to CfsReadFileStream so that now all I have to write is:
CfsReadFileStream open: someFileName do: [:aStream | "do some stuff on the stream"].

and the method looks like this:
CfsReadFileStream>>open: aFileName do: aOneArgBlock
| stream |
stream := CfsReadFileStream open: someFileName.
stream isCfsError ifTrue: [Error signal: 'BADNESS'].
[aOneArgBlock value: stream] ensure: [stream close].

Blocks allow you to put the code that you repeat a lot (which generally just wrap around other code) to places where the responsibility belongs. Now, my code dealing with streams looks a lot cleaner. I noticed that Ruby handles its files in the exact same way and in fact, they take it one step further (the block you pass in gives you each line if you wish).

I will never give up my block closures ever again....=)
Omaha Smalltalk User's Group Meeting

We will be holding another Omaha Smalltalk User's Group on April 29, 7pm at Abrahams public library in the conference room (90th and Fort). This month's talk will be given by yours truly on the Seaside web framework. So, if you have been curious about Seaside, come on down. I plan on showing how cool and fast you can do web applications. Seaside is the future and could be the killer application for Smalltalk! See you all there! Java/C# guys are welcome to come as always!

Thursday, April 08, 2004

Welcome back

Well, I welcomed my brother-in-law back to the States this weekend! He had been in Iraq this past year and we are so glad to have him back. It was great seeing him again and he had us all in stitches with his amazing stories. I'm so proud of him and glad he's out of harm's way. My heart goes out to the remaining soldiers in Iraq and their families. WELCOME BACK TONY!

Amazon