Wednesday, January 26, 2005

Easier than C++

From lemonodor:
    Bruce Eckel, author of Thinking in Java and Thinking in C++, is working on a new edition of Thinking in Java:

    This language, which was once hailed (admittedly, by the PR flaks at Sun itself) as being "much easier than C++" really isn't anymore.

WOW! I would say that Java is still easier than C++, but not by much. But, with all of the new 1.5 features, I might have to concur that Java is not easier than C++ anymore. I keep seeing descension in the ranks of Java, I wonder what this means for the future? I think Java will continue to be a force in IT departments, but what will replace it? .Net? Something in my gut tells me something else is coming. Maybe something built on top of the JVM? Who knows...Things are starting to get interesting!

Monday, January 24, 2005

Fat Free Alternatives To XML

Apparently, there's a couple of standards trying to win over XML detractors. One is JSON and the other is YAML. Both are claiming they are simpler and easier to read than XML. I looked at both and I think YAML would be the one that I would pick. It is far easier to read. JOSN looked even less readable, but more compact than XML. You can see examples at both sites. Judge for yourself. It's interesting to see the current uprising to XML. I've never been a big fan, but realized having it was better than not having it. Watching the different standards fight to the top is going to be interesting. Are we going to have lots of different formats to deal with again? But, then again we should always be pushing the envelope, right?
Thinking Forth

Let's start off things with a quote:
    "The programmer using a batch-compiler language can seldom achieve the productive state of mind that artists achieve when the creative current is unhindered."

Do I have your interest? This is the best quote I've read to describe the productivity gain that we Smalltalkers, Lisps, Rubyers, Perlers, Pythoners, and Javascripters enjoy. I just love this quote! Anyway...

Why am I bringing this quote up? Well, I was sick all weekend and in times of conscienceness, I could only read my blog feeds. I came across one from Planet Lisp about Forth. I decided to download the book, "Thinking Forth" from here that they had linked to. The thing that got my interest was mention that this book had a lot of the principles of XP programming in it (it was written in 1984). Now, I feel a lot of the XP ideas also came from "The Pyschology of Computer Programming", so another book to fill in the gaps is a nice addition. So, between naps, I read the preface today and it seems Forth is another "everything" language. For example, "everything" in Smalltalk is an object. It seems every language that I like has a simple underlying set of rules and model to govern everything. Forth is no different. I was so impressed with the preface that I picked Forth to be my language of the year over Python. In Forth, "everything" is a word! WOW! That sounds nuts doesn't it?! Let me continue...

You label things in Forth with a word. When you invoke a "word", it doesn't care if that word stands for a constant, variable, or function. It doesn't care. Andres Valloud has recently been pounding home the idea of distinctions (ala "Laws Of Form"). But, I've been having a hard time wrapping my mind around it. It seemed too simple. Well, it snapped today after reading the preface to "Thinking Forth". If you think of "words" as "labeling distinctions" and when you invoke a "word", you are "crossing into a distinction". It goes further too. Forth uses a simple stack mechanism to pass variables around. This is the "signal" that Andres loves to tell me about as well. I was so excited that I finally got it! And I did it while on cold medicine! Yippee! So, Forth might be the language where I get to play with distinctions.

I'm excited! Hopefully, Forth will turn out to be a language that increases my knowledge of programming as much as Smalltalk and Lisp have. I'm off to sleep more...=) Being sick sucks!

Tuesday, January 18, 2005

The PRIEST is BACK!

OK, I just went here to here 30 second samples of each of the new songs off the new Priest album. I just couldn't wait. The first album I ever bought was "Defenders of the Faith", so Priest has always had a special place in my heart. Anyway, the samples were impressive and I think I'm in for a butt kicker of an album. The next to last song, "Eulogy" sounds like an epic. I think it's only the intro on the web site! From the lyrics, it sounds like it might be a sequel to "The Sentinel"! I can't wait till March 1! I tell you! Rob Halford is the voice of heavy metal.

Saturday, January 15, 2005

3 + 4

