"COMPUTER POWER TO THE PEOPLE! DOWN WITH CYBERCRUD!" - Theodor Nelson
Wednesday, June 30, 2004
Man, are we good or what?! We had an excellent meeting last night at the Omaha Smalltalk User's group. Alan Wostenberg gave a passionate presentation on XP and showed off XP Swiki as well. We had a lot of discussions on how to get XP and Smalltalk more widely accepted. The time is now! We need to broadcast our successes! And yes, I'm on a super successful Smalltalk project!
Unfortuantely, there will be no meeting next month. But, we will start back up in August and ready to kick butt! GO SMALLTALK!
Check this out: Barbie and Blaine. Apparently, I've been dating Barbie. Man, how am I going to explain this one to my wife? Maybe she's dating Ken now...=) Anyway, I thought this was good for a laugh and funny that they chose my name...=)
Gapless MP3 Playback
Alright, my beloved PJB (Personal JukeBox) mp3 player is on the fritz and I am deeply saddened. It gave me 3 years of great service. So, you say why not just go get a new one? Well, I did! But, it shocked me to know that in 3 years that my old rugged mp3 player (which by the way was the first one with 20GB hard drive....3 YEARS AGO) is still more advanced that a lot of the newer players. One of the "advanced" features is one called "gapless" playback. What this means is that if I play two songs back to back, then I don't get silence between the songs. This is crucial for those beatles, slayer, and live albums that have no silence between tracks. It seems most mass storage mp3 players do not support this feature! Now, why is that? I hear a lot of people say, "Well, mp3 doesn't support it" Why does mp3 have to support it? I think it's a case of lazy designers who forget to put in double buffering (load one segment in a space that is not being played). It's how anti-skip works on your CD player. It amazes me that my old mp3 player does this and the newer ones don't. Is having a double buffer strategy more costly (I don't think so, you still have to load stuff from somewhere!)? I am just baffled. Double-buffering was one of the first things I learned to doing clean audio streaming (and clean graphic animations too). Oh well, I'll get off my soap box now...=)
Sunday, June 27, 2004
Oh boy, David Buck has posted a comment on Java Complexity. He points to this post which probably has some of the funniest comments I've read in awhile.
It makes me think about my time wrestling with Swing. At the time, I wanted to write a book on bad design and use Swing as the example. Swing is riddled with poor usage of private and final keywords (in other words, the protect you from bits you need to get to if you write your own widgets). There's also poor use of inheritance (why are the Swing components subclassed from the AWT Components?!!!). And to make matters worse, Swing is very complex and daunting for the average programmer. Don't even get me started with J2EE which is supposed to be a distributed framework that was suppossed to make enterprise development easier by making the connection to relational databases easier (oh what a joke, it's the one that it's the poorest at and it wasn't like this problem hasn't been thought about before). My last project in Java, we used Toplink for our relational mapping and used very little of the J2EE API (only the parts we needed). Don't even get me started on Struts (just go look at Seaside and you'll see an excellent web framework).
So, what's it like being back in Smalltalk land? I can safely say I never want to go back to Java. Smalltalk developers get it right most of the time. They understand computer engineering and simplicity. We embrace simplicity and find warmth in it. So, what makes our culture different? I think we don't have to spell every thing out and we get used to getting little bits of our design done incrementally. Our tools support this and the language does as well. It allows us to try more things out and be more experimental. In Java, you just have to nail things down earlier because of lesser tool set and strong typing. It's not to say you can't have simplicity in Java (you most certainly can). You just have to work harder at it than most developers are willing to.
Monday, June 21, 2004
Omaha Smalltalk User's Group
Alright, I've got YET another exciting speaker lined up for the Smalltalk User's Group Meeting here in good ole Omaha! This time it is Alan Wostenberg and he will be talking about XP Swiki. Again, I hate to sound like a fanboy, but the XP Swiki aims to be a super cool new tool for XP teams! The meeting will be June 29, 7:00pm-8:00pm at the Abraham's Library Conference Room. I hope to see EVERY SMALLTALKER in OMAHA there! And hey, if you've been curious about what all the fuss is, come on down and we'll be glad to show you. Yes, that means if you don't know Smalltalk, you're invited too!
XPSwiki is an open source web tool for eXtreme Programming teams. It supports those XP practices related to requirements gathering and project management - user stories and the planning game.
XPSwiki is based on Swiki, the Squeak Wiki technology. It aims to be an agile and user friendly tool which adapts itself to your development process.
Click here for more info on XP Swiki
Monday, June 07, 2004
One thing that I never see on projects is attributing maintenance cost with the success of the project. I always see managers get bonuses because they delivered the project "under budget" (if they do deliver). Typically, the project is maintanence nightmare, but for a lot of organizations, I've seen, they never attribute back the maintenance costs per year back to the project. Why is this? I think its cheating to say a project is done and will cost nothing more. That's simply ludicrous. I wonder how development would change if we depreciated software like we do goods. But, instead of the value going down, the maintenance costs were assessed. If a piece of software started to cost more, then it would be depreciated. Now, why is this important? Because I an easy to maintain piece of software costs less because it was designed well. XP manages this quite well since a project is constantly in maintenance mode and there's no separation between development and after. It's all the same. Systems are grown instead of built. I think if management of IT departments looked at the maintenance costs (at a project level instead of a large sink hole for everyone) that we would see a turn to XP and dynamic languages. But, that's just my theory...=)