My Stuff
My Amps

Add this feed to a running copy of BottomFeeder

Linux World 2006 Speaker

Thursday, October 30, 2003

Article On Using Traits On Smalltalk's Collection Classes

If you don't know what traits are, read this excellent article. It's a great introduction to them and provides an example on how (and ultimately why) to use them. Basically, they are an elegant solution to the inheritance problem. I generally tend to favor composition over inheritance, but traits allow you to have your composition with the convience that inheritance gives you. It's amazingly simple and makes perfect sense. Much like most good technology, you don't have to think too hard about it. Go read the article and prepare yourself to say, "WOW!" There is a package on SqueakMap with a simple implementation of traits in Squeak. I also think traits would be pretty easy to implement in JavaScript and Ruby. Yet another reason to pick dynamic languages, they change to you and not the other way around...=)


Wednesday, October 29, 2003

Java Serialization: New Version

No new functionality....Just tests so you can start playing with it. The tests are functional and end-to-end. I'll be writing some unit tests soon. Check it out here for now on Squeak Map.


Tuesday, October 28, 2003

Code Smell

I just finished reading "Test-Driver Development By Example" by Kent Beck and it got me to thinking about code smell. In the book, Mr. Beck pounds the idea of test first and then remove duplication into your head. It's almost becomes like a mantra. In fact, the thought of no duplication is also the first bullet point in "The Pragmatic Programmer" and in several other books. Duplication is bad. In fact, I use duplication as a litmus test for "code smell" (I can't remember who coined this phrase, sorry!). Well, it got me thinking of what other things show code smell? I wanted to have to come up with a short list , a bare essentials if you will and I think there are only two to try to aspire to in object-oriented programming! They are no duplication (shocker, right?) and the law of demeter (read the pragmatic programmer or Smalltalk with Style for more information). If you keep these two in check, I think your code will be incredibly clean and easily maintainable for starters. Now, this might seem overetly simplistic, but it's the way you solve "code smell" to achieve these two goals that is the challenge. I wanted a nice easy to remember set of rules to guide me when I need to refactor and that I could give to fellow developers on my team. I wanted it small. Now, I'm trying my experiment out right now, so I might add to it (but, I don't want to). Test first, remove duplication, and reduce across object sends in that order. It doesn't get much easier now does it? I'll update everybody on how it works out.


ALICE COOPER To Host 'Rats, Bats and Bugs' On The History Channel

I pulled the following from Blabbermouth (Does anyone have the History Channel? And yet another NEW ALICE SOON!):
    Alice Cooper has provided narration for a three-part series, called "Rats, Bats and Bugs", which premiered Monday night (Oct. 27) on The History Channel.

    Cooper's segments were taped in the cloister of Palmer Hall, a locale picked for being "very gothic looking," according to Jennifer Mann, manager of program publicity at The History Channel. "They're setting it up to look like his living room," she said.

    Mann said Memphis was chosen out of convenience since it's close to a recent Alice Cooper concert date at the Horseshoe Casino in Robinsonville, Miss. He's on tour promoting his new album, "The Eyes of Alice Cooper", on Eagle Records.

    Airing consecutively, the three one-hour shows "Rats, Bats and Bugs" look at both the myths and realities of these creatures, from their ill-gotten reputations to their applications in developing technologies.

    On November 18, Eagle Rock Entertainment will release A Special Edition CD & DVD packaged together from Alice Cooper, entitled "Brutality Live".

    "Rats, Bats and Bugs" remaining air times:

    Oct. 28: 11:00 p.m.-12:00 a.m.
    Oct. 29: 11:00 p.m.-12:00 a.m.
    Oct. 30: 11:00 p.m.-12:00 a.m.
    Oct. 31: 7:00-8:00 p.m. & 11:00 p.m.-12:00 a.m.
    Nov. 02: 10:00 a.m.–12:00 p.m.


Sunday, October 26, 2003

Hartford Send Off Pictures

Check out Kathy Barrett's pictures of the event here. It's just a simple web page to show the pictures that I put up. Just click on the picture to get to the next one. The first set of pictures are of the evening send off and the last set is a collection of almost everyone I worked with and some humorous pictures of my last day at work. Fun stuff! Kathy Barrett was kind enough to take all of the pictures and have her camera tortured (I'm surprised, I didn't break it iwht my ugly mug).


SBlog Challenge DONE!

WOW! Check it out here! Great work guys! I hate that I couldn't be there for the end, but oh well...I can't wait to look at the code and see how it all works! GREAT JOB GUYS! It was great to be a part in the beginning and I really hate that I couldn't be there for the finish! SQUEAK ON!


Saturday, October 25, 2003

The Quill

If you ask yourself what ever happened to real ROCK bands? Well, look no further than Sweden's The Quill. I just got their new album, "Hooray! It's a Deathtrip!" and it's rare to get a disc that rocks this hard. It's just 4 dudes blasting out pure rock with their amps all the way up. The singer is simply amazing and the band is incredibly tight. The guitarist plays solos that actually propel the song further rather than being showy. This is the way rock used to be in the 70's and that everyone forgot in the 80's. Man, this stuff just rocks! The new Alice rocks hard too. Maybe real rock is coming back, huh? Anyway, check these guys out and while you're at it, get the Mars Volta disc too!


My First Week At My New Job

Well, I completed my first week at work and I must say that I am overwhelmed! The environment is so different than anything I have experienced in my life. It's really cool. The team is self-managed and they take the business of XP seriously. So far, it's taking some adjustments from me, but I entered into this like a curious cat. I had read a lot of the books on XP and thought it was the right way to go, but now I am sold completely. The only things I miss so far is time to "flow" (deep thought) and listening to music. It's a lot to take in, but I am so excited! It seems everything is fitting together perfectly here. Who would have thought that I would find happiness in my work in Nebraska?! It's nice to be part of a company that cares for your well-being and happiness. I keep pinching myself wondering when I'm going to wake up! I didn't know places like this existed!


Toys Are Setup And Ready To Go

Now, I can't wait to start playing. I plan on spending some quality time with my FS1R. I'm sure more love will be shown once I learn to program it....=)


Thursday, October 23, 2003

So, Why Did You Leave Java?

