Tuesday, August 30, 2005

Coheed & Cambria

So, I was watching Fuse with my wife the other night and thank goodness for Tivo. I was enthralled by this one commercial with this great music and montage of creepy images. At the end of it all, it showed the roman numerals, "IV" and that's it. We reversed back and got the band name, "Coheed & Cambria". Well, I googled and got to their band page. From there, I listened to some more samples and I was hooked enough to buy one of their CDs. It has to be one of the most incredible pieces of music that I have heard in a long time. It's pure and simple rock with lots of melodies and harmonies. Gorgous does not do it justice. I can't stop listening to it. I've now got all of their CDs on order and I can not wait until their new album, "IV" comes out at the end of September. If you want an idea of what to expect, it's progressive rock without being pretentious and the albums are concepts based around a science fiction story which they have graphic novels for. I'm getting the novels next week. Mark my words, these guys are going to be HUGE. I hope to make a trip to Lawrence, KS in October to see them. I didn't know people still made ROCK records like this anymore. Apparently, they do and there's a whole genre of bands doing stuff like this. Thoughtful, arty music, but with their feet firmly planted in creating memorable hooks. This is what made Black Sabbath, Led Zeppelin, Yes, and Queen great. ROCK ON!

Sunday, August 28, 2005

Too Funny

I see the next shirt that I'm going to have to buy. CLASSIC! The Ruby guys are really giving java a lot of hell. A light-hearted jab in good fun. Ruby on!

Saturday, August 27, 2005

Excited about Squeak 3.9

Traits will come with Squeak 3.9. How awesome is that? Prepare to have another weapon added to your arsenal. Of course, if you can't wait like me, you can download it now in 3.8 via SqueakMap. Squeak on!

VOIVOD Guitarist DENIS 'PIGGY' D'AMOUR Dead Of Colon Cancer

It was reported yesterday that Piggy of Voivod died of cancer at the age of 45. Wow. It took me years to get into Voivod, but once I "got it", they've been one of my faves. Piggy was an incredible and unique guitarist. He will be missed. I got to meet him at Ozzfest a couple of years ago and they were incredibly nice and appreciative. I can't believe another hero is gone. I will be spinning "Dimension Hatross" and "Nothingface" in remembrance. RIP, brother.

Friday, August 26, 2005

The Future and The Ordinary

Suppose you are absolutely certain that a technology that you know about will succeed. How long will it take to have a major impact? Warning: Technologies take a surprisingly long time to become accepted.

The above quote is taken from Donald Norman's "Defending Human Attributes in the Age of the Machine". He gives insight in why new technology takes so long to adopt and even gives some examples of outmoded technology that we still use (the "qwerty" keyboard). Then, he explains several examples of modern technology and how long it took them to be accepted. The numbers are staggering. The television took seventy years from inception to acceptance! He gives a lot more examples and it's quite the read.

Where am I going with this? I think this applies to computer languages and frameworks. The rest of the industry keeps edging toward Smalltalk and Lisp. The road to Smalltalk was started with C++ (by mimicing OO features) gaining acceptance. Later, it was java (VM, garbage collection) and now, python and ruby (late-binding, dynamic typing, closures, etc). Each jump has taken about ten plus years each. What will the next jump be? I'm hoping it will be toward the image because it's the only piece missing. But, we still have about ten years before critical mass. Are you patient? I think I can be.

Each technology jump toward Smalltalk should be celebrated. I tend to be disappointed with each jump because it's not far enough, but I should be happy. Everyone is one step closer to feeling the love. Oh, I can wait ten years for love. Can't you? Now, the question is how long will it be before prototype languages are accepted? I'm betting at least twenty years from now. Well, that's a lot of time to be ahead of the curve and kicking everyone's butt don't you think?

Thursday, August 25, 2005

Service Provider Went Nuts

