My Stuff
My Amps

Add this feed to a running copy of BottomFeeder

Linux World 2006 Speaker

Saturday, October 30, 2004

Musicians And Programmers: Why Have One Genre or Technology?

I have been thinking about how close musicians and programmers truly are. I am more confident than ever that programming is functional art. By functional, I mean art that performs some function (aka architecture). The metaphor of a band or orchestra comes to mind immediately. Agile methodologies have brought back the notion of what we always knew to be true: small teams of dedicated programmers can accomplish great things. It seems the mainstream is just catching up even though there have been several books in the past that touched on this subject (Peopleware and Pyschology of Computer Programming just to name two). Much like small groups of musicians can perform great works of music (think chamber music, rock music, etc). Now, these musicians have to work tightly together to make sure that they don't make noise. The same is true for programmers, if we don't pair and communicate, we get noise as well (broken code). Neither is a pleasant experience for our customers (for musicians this is the listener of course). And while a big team can pull off a project, it's rare. It seems the parallel in music is huge orchestras and they are big undertaking (and rare as well). Musicians spend a lot of time studying music (if they are any good), just like we spend a lot of our time studying code (you do study code, right?). I could go on with how we are alike, but I think you get the point. Programming is art and programmers should interact like artists...

So, you're thinking, "Yep, Blaine you're right! I've read this a million times though...What's the point?" Well, I'm going to state my point right now and it's going to seem to be out in left field. My point is we shouldn't bicker about which language is better because it's a moot point. I know, I know, I've been spent a lot of time blogging on why I think certain languages and technologies are better and I will continue doing so. By now, you're probably rolling your eyes and thinking, "Crap, he says arguing about languages is dumb, yet he's still going to do it...What a dummy!" Well, I think computer languages and technologies are like genres of music. I love heavy metal, electronic music, lounge, and weird stuff. Does it mean my tastes are worse than someone who loves classical or jazz? Or even someone who just listens to punk? NO! It's different tastes. Now, ask a musician that question and you will get snickers. It's the same snicker you hear when someone says that language X is better than language Y depending on who you talk to. But, it's all a matter of taste. It's what you like...It's what makes YOU more productive. Smalltalk makes more productive than any other language I have ever used. But, another programmer might say the same about Lisp and another about Haskell. Hell, we can probably find programmers who will scream that java is the most productive for them.

Are they wrong or am I wrong? I don't think any of us are. But, I am frustrated that our industry thinks that there is one genre of music that all of us have to make. How many musicians would be frustrated if the only kind of music that could make was bubblegum pop or freeform jazz? There would be some happy musicians (because they would be making that music anyway) and a lot of frustrated others. I think programmers are in this boat right now. I have the luxury of currently working in the language that I love using, but I know a lot of us who don't. Why can't teams of programmers (much like bands of musicians) get together based on their love for a certain genre of technology? I think the teams would be more productive and the programmers much happier. Now, you might think this might lead to tunnel vision, but you know what? I don't think so. I would love to work with programmers in other languages much like musicians cross genres to get the creative juices flowing. It works the same for us. I might decide to go back to my main love, but I might have new ideas to apply. It would be much better than what we have now.

Anyway, what do I expect to come out of this? I guess I would like to see our industry diversify much like there are different genres of music. I hate one choice. It would be like being forced to listen to one type of music along with everyone else. How boring. Now, I will keep talking about my love of Smalltalk and why I think it makes more productive because I would like to convince programmers to try my genre of technology and fall in love too. It's like playing a song you like for a friend and trying to get them to like it as well. Is the song better than what everyone else likes though? Nope, it's different and fits my tastes perfectly. Hell, I wouldn't be a metal fan if somebody hadn't played me my first Judas Priest song and I wouldn't be programming in Smalltalk if someone hadn't gotten me to use it. So, expect for me to bash less and show off cool things.


Monday, October 25, 2004


