Tuesday, December 21, 2004

Journeyman

I didn't even notice, but I've been certified a Journeyman by Ken Causey on Squeak People! WOW! Thanks, man! It made my day. What a nice xmas gift to receive! I'll cut this short because I've got some squeaking to do! Smalltalk on!
Off To See Kinfolk

I probably will not have internet access for a little while until I get back. I'm heading down to Alabama for the holidays to spend some time with family and friends. I hope everyone has a very happy xmas and gets everything they dreamed of. See ya in a week!

Saturday, December 18, 2004

I love testing

Well, I woke up bright and early this morning and decided to upgrade my Squeak image to the latest 3.8gamma. Well, I found that a lot of my projects do not work now. Crap. Well, I find out that one problem right away is mine and then within one hour I had my project migrated. I was shocked how fast I was able to find the problems and fix them. I didn't need a magic wand or anything, just all of the tests that I now write before I write code. A lot of the tests tested such small pieces that I was able to hone in on the problem quickly and fix it. No massive walk thoughs or cussing. It just re-iterated in my mind that the most important aspect of agile methodologies is test-first. Hell, it should be the most important aspect in any methodology! I was also thankful to keep my tests small. The only project that I have that has huge unit tests (more like acceptance tests) is my Java project and I plan to fix that shortly.

Friday, December 17, 2004

Smalltalk/X

OK, I've been playing around with Smalltalk/X lately and I'm quite impressed with how it has progressed in the past year. It's still a little rough around the edges (I got it to crash several times while trying to restart a method in the debugger) and a few things don't work like you think they might, but overall it's a good experience. I've been using the windows port and I get the feeling that the linux port probably kicks all booty. The code I've seen thus far has been very clean. I ported some of my xml code from Squeak to it and with a few minor tweaks, was up and running in no time! The really cool thing is that they have other languages as well. There's a java, prolog, and even a javascript interpreter. Very cool indeed. I'm still in the beginning stages so my VM crashs could well be a new beginnger clicking the wrong button. I'm excited. It should be a lot of fun exploring!

Wednesday, December 15, 2004

Great Quote

"Static Typing: Make it fast. Make it right. Make it run." - Niall Ross

Can I get an AMEN? Smalltalk on!

Monday, December 13, 2004

New Smalltalk Blogger

A great friend of mine just started his very own blog. Please welcome, Andres Valloud, to the world of Smalltalk bloggers. You can read his blog at: Ten is a good number. One of the things I love about Andres is that he speaks his mind and holds nothing back. If he doesn't like something, he says so. Enjoy!

Thursday, December 09, 2004

Omaha Smalltalk User's Group

Guess what time of the month it is? Yes, it's time for the monthly Omaha, NE Smalltalk User's Group meeting! The FIT framework will again be up for discussion and anything else everyone wants to talk about. Last month, we talked about "The Genius Within", Refactoring Browser tool, Squeak, and a whole bunch more that I can't think of. I'm sure it will be fun and educational whatever we decide to discuss. Here's the details:

Tuesday, December 14, 7-9pm
Panera @ Eagle Run Shopping Center
13410 West Maple Road
Omaha, NE 68164

We generally meet in the seating in front of the official meeting room. We're still a small group. Just look for a long haired fellow who has a laptop and talks about this super cool language called Smalltalk!

See you all there!
Crushed, Saddened, and In Denial

Anyone that knows me knows that I am huge fan of heavy metal music. They also know that I am a huge fan of Pantera and Damage Plan. Imagine my shock when I heard this morning when I found out that Dime had been shot to death! I thought it was some sort of sick and disgusting joke on the internet, but nope, it was true. His music meant a lot to me. From what I read, he was a caring and fun loving person. I just can't believe his been taken from us. A true metal warrior of the highest caliber and he's been ripped from us by a maniac. I also can't believe all of the injured and dead. I am just shocked. I wish I could pinch myself and this would all be a dream. My condolences go out to all of the families involved. I can't express my emotions and I was just a fan. Brothers in metal forever...


Saturday, December 04, 2004

This is what we've been talking about!

