Abe Voelker's blog Programming stuff, mainly

Sick of Ruby, dynamic typing, side effects, and basically object-oriented programming

10 minute read

This has been a long time coming. I had meant to write this post around the New Year, before the wave of death of Ruby stuff and before DHH’s “TDD is dead” ruckus:

I think subconsciously more and more people are figuring out something is wrong or lacking with Ruby development, but they are lashing out at the wrong things. Oh, your Ruby app is a steaming pile of shit? It’s because you weren’t diligent enough writing tests or you weren’t following TDD principles closely enough. Or you aren’t knowledgable enough with design patterns to break it up into the right patterns. Or you aren’t following the Single Responsibility Principle, or SOLID, or Law of Demeter, yadda yadda. Here, read this book on patterns or testing or OO design and get back to me when you reach enlightenment.

Rails Development Using Docker and Vagrant

25 minute read

Docker containerizing some typical Rails-stack software

If you’re like me, you’ve probably been hearing a lot about Docker over the past year but haven’t really gotten past the “hello world” tutorial because you haven’t found a good way to integrate it into your development workflow or staging/production deployment process. I’ve spent the last several weeks learning Docker and porting a Rails project’s development environment from Ansible provisioning to Docker, so I thought I’d share my experiences so far.

Final Ode to OpenEdge ABL Part 3: Parting Advice

4 minute read

Yao Ming laughing at OpenEdge

In part 1 of this series I demonstrated how to write Ruby code against an OpenEdge database using the JDBC driver and DataMapper ORM, and in part 2 I showed how to take advantage of this to rapidly prototype a RESTful Web service / JSON API for the canonical sports2000 OpenEdge database using Ruby and Sinatra.

For the final post in this series, I promised to offer some advice to Progress Software Corporation (PSC) on how to advance the OpenEdge ecosystem.

In the spirit of the words “let the dead bury the dead” I’m going to keep this short as I’m skeptical that this post stands much chance of effecting any changes.

Final Ode to OpenEdge ABL Part 2: Ruby Helps You REST Easy

20 minute read

Poor results when trying to REST with OpenEdge

In part 1 of this series, we learned how to get Ruby to talk to an OpenEdge database by using an adapter for the DataMapper ORM framework.

In this post, I would like to demonstrate both the power and beauty of Ruby by rapidly prototyping a RESTful Web service (using JSON representation responses) for sports2000 customers using our new OpenEdge database adapter.