I've been asked this question a lot lately and mostly from Java developers. The question is never asked in a deragatory manner. The questioner usually has a quizzed looked on their face (like WHY would you leave Java?). Now, my smart ass answer has been, "Because I hated typing!" I like this answer because it has double meanings. I'll leave it as an exercise to our readers to figure it out...=) But, today, I didn't want to give a smart ass answer. Now, I know why Java developers ask the question. It's not because they think their language is better, but they think I'm taking a step down by working with a less popular language. Why do I think this? Well, usually, it's one of the questions they ask in our conversation like "Don't you think you're limiting your career opportunities?" I answer this with a resounding HELL NO! Smalltalk has always enjoyed a small tight community that I love dearly. I'm proud to be part of a smaller community. It sets you apart from the crowd. Being a Java developer is like being one of the millions. Does this mean I would still love Smalltalk if it got popular? My answer would be @#$%& YES! I choose my language on what I am most effective in and find wonderment in. I went back to Smalltalk again because I am more effective in it that Java. I never have to think about the language, only the problem at hand. In Java, I was always forced into thinking about the language with its many shackles to prevent you from hurting yourself. I like being free. I guess it amounts to that I found a really cool group of people to work with. They love to have fun and look at things a little differently. They are an XP team and I've been curious about the whole thing for a long time. I even tried some of things at different places I've worked. They take XP all of the way! I think I would have still come here even if they had been doing another dynamic language (like Ruby or Lisp). And I do stress the dynamic language part. I'm done with static typing! At this point, in my career, I want to solve problems and have fun. Smalltalk allows me to do that with its awesome environment. OK, enough gushing about Smalltalk for now...=)


Wednesday, October 22, 2003

SBlog Challenge

I ended my involvement in the SBlog Challenge by Jim Benson. It was great working with everyone involved! I learned a bunch of stuff like CSS and Seaside in a very short amount of time. It was cool getting almost immediate feedback on how to use Seaside by its creator, Avi Bryant. I made several new squeaky friends as well (Mark and Edgar)! I hope we can work on something together in the future (maybe another squeak challenge). With that said, SBlog was a unique experience. By that, I have never worked in a team where no one had ever met before in person. It was also different in that people worked on the code at different times and there were only a few instances when we coding at the same time. One of the major hurdles that we faced was simply: communication. We sent a lot of emails, but the lower level details of intention and design were missed. We all knew we wanted to write a blog, but each of us looked at the problem differently from different angles. Perfectly normal in my opinion. But, since we were working at different times and communicating via email, the code was pulled in different directions at different times. We dealt with the problems as soon as they arose, but still some things slipped by. Again, nothing out of the ordinary on an ordinary project. I think if we had more time, these would not have been problems going forward. But, we're magnified by the short amount of time (2 weeks). Despite these problems, I'm still amazed at what we accomplished in such a compressed amount of time! The rest of the team is still finishing the code this week. I had to bow out because I'm trying to buy a house this week (my first!) and getting to know my way around the new planet of Nebreska. I wish all of the SBlog team the best...=)


Theremin Jealousy

A new co-worker of mine told me that they owned a real theremin! I must admit I have everything but the real thing (every other kind of hands free instrument). I've been fascinated with them since I saw my first one at a friend's house. They are really neat instruments! So, I am resolving to finally get the real thing. I think it will be the first new toy that I buy to put in my new house (when I buy that). Did I mention how jealous I am? Theremins are cool plain and simple. Of course, the thing in my mind is why did I buy all of the instruments that are like a theremin, but never the real thing? The mind boggles....=)


Tuesday, October 21, 2003

Test-Driven Development By Example

OK, I started this book last night and I'm already half way through because it's so easy to read! What a wonderful little book. I was reluctant to buy it because of "by example", but I love Kent Beck's writing style. So, I said what the hell and bought it. I'm learning quite a bit. I always thought the xUnit stuff was common sense, but I'm starting to realize I didn't see the whole picture. I can't wait to get home tonight and try a lot of the adivce on my own projects (including SBlog). Anyway, a very entertaining book and worthy a read. I'll talk more about it once I finish it....=)


Corporate Values

Why do companies have core values? They are always exactly the same from company to company. They basically iterate common sense that you knew already. It just seems to me that it should go without saying that you should have integrity as an employee and to make the company profitable (I mean you are being hired to help make the company, right?). But, maybe I'm missing something here...Do people need to have common sense reiterated to them? I wonder...Maybe corporate values are like the warning labels on products. They are there because someone before you already tried what the warning said not to do. Oh well, that's my thought for the morning.


Monday, October 20, 2003

Freddie Mercury Paintings

Here is a gallery of Freddie Mercury's paintings. Not only was he one of the most talented singers to grace this planet and a true showman, but apparently he was a darn good painter too. Check it out! And make sure to dust off "Jazz" or "Night At The Opera" while you do...=)


Sunday, October 19, 2003

Lessons From Funk

Since I have been listening to Funk, it amazes me that I stumble over the same lessons it teaches. I can't tell you how many times I've read to accept the imperfections of human kind, to have fun at work, to smile in the face of adversity, and to be one with the universe. These are the things that funk teaches. In fact, it's the thing that drew me initially to funk. Listening to funk is like being cleansed of all negativity in this world. It allows me to laugh at the Sir Noses of the world (the antongonist in the Parliament albums that refuses to dance). There's also a deep spirtual connection to the world of funk that simply resonates within me. It acknowledges human kind as imperfect. Perhaps, funk embodies the things that I want to be and embrace in others. It also teaches you that dancing is a good and cathartic way of casting out your demons. I think George Clinton and Larry Graham will never know what they have meant to me. I hope to one day meet them and express it to them. Their messages changed my life when I was feeling particularly beat up, and gave me the strength to push further (along with my wife, who takes great glee to tell me when I am not being "funky"). So, when I'm feeling particularly negative, out comes the funk records. They make me smile and put me in my happy place in the universe. They always teach to put more good in the world and take out the bad. be a positive force in this world instead of a negative one. I always come back to a quote from a Funkadelic record, "Good thoughts bear good fruit. Bullshit thoughts rot your meat." Amen, George! FUNK ON! If you want to try out some funk, go buy these records right now: "Motor Booty Affair"-Parliament, "Take It To The Stage"-Funkadelic, "Release Yourself"-Graham Central Station, or "Dance To The Music"-Sly And The Family Stone.


The Seven Radical Rules For Business Success