If you wonder why we Smalltakers, Lispers, Rubyers, Pythoners, Perlers, and other inhabitants of Dynamica are constantly raving about, then go watch this movie on Self. It brings home the point of what is possible in dynamic environments. The compile/run paradigm is just not needed and you can be so much more productive in lively environments. The movie does a great job of showcasing why simple is better and lively environments are the future. It was interesting to see the Morphic environment in use in Self. I know the version in Squeak was written by the same person, John Maloney. I also noticed a lot of the Etoys-type stuff in there as well. It's nice to see where inspirations are coming from. I would love to play with an instance-based Smalltalk system. How cool would that be? Anyway, the link has a bunch of movies that I hope to spend some time watching! OH BOY WHAT FUN! The movie reminds me that I need to go play with some Self. I download an x86 version a while back, but was to busy to play with it. Maybe now is the time to fire it up....=)

Sunday, November 28, 2004

Remember: Be Nice

Just a reminder that all of the people helping you this holiday season are working long hours and trying their best to please. I was helping my wife out this weekend at the mall (she owns a kiosk) and I think several people should have remembered the age old rule, "Treat people like you would like to be treated." I was shocked and disgusted how rude people can be sometimes. One man even made an obscene hand gesture after he had walked about and asked for help which I gave. He made the gesture in response to my sales pitch. I never think it's OK to be rude. But, I see it everyday in traffic, at work, at the mall, and just about any public place I go to. It saddenns me. There's never an excuse to be rude EVER. I don't care if you're having a bad day. Smile and treat everyone with respect. Anyway, my one wish is for everyone to be nice to one another. Have patience and remember everyone working behind those counters are people too. You are not better than them because you are the customer. They are not your slaves, they are your amplifiers to get your shopping done more quickly. So, if someone offers you a free chicken wing, politely refuse if you're not interested...don't yell...Don't make an obscene gesture, just BE NICE! Oh yeah, and be nice to your fellow shoppers and human beings as well. Peace, love, and happiness...It's not just for family time and xmas anymore. Do it all the time!

Saturday, November 20, 2004

Weak Typing and Bad Programmers

Alright, I went looking for Javascript info while I was writing my Life Simulation and I found two pages noteworthy: Javascript Rocks and it's nemesis, Javascript Sucks. Both pages have great points and things to ponder. There's a bit that I agree on both of them, but I'm firmly in the camp that thinks Javascript is a powerful lisp-like language encumbered with C syntax that's been messed up by the browser wars. But, enough of my incessant whining, one thing that caught my eye as an against of Javascript is that it is "weak typed". It's described in one the links outside of the Sucks page. It's also been talked about blogs, but I can't remember who's now. The example given is "3" + 1 returns "4". And this is bad. Well, if you think about how tolerant the browsers of HTML, why would javascript be any different? I'm not saying it's a good thing. In fact, I think it's a bad thing, but it's not something to blame the language for. It's the damn programmer who wrote that code in the first place that should be blamed! Javascript is typed (it knows to do the conversion and it will complain when I send it a message it doesn't understand. Basically, the auto-conversion is only on operators). I've never been bit by it because I make sure where I need numbers, I convert them to numbers! Same goes for strings. I don't mix the two and depend on automatic conversion (you should never rely on automatic conversion...SAY WHAT YOU MEAN AND SAY IT MEAN!) I think it's wrong to blame the language and it makes an easy scapegoat for bad programming. If you're surprised by something the language does or you don't like that it does it, then DON'T DO IT! In this case, make sure your objects are converted to the right types and be done with it. If you get surprises anywhere, it's because you didn't code it right. When I make a mistake, the last thing I do is blame the language or compiler. I blame myself. Take responsibility. Stop blaming the language. Languages are only amplifiers. Pick the one that amplifies your thoughts better and be done with it. OK, I'll get off my soapbox for now...=) Bottom line is that I don't want my language to control me...I want to take responsibility when I break my code. Remember, bad code is bad code not matter if the language is weakly, strongly, dynamically, and/or statically typed.

Sunday, November 14, 2004

Weekend Project: Conway's Game Of Life In Javascript

OK, I have always loved and found wonderment (is that a word?!) in Conway's Game Of Life. While talking to a friend of mine, the subject of the William Poundstone's "Recursive Universe" came up (I probably started it). Anyway, to cut a long story short, we hit the web and all I found were java versions on the web. I thought this to be very sad. Where are the javascript versions?! I thought it would be a cool weekend project and I thought it would be equally cool to allow you to edit the rules it uses. So, all you recursive emergent behavior freak lovers of the simple, go here right now and enjoy! It runs in IE, Firefox, Mozilla, and Opera. It works best in Mozilla and Firefox since their Javascript implementations are FAST! I had to take out some of my closures to make IE and Opera to work properly, but oh well...

