Archive for the 'smalltalk' Category

26
Mar

Part of the Crew…

March has been a difficult month for me; details to follow with a later post. However, and I believe there’s a silver lining to /every/ dark cloud, something really cool happened: I was made a part of the Terralien crew.

At the beginning of the month, Nathaniel Talbott pinged me about doing some side-work for his company Terralien. I, of course, said, Yes! After suffering for far too long, mired in Java projects, I was given the chance to get paid to write Rails code. I was overjoyed, to say the least.

Now, I’m not saying I didn’t have my share of challenges (again a later post) (hint: some of my closest friends know about the personal struggles currently going on at the Riffe household) but I was determined to do a good job. This was one opportunity I didn’t want to squander away. I dove right in and was relieved to find out my hard work was greatly appreciated. Nathaniel called me and asked if I was interested in becoming a full-fledged member of the crew. Yup that was my jaw dropping. I was elated!

What makes this so cool, for me, is the timing. I’ve always wanted to go Independent. Since being introduced to Rails (and Ruby) I’ve wanted to push my career in that direction. Since leaving Smalltalk I’ve always wanted to get back, if not directly, then indirectly with a dynamically typed language - you really are more productive! However, as my friends know, I need to provide medical benefits for my family. That is and will be my challenge; until my wife completes Nursing school, that is. ;-)

I now find myself in a strange position. Where just two weeks ago I was unemployed and scared shitless, I find myself with numerous opportunities in front of me as a member of the Terralien crew. I still have some loose ends to tie-up; should be fun though!

Thanks Nathaniel. I guess Twitter’s useful after all, eh?

Cheers!

12
Mar

Looking for Ruby in Richmond?

I have a secret to share with you: I help run one of the coolest users group in the Richmond, VA, USA area.  The name of the group is Central Virginia Ruby Enthusiasts Group (CVReg).  It’s filled with some of the nicest, most passionate, technologically savvy people.  Our focus is in Ruby and the tools and frameworks that either sit on top of Ruby or co-exists with it.  We also dabble/demo/present on other dynamic language technologies; Smalltalk and Javascript being the most recent topics covered. You can get more information from Google (of course).  However, how about I just give you the link here?  CVReg.org

Cheers!

 

26
Feb

Moved Projects to the side-bar…

Listed in the side-bar, along with my other sites on the intewebz, is the link to my PBJ Wiki for projects. I decided I didn’t want to move my projects notes to this site - I like the wiki-style of project documentation and PBJ Wiki provides that for me. Plus, you can subscribe to that site’s RSS Feed since I don’t have RSS support on the other pages of this blog.

Cheers!

14
Feb

On getting back into Smalltalk development…

Today I was asked what I would to do change Smalltalk. I have to admit I was not prepared for that question. However, I have a deeper question I’m attempting to answer: Is this a good time to get back into Smalltalk development? To which I’m answering: Yes.

I believe Smalltalk is starting to enjoy a rediscovery due to Seaside and, indirectly, Ruby on Rails. It seems to me that Dynamic Languages in general are enjoying a bit of the limelight; Groovy on the JVM. I have to ask myself why. I believe I already know the answer since I have a well-known affinity for Smalltalk and dynamic languages in general: development can be and often is more productive.

I’m not going to argue specifics; these are my observations and experiences. However, for me, when using a dynamic language to develop a particular solution it seemed I spent more time solving the problem then trying to fake-out a compiler. I also wrote less code. Imagine that: less code to solve a given problem. Simple is always easier to debug then Complex.

Plus I tend to follow the thinking: Make it work, Make it right, Make it fast (attributed to Kent Beck). Which means, to me, solve the problem first, in the simplest manner that will work. After I get the solution working and tested I then spend time refactoring and ensuring the overall design of the solution remains coherent. To me this flies in the face of current J2EE development which seems built on the mantra: Write a Million classes that apparently do nothing. This is completely unnatural to me.

When I started this career, some 14 years ago, I was fortunate enough to start in a Smalltalk development shop. I got OO. My former manager called me a ‘natural’ programmer; I finally appreciate what that means. Everything came so easy to me. I seen the objects in the application. I seen them working together to accomplish their goals. I instinctively understood anthropomorphism before I learned the term. “The Contact does what?” “How is the Account and Contact related?” Whiteboards and Booch diagrams were my friends. It was my former manager that gave me a copy of Design Patterns; telling me, “this is going to be important.”

