My Stuff
My Amps

Add this feed to a running copy of BottomFeeder

Linux World 2006 Speaker

Thursday, June 30, 2005

No More Caffeine For Me

I went on a search today after Eliot Miranda told a hilarious story about the goverment giving various drugs to spiders and observing the results. I found several pictures of the webs and it was shocked. The LSD web is the most articulate while the caffeine web is a mess. The study sounded funny, but I must admit that the results are revealing. I know I don't want to ingest anymore caffeine now. And it gives me excuse for the coding competition: I was drinking too much coffee. Yeah, yeah, yeah, that's the ticket.

  • The thing that prompted me to recollect drug studies on spiders, something I first saw in a time-life book over twenty years ago, was reading John Markoff's excellent book "What The Doormouse Said: How the 60s Counterculture Shaped the Personal Computer" which describes how in the late 50's/early 60's LSD was tested on engineers like Doug Englebart to see if it increased their creativity; this at the height of the cold war, several years before LSD became the drug of choice b pranksters. Markoff's book is the best history of the arc that included Augment, PARC and Smalltalk, starting early enough, and ending with the home-brew-computer-club, not wasting time on Apple and Microsoft.

    By Eliot Miranda, at 2:38 PM   

  • I ordered that book the next day after you talked about it. It seemed like a fun read. They talked about the 60's hippie culture and hackers in the PBS special, "Triumph of the Nerds" as well. The book arrived today and I can't wait to start reading it! Thanks for the recommendation and the talk. I just thought the spiders study was too funny. The whole giving engineers LSD to increase creativity is something that proves that reality is stranger than fiction.

    By Blaine, at 11:18 PM   

Back Home

I made it back home today all in one piece of mind from Smalltalk Solutions. This was the first one that I have attended and it will not be my last. It was great meeting all of the people that I admire. It was sad to come back home because I will miss the late night conversations and the dreams of future that could be. I'm more invigorated to get my act together. I want to present something cool next year no matter what. I'm thinking HttpUnit, with some of the extensions that I discussed with Colin Putney and David Schaefer, might be it. But, I have other ideas that I've had and one is from my ill-fated uce case management tool. All I can say is Niall Ross' speech was a call to arms for me. I've even batted around the idea of doing a practical Smalltalk book much like Peter Siebel's Lisp one. I don't know yet, we'll see how everything works out. But, we need to get the word out. I'll also be colloborating with a few new people and that should be exciting. Being at STS also made me want to participate in the community more so that I could get more accomplished at my time there. So, everyone in the IRC, #smalltalk channel watch out! This was just my introduction. I'm ready to blow the roof off the mother! Again, I had a blast with everyone I talked to and I truly appreciate the time that you gave me. I know I took in a sizeable amount of information to parse. You all rock and I love the Smalltalk community. YAKS UNITE!


Wednesday, June 29, 2005

3rd Best

I got 3rd place in the coding competition and it was an embarassing 3rd place. The reason for my embarassment was because my program never ran. It was steeping in bugs! The problem with just 4 hours is that I didn't have enough time to debug everything. Oh well, I just wish the program would have ran and lost fair and square. I figured my algorithm would have lost anyway after watching Kevin's and Micheal's excellent programs run. It was an honor to compete with such great programmers. And being in the top 3 isn't a bad place to be. I entered to get to Smalltalk Solutions and well, it's been everything that I imagined. I've made a ton of new friends and I have a plethora of new ideas running around in my head. Expect a lot of blogs entries once I complete the thoughts. I'm running on spare batteries right now and I can't wait to get home. Yet, a piece of me doesn't want to leave.

  • Hey, wait a minute. When I was there in Omaha back in February or so, I thought that you guys already did test first.

    By smalltalker2, at 2:55 AM   

  • Where I work we do test first, but with only 4 hours, it's hard to do anything but get the job done. I did write my tests first in the first round though.

    By Blaine, at 9:04 PM   

Young Ass Kicking Smalltalkers

It's 2am and it fits my attitude. We are the future knights! Who's with me? Let's take it to the next level! ROCK! Seriously, I had a great day at Smalltalk Solutions. Not one bad conversation and I think I wore everyone out talking technical stuff. My mind seriously hurts. Lots of food for thought and mad fun! I would like to thank everyone for putting up with me. I can't express how much joy the talks, discussions, and debates have meant. It's been unbelievable for me to meet so many that I respect and admire. I've made a lot of friendships while here and I'm going to be sad when it ends tomorrow. Well, maybe not if I win the coding contest...But, Micheal might have something to say about that...=)

  • "We are the future knights"... Is that a lyric from some death metal song?

    Sometimes I worry about you dude!


    By Anonymous, at 3:32 AM   

  • Mohahahaha. No, it's more like a reference to the knights of the square brackets. But, then again, I was listening to Dio when I wrote it...=) I like the first explanation better.

    By Blaine, at 2:06 PM   

  • Rock on!

    By Wilkes Joiner, at 6:02 PM   

