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...=)