If anyone sent me email today and I haven't replied, please resend it. My service provider's email server went nuts and I know I lost some email, but I don't know how much. So, if you don't have a reply from me, I'm not ignoring you. Thanks!

Wednesday, August 24, 2005

Amen, brother

Sam Tesla has a simple prayer that we should all say several times everyday. Right on!

I, Prototype

...unfortunately, Self was not the last object-orientedprogramming language. Self does have some claim to be the lastinteresting object-oriented programming language, or at least the lastinteresting modern OO language with most languages coming afterwards,C++, Java, C#, Cb, being as distinguisable as Coke from Pepsi orMalboro from Rothmans: you dont drink the drink, you drink theadvertising (Twitchell 2000). In Self, at least you can hear yourselfscream.

I must admit that I agree. The above quote is taken from the paper, Attack of The Clones.It's a paper that shows some of the patterns from GoF book implementedin Self. It has to be one of the best reads I've come across. It'scertainly entertaining. Here's some more:
Anotherlovely, natural example of dynamic inheritance in Self. You could dosomething almost as nice Smalltalk using doesNotUnderstand but theSmalltalk Companion doesnt talk about it because, well, theyre wimps(Alpert et al. 1988). You can also do exactly the same thing inSmalltalk using Wrappers (Brant, Foote, Johnson & Roberts 1998).

TheSmalltalk companion is one of my favorite books and I wouldn't callthem "wimps", but it just made me chuckle. And I can't forget this one:
How hardcore do you want to be?
How many lifetimes to you want to waste?

Idon't want to be hardcore and I'm tired of wasting lifetimes...=) Thisarticle is just another one that is making me fall in love with Selfand prototype-based languages more and more. I can't wait to implementand play with these in Io.

Monday, August 22, 2005

Bob Moog Dead at 71

It's sad when your heros start dying. Moog synthesizers are known around the world as being the best. Moog was one the first electronic instruments makers (apparently, he was inspired by what he saw at Raymond Scott's house). He started out making Theremins which are the things responsbile for all of those eerie sounds in 50's horror and sci-fi movies. He's been such a fixture and icon in electronic music. I'm so shocked. I was hoping to meet him one day and thank him for all of the good that he put into the world. Love is lots of knobs and flashing lights to make wonderful sounds. He was the inventor and catalyst for it all. He will be missed. I'm going to go plug my mooger foogers in right now and play in remembrance. Why can't the good ones live forever?

Shameful and Unprofessional

Iron Maiden was pelted with eggs at their last show of Ozzfest. Here's a personal account taken from Blabbermouth:
The manager of a well-known heavy metal band (*NOT* IRON MAIDEN) who attended this past weekend's Ozzfest show at the Hyundai Pavillion in Devore, California has submitted the following first-hand account of the evening that will surely go down as one of the most shameful moments in recent rock history (NOTE: at his request, the author's identity is being protected by BLABBERMOUTH.NET):

"Saturday night's Ozzfest at the Hyundai Pavillion near Los Angeles was a debacle on so many levels, I am still in shock as I write this. As a fan of many of the bands [Saturday] night, one can only hope this was an isolated incident, but sadly, it most likely wasn't. As many of you have heard already, co-headliners and metal legends IRON MAIDEN were pelted with eggs, bottle caps, beer cups, spit on, had people from the Ozzfest camp talking over the PA during their set, had 'Eddie' delayed from his onstage entrance, had members of the [BLACK LABEL SOCIETY] entourage rush the stage with American flags, and had the PA intentionally turned off over 6 times, all by the OSBOURNE CAMP.

"While it's still unclear as to the exact reasons why the terrorizing started (rumors abounded as to why, with everything from Bruce calling out Ozzy in the U.K. rock magazine Kerrang! on the widely known fact that Ozzy uses a teleprompter, to various vague references said on stage about a 'reality show' at an Ozzfest stop in Detroit), one thing was very clear: The whole thing stunk, and left me, and nearly all of the 40,000+ heavy metal fans in attendance angered and disappointed. Not that behind the scenes bickering or magazine trash talking is anything new to rock fans, but the shocking lack of professionalism at one of the largest stops in North America in front of 40,000 + spectators, at the hand of the Osbournes was nothing short of disgusting.