Well, I got 3 + 4 to run in my java bytecode interpreter written in Squeak. I know others have traveled where I am now, but it's been a fun journey. I can't wait till I can get it fully functional with real objects and all. It'll be fun to run a java program in Squeak with all of the power of a Smalltalk environment. I think it will be cool for writing languages on top of the JVM. Gee, I wonder which one I would like to run in the JVM? Anyway, not much point to this blog except that I reached a milestone. I'm hoping to have a new version of the java framework out soon. It will work in Squeak 3.8 and support running java byte codes, read/writing serialized objects (this time 100%), reading class files, and that's about it. The next thing after the byte code interpreter is the debugging protocol (i've already started). It's been enlightening peering under the hood of java. It makes me appreciate the simplicity and elegance of smalltalk anymore. But, that's for another discussion as well! Good night all!

Tuesday, January 11, 2005

Hate...

You know when you leave your mark on the world. How do you want to be remembered? Do you want to be remembered for being a good human being that everyone enjoyed being around or this:
    A newly launched web site, ********.com, has selected late DAMAGEPLAN/ex-PANTERA guitarist "Dimebag" Darrell Abbott as its January 2005 "Dead Guy of the Month." The site's home page features a photo of Dimebag complete with a superimposed "bullet hole" in his forehead along with the message, "He was in PANTERA. He was in DAMAGEPLAN. Now he's in 'THE GROUND'." A message posted in the "About Us" section of the web site reads as follows: "The second week of December 2004, 'Dimebag' Darrell Abbott formerly of the band PANTERA was shot and killed at a show in Columbus, OH. The story grabbed the mass media's attention and was played over and over again. The typical post-celebrity tragedy scenario played out over the next few weeks: Mega-memorials and tons and tons of people who appeared to be mourning a great PERSONAL loss. This puzzled us. 'What the fuck?'

What kind of sick person would do such a thing? I've left off the website because I don't want to give them anymore attention. I find this to be sick and just flat out uncalled for. Who ever is behind this site needs to be strapped to a post and horse whipped. This is the kind of stuff that makes me sick to be a part of this planet. Darrell would be remembered by millions for entertaining them and having a great time. How will this person be remembered? For being hateful and disrepectful? I can't believe would waste time their time with such drivel.

Anyway, if you want to read a good article, Read this. I totally agree with the sentiments of the writer. I just hate it when people use someone else's death to further their agenda. It make you wander who's really evil? Doesn't it?
Smalltalk Users Group Meeting Cancelled
The user group meeting is cancelled on account of icy weather. Everyone stay home and sleep where it's safe.

Monday, January 10, 2005

Feeling Behind

I'm always feeling behind in technology. I always I feel like I'm just right around the corner to some big breakthrough and if I read that next book, all knowledge will be mine. The universe and all its pearls will be mine. It's a never-ending quest. Does anyone else feel this? Knowledge is a never ending thirst and the more you quench it, the more you want to drink. The humbling fact is that no matter how much I learn, I will never know everything that I want to. I will always be on my search for more. So, why not just accept defeat and stop? Well, what fun would that be? It's the Samauri's creed to be the best that you can be (see you can learn things from Tom Cruise movies!). I will spend the rest of my life trying to be the best developer I can be. There's satisfaction is in knowing when I cross a barrier or master a piece of my craft that I thought was unattainable. The problem is with each step the bar becomes higher. Of course, this gives me the feeling that I'm always behind. And there's always someone out there who's kung-fu is better. I don't feel threatened when I find someone who is better than me, rather I take it as an oppoturnity to learn more. I might not always like the lesson, but the fight to resolve the conflict within is where I break across my barriers. A medicine much needed to help me reach higher heights. I guess I don't have a point to this post. I just wanted to express my feelings toward learning. My love to know more about what I do and to be the best I can be. But, I never feel like I am a master. I always feel behind and I'm alright with that. In fact, it gives me a certain inner peace. Striving is great and it's the journey that's important.

Sunday, January 09, 2005

So much for intelligent debate

Check out this blog entry. I'm sickened and appalled by it. I'm so sick of name calling in the name of good debate. I'm also sick of threatening to win an argument as well. I don't care what your politic leanings are, but we should all be able to discuss and debate without charged language, name calling, or threats. Both sides of the political spectrum are guilty and it's made sane and intelligent discussion impossible. When we have books titled, "How to talk to a liberal". It really shows what lack of respect we have for one another and it saddens me. You don't win people with your arguments by calling them idiots. I fear we have schism with each side with tunnel vision. No one can see the other sides point of view. What makes this country great is debate with sides arguing from different shades of gray. I think we are seeing the world in black and white too much. Where is the gray? Maybe we should stop digging in our heels in an argument and be open to new ideas. Just please stop with the charged language. PLEASE! I've gotten where I will not even listen to any argument with charged language. It really shows your lack of thought. OK, that's enough politics from me...

