My Stuff
Email
Twitter
Front Page
Presentations
Projects
Music
Favorite Quotes

Respect
Vincent Foley-Bourgon
Sam Griffith
LeRoy Mattingly
Colin Putney
Matt Secoske
Sam Tesla
Andres Valloud

Admiration
Leo Brodie
Avi Bryant
Alan Cooper
Steve Dekorte
Stephane Ducasse
Doug Engelbart
Eric Evans
Brian Foote
Martin Fowler
Paul Graham
Dan Ingalls
Alan Kay
John McCarthy
Steve McConnell
Peter Norvig
Niall Ross
Randall Smith
Gerald Jay Sussman
David Ungar
Rebecca Wirfs-Brock
...And So Many More...

My Amps
Squeak
JavaScript
Scheme
Java
Corman Lisp
Ruby
Dolphin Smalltalk
Cincom Smalltalk
Self

Archives
05/01/2003 - 06/01/2003
06/01/2003 - 07/01/2003
07/01/2003 - 08/01/2003
08/01/2003 - 09/01/2003
09/01/2003 - 10/01/2003
10/01/2003 - 11/01/2003
11/01/2003 - 12/01/2003
12/01/2003 - 01/01/2004
01/01/2004 - 02/01/2004
02/01/2004 - 03/01/2004
03/01/2004 - 04/01/2004
04/01/2004 - 05/01/2004
05/01/2004 - 06/01/2004
06/01/2004 - 07/01/2004
07/01/2004 - 08/01/2004
08/01/2004 - 09/01/2004
09/01/2004 - 10/01/2004
10/01/2004 - 11/01/2004
11/01/2004 - 12/01/2004
12/01/2004 - 01/01/2005
01/01/2005 - 02/01/2005
02/01/2005 - 03/01/2005
03/01/2005 - 04/01/2005
04/01/2005 - 05/01/2005
05/01/2005 - 06/01/2005
06/01/2005 - 07/01/2005
07/01/2005 - 08/01/2005
08/01/2005 - 09/01/2005
09/01/2005 - 10/01/2005
10/01/2005 - 11/01/2005
11/01/2005 - 12/01/2005
12/01/2005 - 01/01/2006
01/01/2006 - 02/01/2006
02/01/2006 - 03/01/2006
03/01/2006 - 04/01/2006
04/01/2006 - 05/01/2006
05/01/2006 - 06/01/2006
06/01/2006 - 07/01/2006
07/01/2006 - 08/01/2006
08/01/2006 - 09/01/2006
09/01/2006 - 10/01/2006
10/01/2006 - 11/01/2006
11/01/2006 - 12/01/2006
12/01/2006 - 01/01/2007
01/01/2007 - 02/01/2007
02/01/2007 - 03/01/2007
03/01/2007 - 04/01/2007
04/01/2007 - 05/01/2007
05/01/2007 - 06/01/2007
06/01/2007 - 07/01/2007
07/01/2007 - 08/01/2007
08/01/2007 - 09/01/2007
09/01/2007 - 10/01/2007
10/01/2007 - 11/01/2007
11/01/2007 - 12/01/2007
12/01/2007 - 01/01/2008
01/01/2008 - 02/01/2008
02/01/2008 - 03/01/2008
03/01/2008 - 04/01/2008
04/01/2008 - 05/01/2008
05/01/2008 - 06/01/2008
06/01/2008 - 07/01/2008
07/01/2008 - 08/01/2008
08/01/2008 - 09/01/2008
10/01/2008 - 11/01/2008
01/01/2009 - 02/01/2009
09/01/2009 - 10/01/2009

Feed

Add this feed to a running copy of BottomFeeder

Wednesday, May 31, 2006

Is it all coming back to Smalltalk and Lisp?

 
Read Glenn Vanderberg's excellent article from "No Fluff, Just Stuff Anthology" now. He makes a strong case for Smalltalk, Lisp, Ruby and dynamic languages in general. The revolution is coming. Are you ready? Go get your squeak on!

Comments

Pair Programming: Is All The Time Too Much?

 
I work in an eXtreme Programming shop and we pair on ever single line of code. But, too much pairing can be bad. Some pairing partners, while excited initially to try something new, grow complacent after the honeymoon wears off. It's hard to keep them engaged. Pairing all the time stifles creativity because developers are simply uncomfortable taking risks in front of others (we are mostly introverted). It creates a strange group think atmosphere where pairs do what is comfortable and familiar. Few branch out and try new things. The ones that do, do it at home without the fear of failure in public. Sad but true.