I was/am used to objects knowing how to do things. I mean when my wife asks me to take the garbage out I don’t ask my father for instructions - I do it. With Java, most of the community I interacted with was afraid of this kind of pattern. “What do you mean the object will know how to save itself? That’s what the DAO’s are for.” I rolled my eyes. Great! More code to write, maintain and debug. Clueless

Then comes along Ruby on Rails. I had heard about Ruby around the same time I heard about Java. Unfortunately I was not on the right path at the time and dismissed Ruby out of hand. However by the time I was exposed to Rails I was ready for a change. Actually truth be told I was ready to leave Java to moment I started developing in it - there just weren’t any Smalltalk jobs where I lived. I digress.

Since Ruby, at least to me, appears heavily influenced by Smalltalk I was immediately comfortable with Ruby’s syntax. I understood the concept of Blocks. I understood the idea of “everything is an object.” As with anything new, there was a learning curve when it came to Rails, the web application framework built on top of Ruby. But it was exhilarating and liberating to develop applications using Rails. This was 2 years ago. It was then I was able to use my Smalltalk experience. Finally! It was then I made the decision to seek out Ruby on Rails gigs. Still working on it. It was then I made the decision to forego statically typed languages in favor of dynamically typed languages.

The journey began 2 years ago and continues today and tomorrow. Today found me in the unique position of talking to several Smalltalk experts, displaying the experiences I’ve gathered over my 14+ years doing software development. Today, no matter the outcome, got me one step closer to my goal for 2008: a paying gig developing Smalltalk or Ruby on Rails applications.

P.S. Today’s experience also has me thinking I should be spending more time looking at Seaside.

Cheers!

24
Oct

I'm just a tad nervous…

So silly me, in a weak moment, I agreed to give a talk on Smalltalk (specifically Squeak and Seaside and other stuff) to the Ruby Code Jam, the Charlottesville, VA Ruby Users Group.

Yikes!

What was I thinking. I mean I know I have a problem speaking in front of large groups. But to talk about Smalltalk, Squeak, and Seaside too. I’ve be out of the Smalltalk game for 9 years now. I have cursory experience with Squeak. I have no experience with Seaside. I must be mad.

With me luck!

Cheers!

15
Jun

What do we have here?

Couple of things happended tonight:

  1. I found the VisualWorks IRC Channel: irc://irc.parcplace.net/smalltalk
  2. I started watching James Robertson’s Smalltalk Screencasts

I was watching the screencasts so I could brush up on my Smalltalk before I went to beCamp. I will be sending everyone I talk to to Cincom to download the NC version and to check out the screencasts. There was one in particular that caused me to fire up IRB: the second screencast under Basic Introduction.

I already knew that Smalltalk executes message sends on a left-to-right basis. This really isn’t an issue unless you’re dealing with Arithmetic. The example given (which is part of the Introduction Workspace of a new VW install) was:

5 + 3 * 4

The answer is obviously 17. However, in Smalltalk, as is, the answer returned is 32. This is because Smalltalk will send * 4 to the result of sending + 3 to 5. Clear as mud, eh? Don’t worry if that doesn’t make sense. The interesting bit is next.

Knowing Ruby borrowed from Smalltalk I wanted to know how Ruby would evaluate ‘5 + 3 * 4′ Drum roll please - it returns 17. So I posted my observation to the #smalltalk channel, stating Ruby must do some kind of look-ahead when parsing math. There was a question if those were operators or messages. I didn’t know, exactly, but I did remember from reading David A. Black’s Ruby for Rails book about Ruby’s syntatic sugar. So I tried 5.+(3) and received 8 as my answer; not operators, method calls. And:

(5 + 3) == 5.+(3)

So I posted to the #smalltalk channel those are method calls. But does:

(5 + 3 * 4) == 5.+(3).*(4)

The answer is: No. I received 32 as my answer, the same as from Smalltalk. So Ruby must be doing some kind of Math magic when the expression is written in ‘operator-style’ format.

Cheers!