Help with complicated problems

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

···

--
Smoking is one of the leading causes of statistics. -- Fletcher Knebel
---------------------------------------------------------------------
Luke Kanies | http://reductivelabs.com | http://madstop.com

Luke Kanies 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/

1 - http://reductivelabs.com/projects/puppet

Is there a Puppet Master?

http://us.imdb.com/title/tt0098143/

:slight_smile:

···

--
James Britt

"Inside every large system there's a small system trying to get out".
    - Chet Hendrickson

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." :wink:

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. :smiley: (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. :wink:

James Edward Gray II

···

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

James Britt 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\) 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. :slight_smile:

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/

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

1 - http://reductivelabs.com/projects/puppet

Is there a Puppet Master?

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.

···

--
My favorite was a professor at a University I Used To Be Associated
With who claimed that our requirement of a non-alphabetic character in
our passwords was an abridgement of his freedom of speech.
                 -- Jacob Haller
---------------------------------------------------------------------
Luke Kanies | http://reductivelabs.com | http://madstop.com

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

···

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

James Britt 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\) 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.

Mat Schaffer 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?

···

--
You don't learn anything the second time you're kicked by a mule.
                 -- Anonymous Texan
---------------------------------------------------------------------
Luke Kanies | http://reductivelabs.com | http://madstop.com

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 :slight_smile:

pth

···

On 8/2/06, Luke Kanies <luke@madstop.com> 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.

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.)