More Articles  


I just got my Minimig Amiga 500 re-implementation...

Lotus Esprit Turbo Challenge on my new 42" LED backlit LCD: (Minimig in the cabinet with the red led...)

That is all.


Writing a (Ruby) compiler in Ruby bottom up - step 24

Apologies for the delay... This part was ready before christmas, but for various reasons I never got around to posting it. And to make matters worse I managed to post the wrong part yesterday. Sigh.

The Outer Scope

Stepping back from the attr_* debacle for a bit... I wanted to look ...

How to implement closures

This is a sort-of interlude to my regular compiler series.

The goal is to give a brief overview of some techniques for implementing closures in a programming language. I will use C for my examples, mostly because it's low level enough that a further translation to assembler etc. is ...

Writing a (Ruby) compiler in Ruby bottom up - step 23

Continuing down the rabbit hole: String

A couple of parts ago we established some of the problems with supporting even the seemingly simple attr_reader, attr_writer and attr_accessor.

Ruby gets a spec

A week or so ago, the Ruby Draft specification made the rounds

Yes... Ruby is finally getting a standard. While RubySpec has been around for a while, and is a great, it is an executable specification that tells you what, not why, and it aims to be "complete" while ...

Virgin Media, or how to make your customers hate you

A long rant on Virgin Media customer service and the challenges of cancelling.

Writing a (Ruby) compiler in Ruby bottom up - step 22

A diversion into Method missing

So far the method_missing implementation has just printed a notice and quit.

During the trip down the rabbit hole that is attr_accessor and friends that became a major annoyance.

The problem is that this notice has not included a stack backtrace or any way to ...

Writing a (Ruby) compiler in Ruby bottom up - step 21

I've been lazy lately... Well, not really, I've been extremely busy, but I ought to have fit this in earlier. It's gotten harder and harder to get done too, since it's now more work since I had to go back and figure out a lot of the reasons for what I'd ...

A pitfall of the Ruby Range class

I tweeted about this, but figured it deserve a more lasting treatment.

If you've ever used Range#min or Range#max you may have inadvertently slowed your code significantly.

Both of those ought to be O(1) - constant time. After all, a Range in Ruby consist of two values, and though you can't ...