Add section to main page about "projects to work on"?

Are you sure? The wikibook? I only see their books there.

Not the wikibook. Here’s the link.

OK, but @flexibeast said

https://en.m.wikisource.org/wiki/Help:Reading_offline

As some context for my comments here, i’d like to note that most of my volunteer IT time nowadays is spent on creating and updating documentation (rather than on coding, as it used to be), and i do lots[ of work in this regard.

Currently, most of my work is focused on the improving the Gentoo wiki: here are my contributions so far, which includes creating and developing the “Ada” page. Previously, i made significant contributions to the Void Linux documentation. i’m also the porter and maintainer of man page ports of the documentation for many parts of the s6 ecosystem.

Consequently, i have some fairly strong opinions about documentation. :slight_smile:

The wikibook was never thought as a material which you could read from first chapter to last chapter, but more a reference and self-directed learning, so it depends more on the hyperlinks to define things, rather than giving a predefined learning path.

Well, to me, that’s a wiki, not a wikibook. The former has no suggested reading order; the latter does. In particular, a ‘book’ of IT documentation - even a reference work - is generally expected to be structured such that more fundamental things are introduced prior to the things that reference or build on them.

And indeed, it seems to me that the “Programming in Ada” section is generally structured that way, with the lists strongly suggesting a specific order of reading.

In a ‘book’, a suggested order of reading is necessary for beginners, who don’t yet have the knowledge to determine what things they need to learn and understand before they try to learn and understand other things. This is particularly the case for Ada, whose vintage means that it has concepts and terminology that are ‘non-standard’ from a contemporary point of view. (GNU Emacs has a similar issue: e.g. it talks of a ‘frame’ for something most people think of as a ‘window’, and a ‘window’ is something inside a ‘frame’, because its initial release was around the same time i was learning BASICs on 6502s.)

Consequently, I’ve added a definition to that section and a link to the corresponding page in the book.

Thank you, much appreciated. :slight_smile:

Remember that the Wikibooks is open for anyone to edit, so if you have ideas about how to improve it, you are more than welcome to edit it.

This is one of the issues about which i have strong opinions. :slight_smile:

Clearly i’m someone who’s very much willing to help provide and improve documentation. However, i find it problematic how often it’s suggested to beginners to a system / language / application etc. that they “fill in the gaps”. As i’ve written elsewhere:

Someone reaching for documentation is doing so because they don’t know how to use some software, whether an application or a library. Since they don’t know how to use the software, they are not able to document how to use it!
Presumably the idea is that application users should faff around, experiment, find what works and what doesn’t. And that library users should do the same, or read the library source. There are a few problems with this:

  • The usual reasons the user has reached for the software is because they feel it’s going to help them Get Something Done, or because they’ve been forced to use it by the-powers-that-be - not as an end in itself. Someone frustrated by not being able to progress their task due to lack of documentation is unlikely to have their frustration reduced by being told to go off-task.
  • Users might come up with a solution, but that doesn’t mean it should be documented: that solution might not be idiomatic, or indeed, it might be actively dangerous. This is exemplified by users who, when faced with permissions issues on nx-ish systems, ‘solve’ the problem by setting files (or entire directory trees!) mode 777, sometimes creating massive security holes.
  • The source might be written in a language with which the user isn’t familiar - cf. many programming languages providing ‘wrapper’ APIs around C libraries.

The sorts of issues raised by the second-to-last point were why Void abandoned its wiki, and moved to a repo-based approach - people were adding incorrect stuff that the Void team didn’t have the resources to be continually checking for.

The first point is particularly relevant in the context of this thread. We’re discussing the various obstacles, great and small, that limit the extent to which beginners adopt Ada. Someone wrestling with toolchains and concepts and terminology and new ways of doing things - even when they’re things whose benefits are a reason to learn Ada - is not necessarily in the best place for making wiki edits, or having it suggested to them that they do so.

The argument can be made: “But beginners know what stuff is missing, which those of us with more experience have been taking for granted!” This is true, but it doesn’t inherently imply that they should therefore be the people filling in those gaps. It’s like someone saying “I found I couldn’t use Ada for the things that I wanted because it seems to lack libraries for doing X and Y”, and being told “Contributions welcome.” Okay, but that’s not actually addressing the obstacle that the dev faced and encouraging them to continue with the language; it’s effectively saying “If you want to use this language, you’ll have to take on extra work outside of the actual stuff you’re wanting to do.” And it can discourage feedback, because it can cause people to think “Meh, if I take the time to point out this issue, I might just get told to fix it myself, so why waste my time pointing it out.”

(Certainly for myself, given the extent to i’m working on documentation, and raising and fixing bugs, and how i actually tend to over-commit in this regard, i do feel it’s not unreasonable for me to not have to be responsible for being the one to resolve any issue i raise.)

Finally, i acknowledge that many, if not most of us, who are working on this sort of stuff are doing so as volunteers. So it’s up to us to choose what we do and don’t want to work on, and in the end i can only suggest things that i feel would improve the UX of readers/users/devs. Still, as i also wrote elsewhere:

Some devs make the argument that if they spent their time writing documentation, they wouldn’t have as much time to work on the software itself, or that if they had to write documentation, it would decrease their enthusiasm for working on the software overall[a]. Okay; they get to choose how to spend their time. But that doesn’t necessitate telling users to write the documentation themselves! Devs could simply say e.g. “I find working on documentation to be too much of a chore, sorry.” And preferably: “
 but I’ll try to support you if you’d like to work on it yourself.” (As someone who can actually like writing documentation, i’ve found it frustrating when i try to do so for a given project, only to face a lack of concrete support from the relevant dev(s).)
At any rate, i use a dev’s attitudes towards documentation as something of a measure of how supportive they are of users, and the extent to which i should rely on their software. A dev who would rather avoid spending five minutes on writing documentation, rather than effectively forcing five users to each spend five minutes trying to work out how to do something, certainly has the right to do so; but then i have to weigh up whether the benefits of using their software will outweigh the possible costs when the software becomes a hindrance rather than a help.


[a] And there are possibly other reasons as well:
"The vast majority of my time as a documenter of groff is spent on the discipline of crafting English, not markup.
“But you can’t get this message through to a lot of people. Writing English doesn’t seem to them like something that will impress anyone reading their rĂ©sumĂ©. And, to be sure, for a lot of the people they’re trying to get jobs from, they’re right.”
— manual section titles (was: All caps .TH page title)

4 Likes

By the way, where is that EPUB version located? I hope it has preserved hyperlinks, otherwise the book loses a lot of value.

Oh, sorry! It’s actually not an EPUB, but a PDF, which is here, and linked to at the start of the “Programming in Ada” section. Even though i was initially accessing the wikibook directly on the site, i downloaded the PDF so that i can read it on my Kobo e-ink reader, which is a lot more comfortable for me for long-form reading, and which doesn’t require me to be online.

Unfortunately, links are indeed not preserved by the relevant PDF generation process.

Yes, probably that is not a good idea in general. Some years ago, it might make sense to remember users that they can edit a wiki themselves, but nowadays, everyone already knows and if they haven’t done it themselves for good reasons, it is counterproductive to remember them so.

That file was the semi-automated work done by some contributor, using LaTeX from the wiki source text. There is also the automatically generated PDF by Wikibooks software. We should probably evaluate if linking to this automatic generation would be better than to the LaTeX version. In any case, I’m going to update the current LaTeX version, which should be easy with https://mediawiki2latex.wmflabs.org
Edited: it wasn’t possible, with that web and either with a local installation of mediawiki2latex, due to lack of enough free memory. I guess the wikibook has grown or it was generated in a machine with more RAM.

1 Like