"It all began early in the afternoon, when many side stage bands were openly approached in clear view of everyone backstage by Sharon and Kelly Osbourne to 'join them in throwing eggs at IRON MAIDEN this evening.' All the bands were encouraged to rally the other side stage bands to do so. Members and/or friends of the hardcore band BURY YOUR DEAD were seen actively trying to encourage other side stage bands to 'join in the fun.' Thankfully, many side stage bands angrily declined.

"Later that evening, as IRON MAIDEN came on stage, their intro was interrupted by [BLACK LABEL SOCIETY] hanger-on and biker wannabe Big Dave, who was at the soundboard loudly chanting 'Ozzy, Ozzy' over the PA. MAIDEN opened their set and the entire band was pelted from the front row with eggs, beer, beer cups, spit, and various other objects by an Ozzfest-credentialed, bandana-wearing, Osbourne entourage. IRON MAIDEN, ever the professionals, continued through their set, and by the time they launched into their second song, 'The Trooper', Bruce changed into a civil war-era, red coat and began waving a Union Jack — British flag. Then, someone in, or associated with, BLACK LABEL SOCIETY tried to rush the stage waving and American Flag with the words 'Don't fuck with Ozzy' scrawled across his bare chest. He was tackled and beaten by MAIDEN crew and promptly thrown off stage.

"As 'The Trooper' ended, frontman Bruce Dickinson, with characteristic spunk, launched into a scathing attack on the people terrorizing his band, calling them 'a sorry excuse for an Ozzy Osbourne fan,' and wondering aloud how, 'three dozen eggs could get snuck into the front row of Ozzfest by people with Ozzfest laminates?' Though he never named names, all in attendance could understand who he was referring to. Nicko McBrain ran up to the front asking Bruce to hold on while he cleaned egg off his drums. He then stated the the next song wouldn't be heard on 'Your local cocksucking corporate radio station, wouldn't be seen on MTV anymore, and sure as hell wouldn't be played on a fucking reality TV show,' met by a huge roar from the crowd.

"During the song 'Hallowed Be Thy Name', Bruce, after only the first two lines, stopped singing and ran to the front row, firing back at his terrorizers, saying 'That asswipe right there, with the curly hair, the fucking glasses, and Ozzfest laminate throw his fucking ass out of here right now. It's gonna take more than eggs to stop IRON MAIDEN, and if it wasn't for a lawsuit, I'd rip your fucking head off right now, you piece of shit!!!!' He had the various attackers ejected and continued with a blistering version of the song until right before the big sing long at the end, the PA was INTENTIONALLY cut off. When it came back, Bruce launched into another scathing attack saying that they were supposed to play a shorter set than normal today, and only play 55 minutes, but IRON MAIDEN can't drive 55, or play 55, and were going to play our whole fucking set tonight.

"The band endured six more 'PA cuts,' including having the power to their amps turned off at one point. When the PA would come back on, they would simply launch into the next IRON MAIDEN classic, never missing a beat. Frankly, with every PA cut, the band just got meaner and meaner, playing each new song with an anger and a fire that was at times, simply astonishing to watch. Bruce began the introduction to IRON MAIDEN with a speech about 'Your constitution has something about 'We The People.' Well let me tell you, the only reason we are up here tolerating this bullshit, is because of you people. You have been amazing Glen Helen, and there are A LOT of IRON MAIDEN fans here tonight,' eliciting a huge roar from the crowd. He continued, 'It's gonna take more than eggs to stop IRON MAIDEN, NOTHING is going to come between us and our fans, and it will be death before dishonor, this is 'Iron fucking Maiden',' which was greeted by a thunderous applause. During 'Iron Maiden', longtime MAIDEN mascot Eddie was purposely delayed from making his entrance, making a brief appearance at the end, and one could only wonder as to how. As the band closed there set with a furious version of 'Sanctuary', the PA was again cut only to have Big Dave repeatedly chant 'Ozzy' over the PA, while the band tried to say goodbye to their fans. The now-furious crowd angrily drowned him out with chants of 'MAIDEN, MAIDEN.'