I got these 7 rules from the book, "The Corporate Mystic" by Hendricks and Ludeman. It's an excellent book that was suggested to me through my friend, Steve Wessels. It's a quick and easy read that will enlighten you. It really hit home a lot of the things that I have been valuing at the present. But, it also made think a lot about my shortcomings. I have vowed to overcome them and become a "mystic". Just go read the book! Here's the 7 radical rules for business success (I think they are rules for success period. End of story!) along with my comments:
  1. Tell the truth and be truthful.This means not only to other people, but to yourself as well. I have been striving to do this in my last job and sometimes it does get hard. The reason why is because at the core of my being, I am a people pleaser. I don't like to hurt people's feelings and it's something that I am constantly wrangling with. I'm working to overcome this shortcoming of myself.

  2. Take 100% responsibility. Nothing more, nothing less. I've never had a problem taking 100% responsibility. But, I'm guilty of taking more of my share. Again, I am guilty because of my people pleaser personality and I let people walk over me and not take their share of responsibility. I will take my share and let everyone do the same.

  3. Honor all agreements you make. I have never had a problem with this one at all. I am big on being on time and honoring what you say you will do. Do what you say! It's one of the things I tell people about myself. It's one of things that was pounded into my head by my father, his mother, my mother, and everyone in my family.

  4. Never gossip. This is a hard one. I keep telling myself not to get caught in this web and this is one of my biggest faults. It's just so damn easy to fall into it. It's especially easy to fall into when you are in a death march. I will strive, no I will never gossip again.

  5. Set aside creative time everyday. I never do this consistently. At my last job, I tried to walk everyday around the complex to clear my mind. I always came up with the best ideas on these sessions. Sadly, I never demanded them, but took them when I could. They were intoxicating and fun. I now know that I should demand them and expect nothing less.

  6. Make a to-do list and do the least desirable items first. I like to procrastinate and push off the stuff I hate doing. But, in my last job, I did make a to-do list, but it was the stuff that I hated doing (like time sheets, status updates, and documentation). And I would not leave that day until everything on that list was finished. It kept me on track. But, it's something that I have to work on.

  7. Go to your source. Listen to your inner voice. Basically, if something feels wrong, find out why. I silence this voice a lot and I know I should let them speak up now. There's a lot of situations that I have run into where I tried to squelch this voice and things turned out wrongly. I should listen to it and take its advice.

I think all 7 of these rules are great ones to not only be successful with, but to live by. Expect nothing less of yourself or others. I know I no longer will!


The Mothership Has Landed!

After a beautiful journey through the middle of the universe, we have landed on planet Alto Dorado! Tomorrow will be my first day to visit the city of Dynamica and it should be A LOT OF FUN! The journey here was quite nice and uneventful (thank goodness). I got a lot of reading in (almost finished with the "Corporate Mystic"!). Tonight it will be relaxing at the new pod and enjoying some good local vittles (I wonder what they eat here...I think it's called a cow and corn). Now, where is my high speed internet connection? This dial-up stuff is for the birds...=)


Saturday, October 18, 2003

Second Day On The Move

WOW! What a gorgous day! Today's ride was a lot smoother and a bit warmer. The weather was cloudy when we started, but around noon, the sun broke through for the rest of the day. It was a nice relaxing drive. I finished Richard Gabriel's "Patterns Of Sotfware". There's a lot of things in that made me question some my beliefs and that's always a good thing. I can't say that agreed with everything (Smalltalk take mathematical sophistication, but C does not? I would think the reverse to be true, but that's another discussion for another entry!), but it was a good read. So,I started a new book, "The Corporate Mystic" and so far it's a GREAT READ! I love it....But, we'll see how it goes...=) Tomorrow's drive should be somewhat short and we will be in our new surroundings....A new town to explore and new people to meet! I can't wait!


Almost Forgot...I Left 50 pounds in Connecticut!

Yep, you heard that right! I made my 50 pound goal at weight watchers (No, I'm not at goal yet)! I wanted to make it before I left Connecticut. The cool thing is that I went jean shopping before I left (my new company allows one to wear jeans) and was suprised to find out that I now wear a 36 (I used to be a 44)!!! How cool is that?!!!! My nex goal is 75 pounds and that will put me at my goal weight of 174!!! I can already feel a huge difference in myself and I can't wait to get to goal! It's going to feel great! But, as you all know...I am a lifer at weight watchers...I will do it for the rest of my life...Not a bad proposition, I'd rather live longer...=)


Friday, October 17, 2003

First Day On The Move

I'm writing this from the hotel room and it's from a dial-up. Yucky! The trip thus far has been really cool and pretty! The movers came yesterday and took all of our stuff and we spent last night and this morning cleaning the old apartment. It was a welcome change to hit the open road. Most of the way was nice with a few showers here and there. 8 hours is just about right to be in the car. Anyway, I'm writing this from my wife's computer from Pennsylvania. Tomorrow night we will be in Illinois and after that, NEBRASKA (Hey, I spelled it right this time!). Well, I'm tired...over and out!


Thursday, October 16, 2003

The Movers Are Coming

I'm sitting on my last bit of furniture to type in one more blog entry before the movers are here and we're on our way to Nebreska. We officially start off tomorrow, but today is going to be dealing with the movers, running errands around, and visiting with friends one last time. I finished up with SBlog last night and I hope to catch up with those guys sometime next week. I lose my cable modem today so expect a lot of emails fussing about how bad dial-up is, though I might try my hand at the wireless thing. Anyway, until I can connect to the internet again....Blog to ya later!


Wednesday, October 15, 2003

Oh, You Have Much Left To Learn Grasshopper!

Being a part of the SBlog team thus far has been a lot of fun and I've been learning tons of new things (mainly Seaside and CSS, but also using new applicaions like Monticello, etc). It's been a long time since I played the role of student and I like it. I'm always in a constant state of learning, but it's rare that I get to have someone teach me. It's been a nice turnaround for a change. I've purposely forced myself with this project to do things I wouldn't normally do as well. I think this made me question a lot of what I do. I've found out a lot things from that. Plus, it's great being on a team and throwing around ideas. I love that part of it. I wake up every morning excited to see what the application looks like and what problems were found (usually in my code). I still feel like I'm just touching the tip of the iceberg with Seaside,but I am amazed how much I can do with such little knowledge. It's a testament to its ease of use and power. OK, I'm back off to SBlog land...=)


Structure and Interpretation of Computer Programming Online!

I just got this email from a friend of mine. It also has lectures. Cool...Now, I have something to do when I get to Nebreska! I read SICP ealier this year and loved it (it was one of the eye openers for Lisp/Scheme) and now I can't wait to see the lectures! What fun! Anyway, here's his email with all of the info:
    > Hello all,
    > I wanted to send this link to some very, very good information. The SICP
    > (Structure and Interpretation of Computer Science) book is one of the most
    > respected and useful books on computer science. This page provides a link to
    > the free online version of the book and to lecture videos that are give by the
    > authors each semester at MIT. We are very lucky to have these online for
    > everyone to learn from.
    > Sam


Tuesday, October 14, 2003

Love on the Seaside

