# Help with complicated problems

**URL:** <https://www.ruby-forum.com/t/help-with-complicated-problems/100932>\
**Category:** Ruby\
**Created:** [August 1, 2006, 11:45pm UTC](https://www.ruby-forum.com/t/help-with-complicated-problems/100932 "2006-08-01T23:45:28Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![lynxinator](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/848f3c/32.png) [@lynxinator](https://www.ruby-forum.com/u/lynxinator)\
**Post date:** [August 1, 2006, 11:45pm UTC](https://www.ruby-forum.com/t/help-with-complicated-problems/100932/1 "2006-08-01T23:45:28Z")

</div>

Hi all,

I’ve been working about entirely in Ruby for the last 18 months on my  
open source automation project, Puppet[1]; I live, eat, and breathe this  
project and thus ruby. However, I find that I basically never read or  
post to ruby-talk. I think the main reason for this is that I seldom  
have problems that I can easily describe – in other words, they’re  
usually problems with modeling, abstraction, patterns, or data vs. code.

I haven’t seen much discussion on the list that delves into this space,  
at least partially because it’s somewhat off-topic, since it’s general  
development not just ruby, and I’ve somewhat given up asking for help on  
many of these problems, not because people are unwilling to help but  
because it’s just too difficult to get help without either me being  
really good at describing the problem or the person offering the help  
spending a good bit of time understanding the code. Puppet is now 35k  
lines of code, including test code, so it takes a good bit of effort to  
understand what’s going on (and yes, I’m sure it should be shorter –  
care to analyze the code and help me refactor it?).

These discussions of RubyConf and its small size tending towards a kind  
of elitism got me thinking about this, because I’m in a kind of weird  
middle ground – I don’t really ever have Ruby language questions, I’m  
not writing Rails apps, and I’m not writing a product that a huge  
portion of people would use any time soon (it’s more focused on  
sysadmins at the moment), but I’m doing some interesting and complicated  
things and I’d like help and feedback like anyone else.

How do people get help with their complicated problems, things they  
won’t find in a reference book? I’m constantly trying to refactor my  
code and my ideas, but I usually need some kind of outside influence to  
do that.

Could we create some kind of “complicated problem whiteboard” or  
something? Would people be interested in that?

I’d like to find a way to get more involved in the Ruby community and to  
get better at Ruby programming, but the problems I’m interested in don’t  
seem to fit well into mailing lists. Or am I wrong about that, am I  
just missing the high-level discussions and only seeing syntax  
questions?

1 - [http://reductivelabs.com/projects/puppet](http://reductivelabs.com/projects/puppet)

---

<div class="post-metadata">

**Author:** ![lynxinator](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/848f3c/32.png) [@lynxinator](https://www.ruby-forum.com/u/lynxinator)\
**Post date:** [August 2, 2006, 12:06am UTC](https://www.ruby-forum.com/t/help-with-complicated-problems/100932/2 "2006-08-02T00:06:09Z")

</div>

Luke K. wrote:

> Hi all,
> 
> I’ve been working about entirely in Ruby for the last 18 months on my  
> open source automation project, Puppet[1]; I live, eat, and breathe this  
> project and thus ruby. However, I find that I basically never read or  
> post to ruby-talk. I think the main reason for this is that I seldom  
> have problems that I can easily describe – in other words, they’re  
> usually problems with modeling, abstraction, patterns, or data vs. code.

Welcome to the club. I think that half the battle is getting a problem  
into terms that can be expressed in code or pseudo code.

> …  
> How do people get help with their complicated problems, things they  
> won’t find in a reference book? I’m constantly trying to refactor my  
> code and my ideas, but I usually need some kind of outside influence to  
> do that.

The people on tis list, for the most part, are quite open and friendly.  
So there is a decent tolerance for ill-phrased, off-the-wall questions.

(I think the main gripe many have here is when people ask for help  
without demonstrating that they’ve done their own legwork. I.e., “Dear  
ruby-talk: Please do my homework. And can you hurry?”)

> Could we create some kind of “complicated problem whiteboard” or  
> something? Would people be interested in that?
> 
> I’d like to find a way to get more involved in the Ruby community and to  
> get better at Ruby programming, but the problems I’m interested in don’t  
> seem to fit well into mailing lists. Or am I wrong about that, am I  
> just missing the high-level discussions and only seeing syntax questions?

Take a stab at it and see how people respond.

I like hearing how people reason about their code and projects, and I  
believe their are thought idioms peculiar to working with Ruby.

You might also consider the pragprog mailing list:

[http://www.pragmaticprogrammer.com/community/](http://www.pragmaticprogrammer.com/community/)

> 1 - [http://reductivelabs.com/projects/puppet](http://reductivelabs.com/projects/puppet)

Is there a Puppet Master?

[http://us.imdb.com/title/tt0098143/](http://us.imdb.com/title/tt0098143/)

🙂

–  
James B.

“Inside every large system there’s a small system trying to get out”.  
- Chet Hendrickson

---

<div class="post-metadata">

**Author:** ![lynxinator](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/848f3c/32.png) [@lynxinator](https://www.ruby-forum.com/u/lynxinator)\
**Post date:** [August 2, 2006, 12:24am UTC](https://www.ruby-forum.com/t/help-with-complicated-problems/100932/3 "2006-08-02T00:24:17Z")

</div>

On Aug 1, 2006, at 4:41 PM, Luke K. wrote:

> Hi all,
> 
> I’ve been working about entirely in Ruby for the last 18 months on  
> my open source automation project, Puppet[1]; I live, eat, and  
> breathe this project and thus ruby.

Welcome to Ruby. The project sounds wicked interesting. I’ll be  
sure and drop my Sys Admin buddy a link.

> I think the main reason for this is that I seldom have problems  
> that I can easily describe – in other words, they’re usually  
> problems with modeling, abstraction, patterns, or data vs. code.

I can’t speak for everyone, but I didn’t see anything listed in there  
I’m not interested in discussing or at least seeing discussed. I’m  
much more interested in all of those than debating the definition of  
the term “closure.” 😉

> I haven’t seen much discussion on the list that delves into this  
> space, at least partially because it’s somewhat off-topic, since  
> it’s general development not just ruby

Well, Rubyists tend to treasure beautiful code, so we would be happy  
to tell you all about how we think you should design your  
software. 😃 (Though I am kidding around here, the point stands:  
doesn’t seem horribly off-topic to me.)

> Puppet is now 35k lines of code, including test code, so it takes a  
> good bit of effort to understand what’s going on (and yes, I’m sure  
> it should be shorter – care to analyze the code and help me  
> refactor it?).

Wow. That’s sure a lot of code. I think that’s longer than the Ruby  
Cookbook I received today and believe me it’s one big book! I’m  
going to have to go browse that code base a little…

> I’d like to find a way to get more involved in the Ruby community  
> and to get better at Ruby programming, but the problems I’m  
> interested in don’t seem to fit well into mailing lists. Or am I  
> wrong about that, am I just missing the high-level discussions and  
> only seeing syntax questions?

I say you give us a couple of trial runs and see if we start  
complaining. 😉

James Edward G. II

---

<div class="post-metadata">

**Author:** ![lynxinator](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/848f3c/32.png) [@lynxinator](https://www.ruby-forum.com/u/lynxinator)\
**Post date:** [August 3, 2006, 12:01pm UTC](https://www.ruby-forum.com/t/help-with-complicated-problems/100932/4 "2006-08-03T12:01:32Z")

</div>

On Aug 1, 2006, at 6:30 PM, Luke K. wrote:

> on these kinds of problems; I can never jump directly into the  
> emails – I almost didn’t send the email that started this thread,  
> in fact.

I’m no expert, but from this web site you seem to really have your  
act together. And the project looks really interesting. So don’t  
worry. The only questions I’ve ever seen refused on this list are  
Rails questions, and sometimes people even answer those.

I haven’t looked too much, but the initial guide is a little granular  
I think, so it’ll take some time for most of us to absorb just what  
you’re doing. But it seems like you’re talking about pulling server  
configuration from a centralized store. Which sounds awesome to me.  
Can’t wait to see how you interface with the permissions system.  
-Mat

---

<div class="post-metadata">

**Author:** ![lynxinator](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/848f3c/32.png) [@lynxinator](https://www.ruby-forum.com/u/lynxinator)\
**Post date:** [August 2, 2006, 12:33am UTC](https://www.ruby-forum.com/t/help-with-complicated-problems/100932/5 "2006-08-02T00:33:49Z")

</div>

James B. wrote:

> Welcome to the club. I think that half the battle is getting a problem  
> into terms that can be expressed in code or pseudo code.

Yep. I’ve been struggling with some low-level modeling problems in  
Puppet for months and months, and attempts I’ve made at describing the  
problem (e.g.,  
[https://reductivelabs.com/cgi-bin/puppet.cgi/wiki/ModelsAndImplementations](https://reductivelabs.com/cgi-bin/puppet.cgi/wiki/ModelsAndImplementations))  
have not done the problem justice.

I’ve also found that I need some level of personal context to work on  
these kinds of problems; I can never jump directly into the problem but  
instead need to get an idea of whom I’m dealing with, which is much more  
difficult over email.

> The people on tis list, for the most part, are quite open and friendly.  
> So there is a decent tolerance for ill-phrased, off-the-wall questions.

I totally agree with that – I’ve never seen a shortage of help. I just  
hate throwing out vague questions, and my personal bar for required  
research is so high that I can’t seem to ever finish the emails – I  
almost didn’t send the email that started this thread, in fact.

> (I think the main gripe many have here is when people ask for help  
> without demonstrating that they’ve done their own legwork. I.e., “Dear  
> ruby-talk: Please do my homework. And can you hurry?”)

I’m a sysadmin by trade; I know all about that. 🙂

> Take a stab at it and see how people respond.
> 
> I like hearing how people reason about their code and projects, and I  
> believe their are thought idioms peculiar to working with Ruby.

I’ll begin trying to do a better job of bringing these problems up on  
the list. OSCON really made me realize how much I’ve let myself become  
isolated in the last couple of years, since I basically dropped out of  
the sysadmin community to work on Puppet.

> You might also consider the pragprog mailing list:
> 
> [http://www.pragmaticprogrammer.com/community/](http://www.pragmaticprogrammer.com/community/)

I didn’t know that existed, I’ll check it out.

> > 1 - [http://reductivelabs.com/projects/puppet](http://reductivelabs.com/projects/puppet)
> 
> Is there a Puppet Master?
> 
> [http://us.imdb.com/title/tt0098143/](http://us.imdb.com/title/tt0098143/)

Never underestimate the allure of puns. So far I’ve just got  
puppetmasterd (otherwise known as DJ Gipetto) and Puppetshow (the  
beginnins of a web app to interact with Puppet), but I’m sure there are  
more to come.

---

<div class="post-metadata">

**Author:** ![lynxinator](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/848f3c/32.png) [@lynxinator](https://www.ruby-forum.com/u/lynxinator)\
**Post date:** [August 3, 2006, 1:22pm UTC](https://www.ruby-forum.com/t/help-with-complicated-problems/100932/6 "2006-08-03T13:22:58Z")

</div>

On 8/2/06, Luke K. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I didn’t expect that questions would be refused, just that there would  
> be a potential for too much discussion and not enough content, or just  
> that I wouldn’t be able to phrase the problem in a way that didn’t  
> require significant time investment in looking at my code.

Another thought on this thread would be to seek out or create a local  
Ruby brigade. I really want to get to RubyConf, but if I miss out (I  
have a volleyball game tonight and a friends birthday party  
afterwards) – I will take solace in meeting with the fine folks at  
[rubymi.org](http://rubymi.org) 🙂

pth

---

<div class="post-metadata">

**Author:** ![lynxinator](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/848f3c/32.png) [@lynxinator](https://www.ruby-forum.com/u/lynxinator)\
**Post date:** [August 3, 2006, 12:04pm UTC](https://www.ruby-forum.com/t/help-with-complicated-problems/100932/7 "2006-08-03T12:04:36Z")

</div>

Mat S. wrote:

> I’m no expert, but from this web site you seem to really have your act  
> together. And the project looks really interesting. So don’t worry.  
> The only questions I’ve ever seen refused on this list are Rails  
> questions, and sometimes people even answer those.

I didn’t expect that questions would be refused, just that there would  
be a potential for too much discussion and not enough content, or just  
that I wouldn’t be able to phrase the problem in a way that didn’t  
require significant time investment in looking at my code.

> I haven’t looked too much, but the initial guide is a little granular I  
> think, so it’ll take some time for most of us to absorb just what you’re  
> doing. But it seems like you’re talking about pulling server  
> configuration from a centralized store. Which sounds awesome to me.

That is exactly what I’m doing.

During Kathy Sierra’s presentation at OSCON, I realized I have to  
significantly rework my documentation so that it’s more goal oriented –  
currently, it requires that you know what you want to do and will only  
really help you do that. It’d be much more useful if it helped you  
figure out what cool things you could do, and I’m hoping to add that  
information soon.

> Can’t wait to see how you interface with the permissions system.

Eh? Permissions system? Which one?

---

<div class="post-metadata">

**Author:** ![lynxinator](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/848f3c/32.png) [@lynxinator](https://www.ruby-forum.com/u/lynxinator)\
**Post date:** [August 3, 2006, 2:23pm UTC](https://www.ruby-forum.com/t/help-with-complicated-problems/100932/8 "2006-08-03T14:23:18Z")

</div>

I must say that these kids of problems really are some of the best to  
discuss, because it allows others to learn from everyone’s thinking on  
various topics and ideas. It teaches the more abstract stuff, the  
stuff that schools completely miss. It’s definitely more valuable than  
discussions on closures, despite how valuable those really are.

Plus, it makes me happy to escape into the higher levels!

M.T.

P.S. – Thanks for the link to the PragProg community! I totally  
missed that! (Whoever that was.)
