| The erubycon Interviews: Glenn Vanderburg Answers
|
|
21 Jun 07 |
|
[ print
link
all
] |
|

Glenn Vanderburg is featured in today’s erubycon interview.
Glenn Vanderburg Answers
Glenn Vanderburg has over 20 years of experience as a software
developer, working in diverse environments using a wide variety of
languages and tools, including Java, C and C++, Perl, Tcl, and
more. His career spans large enterprises, universities, and
startups. He caught the Ruby bug in 2000, and has never enjoyed
programming so much.
Here are Glenn’s answers:
Q: Tell me a little about your background, where you are working and how did you come to start using Ruby?
I’ve been a programmer for 20 years now, and I’ve worked in a
wide variety of enterprises, with many different technologies. I’ve
just hung up my independent consultant hat to join Relevance, LLC
(where I’m be a semi-independent consultant).
In late 2000 I was a regular at a Dallas-area lunch discussion
group focused on “Extreme Programming and related topics” (i.e., what
we would now call agile software development). Dave Thomas was also a
regular there, and he mentioned to us that he and Andy were working on
a book about Ruby. I was able to go to the OOPSLA conference that
year, where the first edition of the PickAxe was released, and bought
a copy on release day. I was hooked immediately.
Q: What unique opportunities do you see for Ruby in the enterprise?
I blogged recently that I think Ruby and Rails help good
programmers to become better—partly through just being
well-designed and powerful, partly through providing good examples and
assistance in doing the right thing, and partly through having a
community and culture that values good design and clean, expressive
code. I think good, solid design and code are crucial for enterprise
software. Enterprises, however, have historically undervalued those
things, largely because it’s been so tempting to believe that tools
and technologies will solve all the problems. I think we in the Ruby
community have a chance to bring much-needed simplicity back to
enterprise systems, and remind enterprises that there’s no substitute
for skilled people with good tools.
Q: What obstacles do you see to getting Ruby used more in enterprise
software?
Large enterprises have a pretty solid division of labor between
those whose job it is to get work done and those who are supposed to
prevent mistakes. Those in the first group will be drawn to Ruby as a
powerful tool that helps them work faster, but those in the second
group always try to resist change. And to some degree they’re right
to resist. But because they aren’t accountable for the work getting
done, they might hold out much longer than they should, hurting the
organization in the process. The best strategy against such
resistance is for all of us to go public with our Ruby success stories
(and there are a lot of them already).
Q: Play oracle for a moment and tell me what you see as the next “Big Thing” in software development.
There are a lot of people these days wondering whether Apollo or
Silverlight will mean the end of web applications, but I don’t think
that will happen. My prediction is that new kinds of devices
(including smartphones, pads, multitouch screens, and even large-
scale displays) will require revising our assumptions about user
interfaces, and that will require developers (yes, even enterprise
developers) to learn some new techniques. Two-handed input, pervasive
animation, and other innovations will cause a lot of upheaval among
application developers.
Q: What erubycon talk are you most interested in hearing?
I can’t wait to hear Neal Ford discuss Mingle.
Thank You
Thanks Glenn.
For more information on the conference, see erubycon.com.
|
| The erubycon Interviews: Stuart Halloway Answers
|
|
14 Jun 07 |
|
[ print
link
all
] |
|

Today we are publishing Stuart Halloway’s answers to our
erubycon interview questions.
Stuart Halloway Answers
Stuart Dabbs Halloway is a co-founder of Relevance,
LLC. Stuart is the author of
Component Development for the Java
Platform.
He regularly speaks at industry events including the No Fluff, Just
Stuff Java Symposiums and the Pragmatic
Studio.
Here are Stuart’s answers:
Q: Tell me a little about your background, where you are working and how did you come to start using Ruby?
I have been doing enterprise software development since
1989. Four years ago Justin and I founded Relevance with a goal of
raising the bar for how software is written. Ruby has been a great
tool. In March 2005, we ported a
project to
Ruby and haven’t looked back.
Q: What unique opportunities do you see for Ruby in the enterprise?
Ruby is compelling for enterprises that embrace agility. Agile
teams don’t aim to limit failure, they aim to enable success. Thus,
they are willing to embrace open languages that give developers
maximum power to get things done.
Q: What obstacles do you see to getting Ruby used more in enterprise
software?
We need more knowledge transfer. Ruby embodies a ton of good
ideas, and it will take people (and organizations) a while to explore
them all.
Q: Play oracle for a moment and tell me what you see as the next “Big Thing” in software development.
We’re already there: Agile development methods and open
languages.
Q: What erubycon talk are you most interested in hearing?
I’m looking forward to Muness’s report from the field on large
Ruby projects.
Thank You
Thanks Stu.
For more information on the conference, see erubycon.com.
|
| Another Rake Tutorial
|
|
12 Jun 07 |
|
[ print
link
all
] |
|

