Abe Voelker's blog Programming stuff, mainly

menosgrande - My First Ruby on Rails App!

4 minute read

I’m proud to announce the release of my first Ruby on Rails app - menosgrande!

It’s not a very complicated application; it’s just a URL shortener. However, I’ve tried to make it the most efficient URL shortener in existence by doing a few things uniquely that I don’t see any other URL shorteners doing:

Cure for the Plague: A Theoretical Progress / OpenEdge ABL Migration Plan

20 minute read

The Triumpth of Death oil painting

I think my opinion on Progress OpenEdge ABL (henceforth known as “the Plague”) as a programming language / DBMS is well known, but here is a short summary in case you missed it:

Longchar sucks. Introducing BigCharacter

4 minute read

Now that I’ve got your attention, let me say this: LONGCHAR doesn’t always suck. But, it definitely does suck sometimes

The Bug

Here’s an example. How long does it take for this code to complete on your system?


DO i=1 TO 1000000:
  lc = lc + STRING(i).
  IF i MOD 100 EQ 0 THEN

OpenEdge ABL Utility: Get Program Parameters (Main Block) from R-code

6 minute read

I have recently been working on a new compiler interface and backend for my workplace. I am pretty much done with it at this point - and the adventure is worthy of it’s own blog post - however, I thought I would share a little script with the world that might be useful to others.

Basically, I wanted to table-ize as much meta information about a program as possible when it gets compiled. One piece of information I wanted is the main block parameters of a program (e.g. DEFINE INPUT PARAMETER ipcString AS CHARACTER. at the top of the program). I mean, how cool would it be to do a simple check on RUN statements to see if they will fail at compile-time (by checking existing compile snapshots of the program referenced by the RUN; assuming of course that the RUN statement can be evaluated at compile-time)?