Monday, June 27, 2005

Compiling Away Does Not Understand

I was talking to Micheal Lucas-Smith, while we were at the Magic Kingdom, and I were talking about our designs in the contest. I mentioned that my study of prototypical languages had warped my design. He asked how that was and I told him that my survey response objects forwarded their calls to their corresponding questions if they didn't understand them. For example, a message send of #name to the response would forward the call to its question object. These messages have the form:
    ^self question name

Now, I'm a lazy developer. I didn't want to write these messages everytime I add some new messages to question that I want my response to asnwer. So, what do I do? I could implement #doesNotUnderstand so that it forwards the message, but I didn't want to do that because:
  1. It's hard to debug

  2. It's S-S-L-L-O-O-W-W

  3. Confusing

So, what do you do? Well, in Smalltalk, I can have the #doesNotUnderstand: message basically compile a new method for me because it's always of the form listed above. This gives me the performance and it's easy to debug. If you put these special methods in their own category then you can easily track them. Tracking them is good to catch subtle forwarding bugs. Here's what the #doesNotUnderstand: message looks like:
    doesNotUnderstand: aMessage
    (self definition respondsTo: aMessage selector)
    [self compile: aMessage selector forwarder: #definition.
    ^aMessage sendTo: self].
    ^super doesNotUnderstand: aMessage

And here's what the compile code looks like:
    compile: selector forwarder: forwarderSelector
    | messageStream header |
    messageStream := String new writeStream.
    header := (self perform: forwarderSelector) class methodHeaderFor: selector.
    nextPutAll: header;
    cr; tab;
    nextPutAll: '^self ';
    nextPutAll: forwarderSelector;
    nextPut: Character space;
    nextPutAll: header.
    self class compile: messageStream contents classified: self class autoGeneratedCategory

And that's it! This allows me to have a form of delegation by forwarding messages to certain objects. Other objects now do not have to grab an object just to perform actions on it. This makes your objects more shy which is a good thing. Micheal liked the idea and asked me why I had not blogged about it. I told him I didn't think much about it. It's just so simple. He told me that I should blog about it. Well, here it is...=)

  • Isn't it similar to the auto accessor feature that Squeak used to have (or still has?!)

    By Benoit St-Jean, at 9:30 PM   

  • Yes, it is similiar in that you are lazyly letting the system define the dumb methods for you. Let the computer do the easy stuff. And it's that reason why I never blogged about it before.

    By Blaine, at 2:40 PM   

  • I often have my code generate code for me, especially when I'm in exploratory mode. Granted in ruby-land I don't have as easy a time getting said generated code back into my files, but it isn't so hard that I don't generate the code in the first place.

    By zenspider, at 1:13 AM   

  • I started generating code in Ruby and using macros in Lisp. The idea was planted with both and culminated when I was doesNotUnderstand: as a language extension mechanism. Someone complained that it was hard to debug and I thought, well, why don't just generate it? I firmly believe that you should let the computer write the easy code whenever possible. It excels at mundane work. Why not let it write my boring code? I got bigger fish to fry!

    By Blaine, at 3:49 PM   

Coding Competition

The finals for the Smalltalk coding competition were held yesterday. First off, it was mad fun. Alan Knight came up with a really hard problem that seemed simple. It was a bar game involving change (pennies, nickles, etc). What we had to do was write code to connect to a game server playing this game and interact with it. You can guess that the next objective was to create a computer player. No problem right? Nope, I ran out of time! I'm not even sure my player is going to work! If it does, he will be an utter and complete idiot. Four hours is not a lot of time and I wasted a good bit of time on the server code. The reason for that is because the inner coder in me likes writing understandable code and four hours is not enough for understandable code. The time constraints force you to know your tool and not to teeter on any one solution. Just pick one and GO! I simply lost track of time which is a major no-no in coding competitions. But, I'm not disappointed in my dismal performance. I got a chance to chat with Micheal Lucas-Smith yesterday at Disney World and it was great meeting Kevin Badinger at the competition. Great Smalltalkers period. If I have to lose, I know it will be because my opponents' code fu was stronger. We will be placing the players in competition with one another on Wednesday to determine the winner. I don't have high hopes. I'll be over joyed if mine works! Finally, I would like to thank everyone involved in the competition. I had a lot of fun. I can not express that enough. I'm so thankful for the opportunity.


Sunday, June 26, 2005


I haven't looked at my contest submission until today. I was playing with the application and ran into an error! I couldn't believe my eyes! I thought I had tested it thoroughly! But, nope, there was the BlockContext>>doesNotUnderstand: #asMIMEDocument staring at me. How could I be so dumb? Well, the fix was trivial. I had my presentation loaded up when I coded the contest and I had this little ditty:
    ^self value asMIMEDocument