I just love knowing that I now have an implementation of Conway's Life that I can play with anywhere and I can change the rules! How cool is that?!!!!!

Saturday, November 06, 2004

Scripting and Smalltalk

Lots of new dynamic languages have come along and tons of programmers are discovering the productivity gains of no compilation wait times and immediate feedback. But, the environments for these new languages are still based on files and dead systems. One advantage Smalltalk has is that the environment is alive (you can change the environment without shutting down, everything is well ALIVE!) and I think this makes a perfect playground for scripting as well as application development. While most folks use Smalltalk for ultra-complex business applications because they like spending time with their kids, but Smalltalk can also be used for scripting. You see you can get access to the compiler, compiled code, and even the runtime stack (you can even change it!)! Now, even most scripting languages don't give you that kind of power! The only other language I can think of that does is LISP. Anyway, back to the topic at hand. We all know that scripting is helpful for kicking off systems, moving files around, querying the state of a running application, and etc. This is available off the shelf for every Smalltalk dialect that I know of. The cool thing about scripting in Smalltalk is that since you have a powerful environment around you, you can write your script in a workspace. Now, if your script gets too big, you can start moving it to classes and refactoring. You can also move scripts to external files and load them in a runtime. Why do you configuration files when you can have runnable code that does it for you? Let the objects do the talking! Scripting is also great in running systems. If you run Smalltalk in headless mode, you can have scripts that query the state of the system while it's running! This can be very powerful and DANGEROUS! But, wait a minute, we have access to the compiled code and we can actually query the compiled code to make sure it doesn't do anything nasty. The bounds are limitless and once you start thingking about them, you wonder why am I writing unix bash scripts and then, you might be wondering, why not have the power of a compiled language, but the expressive power of an interpreted one? Smalltalk is all that and a whole lot more.
Scary Computer Errors

OK, Bill Bumgarner blogged on computer error in Ohio and I must admit it scares the living day lights out of me. I have no doubt that cheating in elections is nothing new. Both the democrats and republicans have been ingenius in their bending of the system. But, this takes it to a whole new ball game. Computers make it very easy to tip the scales. I think this article just rings clear that we election software MUST BE OPEN SOURCE and we must ensure that the software is not tampered in any way. Computers could be used to get rid of most cheating in elections, but they can also be used as very efficient cheaters as well. If we do nothing, we might as well resolve ourselves to a dictatorship.

Wednesday, November 03, 2004

Omaha Smalltalk User's Group

Guess what time of the month it is? Yes, it's time for the monthly Omaha, NE Smalltalk User's Group meeting! Again, it's going to be an open forum where anything is up for grabs. Last month, we talked about design, moose, nebraska (the distributed environment in Squeak), and croquet. I'm sure it will be fun and educational whatever we decide to discuss. Here's the details:

Tuesday, November 9, 7-9pm
Panera @ Eagle Run Shopping Center
13410 West Maple Road
Omaha, NE 68164

We generally meet in the seating in front of the official meeting room. We're still a small group. Just look for a long haired fellow who has a laptop and talks about this super cool language called Smalltalk!

See you all there!
Hatred and Disgust

Well, I am very depressed about today's election outcome. So, I'm listening to Sorrow's "Hatred and Disgust" album. It seemed to fit the mood perfectly. I guess I should look on the bright side: there's going to be a lot of great grindcore (really angry fast punk metal) coming out because of it...=) But, what I want to know is why is "liberal" considered a dirty word and conservative is not? This page will be black until I stop grieving...=)
Time For Change

Isn't it time to deal with complexity with a simple and powerful language? Read this article and realize Smalltalk could be used to fix the "complexity" problem by dealing with it instead of masking it with more complexity. IT systems are complex. You need a language that can deal with it: Smalltalk. If you want rising IT costs and complexity, do what everyone else is doing. Why not try something new, yet has had lots of time to mature.

Monday, November 01, 2004

John Peel

I just read that John Peel died of a heart attack. The news shocked me. Peel was an influential DJ and took a lot of chances. If it wasn't for him, a lot of the music that I enjoy might not have crossed the atlantic and into my ears. He was responsible for giving a lot of bands their chance when no one else would touch them. The whole genre of grindcore owes a lot to him and in fact, Earache Records has a tribute to him on their front page. I listened to a ton of records from that label when I was in college. RIP. A cultural icon for the underground is gone. He will be missed.

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

OOPSLA 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...=)