"Then, not 10 seconds after MAIDEN left the stage, Sharon Osbourne walked on stage and predictably, tried to give MAIDEN some fake, half-hearted praise about how they'd like to 'thank IRON MAIDEN,' and what a wonderful band IRON MAIDEN are, and how their crew were 'fantastic,' then sneering, 'But Bruce Dickinson is a prick.' The entire crowd, now fed up with the entire affair, began loudly booing her, pelting her with beer cups, and yelling 'bitch.' She tried to carry on, adding that 'Bruce had disrespected Ozzfest,' only to be drowned out by an ocean of boos, and soaked with beer. She slammed the microphone down and stormed off stage. Many in the crowd, fed up with what they had just witnessed, especially considering that many had come solely for MAIDEN, and paid upwards of $150 to do so, left in droves. SABBATH played to maybe half the audience that was there prior, and seemed stagnate compared to the band preceding them. As a huge fan of SABBATH, I honestly couldn't stand to watch them.

"I've seen IRON MAIDEN probably 10 times in my life, and frankly this was the very best IRON MAIDEN show I've had the pleasure of witnessing. You DON'T want to fuck with IRON MAIDEN. The more the Osbournes tried to fuck with them, the better they got! IRON MAIDEN was on fucking overdrive! Considering the amount of terrorizing and intimidation that IRON MAIDEN had to deal with at the hands of the Osbournes and the other side stage and main stage bands participating, they were the consummate professionals. They had the crowd in the palms of their hands, and IRON MAIDEN and Bruce Dickinson proved beyond a shadow of a doubt why they are the greatest metal band on earth right now, and quite possibly, the classiest, too.

"The Osbournes are drunk with power. Shame on them, and shame on ANY of the bands that participated in the terrorizing and intimidation. It was disgusting display, that NO BAND should have had to endure, but especially a legend like IRON MAIDEN. That fact that it happened in front of 40,000+ people, at a Clear Channel-sponsored event, while Hyundai Pavilion Security turned a blind eye and let the Osbourne camp pelt one of the main headlining bands with eggs, beer, and spit, was simply inexcusable.

"I will proudly be attending next year's MAIDEN fest, and as much as I hate to say it, I can't bring myself to spend another dime on the Osbournes.

"Ozzfest, hang your head in shame."

Indeed...I can't believe this happened. This takes unprofessional to a whole new level. I have new found respect for Maiden for putting up with so much crap. And if it is true that Sharon had anything to do with it, I might have bought my last album of any of the bands involved and seen my last Ozzfest. I can't express how unmetal and deplorable this was. Up the irons.

Fly On The Wall

I wish I could be a fly on the wall at the Vancouver Lisp User's Group when Avi gives his Seaside talk. I think it would be not only a fun talk, but I would love to hear the resulting conversations. Avi has taken the basic continuation-based web server that started in Lisp and has taken it much further. The suggestions of Lispers would especially be interesting. Makes me wish I lived in Vancouver.

Team Design

I was reading "The Cognitive View: A Different Look at Software Design" by Robert Glass. And the following quote struck a chord with me:
Those same researchers have been looking into team design. And
they’ve found that, in many ways, it’s a shared form of individual
design:
  • The teams create a shared mental model.
  • Team members, sometimes in their own minds and sometimes in the group, run simulations against the shared model.
  • The teams evaluate the simulations and prepare the next level of the model.