It allows me to use a block as a MIMEDocument so if my document renders itself immediately, I can delay it. I mistakeningly thought it was part of Seaside and not my own code! DOH! Anyway, the fix was easy. The documents are use for it render themselves on the fly and don't need to be wrapped in a block.

But, still this is an important lesson. AUTOMATE YOUR GUI TESTS! So, I'm going to do the two-pronged approach. Port the HttpUnitTest framework to Squeak and use it! Also, I need to download David Schaefer's excellent Seaside testing framework. Both would be a nice one-two punch. Well, I'm off to breakfast and a day of thrill rides.


Saturday, June 25, 2005

Made It

I'm here at Smalltalk Solutions. Tomorrow we're going off to the theme parks. It'll be great to chat with everyone. Travel was alright. The only problems were getting to the hotel and a slight mechanical problem with the plane. So, nothing to sweat over. Laptop is doing great and let's hope it survives through tomorrow night's competition!


Sunday, June 19, 2005

Laptop Woos

The saga continues...It seems HP DID NOT FIX MY DEFECTIVE HARD DRIVE. Sorry, for yelling, but I've been through hell with their tech support. So, what am I to do? I went down to Best Buy tonight and they will install a new hard drive in the same day. I'm not going back to HP tech support ever again. In fact, I'm so mad at that company right now that it will take a few years to get my business back if ever. In all honesty, there is not much that they can do to get this customer back. I'm never buying the stupid tax called extended warranty ever again as well. I'll just leave some money in the bank for that purpose. Hopefully, the saga will be over by tomorrow night since Best Buy said that they could have it done in one day. Let's see if they can actually hold up to their promises. And all of this before Smalltalk Solutions! I should thank my lucky stars that it failed again today while Squeaking and not Orlando.

  • I highly recommend a ThinkPad for your next machine.

    IBM Tech Support has likely put as much money into my machine over the last 3 years (I'm just a month or so from being out of the standard 3 year warranty) as I originally paid for it.

    And that's not a knock on the quality of the IBM hardware, it's just due to my abuse (it gets lugged around in a backpack nearly every day).

    And you /always/ get next day Airborne. Steps:

    Day 1: Call them.
    Day 2: The box is at your doorstep. Pack up the laptop and get it to Office Depot before 6:30pm.
    Day 3: Arrives at service center in the morning, they fix it, and send it out before 6:30pm.
    Day 4: It's back at your door step by noon.

    It's frickin awesome.

    By Stephen Haberman, at 6:45 PM   

Excited about Smalltalk Solutions

I haven't been blogging much lately. Lots of stuff has been going on, but I thought I'd mention how excited I am about going to Smalltalk Solutions this year. I can't wait to meet my peers in the competition. I'm hoping to make some new friends! And we all can do with more of those right? I'm also excited at the list of presenters. It would be cool to spend an evening picking the brains of some of these guys. I just finished Eric Evans' book, "Domain-Driven Design" and it was a great read. And of course, Niall Ross will be cool to increase my meta-fu! And the list goes on and on! It will be nice to meet up with old friends and find new ones. Also, I hope there's a lot of action at Camp Smalltalk! So, everyone look out! I'm bringing the energy...=) Email me if you want to get together! SMALLTALK ON!


Tuesday, June 14, 2005

Omaha Smalltalk User's Group

OK, this month's meeting is real special. We're teaming up with the SPIN group to present a really cool presentation! Here's the details:

This month we have a real treat. Mike Cohn, a Denver Scrum expert,

will introduce us to Agile Estimating and Planning.

We'll look at why traditional planning fails,

how to overcome those problems  with a story-driven process,

how to estimate and plan with stories,  

and why agile planning works.

We'll round out the evening with an interactive estimating

exercise over pizza that will give you

specific techniques to apply in your own work.

About Mike Cohn. Mike founded Mountain Goat Software{1} in 1993 to

help organizations apply agile development methods to difficult

software problems.

Mike is certified in Scrum{2} and author of User Stories Applied

and the forthcoming Agile Estimating and Planning (Fall, 2005)


7pm next Tuesday June 21 2005,

Northern Natural

Gas, 1111 S 103rd Street, Omaha,

Room 149

Join us! If you plan to attend, visit and register.



A special thanks to Alan Wostenberg for setting this up!


Saturday, June 11, 2005

Laptop's Back

