Saturday, July 31, 2004

Vacation Is Over

Well, the second half of my vacation was spent in Utah. All I can say is, "WOW!" The views were the best I have ever seen. We did quite a bit like horse-back riding in the mountains, hiking along canyon ridges, bob-sledding (yep, you heard that right), watching shakespeare, and unfortuantely catching a cold (which slowed me down, but didn't stop me!) All in all a great vacation. I had a blast. It was great hanging out with my wife, my bud Rusty, and his wife. A great time was had by all! Now, it's back in Nebraska. Oh well....=) It was a great vacation to clear my head and dream.

Friday, July 23, 2004

doesNotUnderstand: and code generation

One of the things that I love about Smalltalk is that it allows you to get into the internals and do all kinds of crazy things. One of these things is be able to catch messages that an object doesn't understand and allow the object to do something meaningful. Now, this is great for proxy objects. But, I've also found it helpful in creating new languages for html. Well, generally, doesNotUnderstand: usage is frowned upon and rightfully so. It's a powerful tool to use, but not one you want to use a lot. First off, code becomes harder to debug because you're going through a layer of indirection. It's also hard for beginners to your code to find what you're doing. Things seem to happen by magic. Well, I've been thinking what if I could take away the last restriction? By that, make doesNotUnderstand: a direct call. Well, in Smalltalk I can do that! I can compile a method on the fly, add it to my class, and call my new method. Sure, I still pay for the initial call to doesNotUnderstand:, but subsequent calls are direct message sends. Beginners new to code will now see these auto-generated methods and things run faster. I used this technique in the HttpUnitTest framework because we wanted as concise a language as possible to describe html rules to find content. In a way, this works like Lisp macros (sort of).

I thought it was a nice way to relieve myself of a lot of mindless code and let Smalltalk write it for me. This concept is used in Squeak to fill out accessors. if you call a method and it has the same name as an instance variable, it will create the method for you. Of course, this can be turned on and off. But, it's nice to have when you're writing code. Why write simple methods if the computer can do it for you?
Camp Smalltalk Is Over

Phew! What an exhausting week it has been! I haven't had this much fun geeking out in a long time. I can't wait for the next one! I would love to thank you Martin McClure for kicking so much butt and taking the initiative to do it. THANKS BRO! I would also love to thank everyone that came out to program and discuss my favorite topic: Smalltalk. it was simply GREAT. I enjoyed all of the hacking, conversations, and just plain having fun. The only bad part is that now I have a to do list and a passion to get HttpUnit (name might change) out in alpha and let people see what we did. I think we are almost ready for an alpha release and stay tuned here for more details. Special thanks goes to Roger Whitney and his partners in crime: Dave and Colin. I spent a lot of time pogramming with them and I hope I didn't burden with my silliness to much. It was great hanging out with fellow brethern for a week.

All in all I can't wait till next year(a boy can hope can't he). Now, the urge to go to OOPSLA is very high. I'm going to start praying to the Smalltalk gods right now!

Now, it's off to Utah to bobsled, horse back, hike, and watch Shakespeare! Over and out!

Thursday, July 22, 2004

More Painters And Hackers Quotes