Greg Pollack has written a Rake Tutorial.
A Rake Tutorial from the “Rails Guy”
Remember
this (and
this,
this,
and
this)?
Gregg Pollack (the “Rails” guy in the above videos) has written a
delightful little rake
tutuorial
that you might enjoy. You can find the tutorial at
http://railsenvy.com/2007/6/11/ruby-on-rails-rake-tutorial.
|
| The erubycon Interviews: Anthony Eden Answers
|
|
12 Jun 07 |
|
[ print
link
all
] |
|

Anthony Eden’s answers to the erubycon interview questions make up the third installment in this series.
Anthony Eden Answers
Anthony Eden has more than 10 years of experience developing web
applications, first with Perl, then Java and now Ruby on
Rails. Anthony has developed numerous open source projects over the
last 5 years in both Java and now in Ruby. Anthony is currently a
project manager and technical lead with Camber Corporation, a
government contractor and runs his own company, Aetrion LLC, a data
warehouse development company.
Here are Anthony’s answers:
Q: Tell me a little about your background, where you are working and how did you come to start using Ruby?
I am a software developer/project manager with Camber Corporation, a
1400-employee consulting company that services the military and US
Government as well as other nations. I also run my own business on the
side developing Ruby-based data warehouse solutions for small
businesses. I began with Perl in ‘95, started using Java in ‘96, used
Python along the way and am now doing Ruby almost exclusively (except
for some interest in Erlang). I came to Ruby via Rails and I was
skeptical at first, but within a couple of months of using Ruby I
became convinced that it could greatly improve my productivity, my
team’s productivity and the overall joy of developing software.
Q: What unique opportunities do you see for Ruby in the enterprise?
The prime opportunity is to reduce the amount of code and amount
of effort that goes into operating and maintaining various systems
used to support Enterprise organizations. The larger an application is
the harder it is to maintain. My hope is that the elegance of the Ruby
language is seen as an enabler for smaller, easier to maintain
enterprise applications that work together, rather than monolithic
beasts that can’t be integrated.
Q: What obstacles do you see to getting Ruby used more in enterprise
software?
Lack of quality documentation about Ruby and its associated
libraries, that is easy to find, for one. Development tools are still
an issue, but I actually see Ruby as a catalyst for new development
tools that can take advantage of the dynamic nature of scripting
languages, rather than something which is seen as an obstacle.
Q: Play oracle for a moment and tell me what you see as the next “Big Thing” in software development.
Distributed parallel processing. A few days with Erlang opened
my eyes to the potential of direct support for parallel processing in
a language and made me realize that parallel processing is going to be
the only way to process the huge amount of data that is becoming
available thanks to the “opening up” of a lot of web sites. Google and
Amazon are really leading the way here and are representative of where
we can go with applications and data integration on a large scale.
Q: What erubycon talk are you most interested in hearing?
- Ruby on Rails with Large Teams
- Stretching ActiveRecord
Thank You
Thanks Anthony.
For more information on the conference, see erubycon.com.
|
| The erubycon Interviews: Bruce Tate Answers
|
|
11 Jun 07 |
|
[ print
link
all
] |
|