I got my laptop back yesterday and it's almost back to operational status. I'm glad it's back fixed. But, I must admit the whole experience with HP support has left me cold. They almost refused to service my laptop because of a scratch on the outer shell and the hard drive had gone bad which was the real problem. I spent extra money on their three year three day fast fix warranty and they had the laptop for over two weeks. It took several phone calls before they agreed that they were being silly and they just needed to replace the bad hard drive. Grrrrr...So, the laptop comes back and they note they haven't fixed anything, BUT THEY HAD. It's enough to make you go to the funny farm. I can't believe how poorly I was treated. I'm a pretty tolerant person. And, to me an extended warranty is insurance for anything going wrong through normal wear and tear. I baby my laptop and was shocked how quickly they wanted to snake out of their obligations. I'm simply glad I got my laptop back in one piece and fixed. I spent nearly 8 hours on the phone over the course of the ordeal. So, what did I learn? Think twice before I buy anything from HP again and never buy another extended warranty. Trust me you are throwing your money away. What's the point of insurance if the company doesn't honor their end of the agreement? It just means you're giving them more money and getting nothing in return. Alright, time to SMALLTALK and create some love in this world!

  • Now it's time for you to upgrade to a Mac Powerbook!


    Your pal,

    Sam Griffith (on a Powerbook ;-) )

    By Sam Griffith Jr., at 3:46 AM   

Monday, June 06, 2005

Missing my Laptop

I've been without my laptop for the best part of a week now and I'm starting to miss it. I've set up linux on one of my old machines in the meantime. So, it's not all bad and I've been catching up on a lot of reading in the meantime. I plan on blogging on my ordeal with HP once everything is done. Somne of it was really silly. But, it's getting fixed now (the hard drive went out) and I should have it before the weekend. This is after several phone calls and almost in tears. Besides, I'm anxious to start playing around with prototype languages since I think I now understand it more now than I did before. I thought I might implement one in LISP just for fun. Who knows? Let's hope my laptop comes soon!


Sunday, June 05, 2005

Prototype Eureka

I've been reading a ton of articles on prototype-based programming. I even bought Prototype-Based Programming: Concepts, Languages and Applications which is an excellent introduction to the subject. So, I was thinking prototypes are a great idea, but I had some reservations since I have been so long in the class-based camp and prototypes are radical. I had basic questions of like how do I organize my programs now? Well, I found "Organizing Programs Without Classes". What an amazing read. It answered all of my questions and gave me my first "Eureka!" moment in prototype-based programming. It all feels so liberating! I can't wait to get my laptop back and continuing my studies of Self and Io!

  • Blaine,

    Another good foundational paper is Using Prototypical Objects
    to Implement Shared Behavior
    in Object Oriented Systems
    . It is a bit more expository than Ungar's. (These are my two favorites for programming with prototypes.)

    By Patrick Logan, at 11:50 PM   

  • Don't forget to check out Slate, as well.

    By Anonymous, at 4:06 AM   

  • Thanks, Patrick! I loved that article too. I'm loving the delegation model of prototypes over inheritance. It's so liberating! I can't wait to get my laptop back and start playing around!

    By Blaine, at 9:40 PM   

  • Funny you should mention Slate because I've been looking at it as well. I like the fact that it's been bootstrapped in Squeak. It will be fun to explore as well! I need my laptop!

    By Blaine, at 9:41 PM   

Omaha Ruby User's Group

It's time to hold the second meeting of the Omaha Ruby User's Group. This meeting is just a simple get together like the last one. The only planned topic is to be bring your favorite pieces of Ruby code or your curiousity. Hope to see a lot of people there! Make sure you sign up on the mailing list. Here's the information of the when and where:

    When:June 6, 2005
    Where:Panera @ Eagle Run Shopping Center
    13410 West Maple Road
    Omaha, NE 68164


Thursday, June 02, 2005

Ain't I Cool?

I'm sorry but I need to toot my own horn. Look at this:

The Smalltalk Industry Council is happy to announce the winner of the first portion of the 2005 Smalltalk Solutions Coding Contest. Congratulations on a fantastic job. The winners in no particular order are:

  1. Blaine Buxton

  2. Michael Lucas-Smith Sorry for the misspelling before!

  3. Andrei N.Sobchuck

How COOL is that?! I can't believe that I'm in the top 3! I am so excited! I can't wait to meet the fellows in the top 3 with me. It'll be great to sit and chat with them! This is great news since my laptop has been sick this week and that's why it's been slow on the blogging part. I can't wait to get out there and mingle with my Smalltalk brothers and sisters! This is going to be so much FUN! I can't wait to compete! See everyone June 26! SMALLTALK ON! Oh, I almost forgot I would like to thank everyone for putting on this contest! It was MAD FUN!

  • Andrei Sobchuk is russian and he is really cool not you. ;)


    ????? ???????????? ????, ?? ? ?????! ???????? ????????!

    By Anonymous, at 12:08 PM   

  • Hey dude,
    I really missed not being able to meet you...=) Maybe next year, I'll have that pleasure to be around such coolness. You can teach me...=) Smalltalk on! I wish you could have been there!

    By Blaine, at 9:00 PM   

Metalheads Against Racism

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