But in some ways these efforts are unlike individual design:
  • Conflict is an inevitable part of the design process. It must be managed rather than avoided.
  • Communication techniques become a vital part of the design process.
  • Issues sometimes "fall through the crack" because no individual claims responsibility for them.

I'm always preaching about a "common vision" on the teams that I'm on and I always feel strongly about obtaining it. All of the successful teams that I've been on have had this "common vision". It's a shared goal and reaching for the same target. Without it, every individual has what they think the design should be and you end up with an unmaintainable big ball of mud. It's his first bullet point! A well-oiled agile team achieves all of the first bullet points and knows how to manage the last set. In fact, the last set of bullet points really boils down the problem of unsuccessful teams well. Healthy conflict resolution is paramount to a successful team. Mr. Glass goes on to define what a consider to be the definition of a good IT manager:
In managing design, managers can focus on communication facilitation and conflict resolution as their contribution to design. The empirical studies researchers further suggest that management of design should be the management of the key issues that arise during the design process.

The manager's job should be removing obstacles from the software designers and coders and not standing over you make sure you get your job done. If as a manager, you have an employee that you have to stand over to get their job done, then you've hired the wrong person. You should be making sure your developers have a proper road to race toward the goal on.

There's a lot of nuggets of information contained in and all in all a good read.

Dynamic Languages Help You Design

Darrell Norton makes some interesting observations from "The Cognitive View: A Different Look at Software Design" in his blog entry, Dynamic languages work closer to how you design software. He combines points from this article with the one I mentioned earlier. All three articles are worth a read. I especially love this quote at the end of Darrell's blog entry:
"when I want to focus on the domain problem and not the implementation in curly braces, End If's, or angle brackets, dynamic languages are a (good) answer."

Why REPL is a good thing

Here's a great article on why REPL (read-evaluate-print loop) is a good thing. He mentions using IronPython for .Net, but you can get the same functionality in java with Jess, Groovy, jRuby, and of course, jPython. I love the mentions of Smalltalk. REPL allows you to try out designs and code out quickly. Smalltalk compiles code when you save and you never notice it. One thing that people don't realize is that you are inside a running system that you can change. Any change you make to the system is live, it's not operating on a dead instance of the system. It's the same functionality that gets blank stares at "Ruby On Rails" demos. Sad thing is we've had this for over 20+ years in Smalltalk and Lisp. I'm just glad our industry is finally coming around.

Sunday, August 21, 2005

Cool Pavement Drawings

Juian Beever is a pavement artist that does great work. Check out his website and go down to the 3D illusions gallery. INCREDIBLE! Here's one to whet your appetite:



I would probably walk around that if I saw it! Great optical illusions. MAD FUN!

Saturday, August 20, 2005

Kent Beck vs. Alan Cooper

My friend, Larry Brodahl, sent me a classic article debating Extreme Programming vs. Interaction Design from both of their visionaries. I would love to see more debates like this. I wish they would have continued this discussion. It felt unfinished. It was a great debate! We should always be interested in doing things better. And that is what these types of discussion allow. They make us look at what we are doing and question what is not working.

By the way, if you have never read "The Inmates Are Running The Asylum", you need to now! I can't wait to read "About Face 2.0" now.

Friday, August 19, 2005

Object Inheritance

I've long been a fan of "Streamlined Object Modeling". It's a book I keep coming back to over and over. I was reading it recently and wondered why I never noticed the connection with prototyped delegation and what they call "object inheritance". The book is a collection of domain modeling patterns and several use "object inheritance". One pattern in particular expresses the relationship between an actor and a role. For example, let's look at some java code:
/**
* The common behavior of the actor and the role
*/
public interface PersonProfile {
public String getName();
public void sendEmailTo(EmailAddress another, String message);
}

/**
* The actor's behavior
*/
public interface Person extends PersonProfile {
public void setName(String aName);
public void setEmail(EmailAddress anAddress);
}

/**
* The role's behavior
*/
public interface Employee extends PersonProfile {
public BigDecimal getSalary();
}