Pairing on every single line of code is the path to broken windows. eXtreme programming enthusiasts scoff and grumble at this notion. Why? To ignore that developers are mainly introverts is fighting an uphill battle against human nature. The very thing that eXtreme enthusiasts claims that they embrace. Agility to me is about thinking to solve problems, not adding stifling processes or pithy mantras.

If pairing all the time is bad, is it alright to go back to our lonely cubes? NO! There is immense value in pair programming. In a good session, there's an unparalleled exchange of ideas and an unbeatable code review process. I find the good things happen if the pairing is not constant. Always pairing can be tiring mentally and physically. We all need time to recharge our batteries and reflect. Extended breaks can give us the spark of inspiration to solve that complex puzzle in our design that's been plaguing us.

The key is balance. Doing anything to the eXtreme risks team burn-out. Balance should really be the point of being agile. Take the advice of your mother. Everything in moderation is a good thing. Otherwise, you risk off going off the edge. Constant pairing erodes the benefits of it. Of course, the opposite is also true. The lonely coder can be a dangerous tumbleweed in your codebase.

My proposal is simple: Pair during design and creation of unit tests, not coding. This is where collaboration is a must and the most fun. A test-first approach helps a pair to design the domain language for business. It boils away all unnecessary abstractions and allows the pair to get to the heart of the problem. It becomes the design while providing the harness to verify its validity. Pairs challenge each other to write tests that express the business the most succintly.

Allow pairs to break apart to write the code that satisfies the tests that they write together. This allows personal time for reflection and to try out new ideas. It gives the much needed time to reflect and the exhilaration of collaboration. The pair should come back together after the code is complete and review what each other has done. A refactoring of each other's code is good at this point. Allowing the sharing of information without one pair becoming disenfranchised with a dominant other. Of course, if pairs feel the need to discuss issues as they come up in the code, they should. Remember, it's all about balance!

I have seen first hand the pitfalls of pairing too much. The code and design eventually suffer. Spaghetti ensues and no one wants to work on the brittle system. Quality slips and the team descends into finger pointing and negativity. Pairing only amplifies the problem because developers have no way to get away and heal their wounds. Everyone needs some time alone. But, we also need interaction to stay fully engaged. Everything to the eXtreme is bad. Balance is the order of the day. I will not offer any cute quotes or clever acronyms, just simple advice.

If you're thinking of trying out pairing or are just a burnt out XPer, try out my advice. It offers the best of both worlds. It's a meeting in the middle and is good to try out a new way of working together. You can have your cake and eat it too. Just don't eat only cake. You need your vegetables too.

Comments
  • I think you touch on what is perhaps the most important (imho) aspect of XP: COnstantly asking the question "How might we do this better?" - asking that leads to all the other things, and who knows what in the future.

    You might be interested in an experiment on Pair Programming, currently in progress at Stanford University:
    http://twoalpha.blogspot.com/2006/05/pair-programming-experiment-at.html

    By Blogger Matisse Enzer, at 10:32 AM   

Friday, May 26, 2006

More Info On Rails Presentation

 
Matt Secoske has posted some details of his talk on Rails, June 6, in Omaha.

Comments

Thursday, May 25, 2006

Rails Is Coming To Omaha

 
June 6. Be There. Matt Secoske will be giving the Rails presentation that will leave everyone breathless. If you live in Omaha, you do not want to miss this. The Ruby onslaught is coming. Grab the nearest closure and hold on for dear life! Extreme productivity might just run over you.

The location for the Omaha Dynamic Language User Group has changed for just this presentation. Attendance expected to me in the millions. Come early with your appetite for technological wonders.

See everyone there!

Comments

Eclipse Thesaurus Plug-In

 
I have a new version (1.01) of my Thesaurus Eclipse Plug-In. I basically had a bout of inspiration while I was researching SWT. It now has back and forward buttons. I added the ability to get more entries without scrolling down the page. There's quite a few bug fixes too.

The source is included. The model has been tightened up. I moved responsibilities to where they should have been in the front place. Hind sight is a wonderful thing. I'm still having fun with SWT and amazed that it does exactly what you tell it to. It's a nice framework to deal with. It all makes sense and looks wonderful!

Comments

Devil Horns

 


I have a confession. Metal did not originate the devil horns hand thingy. I have a second confession. I don't know who did. I have a third confession. The same hand gesture is used at P-Funk shows and has been like that for years. Ronnie James Dio is attributed as the originator in metal circles, but I think P-Funk has been using the symbol for years before him.