I'm feeling a little gushy today. I've been using Seaside for every bit of 2 days now and I added major functionality to the SBlog challenge today. To say that I am amazed is putting it mildly. What I did today would have taken me hundereds of lines of Java/Struts code (not to mention all of the damn config files I would have had to change) instead it only took a few lines of Smalltalk. Now, most of this power was from the Seaside framework and how it operates. But, still it coupled with Smalltalk is unstoppable!!!! I'm completely sold on continuation web frameworks now (not that I wasn't before). The code is more concise and makes more sense. It's been an absolute pleasure to work with web services again. I'm also amazed at what I have been able to do in just a few days of knowing the framework. It's butt simple! Oh well, I just wanted to write about how blown away I have been. As a side note, I've only had to stop the web server once since I started it (and it was because of a mistake I made)! Of course, to restart the web server takes 1 second (I kid you not...try that with tomcat or apache). I've been changing the code while the server is running with no special cases or what have you (try that in Java...Yeah, I know about hot swap--it only works for simple method changes). AWESOME! GO SMALLTALK!


The SBlog Challenge Update

In between moving and catching up on sleep, I've been paticipating the SBlog challenge. It's been pretty fun so far. I've finally taken the time to learn both Seaside and CSS. I must admit that CSS is very simple. As for Seaside, I amazed by its simplicity as well, but it is very powerful! I amazed what I can do in one line of code that would have taken 100+ lines of Java code (BTW, if you don't know Seaside is written in Smalltalk). I love Seaside thus far. I'm still learning though...=) Jim Benson has been kind enough to post a progress report on what we've done thus far. ENJOY!


Monday, October 13, 2003

Why blogs are cool...

Since I started my blog, I've hooked up with old friends, made several new friends, and have been shocked as to who actually reads it. It simply amazes me. I'm slowly improving my writing skills while I'm doing this as well. I actually now read my entries before I post them. When I started, I would just let them fly. I've realized my mind works faster than my fingers...=) Anyway, I've been shocked by the response and by all of the kind emails. It's really cool! Here's to more blogging in the future!


Moving Sucks

I hate packing up my stuff. Period. End Of Story. Maybe this move, we'll be able to stay for a little while and I'll have time to play with all of my toys. It sucks to put your toys up and know that you didn't play with them enough. I don't know what sucks worse: working all of the time or moving. I'll be glad when we get there....And then, the fun starts...Looking for our first house!


Sunday, October 12, 2003

A Good Architect

I've been thinking about this topic lately, "What makes a good architect?" I've experienced my fair share of bad architects as I am sure everyone else has. And the thing that I keep coming back to is that the bad ones are lacking simply: an egoless personality. Now, I stole the term "egoless" from "The Pyschology Of Computer Programming", but I think it fits for both programmers and architects as well (they should be one and the same actually). An architect should not be afraid to NOT be called an architect and she should not care about the title she has. I think a good architect like a good manager is a nurturer. They nurture ideas and let everyone contribute to the software goal. This also means that an architect must be able to teach as well. The ultimate goal should be to bring everyone up to the level of the architect. Information hiding or doing complicated things for the sake of doing of them to boost your ego is WRONG. An architect should design at the level of his team. What good is a design if no one understands it? If you as the architect come up with a design and no one understands it, you have two options. The first is to teach everyone and explain it until everyone does. The second option is to do a design that everyone understands right now with 1-2 new ideas. The outcome should be the same. It all depends on how much time you have. I actually like option two. I think on any one project, you should only introduce 1 or 2 new concepts to the team. Everything else should be familiar. This way you are pushing everyone forward (and maybe even yourself) because you are trying out something different, but everyone still has enough footing in the familiar to be effective. This grows the knowledge and experience of the team. Eventually, it will not be a matter of bringing everyone up to speed, because they will already be there! I love this sort of team building. Just remember the architect should never always be doing the "cool" stuff. I've run into too many architects that only want to do the "cool" stuff and leave the boring stuff to everyone else. Again, this is wrong. Let everyone else do something cool too...=) Help them along the way and bestow your knowledge on them through teaching an example. Let the ego go and watch the team become unstoppable. Soon, there will be no need for an architect because everyone on the team is one. Think of it this way, your job is to work yourself out of a job. You should eventually just be one of the team.


Saturday, October 11, 2003

The Ultimate Send-Off