The implementation is not important. I wanted to show example interfaces and to show the relationships. The point to object inheritance is that the Employee forwards the calls for PersonProfile on to a Person that it holds on to. This allows you to pass around the role or actor through the same interface. Now, you might be thinking that's a lot of forwarding going on. It is. Now, you could get fancy by using a Proxy and an InvocationHandler. In fact, I do something similiar in Smalltalk when I compile the forwarders on the fly. It's a great modeling technique and is useful in several contexts for expressing clarity in the model. Prototype programming languages make this modeling technique easy to implment (no duplication or coding gymnastics required) by the use of traits. Simply put, traits is a composition technique to combine collections of behavior with data to construct objects. To learn more about traits, read the paper, Organizing without Classes.

The good news is that it's simple to do this technique in Smalltalk by use of the Traits package. Ruby even has it through its Delegate framework. Once you start thinking in Traits, it's hard to go back. Have fun with this new technique and happy coding!

"Streamlined Object Modeling" has the best discussion of modeling and implementing business rules in object-oriented languages that I have ever seen as well. It's a great book all around that balances theory and implementation. It's filled to the brim with great advice that every business modeler should know.

Thursday, August 18, 2005

More Good News

It seems BEA is looking at scripting languages to add to its arsenal of products. It seems dynamic languages are making all kinds of head way in the world. ROCK!

SmallHttpUnitTest Rewrite Update

After finally fixing SmallHttpUnitTest for VisualWorks and having talks with several folks at Smalltalk Solutions, I felt it was time to revamp SmallHttpUnitTest. For one, it was slightly misnamed in that the tests are really end-to-end acceptance tests. I was trying to make the navigation easier through the objects. But, somewhere I made a wrong turn. I started to really look at the Selenium Testing Framework. It runs your tests in the browser via Javascript. Nice. It's simple and it works with a nice a table structure like FIT. You can even command it remotely from another language as well such as Smalltalk, java, Ruby, and more.

Well, it all got me thinking how nice it would be to drive the browser like Selenium does, but with the nice object traversal that I used for SmallHttpUnitTest. You can command Internet Explorer, Firefox, and Opera via Javascript. It's a slightly different idea from Selenium in that the web page that you're loading does not need to have any Javascript loaded. The Javascript works externally via a script that runs the web browser via COM (for Microsoft) and I'm still researching Firefox/Mozilla (but, I know its possible to drive them with Javascript as well). It would seem some Ruby people had the same idea! But, I want to take it further. Javascript makes a lot of things easy since it is so well-integrated into the browser.

The pieces of SmallHttpUnitTest that are in Smalltalk will be re-implemented in Javascript. A lot of the browser handling code is no longer needed! The Smalltalk piece will be an external application that watches what you do as you're traversing your web application and takes notes. Once you've finished navigating, you could update your asserts for each page load and have Smalltalk generate the Javascript for you. I'm doing the proof of concept for Internet Explorer since I am more familiar with the OLE/COM model to drive IE. But, I expect Firefox to be a no brainer. I should only have to replace one object and everything will just work. So, you could have one script that drives both. There's a few more surprises that I want to work out and I will be blogging about them. I have a lot of work ahead of me. This a completely different approach than what I was thinking of doing at Smalltalk Solutions. I've been slow doing the prototype, but I have been a busy boy!

You might be wondering how I got the DOM searching of HttpUnitTest working in Javascript since it uses generators and doesNotUnderstand: a lot. Well, that's a topic for another blog entry. Let's just say that higher order functions are your best friend.

Wednesday, August 17, 2005

Java's Coolness Declining

It seems Apple is dumping java for Cocoa development. I've felt the java coolness factor on the decline for awhile now and scripting languages on the rise with the developer of Rails getting Google hacker of year. I love seeing dynamic languages getting more of the lime light. It's going to be interesting how Python and Ruby will change developer's perspectives. No matter what, it will be a fun ride.