Bill Clementson offers more great quotes from Paul Graham's "Painters and Hackers" book. Click here to read!
YACSR (Yet Another Camp Smalltalk Report

Lack of sleep is getting to me and coffee is required. Me having lot of fun. Me is sad that week is winding down. It's been great having a week of head in the clouds and making the impossible possible. I'm extremely excited about HttpUnitTest and I can't wait to release it for people to play with it. I hope Roger Whitney feels the same way (I think he does...we have been having too much fun!).

I mainly programed yesterday and talked a lot with folks. We had a lot of great discussions on everything from how to market Smalltalk to how to turn Smalltalk into a scripting language. All really good stuff and of course lots of java and microsoft bashing (but, of course, that could be me just hearing myself).

I'm finding love back in VisualWorks. It's been 4 years since I last used it and it has changed a lot. I plan to port HttpUnitTest to squeak nad VisualAge when I get home (it's not going to be very hard since the code base is very small still).

Well, over and out and tomorrow is the last day of Camp Smalltalk...=(

Wednesday, July 21, 2004

Camp Smalltalk: Day Two

Well, I'm working on the HttpUnitTest and we solidified the language to use for querying the html structure. I took a lot of inspiration from Seaside. I wanted something that was as concise as its html generation framework. I think we have achieved that very nicely. Here's an example for one of our tests:

self assert: (browser h1 allSatisfy: [:each | each text = '0']).
self assert: (browser a text includesAllOf: #('++' '--')).
self assert: ((browser id: 'counterValue') anySatisfy: [:each | each text = '0']).

This tests the code from the Seaside counter example. In the first example, I find all of the h1 elements currently shown in the browser object satisfy that their text is zero. The browse object pretends to be just that and is used for navigation. So, if I want to do a simple cick of a link I write the following:

browser clickLink: [:a | a text = '++'].

This code will find all "a href" elements and send it to the block and the first element that satisfies the block rule will be the link that we click on.

Today, we're going to add support for forms and more complicated navigation.

On a side note, we took a road trip Powell's bookstore and I had a blast! So many books, it makes your headspin. I bought three books (how can you escape a bookstore so large and buy no books?!).

Lastly, good and stimulating conversations have abounded. I am with true brothers. I can't express how proud I am to be a part of Smalltalkville this week. I am truly riding on the shoulders of giants this week.

Tuesday, July 20, 2004

Camp Smalltalk: Day One

Mommy, do I have to go home? Man, I'm having a blast. Great discussions continued and we got a lot of great work done. We went to go see some simply breath taking locations. Lots of fun! I went to bed tired and beaten. But, I loved every minute of it. Eric Winger is doing an excellent job of blogging the madness. He's doing a much better job than I!

Monday, July 19, 2004

Love is Camp Smalltalk

WOW! The first night of Camp Smalltalk was awesome. We have taken over Edgefield and the land of Dynamica has been created. It was really great being able to talk to a lot of people that I have respect for and have read their books. Really neat-o. It was also nice not to be constrained and think in the clouds. A lot of times when working on business software, it's just not practical to take full advantage of Smalltalk because everyone needs to understand what you are doing. But, on the project here, you can get away with a lot because those constraints are gone. Plus, it's great to exercise the brain and try experimental things out. In business software, experimental software just isn't feasible. So, you have to get your experimental stuff out in your spare time. So, it's nice to be able to collaborate with folks that want to push the envelope and try things out as well.

I talked and listened a lot last night. I learned a bunch. I can't wait to see how the week unfolds. It's so exciting! It's also nice to be able to bash java and enjoy the company of the some the brightest in the industry. ROCK!

I feel very intimidated to be in such great company. I'm just speechless. Smalltalk is the best! We have the brightest NO DOUBT!
Reclining Seats In Airplanes

Are evil and RUDE! They are nice, but are totally inconsiderate of the people behind them. There is very little room in the seat of an airplane (unless you fly first class) to do anything but sit. But, I like to bring my laptop to program and it's hard to open my laptop when some asshole has their seat leaned back...Grrrrr....End rant of today....

Saturday, July 17, 2004

Camp Smalltalk Tomorrow

Well, I head out to Oregon tomorrow for Camp Smalltalk. I'm so excited I can't wait. I get the chance to meet and program with a lot of great people. It should be a lot of fun! ROCK!
Alan Kay Quote Spotting

I saw Alan Kay's quote: "The best way to predict the future is to invent it" outside of a bookstore in the Detroit airport. I know it's nothing big, but I always love seeing things from the Smalltalk community outside of our community. Anyway, I thought it was cool...=)
Hackers & Painters: Big Ideas From The Computer Age by Paul Graham

Well, I just finished reading this book. I was hoping there would be some additional articles that are not on his site, but I had read them all before. No problem. It was great to read them again. One thing about Paul Graham is his writing energizes you into action. He simply reiterates that the direction that I have taken to run away from the mainstream is justified and the right thing to do. He has a lot of subtle java slams and why you want to go down the dynamic programming path (of course, he wants you to go down the path of Lisp, not a bad path at all). His writing is very passionate and a lot of fun to read. I highly recommend this book and his articles on his website.

Here's some cool quotes:
"We need a language that lets us scribble and smudge and smear, not a language where you have to sit with a teacup of types balanced on your knee and make polite conversation with a strict old aunt of a compiler"

Right on!

"Argue with idiots, and you become an idiot"

Preach on!

"Plans are just another word for ideas on the shelf. When we thought of good ideas, we implemented them."

"The top 5% of programmers probably write 99% of the good software"

"If we were all using the same language, it would probably be the wrong one."

"Lisp's power is multiplied by the fact that your competitors don't get it."

I think Smalltalk's power is the same.

"I suspect few housing projects in the US were designed by architects who expected to live in them. You see the same thing in programming languages. C, Lisp, and Smalltalk were created for their own designers to use. Cobol, Ada, and Java were created for other people to use.

If you think you're designing something for idiots, odds are you're not designing something good, even for idiots."

AMEN!

"Morale is another reason that it's hard to design something for an unsophisticated user. It's hard to stay interested in something you don't like yourself. To make something good, you have to be thinking, 'wow, this is really great,' not 'what a piece of shit; those fools will love it.'"

OH YEAH!

Anyway, do yourself and BUY IT NOW! It's one of the best book I've read in a long time. I hope Paul Graham publishes more. I love all of the books he has (his Lisp books are classics).

Tuesday, July 13, 2004

Alice Cooper - Bare Bones Tour

What a week this has been! I've got to see a lot of my idols this week! I got to see the Master last night and he did not disappoint as usual. He played a lot of older stuff (and a lot of obscure stuff just for us extreme fans). His band has really gelled together well and the drummer was awesome. I don't miss Eric Singer at all. They all played their hearts out and Alice was in top form. Simply, a great great show...=)

Thursday, July 08, 2004

Ozzfest 2004

Well, I went to Hartford, CT to see the first night of this year's Ozzfest because it was the first american date for the reunited Judas Priest. I also got to hang out with some very dear friends as well. The concert itself was a lot of fun and I had a blast! I went mainly to see Black Sabbath, Judas Priest, Slayer and Black Label Society. None of them disappointed. They all kicked major butt. It was great seeing Ozzy with Sabbath and Rob Halford rightfully fronting Judas Priest. I about lost it when Priest played "The Sentinel", "Beyond the Realms of Death", and "Victim Of Changes". Easily among my favorites by them. Anyway, tomorrow night is THE MASTER: ALICE COOPER and I can't wait!!!!
How Geeky Are You?

Go right now and take the Geek Test. I know you want to. I scored 26.23274% which means I merely a "Total Geek". Anyway, it was a lot of fun to take and made me laugh at a lot of the questions...=)
Blogs are Great!

Well, through my posting on my blog, I got on the Camp Smalltalk mailing list. I find it funny that email is becoming less and less a good medium to communicate in. Basically, I think my emails were being eaten by a spam filter and never receving its intended audience. Ouch...Thank you spammers for rendering email useless!

Secondly, I received an email today from a ex-co-worker from my first job out of school and they found me again through my blog. How cool is that?! WOW! I love blogging!

Wednesday, July 07, 2004

More Info On Kyma

Ralph Johnson has provided more info on Kyma here. I can't express how cool I think Kyma is and it's great to be part of the community that delivers such greatness. I hope to one deliver my own Smalltalk baby on to the world. Thanks to Ralph for the update! Now, if I could buy Kyma, life would be AWESOME!

Monday, July 05, 2004

Fourth Of July In Nebreska

OK, I've lived in a lot of places. I've seen firework displays in Kansas, Washington DC, Boston, Raleigh, Alabama, and a few other places I can't remember. Well, none of them matched the one outside of my house the last couple of nights. The land is very flat here, you can see for miles, and the night was clear. All you saw was hundreds of fireworks going off in my neighborhood and distant ones. It was a constant barrage of lights and noise. It was incredible. I have never seen anything like it in my life. They went off for 2+ hours each night. WOW! I love firework displays and all of these little ones were a great show. And I didn't have to pay for one firework, clean up afterwards, or go somewhere to see it. I just got to sit back and enjoy it on my balcony. I found another perk of living out in Nebreska. And most people think there are none...=) You just have to be patient...

Saturday, July 03, 2004

Kyma

Imagine my shock and surprise when I visited my local Barnes and Noble browsed through the recent Future Music magazine and found an article on Kyma. For those who don't know, Kyma is a very cool sound manipulation software package. It's very costly (around $3,000) I think, but if I had the money, I would buy it. Anyway, what's my point and why was I surprised? Well, Kyma is written in VisualWorks Smalltalk and the lengthy article was a review talking about how all of the major electronic and soundtrack composers and sound designers use it and swear by it. I would love to work on their product! I've read about everything I could about it and it's very cool. Combining music and Smalltalk is just too cool. Anyway, right on guys! It's great seeing a Smalltalk company kicking butt, getting respect, and having the coolest product on the block!

Amazon