Yesterday was my last day at TheHartford (what did you really think the mothership had come from's an attitude...=) Go get funky with your bad self!) and everyone that I had worked with came by to wish me well in my new endeavors. It was very kind and meant a lot to me. I was also given a pig with a sign that said, "Omaha or Bust". VERY CUTE! Later in the evening, a guitarist was playing at Black Eyed Sally's, Eric Sardinas, that Rusty liked so we all decided to meet up there for an dinner party. Well, Rusty drove me down and then proceeded to take a HUGE BOX out of the car. So, I've been seeing everyone whispering around me and I knew something was up! I thought I was going to get a good roasting, but instead the box was full of goodies! In big letters on the box are the words: "Ohmaha Survival Kit" and that was the theme. Rusty had too much fun explaining what each item meant with great vigor. I was laughing too hard! It was GREAT! The grand finale was a huge Alice Cooper doll (50in)!!! Very cool. The survival kit had a toy tracter (so, I knew what one looked like), cow (again, so I would know), shit and a can of shine-ola (so, I would know the difference...It's a saying I've been using since I heard it on the Lynyrd Skynyrd album and remembering my grandfather using the saying, "they wouldn't know the difference bettween shit or shine-ola!!" Oh well, it's southern thing...I guess), flying batman (well, something's gotta keep me busy), Alan Jackson and Celine Delion's latest albums (so, I can fit in), cow tails candy, and finally, KISS bobble heads (cos you just gotta have them!). Rusty and everyone then presented me with a card that they all signed wishing me well. I almost cried when I read what everyone had signed in it especially, Rusty's (i'm going to miss ya bud!). Everyone was so gracious and thanked me for everything they had learned from me (I'm wondering what they did learn...hmmm, I'm hoping it was good...In all honesty, I learned more from them).

I would just like to say that I've never had a send off like that before. The whole day was great. It warms my heart knowing that I made a difference and I love everyone there! I'M GOING TO MISS EACH ONE OF YOU! Kathy took pictures of the whole day so I could remember it and I will post them as soon as I get them!

GOOD-BYE HARTFORD! And I love you guys and gals! Hopefully, we'll meet up again sometime in the future! FUNK ON!


Yummy Musical Madness

Markus Gaelli posted the following to the Squeak list. This sounds like a lot of fun (pun intended, yeah I was bad). Enjoy!
    From the preamble:

    A prealpha version of a port of musinum, a fractal music generator from Lars Kindermann.
    See (in any case...)

    Try MusinumPlayer base2
    MusinumPlayer base2base3
    MusinumPlayer random3to7
    MusinumPlayer randomPercussion

    Right now you have to manually interrupt with Apple/. or Alt/.
    and then say

    MusinumPlayer reset

    So it is an euphemism to say that there is no user interface,
    but I still found it interesting enough to dare a first release.
    You have been warned...
    License is MIT.

    have fun,



Performance Review

My wife sent me this set of gems, again. Go ahead laugh, it's alright.
    Performance Reviews...reportedly taken from ACTUAL Federal Employee
    Performance Evaluations:

    1."Since my last report, this employee has reached rock bottom and has
    started to dig".
    2. "I would not allow this employee to breed".
    3. "This employee is really not so much of a has-been, but more of a
    definite won't be".
    4. "Works well when under constant supervision and cornered like a rat in a
    5. "When she opens her mouth, it seems that it is only to change feet".
    6. "He would be out of his depth in a parking lot puddle".
    7. "This young lady has delusions of adequacy".
    8. "He sets low personal standards and then consistently fails to achieve
    9. "This employee is depriving a village somewhere of an idiot".
    10. "This employee should go far, and the sooner he starts, the better".
    11. "Got a full 6-pack, but lacks the plastic thing to hold it all
    12. "A gross ignoramus--144 times worse than an ordinary ignoramus".
    13. "He doesn't have ulcers, but he's a carrier".
    14. "I would like to go hunting with him".
    15. "He's been working with glue too much".
    16. "He would argue with a signpost".
    17. "He brings a lot of joy whenever he leaves the room".
    18. "When his IQ reaches 50, he should sell".
    19. "If you see two people talking and one looks bored, he's the other one".
    20. "A photographic memory, but with the lens cover lued on".
    21. "A prime candidate for natural de-selection".
    22. "Donated his brain to science before he was done using it".
    23. "Gates are down, lights are flashing, but the train isn't coming".
    24. "Has two brains; one is lost and the other is out looking for it".
    25. "If he were any more stupid, he'd have to be watered twice a week".
    26. "If you give him a penny for his thoughts, you'd get change".
    27. "If you stand close enough to him, you can hear the ocean".
    28. "It's hard to believe that he beat out 1,000,000 other sperm".
    29. "One neuron short of a synapse".
    30. "Some drink from the fountain of knowledge; he only gargled".
    31. "Takes him 2 hours to watch 60 Minutes".
    32. "The wheel is turning, but the hamster is dead".


Friday, October 10, 2003

Play The Mothership Game

Get out your funk card and help navigate the mothership! It's coming for me today to take me to Alto Dorado and the land of Dynamica! BRING IT ON! Also, while you're there check out the rest of George Clinton's website. Go the Fan Club section and get the Alien screen saver...The funkiest thing EVER! Get more for what your funkin' for.


I Hate Fred Durst

This is too funny. This man sure does generate a lot of hate. I think he deserves every bit of it. I don't know about you, but I would pay good money to Zakk and Fred fight! Anyway, check this out:


Zakk Wylde On Fred Durst

Alright, I don't know what Fred Durst did to Zakk Wylde, but Zakk has it out for him. Go watch this hilarious video of Zakk putting Durst down ("Anyone want a Durst Pinata?"). I got a good laugh out of it. Zakk just flat out rocks...I have all of his records and it's great "amps at 11" rock 'n' roll.


Patterns Of Software

Richard Gabriel has his book, "Patterns Of Software" on the web to read. Check it out here. A lot of people have high praise for the book so thought I'd check it out. I was reading the forward by Christopher Alexander and ran across this quote:
    In my life as an architect, I find that the single thing which inhibits young professionals,
    new students most severely, is their acceptance of standards that are too low. If I ask a student whether her design is as good as Chartres, she often smiles tolerantly at me as if to say, “Of course not, that isn’t what I am trying to do. . . . I could never do that.” Then, I express my disagreement, and tell her: “That standard must be our standard. If you are going to be a builder, no other standard is worthwhile. That is what I expect of myself in my own buildings, and it is what I expect of my students.” Gradually, I show the students that they have a right to ask this of themselves, and must ask this of themselves. Once that level of standard is in their minds, they will be able to figure out, for themselves, how to do better, how to make something that is as profound as that.

    Two things emanate from this changed standard. First, the work becomes more fun. It is deeper, it never gets tiresome or boring, because one can never really attain this standard. One’s work becomes a lifelong work, and one keeps trying and trying. So it becomes very fulfilling, to live in the light of a goal like this. But secondly, it does change what people are trying to do. It takes away from them the everyday, lower-level aspiration that is purely technical in nature, (and which we have come to accept) and replaces it with something deep, which will make a real difference to all of us that inhabit the earth.

Needless to say, I bought the book immediately (who says given things away for free on the net doesn't cause sales?). I think the above quote is one of the most inspiring things I've ever read. It's something that when I'm feeling beaten down for having my heads in the clouds to give me strength to keep it there! I think we should all aspire to be better than our heros and mentors.

I just started on the book, but thought I'd share this awesome quote. Go download the book and read the whole forward (it's great). I'm going to have to read some architecture books.


Thursday, October 09, 2003

Squeak Bug Tracker

I think a Squeak Bug Tracker would be an excellent application to code. I'm thinking I might take what I learn from the SBlog challenge and possibly make my own challenge for this. I think a bug tracker would be an excellent tool to integrate into the Squeak environment and also have a web interface. It would be a great place to not only report bugs (and see the progress of fixes), but also tracking enhancements and future changes. It could be used to see where each Squeak release was and to see what was coming around the corner. If it was fully integrated into the environment, then as soon as you fix a bug or what have you, you could mark the bug as fixed. It would be cool to integrate with Monticello so that you could report what bugs you fixed with the release of your code. I'm thinking bug tracking should go beyond just the base Squeak image, but also to all of the projects on SqueakMap. So, that I can keep track of bugs in my project and provide updates (and report easily what I did). I'm still formulating my thoughts and I know there's been a ton of discussions on the SqueakList that I need to catch up on (next week, next week!!!!). I'm probably just reiterating what they have been talking about (I need to go read all of the discussions when I get the time).


Swiki Wish

I wish I had an RSS feed for the recent changes on the Squeak Wiki. Man, how cool would that be? Hell, every wiki should have an RSS feed (or ATOM)...=) I guess BottomFeeder has spoiled me because I now want all of my information to come to me!


Mothership Is Coming

I see the mothership and I have my funk card ready (if this sounds crazy go listen to "Mothership Connection"-Parliament RIGHT NOW). I will be leaving Planet Gosling and the inhabitants of Statica behind. My journey will take me to the land of milk and funk, Dynamica on the Planet Alto Dorado. I'm so excited! Stayed tuned for all of the latest developments!