Bruce Tate is the second featured speaker to provided feedback on our erubycon speaker interviews.
Bruce Tate Answers
Bruce Tate is a kayaker, mountain biker, and father of two from
Austin, Texas. An international speaker and respected author, Bruce’s
primary focus through the years has remained steady: rapid application
development of web applications. He specializes on putting highly
effective teams on the most productive and most appropriate
technologies.
Q: Tell me a little about your background, where you are working and how did you come to start using Ruby?
I have been programming for about 30 years, and programming for
money for the last 25. I worked at IBM for a number of years, got
bored, and left to work for a startup which immediately blew up. Then,
I was an independent consultant, which was a little like saying
“Unemployed, but with business cards.” I did Java development,
training, mentoring, and consulting for five years or so, and began to
think that things were getting too bloated, too complicated, and
unsustainable. Dave Thomas challenged me to give Ruby a try, and I
did, and loved it, and hated that I loved it. All of my reputation, my
books, and my customers were all wrapped up in Java, but I knew it was
not the right language for the types of problems I was trying to
solve. I interviewed a bunch of people to understand what was
happening, and then decided to write a book about the learning
experience. That book, Beyond Java, caused a lot of controversy, but
the stuff seems pretty tame these days.
Eventually, I shifted my consulting practice to Ruby full
time. I later turned a consulting gig into a full time CTO position at
http://ChangingThePresent.org, We’re
building a charitable contributions portal. At ChaningThePresent, you
don’t just make a donation. You get an hour of a cancer researcher’s
time, you make a blind person see, and if you like, you can make that
tangible donation in the name of another, and get a customized card to
announce your donation. We hope to be the de facto resource for
nonprofits on the web. We think we’re well on the way.
Q: What unique opportunities do you see for Ruby in the enterprise?
I do everything in Ruby. As computing power gets less expensive,
we need to use more of that power, and let the base programming
language do more of the work. Our infrastructure is just about all in
Ruby these days.
Q: What obstacles do you see to getting Ruby used more in enterprise
software?
We don’t see insurmountable obstacles. We do think tools have
room to grow, especially in the area of refactoring development
environments. The dependence on so many C libraries, like ImageMagic,
is a pain for deployment. And we use Rails, which has its share of
warts. Caching in the persistence layer is harder than it needs to
be. Migrations don’t scale beyond small teams. But none of these
things even dent the long term productivity that we experience. Any
framework will lead to its share of technical debt. Rails is no
exception. All in all, it’s a fantastic framework.
Q: Play oracle for a moment and tell me what you see as the next “Big
Thing” in software development.
I always get in trouble for doing this, but I’ll bite. From a
language perspective, we seem to be getting closer and closer to a
functional language. Ruby is just one step in that direction. We won’t
see major movement in the core language for another 10 years,
though… we’re locked pretty hard into a 10 year programming language
cycle. I think we’ll continue to converge on a set of frameworks that
is over HTML and JavaScript. You can easily imagine one of the
HAML-like languages putting a dent in HTML, and one of the AJAX
frameworks, either in JavaScript or a langauge that composes it,
providing a layer over the browser. It’s becoming clearer that HTML
isn’t enough, and JavaScript needs layers on top to be everything we
need.
Domain specific languages will be unleashed, and driven from
things like IDEA’s language workbench and programming languages and
concepts in Ruby. This will take us closer to functional programming
languages than we’ve ever been.
From a language and feature standpoint, we’ll see continuations
play a bigger role. AJAX is complicating web development again, and
we’re going to have to make some simplifying assumptions. AJAX tripped
up continuation based models for a little while, but I can easily see
an abstraction with better encapsulation that lets AJAX play.
So those are three things that I see in the 5-10 year window. In
the more immediate timeframe, we’ll see Ruby continue to push Java on
the applications end. No single language will dominate, but a bunch of
us have already moved beyond Java. There’s still a place for Java, and
C++ or COBOL for that matter. But mind share is moving on. It’s
inevitable.
Q: What erubycon talk are you most interested in hearing?
It’s an incredible docket. I can’t pick just one.
Thank You
Thank you Bruce. Folks can get more information about erubycon at
erubycon.com.
|
| The erubycon Interviews: Zak Mandhro Answers
|
|
08 Jun 07 |
|
[ print
link
all
] |
|