Well, I must admit I wish I was in Vancouver right now. It would be cool to do some more great code at Camp Smalltalk. Oh well, maybe next year...=)


Saturday, October 23, 2004

PPUID and over charging

I'm MAD at EBAY! GRRRRRR! Alright, here's the deal, their web site design is awful. Everytime I use it, I have to sign in several times especially if I have to do anything with my accounts. I just made an one time payment for seller fees because they sent me a nasty gram stating that I hadn't paid. Well, the fact is that I tried to pay them via Paypal and the web page kept showing an error page. So, I can't pay, well, some mistakes on my side and them charging me more and sending nasty grams. I go to fix the situation (realizing not to use the paypal links) and what do I discover? I have to sign in several times just to get to the page to pay via my credit card (which none of the forms are prefilled like name, address, etc as well). And to top it all off, they ASK ME HOW MUCH MONEY DO THEY WANT?!!!! Hello, you could have prefilled this in for me! So, then I had to sign in two more times (no I'm not making this up) to get to a page to show me the amount again (this time I remember it). So, I try to go back to the credit card page. I have to sign in two more times just for them not to have anything filled out on the credit card page so I have to type everything in AGAIN! GRRRRR! I finally pay, but at this point, I have no faith in any of Ebay's systems. Un-user friendly and the excessive signing in is awful. Why don't they call up their brother at since they own them now and ask them how to do a web UI that doesn't annoy.

Sorry for the rant, but I had to get this off my chest...I don't think I'll be selling much of anything on ebay any more since they love over charging for small mistakes and that damn atrocious UI! If I was Sun or IBM, I would tell them not to advertise that they use my products because they're using them poorly. Or better yet with that extra fee they charged me, they could pay for a good UI designer. Oh yeah, PPUID stands for Piss Poor User Interface Design.


Busy, Busy, Busy

I haven't been blogging much because I've been too busy. My stint on the java team at work is coming to a close. It's been a lot of fun and the team is truly awesome. But, I believe now more than ever that the language you program in affects the way you think. I've been spending all of my free time on Squeak projects. Here's some of the things I've been working on:
  • Lazy Collections - Just released. Sending select:, collect:, reject: to a collection doesn't automatically perform the operation, but keeps the block and original collection around. Great if your cascading these calls because it doesn't create a temporary collection for results. I've updated it and hope to put it up on SqueakMap.

  • AsyncObjectWrapper - Another small project. It wraps around any object and makes the public calls to the method run in its own process. It can run in async mode or sync mode (waits to return). I'm still playing around with this and it's just a bit of fun with Smalltalk, multiprocessing, and stacks.

  • Web Content Manager - I want to add content to my website more easily. Thus, this project is going to allow me to have a nice looking web site and make it easy to update.

  • Refactor DialectStream in Squeak. Ew. I wanted to change how the auto formatter in Squeak laid out my code and found a mess. This one is at the lowest priority. But, it would be fun to clean that stuff up. The code isn't that bad, it just needs a little cleaning up so that's easier for everyone to add their own auto-formatter to Squeak for their code.

  • JDWP support in the Java project. JDWP is the Java Debugger Protocol. I got a great start on it. I'm about 25% through it and it looks like the rest of the java stuff. It will just take some time. Should be fun to find out where reality diverges from the spec. I haven't found a java spec yet to be 100% right. But, to their credit, the gotchas have been miminal and easy to fix. After that, it's RMI support to the java package! It's getting huge! What started out as a simple way to debug serialization streams has turned into a project that can read in java class files and disassemble byte codes. Lots of more work to be done. The eventual goal is to run java in Squeak!

  • Super Secret Project. I can't talk about this one, but it's my top priority. It's going to rock!

  • And finally, setting up a linux box to play with.

I've been Squeaking a lot and having huge amounts of fun in my free time. I hope to release some of this stuff soon. Time permitting of course...=)


Saturday, October 16, 2004

No Bugs

Here's a great evidence about the argument that strong typing prevents bugs: No Bugs. While you're at it, visit the Alchemetrics site that it is on. It's a great piece of work proving the strengths of Smalltalk. It's automated stock trading software written in Dolphin. And if I might say so myself, Dolphin kicks butt. I can't wait for version 6! Anyway, Check it out!


Wednesday, October 13, 2004

Too Much Fun

Programmers should not be allowed to have so much fun. I love the new format of the Smalltalk User's Group! We had another great discussion last night (in fact, I don't think any of us wanted to leave). We stayed until Panera closed and they were kind of enough to let us stay a little late. Nebraska and Croquet were shown off and then, we had discussions on pair programming, good design, and a whole bunch more. We even had a new member show up! They were passing through the area and we enjoyed having them. We had a great crowd! WOW! Anyway, I hate to gush, but I love talking about my favorite language with other folks. I would like to thank everyone for coming out. Maybe next month, we can get Alan to show off more FIT (acceptance test framework) or maybe we'll discuss design again. I like keeping the discussion open and interactive. See everyone next month!