What I Love About Smalltalk #8916343

Since, I didn't get to participate in the Squeak 3.6 (because of ...yep, you guessed, I have started to setup my base image and get going with it. Well, I ran into several problems, but one of the things that I love about Smalltalk is that new code is introduced via filing in the source code. One of the problems I ran into was because a semicolon was missing in the source. I know this isn't something totally related to Smalltalk, but Smalltalk really forces the point home. In other languages, it's easy to introduce libraries where you don't have the source at all. In Smalltalk, you must have the source. It's great when you have a problem and you can actually debug the code and possibly apply a temporary fix so you can keep on working. I posted on the Squeak list explaining my problem, but I wasn't waiting on people to fix my problem. I was going forward because I could add the simple semicolon directly with no fuss. There's nothing like knowing that if you run into a problem that you can fix it without waiting...=)


Skip List Data Structure

This sounds interesting. I can't wait to read the PDF. It certainly sounds yummy. Check it out: Patrick Logan's entry on Skip Lists.


Wednesday, October 08, 2003

My Prototypical Journey

I've been thinking of little JavaScript programs to do at work. One of these programs parses excel spreadsheets into something that we can easily populate our reference database with. These spreadsheets are what we get from our customers (they use excel for everything). It was cool this morning when they forgot a good chunk of data and they thought it was going to be a big deal because they thought we hand coded what was in the spreadhseet. Now, this is the way developers did it in the past, but I just can't stand that much typing. Anyway, it was nice to have automated the data in the spreadsheet. If truth be told, it took less time to automate it than type in all of the boring stuff in (there was a LOT). The data is also more reliable (if there's errors, we can easily verify via the excel spreadsheet...crap in=crap out). Automation is alwaysa good thing so, I thought it would be neat to see if I could write a test script that drive our application as well. I had a bug that was deep in the application and was tired of starting over from scratch to get to it. So, off I went. I have been becoming quite good at Microsoft's COM/ActiveX technologies, so that part was easy. Anyway, I was amazed how easy it was and why I didn't do it sooner! It worked like a charm! I also realize that I could have done it equally as well in Dolphin ST or Ruby with their COM libraries, but I've been trying to get my head around the "prototypical" way. So, I'm coding my test and I usually start out creating my constructor and then adding methods to my prototype. I kept treating prototypes like you would classes in other languages. I was starting to forward a lot of calls to another object that I was wrapping when I had my "EUREKA!"(tm) moment. I could create an instance of the object I was wrapping and use it as the prototype to the other object. I stopped thinking of terms of class structure but object structure. So, I got rid of a lot of forwarding calls by specializing an instance. I know this is a small step (some might even go how is this different from inheritance? Trust me, it's different in my mind). I'm seeing instances and specialization of specific instances and not just at a class level. I think specialization might work better at this level. Pretty cool stuff. I still have a long way to go before I'm comfortable with it (I generally use composition and not inheritance in class based systems). But, I'm starting to see the light and why so many people like prototypical languages. This morning's "Eureka!"(tm) moment felt like when I got objects in Smalltalk or when I saw the reason for macros in Lisp. Just thought I'd share...


Tuesday, October 07, 2003

New Alan Kay Interview

Check it out here!


The Language Religious War Debate

OK, so I post about Paul Graham's "Java Cover" article (which I still think is a good read) and it turns into a language war in some other places. You can read the whole discussions here and here. One thing that I love about Paul Graham's writing is that he believes in Lisp 100%. This might offend a lot of people especially if you happen to be on the receiving end of his argument (ala Java in this article). But, I find it refreshing. I don't agree with a lot of what Graham says (I still believe Smalltalk is a better language and OO is not just syntactic sugar coated poo), but he always gets me to think. When someone is pressing your buttons in an article, you need to sit up and think about WHY ARE YOU GETTING UPSET? Paul has a confrontational style of writing that makes you question why you believe what you do because he says what he does with such conviction and vigor. But, let's face it. There's no empirical evidence that Lisp is better than any other language. Same goes for Smalltalk or any other language or programming paradigm. I think that's why most discussions on the pros and cons of languages turn into religious wars. Programming is a human effort and we each pick up a language based on our past experiences and what we are most effective with. Why can't we just realize that no language or way is universal and applicable to everyone?! Smalltalk jives with me better than any other language I've come across yet. Does that mean I should stop searching for that magical uber cool language? NO! I play around a lot with other languages including Lisp, Ruby, Erlang, Javascript, and whatever else tickles my fancy. I always say I'm in search of my favorite language. Will Smalltalk be my fave language 10 years from now? Maybe, maybe not I don't know...I just know I'm more effective with it and it allows me to express MY IDEAS better RIGHT NOW. I think everyone needs to find their M(IND AMP and be happy with it. Who cares if someone's else MIND AMP is Java? More power to them, I say! It doesn't make them any brighter or dumber (one area where I disagree with Mr. Graham). I think developers should group together and pick their own tools that they are effective with as a team. Well, I've written too much, but this is how I felt...I'll close with: Pick the language that gives you the most strength and don't worry what everyone else thinks of it. AMEN!


Andy Hunt Talks About The "New" Cotton Club

Excellent article and thoughts from Andy about file sharing. He also links to a good CNN article as well. It all goes back to "where there's a will, there's a way". If people want to do something, they will...NO MATTER WHAT OBSTACLES YOU PUT IN THEIR WAY. Anyway, it's great ead: The New Cotton Club.



Now, this sounds fun: Soul. It's an open, reflective logic programming language written in Smalltalk. Sound like fun? You bet! I got to this by doing some research on the StarBrowser that installed with the Komanche Web Server in Squeak.


Software Pioneers DVDs Working!

Alright, I bought the book, Software Pioneers a while back to see the talk given by Alan Kay and Erik Gamma. Well, none of my DVD players would play any of the DVDs....grrrr...Well, it sat on the shelf and never tried it out on my new laptop. Well, last night, I decided to give it a try and IT WORKED! YIPPEE...I have over 12 hours of geeky madness to watch! I watched a little bit of the Alan Kay speech, but was too tired to pay full attention...This will be something fun to do once I'm in Nebreska. Yeah, I know all of you are laughing at me...everyone at work was this morning...I AM GEEK AND PROUD!


Evolver Editor

I just gleamed this from the Evolver site: Evolver PC Editor. Man, I can't wait to play with this little synth! I got it not too long ago, but I have had so little time and every little bit of time I get usually goes to the FS1R...Hmmm, so many toys, so little vacation time...=)


Sad Music News