Saturday, January 08, 2005

Quotes Page

I finally updated my fave quotes page. Check it out here. I've been meaning to do it for awhile. Enjoy! Also, let me know if I wrongly attributes any quotes. Smalltalk on!

Thursday, January 06, 2005

More thoughts on debate on getters/setters

Carrying on the discussion from previous. Here's some more thoughts:
1. Property objects. (Each instance variable would be it's own object)
2. Naming accessors with _ so that they look unnatural (not a big fan of this, but I'm trying to get thoughts flowing)
3. Change the language in some way. I don't like the restricting paradigm of java, but how could we change smalltalk. Maybe something more self like where instance variable access and method calls look the same.
4. Development-time method wrappers. Put wrappers in to monitor calls to accessors and warn on non-local access if it has been marked "private". The method wrappers could then be removed at run-time. We have the most dynamic language of all! How can we make it do what we want?!

And that's all I can think of right now. If I think of more, I'll blog them! Wouldn't it be cool to come up with a solution to the getter/setter debate once and for all! =) Of course, it might be like the early vs. late bound language debate and thus, never be solved...But, I think this one can be solved.
The debate without end

It seems my discussion on "getters/setters" is having a lively discussion at James' and Andreas' blog. Both sides of the argument give great points. But, perhaps we are missing one another. Maybe we should ask ourselves. How could we compromise? I think we can all agree that encapsulation and consistency are things to keep in high regard. We shouldn't have to sacrifice one for the other. Is the obvious answer data objects? Objects with simple getters/setters methods, but encapsulated inside of a behavior object? I'm thinking out loud here. There's a lot of things that we could do with these data objects. They could notify of changes (good for persistence and gui models) without cluttering up the behavior objects and no one outside of the behvaior object should know about them. You could exchange data objects (since all access is via methods).Hmmm, I think I might need to do implement a model using this technique. I'm curious as to what other people might think would be a compromise to this or an alternative implementation. My point is that if we can't decide on which is better (and frankly, while I still side on the side of getters/setters. I still think both have their pluses and minuses), then maybe we should think of a better solution that has the bits that both sides like. Send me email. I'd be glad to discuss this!

Wednesday, January 05, 2005

Getters And Setters Redux

Is anything more hotly debated in OO development? Here's an article eloquantly arguing against them. Now, in the past, I have been strongly in the use getter/setters camp. Recently, I started to not use getters/setters to see if I got any new insights. At first, it felt weird and unnatural, but I soon got over that. I started to not use getters/setters for the exact reason listed in the article because I had seen too much code depend on the getters/setters and knowing too much about the internal representation of an object. Now, in java, you can restrict access to getters/setters through protected and private (which by the way, I think private is evil, but protected is broken as well...I think protected should only be used by the object and its inheritance heirarchy, but that's another discussion). I also wanted to not use getters/setters after watching the a Self video where they used methods and variables interchangebly. But, in most languages, there is a difference in calling a method and accessing a veriable. And that is the one thing I missed when I stopped using getters/setters, the consistency! In both java and Smalltalk, instance and local variable access looks identical and its easy to make a mistake (think a newbie or a really late night at work). So, am I saying that I think consistency is more important than encapsulation? NO! But, I do think they are equally important. You can achieve encapsulation with getters/setter by either restricting access (at the language level), placing them in a different spot in the source code (like at the bottom, make it hard to get to!), or through categories (I frequently put my getters/setters in an accessing/private category and never look at it unless I absolutely need it). You can even use method wrappers to make sure the sender is self and report otherwise. So, while I agree with the article, I still like to use getters/setters for the reason of consistency. I think it's up to a good programmer to keep encapsulation enforced. Oh, one more thing, one good reason for keeping your getters/setters is that if you ever need to do anything extra when an instance variable is set, you can do it through the setter and it's easy to add debug code in a getter (like a break point). I use my setters to ensure parent relationships are kept consistent (there's that word again!). Setters can also fire change events which are important for persistent frameworks and GUIs. One important thing that I am starting to realize with this debate is that it is a personal style issue of the programmer. Both sides have pluses and minuses and it's up to each shop/developer to make their choice. The worst is to mix both paradigms. Remember keep it consistent!

Tuesday, January 04, 2005

Cool Digital Art

Check out Joe Vinton's Digital Art right now. It's incredible stuff! His art is scenic futuristic landscapes. They are simply breath taking! But, what is that in the distance? It's a hot air ballon! What better way to fit the "Back To The Future" theme of Smalltalk than a futuristic landscape with balloons. Incredible stuff and it makes great backgrounds for Squeak if I do say so myself.
Top Twenty

Every year I like to do a top 20 of my favorite albums from the year. It's sometimes hard to pick just 20, so I pick a few honorable mentions. I listen to a lot of music and this year I spent a good amount of time catching on some stuff. I bought a lot of old Depeche Mode and went back to purchase a lot of the old Earache catalog. I even got into a new genre of electronic music called chip music. It's made completely on 4 or 8 bit computers (gameboy advance and old commodroe and atari computers). Fun stuff! I did manage to listen to a lot of new music and this year was EXCELLENT. So here's my list of faves:

  1. Ayreon-Human Equation

  2. My absolute favorite album this year. I can not praise it enough! A modern progressive masterpiece. Nuff said!
  3. Assemblage 23-Storm
    Wow! Assemblage 23 continues to impress with his brand of Depeche Mode inspired electronics. The lyrics and music are such a perfect fit. This is not happy music. Everything is damn near perfect. This is the way to do quality electronic music.

  4. Vader-The Beast
    GRRRRR! The album that got me back into extreme metal. This will rip you a new one and keep coming.

  5. Trevor Rabin-National Treasure
    Cheese and pomp. What more do you want in a movie soundtrack. I love this. It's overblown and ompous. Great arrangements and melodies with a hint of modern rock and electronics. Gorgeous to these ears!

  6. Black Label Society-Hangover Music Vol. 1
    Moody guitar driven southern rock. No one does it better than Zak.

  7. Ozric Tentacles-Spirals In Hyperspace
    Another album from the masters of space rock! Swirling arrangements of rock guitar and keyboards. The perfect mix.

  8. Dream Evil-The Book Of Heavy Metal
    Cheesy 80's metal with tongue in cheek lyrics. This album just makes me smile. I love it! Anyone who doesn't think these guys are having the time of their lives, needs to check themselves into the funny farm.

  9. Into Eternity-Dead Or Dreaming
    Prog metal, death metal, and a healthy dose of ass kicking thrash. I love it!

  10. Dillenger Escape Plan-Miss Machine
    Not what I expected. The music is still crazy, but in a different way. More like Mr. Bungle and I like the direction change. Lots of sick math rock still, and more unpredictable.

  11. Decapitated-The Negation
    Death metal that doesn't stop punishing. This is played with such vigor that you can't help but not bang your head.

  12. Megadeth-The System Has Failed<
    Megadeth comes back with an album that I never thought they would. This should have been the follow-up to Rust In Peace. It just flat out rocks. Dave remembers how to do metal right. Great to hear afterthe slew of bad albums (4 to be exact).

  13. Behemoth-Demigod
    Grandoise metal that still remains to be melodic and memorable while beating you into submission. This is not for one with heart problems.

  14. Cradle of Filth-Nyphetamine
    Cradle of Filth has to be the most consistent band ever. A new album and still not one disappointing moment. I love this band.

  15. Estradasphere-Quadropus
    The rightful heirs to the throne left by Mr. Bungle. In fact, i think these guys have surpassed them. Rock with everything thrown in. These guys know no boundaries. A rollercoaster ride that always surprises and never a dull moment.

  16. Mastodon-Leviathian
    ROCK! Extreme rock with lots of crazy drumming. This time its a little more subtle and it allows the songs to breathe more. Love it!

  17. Vehemence-Helping The World To See
    Melodic death metal that stays close to the brutal edge of things. Lots going on and lots of head banging.

  18. Damageplan-New Found Power
    Dimebag will be missed. His swansong was not his finest work, but not too many can come close to Pantera's great albums. A great album is what he left us that was varied and showed off his chops. The metal worlds has lost another great.

  19. Exodus-Tempo Of The Damned
    The exodus attack returns and shows us how thrash is made! WOW! These guys along with megadeth are the come backs of the year. Lots of reunited bands have done awful albums. But, this exceeded all expectations. It was great seeing them live too.

  20. Arsis-A Celebration Of Guilt
    Surprise of the year. Super melodic, but very fast and brutal. The new breed of death metal.

  21. Kataklysm-Serenity In Fire
    These guys vary up a lot on this release and this one sticks to you like peanut butter on the roof of your mouth. WOW!


Honorable Mentions:

  1. Cannibal Corpse-The Wretched Spawn
    A guilty pleasure. Brutal florida death metal. These guys keep getting better and more complex with each release. Forget the horror movie lyrics...Listen to those guitar lines! DAMN!

  2. Alabama Thunderpussy-Fulton Hill
    BIG RIFFS. Southern metal steamroller style. One of my fave bands of the genre. I love the new vocalist!

  3. Alarum-Eventuality
    For those of us who miss Atheist and Cynic, meet Alarum. Progressive death that will keep you on your toes. Good stuff!
  4. Shift-Nasum
    The finest grindcore.

  5. Saliva-Survival Of The Sickest
    This is 80's metal updated with a 90's sound. I loved this!

  6. Killswitch Engage-The End Of Heartache
    A repeat of their earlier albums, but these guys have the melodic hardcore style down.

Omaha Smalltalk User's Group Meeting

It's getting near that time of the month again! So, instead of staying at home with snow up to your eye balls. Why don't you come on down and see what all of the fuss is about? Come see the inspiration for countless languages, Smalltalk. Alan Wostenberg will be giving an updated presentation on running FIT in VisualWorks. Here's all of the details:
When: Jan 11, 2005, 7pm - 9pm
Where: Offices of Northern Natural Gas
1111 S 103rd Street
Omaha Nebraska 68154
Office is at 103rd & Pacific. Guests can park in the Northern visitors parking area back of building, or across the street at the mall. Enter in front door, we'll greet you at the door at 7:00pm. If you arrive a bit later, just tell the guard at the reception desk you're here for the Smalltalk user meeting in the 1st floor training room.

Monday, January 03, 2005

New Year...New Stuff To Learn

Well, I had time today to sleep and recover from nursing a sick system by spending time away from it. One thing that I like to do every year is set a few goals for myself. These always include learning a few new tricks. In the past, these have included learning Erlang, Lisp, Javascript, Prolog, Ruby, and etc. This year I plan on sinking my teeth into Python, CLIPS, and Scheme. Why so many languages? Well, I don't think Python and Scheme will be far different from things I already know. CLIPS is not too far of a stretch as well, but I really want to get into the way it does things. In the past, what I mainly pull from various languages is a different perspective. I look at programs a lot differently after really getting into Lisp and Erlang. In fact, learning Lisp is what really made me comeback to Smalltalk and realize just how painful and unhappy programming in java made me. I would still love to have a job doing lisp one day just to experience it on a full time basis. Now, yoy might wonder why I would pick Python. Well, I pick Python because a lot of interesting language research seems to be going on with it and I'm liking a lot of the frameworks I'm seeing coming out of the Python community. I picked Scheme because it's supposed to be a cleaner Lisp. It's going to be an exciting year and I hope to learn a whole lot more about craft. I also pray that there's a Camp Smalltalk this year too! If not, maybe I'll go to a Camp Python, Ruby, or Lisp. Now, that would be fun, wouldn't it?!
Evil is...

Hidden tracks on CDs. I hate them. I really do. One of the joys of having an mp3 player (I have the iRiver 40gb btw) is that I can edit out all of those pesky blank tracks and/or space. Still it takes time to edit the audio and it's just a pain in the rear-end! I have written several quick utilities to help in Javascript that organize and adjust volumes on my mp3s. Now, I just need a utility to remove the blank space and I would be in hog's heaven. I'm just glad for mp3 players because now I only have to edit it out once and I never have to deal with it. Depending on the day, I sometimes just delete the extra tracks because mostly the hidden tracks are just not worth the effort to edit the blank audio out. Word to bands, do not put hidden tracks on your CDs. You're just pissing off everyone and it's not cute anymore. OK, I think that's enough ranting for today.

Sunday, January 02, 2005

Back in Nebraska

Well, I was welcomed back in Nebraska with a pager for a sick system and I've been a very busy boy since I've been back. I must admit that it was great to be back in Alabama where people smile and actually talk to you. But, as with all things, it's great to be back in the arms of my loving wife and the comforts of my own house. I spent the new year so far nursing a sick system back to health and it's been no picnic. I have a lot planned for this coming year. I can't wait to see what happens this year. Smalltalk on!