{ |one, step, back| } 18 to 27 of 177 articles WikiSyndicate: full/short

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.

 

Formatted: 18-May-08 04:35
Feedback: jim@weirichhouse.org