J.D. Kimball, the original lead singer of Omen, has passed away. Read the news item here. He was one of my fave voices in metal and I loved Omen back in the day. Truly sad to hear this news. Time to put on some Omen and remember happier times. Thanks for the great tunes, man! We will miss you.


Monday, October 06, 2003

Blog Challenge In Squeak

Jim Benson made a challenge on the Squeak mailing list to do a blog server in Squeak. He sent a call for participation and I signed up because I think it might be a lot of fun! Check out the Swiki page here. I hope to communicate with a lot of Squeakers! This might be a good opportunity for me to learn the HTML/CSS side of things...=) But, of course, an excuse to write Squeak is always welcome...Wait a minute...I was supposed to be writing tests for my Java Serialization Framework...DOH! I think I can do both...I'll finally have time off!!!! =)


Another good example of things to think about...

If I ever get around to writing my own languge (which I think would be a lot of fun) is here. Yeah, it's another Paul Graham article. What can I say? I love what this man writes!


Squeak 3.6 is RELEASED and Party Tomorrow

This is cool! I wasn't expecting this so soon. Anyway, I hope to catch some of you guys in the IRC channel if I can get out of work. Here's the official announcement from Doug Way:
    3.6 is now available on the downloads page, and is thus officially released!

    Göran suggested we have a sort of release party for 3.6 on the squeak IRC channel, which sounded like a fine idea. So, it will be tomorrow (Tuesday) from noon to midnight GMT. (8am to 8pm EDT.)

    Let's get a bunch of people on the squeak IRC channel chatting about Squeak! Of course, anyone can join the squeak channel at any time, but it might be fun to have a larger crowd for half a day.

    If you haven't tried IRC before, see . If you run into a problem, reply to this thread and someone should be able to help.

    - Doug


Improving Software

I got a comment from Jim Benson giving me another link for me to check out. He wrote 3 articles on Improving Software that were originally posts to the Squeak list. I remember them very vividly and they are an excellent read. I think the thing I love about them is it is a call to arms for us to not just accept software the way it is and to not stop trying come up with the next revolution. I too find it hard to believe that two of my fave languages are still over 30 years old! I would have thought something better would have come along. But, the more I play with other languages, the more I come back to Smalltalk and Lisp. Now, that's not to say that there's not a lot of great ideas out there....There are...I'm always in search of them and I hope that someday I will be the one that finds the "next language" that brings higher programmer productivity. I'm always trying to stretch myself and my thoughts. It's a good dream to have nonetheless....=)


Java Cover

I was reading through Paul Graham's articles (I've read them all, but some are worth a second read) and came across this one on Java's cover. As always, an excellent read that will get you to thinking mode. Paul always seems to tackle the topics on intuition and programmer instinct and this one illustrates it beautifully, I think.


Master of Fine Arts in Software

I love this idea! The ability to spend time with and learn from the "gods of software" would be too cool! I would love to sign up for this program! The idea of learning from Martin Fowler, Dave Thomas, Paul Graham, Andy Hunt, or Ward Cunnigham would be too much fun. I would especially love to learn Lisp from Paul Graham especially after reading his excellent books on Lisp ("On Lisp" is what really opened my eyes to Lisp). Hell, I'll like to learn anything from the guys I just listed! Who am I kidding? I just think this is too cool! I WOULD LOVE TO DO THIS!!!!!


Cool Take On Cincom Doing Java

I love Vlastimil Adamovsky's post on Cincom doing Java in comp.lang.smalltalk. I hope he is correct that "common sense" will take over. And I hope it takes over soon! Actually, I'm not worried anymore about the future of Smalltalk. I think companies will continue to use it and be successful. Will it ever be the most popular language? Problably not. But, why would you want this? There's a lot of baggage to carry around being the most popular. I think Smalltalk is for folks who love to be productive and solving complex business problems. I would like to see Smalltalk become more popular than it is now, but not as much as Java. I have no worries about my future with it anymore. People are still using Lisp as well. I think the perfect market for Smalltalk is not big corporations, but medium sized companies that need a competitve aadvantage. And I can tell you that Java is not a competitive advantage if all of your competition is doing it as well. Companies who need and hunger for that edge will find it. We need to make sure they find us...=)


Continous Learning

Here's an interesting article that I found this morning. I think the idea of continous learning is a great idea (and not only because I practice it), but the things that you learn outside of what you do for work can make your work better. Learning Lisp has opened my eyes up a lot. It makes me ask a lot of DIFFERENT questions than I would have before. It also has given me more ammunition to think differently about problems. Both of these outcomes, I think are a good thing. It's not just a matter of learning technology, but a matter of learning challenging technology.


Sunday, October 05, 2003

Awesome Martin Fowler Article On Protected Data

Go read it here!


Song For My Sweetie

Man, this is awesome....Send it to your sweetie today! Click here now!


Gulf War 2: This Is Funny

Click here and prepare to laugh!


Saturday, October 04, 2003

Language Cookbooks

I just found these and think they are great things to do! It would be awesome to move out of the easy stuff and more into complicated tasks. But, these will do for now! Here's the list:

If you know of any more, let me know!


Check out my new yoyo

One of things I've been getting back into is yoyoing. For my birthday, my wife bought me astro-jax which I can't wait to have sometime (not at work) to play with them. Well, in my frustration, I took a couple of yoyos to work (I don't fear hitting someone in the head with them) because I'm better with them. I had forgotten how much I enjoyed playing with yoyos! Anyway, I've been buying yoyos and playing with them and doing tricks again. It's a great thing to do while discussing design and just thinking about a problem. It's weird, they are like mind amps for me. The rhythm and just zoning of it let's me think deeper. Weird, huh? But, I digress. I decided to buy myself an aluminum yoyo. Now, these puppies are usually very expensive! But, I found one for $15 and let me tell you it's the cat's meow! I love it! It sleeps forever! I also got some wooden yoyos that are like a dream too, but the aluminum is just SICK! Check it out here and check it out the wooden ones here. Pretty cool, huh?


Sea Monkeys

When I was a kid, I used to always see these advertised in the back of my comic books. I always wanted some. Now, not only can I get them, but I can get them on Mars!!! How cool is that?! Here I was thinking that my Alice Cooper jack-in-the-box was be all end all of coolness...I just hope they never made a Robbie the robot doll (remember Lost in Space and Forbidden Planet? YES! THAT ROBOT!) I think the monkeys would make the perfect xmas gift...=) It's on the wish list as of right now!


Friday, October 03, 2003

Great Reply

Read the comment titled: "What happened to honest behavior?". An awesome comment if I do say so myself...


Glowing Review Of New Alice