Monday, October 11, 2004

Lazy Collections

I released another SqueakMap package tonight called "Lazy Collections". Here's the excerpt:
    The idea for LazyCollection is very simple. It takes a functional
    approach to the common collection protocol of select:, collect:, and
    reject:. By functional, I mean the collection is not changed nor is a new
    one created. The blocks are kept around until they are absolutely
    needed. I have been wanting this functionality for some time because
    it's nice for large collections. If you have a collection in which you are
    calling a lot selects, rejects, or collects on, then this will not create
    the intermediate collections. It will wait until you ask something of the
    collection where it can not delay the answer. This should make these
    chained operations must faster on large collections.

    This was a lot of fun to program and it's not that big. Take whatever
    you want from it!

Basically, I implemented new selectors collect:, reject:, and select: called lazyCollect:, lazyReject:, and lazySelect: respectively. Now, these new implementations return a simple place holder object instead of calculating a new collection. It keeps the blocks around. This is useful when you're doing selects and collects in series. It simply combines the blocks. It was a lot of fun to write and it's something that I've blogged about before. It was a short little excursion. I will probably be adding more to it in the future, but I'm very happy with it right now. I hope you enjoy it!


Sunday, October 10, 2004

Well again

I'm well again! No more fever! Yeah! Now, it's time to kick some booty!


Next Omaha Smalltalk User's Group Meeting

It's that time of the month! I hope you're all excited as I am! Again, we're just going to get together and discuss thoughts. I would like to play around with nebraska (a distributed GUI framework for Squeak). It might be fun to play around in...=) I think it would be a lot of fun! As always, anyone curious to experience the love, pleae join us! Here's the details:
    October 12, 2004, 7pm-9pm
    Panera @ Eagle Run Shopping Center
    13410 West Maple Road
    Omaha, NE 68164

For more information, visit the Omaha Smalltalk User's Group Homepage.


Friday, October 08, 2004

Sleep and The Fever that will not die...

OK, so I thought I had it bad on monday...Well, this stuff has now lasted till friday! I've missed a whole week of work and I've been mainly sleeping and eating popsicles...I don't think I've sweated, had more weird dreams, and had so much just plain unpleasantness ever. Oh well, I'll stop complaining and here's to hoping that I get well before monday! I'm ready for this crap to be OVER! Oh yeah, I went to the doctor and everything checked out fine (go figure). Everyone stay well for me!


Monday, October 04, 2004

Fever...Stuck in bed...

Alright, I got some of the nastiness stuff you could ever imagine! It sucks! I've been carrying a fever 101-103 for the past two days and holed up in my bed. YUCK! I thought I would see how long I could last before I pass out again. have I ever mentioned that I love my laptop and wireless router? Yep, I'm writing this from my bed!


Metalheads Against Racism

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