It's funny how similar early funk and metal truly are. Both are extensions to a group of people disenfranchised by the establishment. Funk in my book will always be a more organic, yet still loud form of rock'n'roll. Same thing with metal. It's just funny that two of my favorite forms of music use the same symbol to show respect.

I'm sorry I just had to post on this topic. I couldn't be quiet any longer. It's just not right for metal to take all of the glory and not acknowledge our alter egos in the funk world. I hope everyone understands. I got to go put on a "Motor Booty Affair" followed by "Holy Diver"! Funk and Metal on!

Comments

Back on Planet Statika

 
At work, I've been doing Java work again. It's weird going from Smalltalk to Java to Smalltalk and now back to Java. I've kept up to speed on my Java skills, so it's not like I'm starting from ground zero. We've been using Java5 and the generics are not as bad as I thought. They are actually quite handy to catch those pesky cast problems. But, they can get hairy if you don't have a proper object model.

Java is a different way of thought and there's advantages and disadvantages. The advantages are the sheer number of frameworks to pick from. It can be overwhelming. We decided to go with simply Hibernate/Tomcat/Axis for a simple SOAP web service. It's strange going back to a compile/wait cycle, but it's not bad. As for the disadvantages, it's a lot of configuration files with awful error messages if you happen to miss type your class name.

It's an interesting journey. I'm curious as to how Groovy makes the Java experience easier since it gives me my beloved "cheap" closures. It integrates tightly with Java (similiar syntax) and accepts the fact you are running on the JVM. Hopefully, I'll get a chance to try it out on a small piece.

Don't worry I still love Dynamica and will travel there in the evenings to dream. I will never give up my Smalltalk, Lisp, or Ruby, my brothers!

Comments

Monday, May 22, 2006

Positive

 
Just to a note to anyone that sees me being negative. Quickly remind me to:
Stop Complaining and take action. Return to positive form.

I've been trying to be a lot more positive these days. I was stressed at Smalltalk Solutions (not the conference, but other things in my life) and it showed. I took action when I came back and I've been in the best mood. My new mantra is to take action whenever something is making me unhappy and negative. Work toward eliminating the negative situation.

I quit smoking. I quit over-eating. I can quit being negative too.

Rock on!

Comments
  • Our thoughts and attitudes are real--and we use them against ourselves all the time.

    Congrats on quitting smoking and over-eating! Keep up the positivity!

    david

    By Blogger David Farber, at 3:29 PM   

Saturday, May 13, 2006

The Power of Blocks in DSLs

 
Charles Nutter has a great blog entry on a Bytecode DSL written in JRuby. If you look closely at the code, he's making great use of Ruby's blocks. It makes the code succint and powerful. Oh yeah, it's fun, too! The example could be done in any dynamic language with closures (Groovy for example).

I'm loving the examples of DSLs coming out of the Ruby community right now. They show off the expressive power of method_missing and blocks (or doesNotUnderstand: in Smalltalk). There's a lot of power in those two simple features that allow you to express higher level concepts easily.

Comments
  • "The example could be done in any dynamic language with closures"

    Could the example be done in any statically type checked language with closures?

    By Blogger Isaac Gouy, at 5:56 PM   

  • Yes. You can do anything in a statically typed language that you do in a dynamically typed one. You'll just type more (no pun intended).

    By Blogger Blaine, at 3:54 PM   

Tuesday, May 09, 2006

My First Eclipse Plug-In

 
I got my first Eclipse plug-in working! I'm so excited! It works in Eclipse 3.1, Windows XP, and Java 1.5. I'm so proud of myself. It was a lot of fun to program. You might ask yourself, what is it? Well, it's a Thesaurus that accesses www.thesaurus.com and reformats the output to make all words clickable. It still needs more work like keyboard shortcuts, the ability to click on a word in the editors, and back/forward buttons.

SWT was a complete pleasure. It's an elegant design and far better than Swing (I could write a book about all of the bad design decisions in it). So now, I have one of my favorite tools in Eclipse as well. ROCK! My next project is the ability to give presentations in Eclipse. I'm thinking Groovy might be the perfect vehicle.

Comments
  • If you use Jython then I would suspect a good bit of your presentation code could be reused outside of Eclipse, and even outside of Java.

    With Groovy, you could reuse that code outside of Eclipse, but you would remain bound to a JVM.

    By Blogger Patrick Logan, at 12:55 PM   



Web hosting by ICDSoft

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


My Weekly Top 20 Artists