Couldn't have said it better myself, even though I think "Last Temptation" and "From The Inside" were awesome albums.Go read it here


Cool Interview With Kim Rose About Squeak

Read it all here


A Subject Close To My Heart

James Robertson posted the following on his website: This is when you want a client application.

I've always believed that too many people are trying to make the web paradigm fit for all cases. I don't think it does. It boggles my mind when people want applications internal to a company to have a web interface, but have a complex UI. I only ever get 2 reasons for this. The first is that it lowers maintenance costs because you don't have to deploy to multiple clients and the second is that it's the cool thing to do. On the first issue, you gain in not having to worry about multiple deploys, but, you lose a flexible/rich GUI and having to test on a lot of different platforms. Now, in an internal application, this can be helped by requiring everyone to have the same web browser, but I think you still have the same kinds of cross platform issues that you have with web browsers (even between versions of the SAME web browser!) that you do with a rich client (OS issues). So, now, you have the same cross platform problem, your client is thinner, but less flexible. I don't think everyone weighs these options before deciding to go down one path or the other. Besides, if you do your job right as developer and seperate your GUI from your domain, then you should be able to reuse your domain for a web front-end if the need truly ever arises (they want to make a part of that internal app and make it external to the world, for instance).

Now, you might think I'm totally against web front-ends....I'm not, I just think you should weigh your options and what you're are trying to do before picking a path. There are problems with rich GUIs that are equally frustrating. But, I think each application should make the decision and know why. I think a lot of people just pick a path because it's cool or it's what everyone else is doing. We need to, as an industry, get out of that mindset. Just remember: a clean seperation between GUI and domain is more important now than ever. The GUI application you are building today could possible be a web application for tomorrow and vice versa.

Anyway, excellent article and you need to go read it now!


Thursday, October 02, 2003

Fix harvesting party

Daniel Vainsencher mentioned having a "Bug Fix Harvesting" party on the Squeak list. Basically, we all get together (remotely) and fix bugs collectively. I thought it was a really cool idea. IRC was mentioned as one of the communication protocols used. I love this idea! I hope I'll have time to participate when the time comes. Sounds like a whole lot of fun! Can't wait to hear more details!


Corman Lisp 2.5 Released

I gleamed this from the Corman Lisp list (could it be a pun? well, a bad pun anyway. Just don't say Lisp list too fast, you might break something). Anyway, it seems that Corman has released a new version of his excellent Lisp implementation. Go check it here. I can't wait to download it tonight! All this new software to play with! Here's hoping that Dolphin 6 is around the corner!



OK, so, I'm feeling a little down in the dumps this morning. I send my wife an email about it and she answers with:
    I can't believe you're down. You're so close to such an exciting LEAP! It's
    down to single digit days now, 8 and counting, how cool is that?!? Next
    stop, Smalltalk and XP and friends and fun work and happy place :) You
    should be starting to get giddy at this point! I am :) A whole new place,
    new people, a cross-country drive and a week of vacation. Just think about
    where you're headed and you'll cheer up.

I love her to no end. She always puts a smile on my face and things into perspective...=)



I'll admit it. I love The Onion! Some of the funniest stuff ever written! Anyway, I was browsing this morning and found this column:
    Frustrated Sycophant Can't Figure Out What Boss Wants To Hear
    HOUSTON, TX—Associate vice-president Barry Ackerman has been struggling to determine exactly what West Texas Bank CEO William J. Holloway wants to hear, the shameless toady said Monday. "I thought for sure he'd be against Proposition 13, because it allows home-equity lines of credit," said the bootlicking Ackerman. "But when I started slamming it, he told me he supported giving the public greater spending power. I just can't read him." To repair any damage his comment may have done, Ackerman sent Holloway two tickets to The Producers.


WWYS bought by Microsoft?

I recently heard that Microsoft bought this company: WWYS. Have fun!



There seems to be a new Smalltalk on the block. It runs natively on .NET. It should be a lot of fun to play with. Go check it out here: #Smalltalk


Wednesday, October 01, 2003

Must Learn CSS

Alright, I had my first taste of CSS this morning trying to get my blog to show correctly. It was a frustrating experience, but I like the way things look now. I basically used on the basic templates at I like everything now, but I sure would love to change the orange to purple. I just need time to figure out the shades and all. CSS doesn't seem to be too hard to figure out, but it seems to be a pain to debug if you are not getting the results you want. But, I'm sure this has to do with my newness to it. Yet another thing to do on my time off. I'm off to fixing bugs in my Java code...=)


Smalltalk: Best Practice Patterns

So, I've been reading Kent Beck's "Smalltalk: Best Practice Patterns". I read it a long time ago and it's good to read it again. I can't recommend it highly enough. I'm amazed at how much I had forgotten, but use subconsciencely. Anyway, a lot of these pattern work in any language, not just Smalltalk. I'm surprised someone hasn't done a version of this in Java or something else.

But, take this example of the "Execute Around Method" pattern in Smalltalk (taken from Kent Beck's book)
    File>>openDuring: aBlock
      self open.
      [aBlock value] ensure: [self close]

Now, I decided to do this in Java, here's the code for the pattern:
    class OurFile {
      public openDuring(Runnable aRunnable) throws IOException {
        try {

        } finally {



OK, the Smalltalk code is less, but the Java version isn't THAT much more typing now is it? Now, what if we want to use our new method? The Smalltalk code:
    SomeObject>>usePattern: aFile
      aFile openDuring: [Transcript show: 'do something']

Now, look at the Java code:
    public void usePattern(OurFile aFile) throws IOException {
      aFile.openDuring(new Runnable() {
        public void run() {
          System.out.println("Do something");



Ok, my fingers hurt. The Java version requires a lot more typing (keyboard typing that is) than the Smalltalk version. I didn't even get into taking an argument into the block (hint: it might be nice to pass the file). The Smalltalk version would stay the SAME LEGNTH and retain its conciseness and ease of use. The Java version would grow to be quite huge. Why? Because then I would have had to implement a new interface class to take the new argument. And it would also be a good idea to throw an Exception from the Java method in case you didn't want to deal with Exceptions at that level. The Java version looks nice until you have to actually use it.

I've been in Java shops where the use of inner classes like I did here was forbidden. So, to do the above code, I would have had to create a whole new class just so that I could use this pattern. I'm not even going to get into using Java's reflection to use instead. Why? Because it requires EVEN MORE TYPING! It's like the designers of Java didn't want you to do these kinds of things. The kinds of things that make you repeat things once and only once!


Cool Quote

"I made Madonna faint"-Alice Cooper...CLASSIC!


Metalheads Against Racism

This page is powered by Blogger. Isn't yours?