Introducing Blirb--a tongue-in-cheek interactive quiz/game/tutorial

Hi Everyone,

I’ve put together a simple little gem that functions as an interactive
quiz/game for learning ruby. You are given simple tasks and as you
complete
each one, you are given another.

There is a README here: GitHub - montague/blirb: ruby metaprogramming learning tool

To install, type ‘gem install blirb’. After installation, type ‘blirb’
to
start the program.

It’s very rough around the edges, but I figure “release early, release
often” is a good motto.

Would love to hear any feedback.

Thanks.

Ian

Hi Ian,

I liked it a lot. This could be a great tool for newcomers.

I guess most of the koans tasks could be ported to blirb.

nice work. thanks.

Siddharth.

On Tue, Aug 16, 2011 at 10:57 PM, Ian M. Asaff [email protected]
wrote:

Would love to hear any feedback.

Hi, Ian, the load path thing looks like it might be frustrating you. I
went
ahead and fixed it and submitted a pull request.

If anyone else has found themselves doing lots of stuff with absolute
load
paths, it might be worth glancing at (it’s pretty brief, see the
individual
commits for explanations of why we can do this in each case).

On 17 August 2011 05:57, Ian M. Asaff [email protected] wrote:

Hi Everyone,

I’ve put together a simple little gem that functions as an interactive
quiz/game for learning ruby. You are given simple tasks and as you complete
each one, you are given another.

Would love to hear any feedback.

Hi,
Nice work!

This would be really awesome to teach stuff, especially
metaprogramming, with some additional check on the user input, to test
whether he uses the right method.

I noticed:

  • Some errors are handled well, but some not, like missing constants
    and undefined local vars (I got full backtraces of 25 levels)
  • In task 4 subject: “4 - Define ‘Bro’ so that he has a private method
    ‘drink_natty_ice’. […]”,
    I thought to a private class method of Bro, not a private instance
    method, but that must be because I like too much doing it weird.
  • In task 5 test code, you should maybe check if brah is a Bro.
  • Don’t assume Kernel#gets returns a String, if someone stop giving
    input (Ctrl+D), it will return nil.

Keep on releasin’,
Benoit D.

PS: I passed task 6 with Bro, LittleBro = nil; def LittleBro.ancestors; [nil, Bro]; end. I know, I’m evil.

On Wed, Aug 17, 2011 at 4:57 AM, Ian M. Asaff [email protected]
wrote:

It’s very rough around the edges, but I figure “release early, release
often” is a good motto.

Would love to hear any feedback.

Hi Ian,
just tried it, and I like it. Works really well for very simple
stuff.

It has that kind of ‘study aid’ feel to it that I like, and it suits
complete beginners.

You want feedback, so here goes:

  • it would be nice to have coloured terminal output (which makes it a
    bit
    tricky cross platform I know).
  • You might need to put a bit more thought into the task list - how do
    you
    get new tasks into the gem, you could get a lot of contributions here
    and it
    might be an idea to make them all easily shared.
  • perhaps have a blirb_curated gem and a blirb_community gem for all the
    tests?
  • you might want to include a scoring system at some stage - I get a
    nice
    ‘game’ feel off of it

Nice idea, done well.

regards,
Richard