Re: [dev] Re: [ANN] Ruby wmiirc - YAML import feature

From: Suraj Kurapati <>
Date: Sun, 3 Jan 2010 21:41:25 -0800

On Sun, Jan 3, 2010 at 7:33 PM, Emmanuel Oga <> wrote:
> On Sun, Jan 3, 2010 at 5:32 PM, Suraj Kurapati <> wrote:
>> I'm pleased to announce the next evolution of my YAML-based Ruby wmiirc:
> Thanks a lot for your hard work. I just recently started using your
> ruby based wmiirc and I'm enjoying a lot being able to configure my
> wmii with ruby so easily.

Thanks for the kind words. I'm glad this project was useful to you.

> At the same time, I must point out that I find very annoying the usage
> of YAML for the configuration files. I suppose you choose to use it
> because it seemed to make sense for a configuration file.

Yes, since the problem domain here is to describe a
configuration, YAML felt like a better tool for the job because it let
us describe the configuration declaratively, with minimal added syntax
to distract us from the task at hand.

> But this configuration is so overcharged with ruby scripts that IMHO
> is not very practical to use YAML. wmii audiance is clearly
> programmers, and I think so called power users need to know at least a
> little about programming to be able to use the wmiirc.

Good point. Mauricio Fernandez's ruby-wmii took the full-Ruby approach
in the past, providing an internal DSL to configure wmii. And wmiircs
written in other languages (Python, Lua, etc.) have basically followed
the same approach. I guess I just wanted to try something different.

However, I did not intend to "dumb down" the configuration by using YAML
(and I do not think of it that way) because I consider myself as the
primary target audience. i.e. I eat my own dog food, and like it. :-)

> Using YAML, the scripts end up looking like python (i.e., how you use
> white space matters), which is very annoying.

I'm sorry to hear this. I was happy with the declarative YAML exterior
and imperative Ruby cream filling because they felt like a good balance
of both worlds (i.e. using the right tool for the job): declarative to
get straight to point and imperative to do the heavy lifting.

> I had a goal to convert your YAML scripts to plain old ruby code, ...
> good thing I procrastinated it this time, now I'll be able to use your
> new code as a starting point! :-)

Sure, this sounds interesting. I would imagine that only the interface
through which we humans describe our configuration to the machine would
change: from an external DSL to an internal one. Hopefully we can share
the internals beneath these two interfaces.

Received on Mon Jan 04 2010 - 05:41:25 UTC

This archive was generated by hypermail 2.2.0 : Mon Jan 04 2010 - 06:00:04 UTC