Copland tutorials

I’ve written a few tutorials to help people understand and use the
Copland framework. Everyone knows that developers have a hard time
writing tutorials that are accessible to newbies, so I would appreciate
any input on them (how helpful are they? are they understandable enough?).

http://copland.rubyforge.org/files/tutorial/tutorials_rdoc.html

Enjoy!

···


Jamis Buck
jgb3@email.byu.edu
http://www.jamisbuck.org/jamis

ruby -h | ruby -e
’a=[];readlines.join.scan(/-(.)[e|Kk(\S*)|le.l(…)e|#!(\S*)/) {|r| a <<
r.compact.first };puts “\n>#{a.join(%q/ /)}<\n\n”’

Jamis Buck wrote:

I’ve written a few tutorials to help people understand and use the
Copland framework. Everyone knows that developers have a hard time
writing tutorials that are accessible to newbies, so I would appreciate
any input on them (how helpful are they? are they understandable enough?).

http://copland.rubyforge.org/files/tutorial/tutorials_rdoc.html

Enjoy!

I skimmed through them, they seemed reasonably informative. It might
help if you had some example code that showed a sort of before/after,
demonstrating how much cleaner the code was through your method, as I
guess I’m not quite following the advantage. That or a small case study
of a good application to use this for. That or a link showing
equivalent examples offsite somewhere even if it is in another language.

Charles Comstock

Charles Comstock wrote:

I skimmed through them, they seemed reasonably informative. It might
help if you had some example code that showed a sort of before/after,
demonstrating how much cleaner the code was through your method, as I
guess I’m not quite following the advantage. That or a small case study
of a good application to use this for. That or a link showing
equivalent examples offsite somewhere even if it is in another language.

Charles Comstock

Thanks for your input, Charles. I’ll try the before/after approach,
though I fear it won’t be a very dramatic different for such small
applications as the tutorials. (Frankly, IoC is really only useful for
larger, enterprise-scale applications. Smaller applications may actually
be negatively impacted by using IoC.)

I do have a small case study that demonstrates the power of IoC. It is
on the main Copland page (http://copland.rubyforge.org). Just scroll
down until you get to the section titled “Inversion of Control” (in
particular, the subsection titled “Dependency Injection in Action”). I
probably need to refactor the documentation and find a better way to
navigate between it all…

And I’ll see what I can do about finding some offsite examples. I know
I’ve seen some impressive ones in Java–I’m sure they would do to show
the power of IoC.

Thanks again!

···


Jamis Buck
jgb3@email.byu.edu
http://www.jamisbuck.org/jamis

ruby -h | ruby -e
‘a=;readlines.join.scan(/-(.)[e|Kk(\S*)|le.l(…)e|#!(\S*)/) {|r| a <<
r.compact.first };puts “\n>#{a.join(%q/ /)}<\n\n”’

Jamis, my thoughts after reading through your documentation were much the
same as Charles’. “The concept sounds interesting, and the examples are
easy to follow, but with just a read through the doc and a few minutes of
thought, I’m not really comprehending why I would want/need to use this.”

I think you need an introduction that doesn’t get into any code at all,
but simply lays out at a high level why Copland could make my life better,
with a couple of examples.

Thanks,

Kirk Haines

···

On Sat, 20 Mar 2004, Jamis Buck wrote:

Thanks for your input, Charles. I’ll try the before/after approach,
though I fear it won’t be a very dramatic different for such small
applications as the tutorials. (Frankly, IoC is really only useful for
larger, enterprise-scale applications. Smaller applications may actually
be negatively impacted by using IoC.)

Kirk Haines wrote:

···

On Sat, 20 Mar 2004, Jamis Buck wrote:

Thanks for your input, Charles. I’ll try the before/after approach,
though I fear it won’t be a very dramatic different for such small
applications as the tutorials. (Frankly, IoC is really only useful for
larger, enterprise-scale applications. Smaller applications may actually
be negatively impacted by using IoC.)

Jamis, my thoughts after reading through your documentation were much the
same as Charles’. “The concept sounds interesting, and the examples are
easy to follow, but with just a read through the doc and a few minutes of
thought, I’m not really comprehending why I would want/need to use this.”

I think you need an introduction that doesn’t get into any code at all,
but simply lays out at a high level why Copland could make my life better,
with a couple of examples.

I did a presentation on dependency inversion at our local Java users
group. You can find it at

http://onestepback.org/articles/dependencyinjection/index.html

It might be helpful.


– Jim Weirich jim@weirichhouse.org http://onestepback.org

“Beware of bugs in the above code; I have only proved it correct,
not tried it.” – Donald Knuth (in a memo to Peter van Emde Boas)