Enhancing WWW::Mechanize

Today I wanted to extract a report from a search appliance. This task involved logging in to the appliance, receiving a cookie, and following a few links. No problem with Mechanize, right?

agent = WWW::Mechanize.new
login_form = agent.get(THUNDERSTONE_URL).forms.first
login_form.set_fields(:iname => LOGIN, :ipass => PASSWORD)
page = agent.submit(login)
page = agent.click page.links.text(PROFILE_NAME)
errors = agent.get_file "#{page.uri}/tsverrors.csv"

Only it turned out that it wasn't receiving the cookie. Continue reading →

Language comparisons are usually flawed

There are many blog posts that basically say, "Given problem X, you can solve it elegantly in language Y. Language Y is awesome!" The problem with this is that it is essentially a strawman argument. Who is to say that problem X would even be the same in other languages, if you take their conventions and idioms into account? Continue reading →

Industrial-strength Web Services for Ruby

The folks at WSO2 have created a Ruby binding for their enterprise Web Services stack, WSF/C. WSF/Ruby supports SOAP 1.2 and many WS-* specifications, including WS-Addressing, WS-Security, and WS-Reliable Messaging. Built on Apache Axis2, Rampart, and Sandesha2, it is interoperable with .NET and J2EE SOAP implementations. Now that SOAP has been decoupled from Rails, this has potential as a solid replacement.

Continue reading →

Getting Started with SOAP4R

SOAP4R is a Ruby library for accessing Web Services via SOAP. Recently I had a chance to explore SOAP4R. Here's how to get started with it.

Continue reading →

Is SOAP dying?

I've been asked a number of times whether SOAP is becoming obsolete. Cited examples:

So does this signify the end of SOAP?
Continue reading →