With the erubycon quickly approaching, I have sent a list of
5 questions to several of the erubycon speakers. As their responses
come back to me, I’ll publish them here.
Enjoy!
—Jim Weirich
Zak Mandhro Answers
Zak Mandhro is a Senior Manager of Information Management Solutions
for BearingPoint (http://www.bearingpoint.com). He is the first of
our erubycon speaker interviews.
Q: Tell me a little about your background, where you are working and how did you come to start using Ruby?
I am a Senior Manager at BearingPoint, a global
consulting company. My background is custom Enterprise Solutions that
utilize JavaEE, .NET, SOA, Portals and Business Intelligence. I came
across Ruby while exploring dynamic languages in 2004. I started using
Ruby actively after Rails 1.0 release (outside of BearingPoint). We
are currently using Ruby for a requirements DSL
(http://rubyforge.org/projects/rdil) at a major federal client.
Q: What unique opportunities do you see for Ruby in the enterprise?
Short answer: The bottom-line is richer application at lower
cost with faster time-to-market. At the moment, I see two areas where
Ruby and Ruby on Rails are particularly attractive. (1) Building
departmental database-driven applications, the type that are being
serviced by VB, Access and ColdFusion today, and (2) Web services and
SOA glue code.
The long answer is here:
http://www.sdtimes.com/printArticle/column-20070101-01.html
Q: What obstacles do you see to getting Ruby used more in enterprise
software?
We need to have a better deployment and infrastructure story for
Rails. Unlike the shared hosting and VPS market, terms like monit,
lighty, mongrel and fastcgi are alien to Enterprise data
centers. There’s isn’t much in the “Enterprise”-press that would give
these products credibility, let alone coverage. Lack of management
tools is another area of improvement. We need to get to a point where
systems integrators and IT infrastructure staff are familiar and
comfortable with Rails deployment. JRuby WAR deployments is one way to
get there.
Q: Play oracle for a moment and tell me what you see as the next “Big
Thing” in software development.
I think we are already in the midst of the next big
thing. “Simplification of Enterprise Software”. Complex and
high-priced proprietary Enterprise software will slowly but surely
start to lose market share to simpler open-source alternatives. We are
seeing a move to openness and simplicity with JavaEE. We are
witnessing endorsement of dynamic languages (less code). Over the next
12 to 24 months, we’ll see more simpler alternatives pop-up, mature
and become pervasive; hopefully without ending up becoming just as
complex.
Q: What erubycon talk are you most interested in hearing?
Must I choose? Here are three quick picks (in no order):
- Security (CAS and OpenID)
- Mingle: Full-scale JRuby
- Keeping Tests Dry
Thank You
Thanks Zak. Folks can get more information about erubycon at
erubycon.com.
|
| Chicago RailsEdge Sessions Posted
|
|
25 May 07 |
|
[ print
link
all
] |
|

Rails Edge
I’ve been meaning to post about this for a couple of weeks, but with everything going
on, there just didn’t seem to be time.
Here’s the news. Registration is
open for the next RailsEdge conference in Chicago (August 23-25). Mike and Nicole have
posted the session list for
Chicago and there are some really great talks lined up for this time around, including a
number of new talks that we haven’t done before.
New talks
Chad Fowler will be speaking on “Quick and Clean: Well-Factored Rails”. I really like
the emphasis in the Rails community on keeping your code clean (and still beating
everyone to market).
Stuart Halloway is adding a talk on Domain Driven Design. Good design is critical to
producing a system that flexible and maintainable. Looks like Stu is going to give us
the goods on how to do just that.
Justin Gehtland will be talking about JRuby. I was in the JRuby tutorial at RailsConf
and the JRuby guys are doing a bang up job of bring JRuby up to speed as a solid
platform for rails. If you are in a place that already has Java deployed, then deploying
a Rails app has suddenly become as easy as dropping a WAR file on the server. Cool
stuff.
And it looks like I will be able to reprise my “DSL: Speaking the Lingo” talk from
RubyConf a couple years ago. If anything, the DSL story in Ruby has gotten even stronger
than before. And in addition to juggling and Rubiks Cube from the original talk, I have
a little extra surprise just for the Chicago crowd.
New Speakers
In addition to all the new talks, we have several new speakers featured at the Chicago
venue.
Ezra Zygmuntowicz will be speaking on “Mongrel: Learning how to walk the dog” and
“Xen and the Art of Rails Deployment”. Deployment issues seemed to be at the top of
the list of concerns at RailsConf and Ezra will help set us straight.
At past RailsEdge conferences, the feedback was strong about having more coverage on the
topic of testing. So as not to disappoint, we will have David Chelimsky talk about
“RSpec: Behavior Driven Rails” and Mike Mangino will cover “Testing in the Real World”.
See you there
That’s just the new stuff for Chicago. We still have a great selection of topics from
previous RailsEdge conferences. See the current
schedule for a complete list of
topics.
All in all, it looks like a really great lineup of speakers and topics. I hope to see
you there.
|
| What Should flexmock(real_obj) Return?
|
|
22 May 07 |
|
[ print
link
all
] |
|
Bruce Williams asked this question at RailsConf, and I
am soliciting feedback.
Background
First, a little background. There are two possibilities when calling flexmock(). First, you are creating a full mock object:
# Example 1
mock = flexmock("description")
mock.should_receive(...)
A full mock fulfills two roles: (1) it is a target for
should_receive to define expectations, and (2) it is a target for
normal domain messages when testing.
The other possibility is that you are creating a partial mock (i.e. a
regular Ruby object with just a few mocked methods):
# Example 2
real_obj = RealObject.new
proxy_mock = flexmock(real_obj, "description")
proxy_mock.should_receive(...)
The object returned from the flexmock() method is actually a proxy
object that can accept should_receive() messages to define the
expectations, but does not handle normal domain messages. After all, we have a real object that that handles domain messages.
Partial Mocks
It is clear that when creating a partial mock using the non-block form of
flexmock(real_obj), we must return the proxy, else there would be no way to
add expectations. But the return value for the block form of flexmock is
not so clear.
Consider the following code:
# Example 3
real_obj = RealObject.new
result = flexmock(real_obj) do |mock|
mock.should_receive(...)
end
Here the proxy object is passed as the block argument. All the expectation
setup is done within the block. It is very tempting to write this code
as:
# Example 4
result = flexmock(RealObject.new) do |mock|
mock.should_receive(...)
end
But here is the problem: in example 4 we no longer have a reference to the
RealObject instance. The flexmock() method returns the proxy
object, not the real object; just as it does in the non-block form.
Bruce’s Suggestions
Bruce suggested changing the block version of flexmock() to go ahead and
return the real object. Since the proxy is used in the block, there is no
real need for it outside the function. And, I will admit, example 4 is
short and relatively clear, especially with those familiar with the
returning idiom used in Rails.
The Dilemma
So here is my dilemma. Changing FlexMock so that example 4 works properly
is attractive. And I suspect that the return value of flexmock(real_obj) is
not ever used in a significant way in existing code, so backwards
compatibility should be be only a minor concern. However, changing the
return object based on whether or not the method has a block just seems …
wrong.
There is precedent for this. In the standard Ruby libraries
open(fn) and open(fn) { ... } return different things (an
open file for the former and the value of the block for the latter). I’ve
never had problems with this behavior in open, so perhaps I am just being
over sensitive here.
I told Bruce I would blog the issue and consider the feedback received. So
let me know what you think. Should flexmock() be modified to
return the real_object when defining partial mocks using the block form?
You can email me (jim@weirichhouse.org) or add a comment using the comments
link below.
|
| Joining EdgeCase
|
|
14 May 07 |
|
[ print
link
all
] |
|
Hello EdgeCase!

This is exciting news … well, exiting for me at least.
I have just accepted a position with EdgeCase, an
agile software firm started by Joe O’Brien, Chad Humphries and Ken Barker
located in Columbus Ohio. EdgeCase is focussed on agile software development
and delivering Ruby on Rails solutions, a perfect match for my passions,
skills and abilities.
I have known Joe for a long time, and we have a deep, mutual respect for each
other. I am extremely excited to be a part of his team.
I still have a few remaining responsibilities with
Compuware that will be discharged over the next few
weeks before starting full time with EdgeCase. I’ve been at Compuware for
nearly 12 years and I’ve had some great assignments and really wonderful
learning opportunities while working for them. But this chance to work with
Joe and the gang is a golden opportunity that I am not willing to pass up.
|
| Color Blind
|
|
02 May 07 |
|
[ print
link
all
] |
|
Presented a talk on Test First Design today at work.
I did a Lunch & Learn presentation today at work on the topic of unit testing and Test
First Design, included a discussion of the Red / Green /
Refactor technique. Unfortunately the red gun on the video projector was
bad, ruining all the careful color coding I put in to my slides. So the technique will now
be officially called Black / Yellow /
Refactor.
|
|
|