On May 4, 2012, at 1:53 PM, Bruce Dubbs wrote:

> Qrux wrote:
> 
>>> The users need to learn to think about what needs to be done, not just 
>>> copy/paste without understanding.
>> 
>> As a proxy example of ambiguity, do you not see the...confusion...some might
>> experience when in your previous email, you said:
>> 
>>> If you follow the instructions literally, they work.  Making inferences and
>>> adding things not in the book is where users run into problems.
>> 
>> "Think!"  "Don't infer!"
>> 
>> I'm saying it could use more clarity.  You're saying that you're not
>> technically wrong.  Those two can exist at the same time.
> 
> But what you are asking for is more instructions, not more clarity.

I said several things.  The first is that there is some potential for ambiguity 
in statements like:

        "Think, but don't infer."

Then, as a practical approach, I suggested repetition--after I suggested more 
"signposts" that warn of potential pitfalls.  Don't latch on.  It was just an 
example.  You seem to be entrenched in the idea that "if you need signposts, 
you're (careless|stupid|lazy).  That's not always the case.

One solution is to keep saying: "Reread Section 5."

I'm exploring other solutions, because I think it's silly to insist that the 
book is well-written when, for every single release, many people are confused 
by how to begin Chapter 5.  I didn't have an issue.  But I can certainly 
understand how others might.

> Section vi. "It is also expected that you have a reasonable knowledge of 
> using 
> and installing Linux software.:
> 
> Section 3.1. "Downloaded packages and patches will need to be stored 
> somewhere 
> that is conveniently available throughout the entire build. A working 
> directory 
> is also required to unpack the sources and build them. $LFS/sources can be 
> used 
> both as the place to store the tarballs and patches and as a working 
> directory."
> 
> Section 5.3. General Compilation Instructions  "For each package: Using the 
> tar 
> program, extract the package to be built. In Chapter 5, ensure you are the 
> lfs 
> user when extracting the package. Change to the directory created when the 
> package was extracted."
> 
> How do we clarify that?  Repeat it for every package?  If there is something 
> unclear, I'll change it, but I can't read it for the users.

If you always have the same issue at the same point in the book, you might come 
to the conclusion that it's a hard part, and only (careful|smart|hard-working) 
people will understand.  You could also conclude that it's a confusing part 
(perhaps also hard), and while we need people to be able to read, we can also 
provide a warning here that highlights the relative importance of this 
statement.

The point is, there is plenty of prose in the book.  I could completely skip 
every word of Section i, Section ii, Section iii, Section iv, and Section v, 
and successfully build the book.  In fact, I've done exactly that, and had no 
issue.

But, then, you want me to read Section vi and take it as gospel?  Are you 
starting to understand what I mean about signposts?  There is nothing special 
about the appearance of Section iv.  Do you see how that might relate to 
organization of the information, and not the content?

> We did add to 5.4: "Go back and re-read the notes in the previous section. 
> Understanding the notes labeled important will save you a lot of problems 
> later."

And, while the unpacking instructions in 5.3 are indeed marked as "important", 
do you also see that Sections 5.1 and 5.2 are completely irrelevant to the 
explicit directions?  You know how some text books often have sections which 
are only meant to be read in an advanced course?  Well, 5.2 is exactly like 
that.  But, why strew information all across the book?  Chapter 5 is the 
backbone to the entire thing.  But it starts with a somewhat irrelevant section 
(5.1), and an advanced section (5.2).  Then, you want people to know that the 
"Important" part of (5.3) is *actually* important?

Here's something "Important" from 5.2:

====
"Before continuing, be aware of the name of the working platform, often 
referred to as the target triplet. A simple way to determine the name of the 
target triplet is to run the config.guess script that comes with the source for 
many packages. Unpack the Binutils sources and run the script: ./config.guess 
and note the output. For example, for a modern 32-bit Intel processor the 
output will likely be i686-pc-linux-gnu.

"Also be aware of the name of the platform's dynamic linker, often referred to 
as the dynamic loader (not to be confused with the standard linker ld that is 
part of Binutils). The dynamic linker provided by Glibc finds and loads the 
shared libraries needed by a program, prepares the program to run, and then 
runs it. The name of the dynamic linker for a 32-bit Intel machine will be 
ld-linux.so.2. A sure-fire way to determine the name of the dynamic linker is 
to inspect a random binary from the host system by running: readelf -l <name of 
binary> | grep interpreter and noting the output. The authoritative reference 
covering all platforms is in the shlib-versions file in the root of the Glibc 
source tree."
====

I'd argue that it's not important at all.  Maybe to someone who's taking LFS 
and working on a derivative work.  Or to someone who's messing about with the 
toolchain.

But, put simply: it's pretty hard to separate the complete irrelevance of 
5.2-"Important" from the absolute necessity of 5.3-"Important".  This is an 
issue of poorly structured book organization--not the information intended to 
be conveyed in the book.

        Q



-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-support
FAQ: http://www.linuxfromscratch.org/lfs/faq.html
Unsubscribe: See the above information page

Reply via email to